인공지능/공부

딥러닝개론 8~9장 순환 신경망

이게될까 2024. 6. 15. 11:17
728x90
728x90

시계열 문제 - 시간에 따라 변하는 데이터를 사용하여 추이를 분석, 추세를 파악하거나 향후 전망 예측 

불규칙 변동 irregular variation - 시간에 따른 규칙성 없이 예측 불가능하고 우연적으로 발생하는 변동
추세 변동 trend variation - 시계열 자료가 갖는 장기적 변화 추세(장기간에 걸쳐 지속적으로 증가, 감소 or 일정한 상태를 유지하려는 성향 == 짧은 기간에서는 힘들다.)

순환 변동 cyclical variation - 2~3년 정도의 일정한 기간을 주기로 순환적으로 나타나는 변동 == 1년 이내 주기로 곡선을 그리며 추세 변동에 따라 변동 
계절 변동 Seasonal variation - 계절적 영향과 사회적 관습에 의해 1년 주기로 발생 == 계절에 따라 순환하며 변동

시계열 데이터를 잘 분석한다 == 불규칙성(트렌드 혹은 분산이 변화하는 시계열 데이터)을 갖는 시계열 데이터에 특정한 기법이나 모델(자기 회귀, 이동 평균, 자기 회기 이동 평균, 자기 회귀 누적 이동 평균)을 적용하여 규칙적 패턴을 찾거나 예측

RNN

ht = fw(ht-1 , xt) = tanh(Whh * Ht-1 + Wxh * xt) - 과거와 현재 정보 모두 반영 
yt = Why * ht 

역전파를 통해 파라미터를 업데이트할 때 기울기 소실이 발생한다.
생략된 BPTT(truncated BPTT) = 기울기 소실을 보완하기 위해 오차를 몇 단계까지만 전파시킨다.

LSTM = 망각 gate + 입력 gate + 셀(장기 기억) + 출력 gate(단기기억)

망각 gate : 과거 정보를 얼마나 기억할지 결정
ft = sigma(wf[h(t-1), xt])
ct(장기 기억) = ft * c(t-1)

입력 gate: 현재 정보를 기억하기 위해 
it = sigma(wi[h(t-1), xt])

셀 : 각 단계에 대한 hidden node, 총합을 사용해 셀값을 반영 -> 기울기 소멸 문제가 해결
망각 게이트와 입력 게이트의 이전 단계 셀정보를 계산하여 헌재 상태의 셀 상태를 업데이트 

출력 gate : 누런의 출력 결정 - t번째 입력을 고려하여 이전 은닉 상태를 계산 

LSTM

중단 없는 기울기로 LSTM은 셀을 통해 역전파가 중단 없이 진행된다.

GRU는 LSTM에서 사용하는 망각 게이트와 입력게이트를 합친 것 -> 업데이트 게이트 
게이트 컨트롤러가 망각 게이트와 입력게이트를 모두 제어하고, 셀상태를 없대고 다시 은닉 상태 ht가 장기 기억과 단기 기억 모두 기억 

망각 게이트 - 정보를 적당히 초기화, 초기화 목적 - 시그모이드 출력으로 이영하여 )0,1)값을 이전 은닉층에 포함
은닉층 값에 현 시점의 정보에 대한 가중치 곱한 것 

업데이트 게이트 - 과거와 현재 정보의 최신화 비율 결정 - 시그모이드로 출력된 결과(Zt)는 현시점의 정보량 결정

후보군 - 현시점의 정보에 대한 새로운 기억을 계산 - 과거 은닉층 정보를 그대로 이용하지 않고 강각 게이트의 결과를 이용해 후보군 계산 

은닉층 - 업데이트 게이트와 후보군 결과를 결합하여 현시점의 은닉층 계산

GRU 구조

 

양방향 RNN - 하나는 이전 시점의 은닉 상태, 하나는 다음 시점의 은닉 상태를 받는다.

값을 1개 받아 RNN을 넣을 때 파라미터 때문에 100개가 되었다가 다시 1개로 줄여준다.

 

어텐션 - 꼭 필요한 정보만 취하려는 뇌와 같이 연관성 있는 정보에 집중하는 것 
언어 모델에서 어텐션은 문장의 특정 단어를 볼 때 문장 내의 다른 단어와의 연관성을 attention score로 사용

하드 어텐션 : 가장 집중하는 정보를 선택 - attention score 중 최댓값 
소프트 어텐션 : 가중치로 사용해 전체 정보를 가중 합산

 

transformer - 순환 신경망을 사용하지 않고 순수하게 attention으로 구성된 encoder-decoder모델 
단어 간 상관관계로 문장을 해석할 수 있다면 단어를 순차적으로 보면서 문장 패턴을 인식하는 순환 신경망 필요없다.
복잡도가 크다.

인코더 - 특징을 효과적으로 추출
디코더 - 특징을 받아 생성 

 

시간 합성곱 네트워크 - 세종 AI 챌린지 때 사용했던 방식 - 1차원 CNN을 통해 RNN과 같은 느낌을 낸다.
수용 영역을 넓히기 위해 팽창 인자가 지수적으로 커진다.

728x90