본문 바로가기

Contact English

【알고리즘】 17강. RNN 알고리즘

 

17강. RNN 알고리즘

 

추천글 : 【알고리즘】 알고리즘 목차 


1. 개요 [본문]

2. 고려사항 [본문]

3. 종류 1. RNN 이전의 회귀 모델 [본문]

4. 종류 2. LSTM [본문]

5. 종류 3. GRU [본문]


 

1.  개요 [목차]

⑴ RNN(recurrent neural network) : 입력층, 은닉층, 출력층으로 구성되는 다층 퍼셉트론에서 은닉층이 재귀적인 신경망을 갖는 알고리즘

⑵ 구조

 

출처 : 이미지 클릭

Figure. 1. RNN 알고리즘의 구조

 

⑶ 용도

자연어 : 텍스트 앞 단어와 뒷 단어를 이용

② 음성 신호

시계열 데이터 : 현재 값에다 과거와 미래의 값을 같이 이용 

시간이 가면서 데이터의 변화를 보고 미래를 예측하는 것은 어려운 일이지만 굉장히 중요한 일이다. 이러한 문제도 딥러닝 알고리즘을 이용하여 풀 수 있다. x(t), x(t - τ), ..., x(t - kτ)를 입력값으로 하고 x(t + τ)를 목표값으로 하는 여러 학습 데이터를 제공한다. 이때 예측값 y는 y = f (x(t), x(t - τ), ..., x(t - kτ))로 표현할 수 있다. 앞서 살펴본 딥러닝 알고리즘에 의해 이러한 f를 표현하는 네트워크를 만들 수 있다. 비단 한 개의 예측값이 아니라 여러 개의 예측값을 출력할 수도 있다. 이때, y = F(x(t), x(t - τ), ..., x(t - kτ)) = (x1*, ... xm*)이 예측값, G(t + τ) = (x1, ..., xm)이 목표값이다.

 

 

2. 고려사항 [목차]

 장기 의존성 문제(long-term dependenct) : 현재 시점으로부터 오래 전 데이터일수록 문맥 처리가 어려워지는 것

 기울기 소실(GV, gradient vanishing) : 오역전파 과정에서 입력층으로 갈수록 기울기 값이 0으로 수렴하여 업데이트가 잘 안 되는 것

① 해결방법 : 활성화 함수로 시그모이드 대신 ReLU 등을 사용

기울기 폭발(GE, gradient exploding) : 기울기가 점차 커지면서 가중치들이 비정상적으로 크게 업데이트 되는 문제

① 기울기 클리핑(gradient clipping) : 기울기 폭발을 막기 위해 기울기 상한 값을 정하는 기법 

 

 

3 종류 1. RNN 이전의 회귀 모델 [목차]

moving average model

 

 

⑵ 자기 회귀 모델(autoregressive model)

 

 

⑶ ARMA(autoregressive moving average)

 

 

⑷ ARMAX(autoregressive moving average with eXogenous inputs) : external variable x에 대하여,

 

 

⑸ 문제점 : linearity 가정, 얼마나 과거의 데이터를 써야 하는지에 대한 기준 부재

 

 

4 종류 2. LSTM [목차]

⑴ LSTM(long short-term memory) : RNN의 장기 의존성 문제를 보완하기 위해 설계된 신경망 알고리즘 

⑵ 구성 : LSTM은 입력 게이트, 망각 게이트, 출력 게이트로 구성됨 

상태 1. cell state : 정보가 바뀌지 않고 그대로 전달 

상태 2. forget gate : 시그모이드 결과가 1이면 보존하고 0이면 버림 

상태 3. input gate : 새로운 정보 중 어떤 값을 cell state에 저장할 것인지 결정 

상태 4. cell state update : cell 업데이트 진행  

상태 5. output gate : output 정함 

 

 

5. 종류 3. GRU [목차]

⑴ LSTM과 유사

⑵ LSTM에 비해 구조가 좀 더 간단

⑶ 인풋(텍스트) - 아웃풋(감성 : 긍정, 부정, 중립) 사이에 은닉층들이 있는데 이 은닉층을 어떻게 쌓느냐에 따라 모델 성능이 달라짐

 

입력: 2023.06.27 00:35