Rnn 기본
REVIEW
- ANN: 사람의 신경망 원리와 구조 모방하여 만든 기계학습 알고리즘 (인공신경망)
- DNN: ANN기법에서 모델 내 은닉층을 많이 늘림 (은닉층 2개이상)
- CNN : 합성곱 계층을 통해 데이터의 특징을 추출한 후, 그 특징들을 기반으로 분류하는 딥러닝 분석 모델
- RNN: 데이터 순서 정보를 반영하는 재귀구조의 딥러닝 분석 모델, 히든 layer 순환구조
RNN(Recurrent Neural Networks)
1) RNN
- 시퀀스 모델 (자연이나 음성신호, 주식과 같은 연속적인 시계열 데이터에 적합한 모델)
- 히든 layer에서도 서로 값을 주고 받음
- 적용(문서분류, 시간분류, 시계열, 번역기, 감성분석, 날씨예측)
2) 공식
$h_t = h_w(h_{t-1}, x_t)$ $h_t=tanh(W_{hh}h_{t-1}+W_{xh}X_t)$ $y_t=W_{hy}h_{t}$
3) character-level language model
- input 단어: one-hot-encoding
- 단어 $10^7$일경우, $10^4$개이하로
- stopwords 제거
- entropy : binary-cross entropy, cross entropy
- DF(document frequency) :특정 단어가 등장한 문서의 수
- TF(term frequency): 특정 문서에서의 특정 단어의 등장 횟수
- feature selection (어떤 단어가 유용한지)
- a=10, b=100, c=5
- zipf’s power law
- 반비례, 불용어 포함 in b, 순위 낮은건 제외 -gradient clipping : 미분 값이 커지지 않도록 잘라냄 $g\leftarrow min(1,\frac{\theta}{| g|})$
- 언어모델 평가
- perplexify(성능이 좋은지 평가)
- 헷갈리는 정도, 낮을수록 언어모델이 성능 좋음
4) RNN의 다양한 구조
5) RNN의 단점
- 복잡해지면 학습이 어려움
- Markov가 sequence 길면 복잡
- gradient vanishing 문제 : weight가 0에 가까워짐
- gradient exploding 문제 : weight가 1보다 커지면 너무 커짐
- 장기의존성 문제: 은닉층의 과거의 정보가 마지막까지 전달되지 못하는 현상
- 그러므로 Long Short Term Memory(LSTM)과 GRU를 사용
LSTM(long short term memory)
- 정량화된 수치로 기억과 망각을 함
- 과거 정보를 얼마나 망각할지, 현재 정보를 얼마나 기억할지
- RNN의 hidden state에 cell-state를 추가한 구조
- 오래 경과해도 gradient가 잘 전파
불필요한 정보는 잊고 새로 추가해야하는 것은 추가해서 cell에 중요한 정보만 흘러가도록 vanish gradient 상당 부분 해결
GRU (gated recurrent units)
GRU(게이트 순환 유닛)은 한국인인 뉴욕대학교 조경현 교수가 제안한 순환 신경망이다. LSTM과 달리 출력 게이트가 없는 간단한 구조를 가진다.
댓글남기기