# RNNLM vs. n-gram, NNLM
- n-gram, NNLM : 고정된 갯수의 단어만큼을 입력으로 받는다
- RNNLN : 반드시 고정된 갯수일 필요가 없다
# RNNLM 의 훈련 과정
- "교사 강요" 기법의 사용 (teacher forcing)
> RNN 의 기본 원칙인, "현재의 출력값을 다음 상태 값으로 전달한다" 방식을 훈련 과정에선 하지 않는다
(훈련이 다 끝난, 테스트 과정에서만 은닉 상태를 전달함)
> 실제 훈련 과정에서는, (현재의 입력값) + (실제 정답 값) 두 가지만 이용해서 훈련한다.
> 즉, t 시점의 실제 정답값을 t+1 시점의 입력값으로 전달한다. ( 출력값 전달 X )
> Why? : 오류 발생 가능성 많음, 시간이 오래 걸림
- 여태껏 봐왔던 대부분의 RNN 도식들이 모두 교사 강요 기법을 사용했다.
출력값을 다음 은닉층의 입력값으로 사용한 경우에 대한 도식은 거의 없었음
> 여기서, "출력값"과 "은닉상태"는 다른 값이다
- 출력값 (y 값) : 은닉상태의 값을 활성화 함수에 넣어서, 특정 label 로 결괏값을 냄 (원핫벡터 이용)
- 은닉상태 (h 값) : 활성화 함수 넣지 않음. 그대로 결괏값을 다음 은닉층으로 전달함.
- 인풋 값의 전처리 : embedding 과정을 거쳐야 한다 -> 이 값을 은닉층에 대입
> 임베딩을 위해 word2vec 같은 방식을 사용
> look up table 에 대한 추가적인 공부 필요 (NNLM 단원에 등장)
- 학습을 위한 손실 함수 :
> 은닉층의 예측 값을 실제 label 값과 비교한다
>이때 예측값 계산을 위해 softmax 함수를 사용함 (확률처럼 표현하기 위함)
> cross entropy를 사용해서 오차 값을 계산, 이 값에 따라 매개변수를 수정한다.
'기계학습 > 자연어 처리 머신러닝' 카테고리의 다른 글
GRU, ELMO - 딥러닝을 이용한 자연어처리 입문 (0) | 2020.01.28 |
---|---|
LSTM - 딥러닝을 이용한 자연어처리 입문 (0) | 2020.01.28 |
RNN - 딥러닝을 이용한 자연어처리 입문 (0) | 2020.01.28 |
태깅 작업 - 딥러닝을 이용한 자연어처리 입문 (0) | 2020.01.28 |
워드 임배딩 - 딥러닝을 이용한 자연어처리 입문 (0) | 2020.01.28 |