정지홍 2023. 1. 29. 23:49

RNN?

-순환 신경망은 중간층이 순환하는 구조를 가진다. 이러한 특징으로 시계열 데이터들을 잘 다룰 수 있다.

-RNN의 순환구조에서 역전파로 전파시에 여러 층에 걸쳐서 오차를 전차시켜버리면 경사가 발산하거나 소실되는 문제가 발생

-경사가 발산할때는 경사 클리핑이라는 경사의 크기에 제한을 주는 방법을 사용한다.

-경사가 소실되는 경우는 LSTM을 사용

 

LSTM?

-RNN의 장기기억을 보유하기 어렵다는 문제를 극복하기 위한 것

-long short term memory의 약자이다.

-rnn과 같이 중간층을 반복하지만 LSTM에서는 LSTM층이라는 층을 반복한다.

-게이트라는 구조로 정보를 기억할지 말지 판단한다.

-출력 게이트: 기억셀의 내용을 어느 정도로 층에 출력할지 조정

-망각 게이트:기억 셀의 내용을 어느 정도 남길지 판단

-입력 게이트:입력 및 바로 직전의 출력을 어느 정도로 기억셀에 반영할지 조정

-기억 셀: 과거 기억 저장

-입력 몇 바로 직전의 출력에 각각 가중치를 곱하고 시그모이드 함수 및 하이퍼볼릭탄젠트 함수에 넣은 뒤 나온 값들을 서로 곱하고 동시에 입력 및 바로 직전의 출력값을 가중치 곱하고 편향을 더해서 시그모이드에 넣고 기억 셀의 과거 데이터를 서로 곱한다.-----> 이러면 입력게이트에서의 나온 값 1개 , 망각 게이트에서 나온 값 1개가 나온다. 그리고 서로 값을 더한뒤에 기억셀에 저장한다.-----> 이후에 서로 더 한 값을 하이퍼 볼릭 탄젠트함수에 넣는다. 그리고 출력게이트값(-입력 몇 바로 직전의 출력에 각각 가중치를 곱하고 시그모이드 함수 넣은값)과 위의 값을 서로 곱한다.

 

 

GRU?

-LSTM과 비슷하거나 더 간단한 구조이다.

-gated recurrent unit의 약어이다. lstm에 비해서 구조가 간단하여 계산이 적어진다.

-GRU는 입력게이트,망각게이트가 합쳐진 갱신 게이트를 사용한다.

-GRU는 기억셀, 출력게이트가 없고 대신에 리셋 게이트가 존재한다.

 

자연언어 처리의 Seq2Seq?

-이름 그대로 시퀀스 투 시퀀스이다.(문장을 받아서 문장으로 변환)

-문장 입력을 압축하는 인코더와 문장 출력을 전개하는 디코더로 구성(두개 모두 RNN으로 구축)