728x90
반응형
통계 기반 기법의 문제점
- 통계 기반 기법은 대규모 말뭉치를 다룰 때 문제가 생긴다.
- 현업에서 다루는 말뭉치의 어휘 수(예) 영어)는 100만을 훌쩍 넘는다.
- 거대 행렬에 SVD는 적합하지 않다, 현실적이지 못하다.
- 통계 기반은 말뭉치 전체의 통계(동시발생 행렬, PPMI 등)을 이용해 1회의 처리(SVD 등)만에 단어의 분산 표현을 얻지만
- 추론 기반 기법은 신경망을 이용하는 경우 미니배치로 학습하는 것이 일반적이다.
- 미니배치에서는 소량의 학습 샘플씩 반복해 학습하며 가중치를 갱신해간다.
통계기반 기법과 추론 기반 기법 비교
- 통계 기반은 학습 데이터 한꺼번에 처리
- 추론 기반은 데이터의 일부를 순차적으로 처리
추론 기반 기법 개요
- '추론'이란 주변 단어(맥락)가 주어졌을 때 "?"에 무슨 단어가 들어가는지를 추측하는 작업이다.
주변 단어들을 맥락으로 사용해 "?"에 들어갈 단어를 추측
추론 기반 기법 : 맥락 입력시 모델은 각 단어의 출현 확률 출력
신경망에서의 단어 처리
- 단어를 있는 그대로 처리할 수 없으니 '고정 길이의 벡터'로 변환해야 한다.
- 대표적 방법
- 단어를 원핫(one-hat)표현(또는 원핫 벡터)으로 변환하는 것
- 원핫 표현은 벡터의 원소 중 하나만 1이고 나머지는 모두 0인 벡터를 말한다.
입력층의 뉴런
- 각 뉴런이 각 단어에 대응(해당 뉴런이 1이면 검은색, 0이면 흰색)
완전연결계층에 의한 변환
- 입력층의 각 뉴런은 7개의 단어 각각에 대응(은닉층 뉴런은 3개를 준비)
완전연결계층에 의한 변환 파이썬
# 완전연결계층에 의한 변환 파이썬
import numpy as np
c = np.array([1,0,0,0,0,0,0]) # 입력
W = np.random.randn(7,3) # 가중치
h = np.matmul(c, W) # 중간 노드
print(h)
# 단어 ID가 0인 단어를 원핫 표현으로 표현핫 다음 완전연결계층을 통과시켜 변환한다.
# 행렬의 곱은 np.matmul()이 계산해준다.
# 완전연결계층에 의한 변환 파이썬
import sys
sys.path.append('..')
import numpy as np
from layers import MatMul
c = np.array([1,0,0,0,0,0,0]) # 입력
W = np.random.randn(7,3) # 가중치
layer = MatMul(W)
h = layer.forward(c) # 중간 노드
print(h)
출처 : 밑바닥부터 시작하는 딥러닝2
https://www.hanbit.co.kr/store/books/look.php?p_code=B8950212853
728x90
반응형
최근댓글