티스토리 뷰
word2vec 연산 과정에서 병목은 입력층의 원핫 벡터와 W_in의 곱 계산, 은닉층과 W_out의 곱 및 출력함수 계산입니다.
- 원핫 벡터와 W_in 곱 계산
임베딩 계층 구현을 통해 해결할 수 있습니다.
원핫 벡터는 해당 index의 값만 1, 나머지는 모두 0입니다. 그러므로 행렬 연산 (W_in과의 곱)을 굳이 하지 않고, W_in에서 해당 행을 가져오면 됩니다.
- 은닉층과 W_out의 곱 및 출력함수 계산
이는 네거티브 샘플링을 이용해 계산하면 됩니다.
1. 이진 분류
해당 값이 정답인지 아닌지만 판단하도록 만드는 것이 이진 분류입니다. 해당 값이 yes, no 둘 중 하나가 되게 하기 위한 것입니다.
이 때 시그모이드 함수를 이용하여 판별할 수 있습니다.
출력 함수로 시그모이드를 이용하고, 손실함수로 교차 엔트로피 오차를 활용하면, 시그모이드의 입력 값을 x, 출력 값을 y라 하였을 때 x의 역전파 값 (dL/dx) = y-t 입니다. (t: 정답 레이블)
y가 시그모이드의 출력값이고, 시그모이드 함수의 경우 함수값을 확률로 생각할 수 있습니다.
또한 t가 정답레이블이므로 0, 1이고, t=1 일 때, y가 1에 가까운 값일 수록 오차가 줄어드는 것입니다.
그러므로 오차가 크면 크게 학습, 작으면 작게 학습시킵니다.
2. 네거티브 샘플링
위 이진분류는 t=1일 때 효력이 있습니다. 그렇다면 맞는지만 제대로 파악하는 것도 중요하지만, 틀린 값을 틀리다고도 할 줄 알아야합니다.
이 때 사용하는 내용이 네거티브 샘플링입니다. 정답이 아닌 값을 무작위로 몇 개 고른 뒤 이진 분류에 사용한 방법을 똑같이 적용하면 됩니다. (정답 레이블 t=0)
(자세한 내용은 책 참고)
'딥러닝' 카테고리의 다른 글
기울기 클리핑 / 기본적인 LSTM (0) | 2021.01.29 |
---|---|
BPTT (0) | 2021.01.29 |
CBOW 1 (0) | 2021.01.26 |
통계 기반 기법 2 (0) | 2021.01.24 |
통계 기반 기법 1 (0) | 2021.01.23 |