티스토리 뷰

딥러닝

네거티브 샘플링

4567은 소수 2021. 1. 27. 02:23

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
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함