추론 기반 기법

미니 배치 학습

- 추론은 말 그대로 

 

주어진 글자에 어떤것이 들어가는지를 추측하는 기법이다.

 

 

맥략 -> 모델 -> 단어가 나올 확률분포를 보여주는 

모델을 만들자 .

 

 

 

3.1.1 신경망에서 단어 처리

 

you say goodbye and i say hello 

단어중 두단어를 원-핫 표현으로 나타내보자 

단어 id 는 -> 으로 가면서 단어 id 를 하나씩 추가해주는것이다. 

즉 you 부터 시작했으니 you :0  say:1 goodbye:2 and :3 .. 이런식이다. 

 

 

 

 

 

 

w=7 x 3 가 된다. 즉 7개 단어에 은닉충 (w 3)개 전부 연결되었다는 의미 

 

여기서 입력층이 원샷 이기때문에 

 

이렇게 3 개만 사용되고 나머지는 0 이된다. 

 

 

3.2 CBOW 모델 만들기 

 

 

위에서 설명했던 

you , goodbye 를 입력으로 넣기 때문에 여기서 입력층이 2 개 인것을 알수 있다. 

동일한 가중치를 이용해서 h1 , h2 를 output 한뒤 최종 은닉층은 h1+h2 /2 이다 .

(우리가 알고 싶은건  사이에 들어갈 단어이기 때문 )

multiclass 에서는  추정치 를 찾아야되기때문에  softmax 를 이용해서 확률을 구한다. 

 

 

 

NOTE

 

은닉층은 우리가 이해할수 없는 코드로 되어있다. == 인코딩 

인코딩을 우리가 이해할수 있는 단어로 변경한다 == 디코딩

 

 

 위에서 설명한  

" 동일한 가중치를 이용해서 h1 , h2 를 output 한뒤 최종 은닉층은 h1+h2 /2 이다 ." 을 그림으로 보여준다.

여기서  w in 은 이해가 되는데 wout 은 뭐냐? 싶을수 도 있다. 

 

 

 

위에서 설명한 디코더를  w out 이 한다고 생각한다. 여기서 은닉층은 3개 밖에 안나와서 

정확한 확률을 구하기 어렵다. 따라서 wout 를 곱해줘서 출력층이 입력층과 같은 크기가 나오게 만들어야

된다. 

 

이제 multiclass 의  softmax -> cross Entropy error를  하면되는데 여기에서는 두개를 합쳐서 softmax with loss 계층을 만든다.

 

w (in) 이 단어의 분산에 해당된다. 

 

 

 

3.3 학습 데이터 준비 

& CBOW 모델 구현하기 

 

 

 

 

이런식으로 바꾼다. 코드는 for 문을 두번스기 때문에 나엿으면 for문 한번에 쓰고 앞뒤로 검색해주는게 더 날거 같아서 

코드 해석은 안함

 

나머지는 책 보면 이해되는 코드 

 

 

3.5 word2vec 보충

 

원래는 

 

 

 

 

 

가 되는 것을 볼수 있다. 

 

 

skip- gram 모델 

 

역으로 생각해보는 문제이다. 

 

 

마치 디코더 라고 생각하면 될거 같다. 

하나의 입력에 대해서 어떤것이 나올까? 를 모델링한다. 

여기서 

 

조건부 독립이다. 이것은 서로 독립 ( 연관성이 없다는 것을 놓으면 이렇게 변한다. _