[Day-64] 자연어 처리를 위한 순환신경망
chap07.
RNN 순환신경망
단기기억
-> 오래 보존하기 위해 LSTM
상태값을 통해서 쭉 이어지게 cell state 단방향
* 자연어 처리 쪽에서 LSTM은
양방향 LSTM구조
정방향 역방향 계산의 합
-> 훈련속도 느려...
문장에 대한 감정을 분석할 때
자연어 처리를 위한 순환 신경망
시퀀스 정보 학습하는 방법
이 정보를 사용하여 텍스트를 더 잘 이해하는 RNN
1.) 순환구조
모델을 만드는 과정
1. 데이터와 레이블을 제공
2. 모델의 구조를 정의
3. 모델은 데이터를 레이블에 매핑하는 규칙을 학습
이 규칙은 미래 데이터에 대한 레이블을 예측할 수 있는 API로 제공
단, 데이터는 한 번에 처리되기 때문에(p186)
단어사이의 연관관계등 세부화가 일어나지 않으며 데이터 발생순서를 이해하려는 노력도 없다.
사람은 문장에서 특정 단어의 의미를 명확하게 구분하여 사용하지만
지금까지의 모델 구조에서는 단어의 의미를 구분하기 못한다.
=> 순환신경망 도입
- 마치 피보나치 수열과 같은 구조
2)
간단한 순환신경망을 사용할 경우
감성을 분석할 때 단어간 거리가 멀면 멀 수록 손실
=> 양방향 LSTM
양방향 LSTM 사용하기 위해서는
양방향 층이 필요해
- 각 스텝에서
장점: 어떤 문장에 대한 감성을 이해하는 데 쉽다
단점: 연산이 들어가기 때문에 훈련속도 느려
3) RNN으로 텍스트 분류기 만들기
LSTM과 RNN층을 사용할 때는
단어를 모을 필요없이 임베딩 층의 출력을 바로 순환층에 주입가능
단어를 먼저 벡터로 변환한 후, 밀집층에 주입하지 않아도 됨.
4) LSTM 쌓는 기술 스태킹(Stacking)
마지막 LSTM층을 (밀집층 바로 위에 있는 층 빼고) 는
return_sequencees=True로 지정해야 함
과대적합 발생하면???
1. 학습률 조정
2. 드롭아웃 사용(LSTM은 dropout 매개변수가 있어)