본문 바로가기
AI-Tech 부스트캠프

[DL] Recurrent Neural Networks(RNN), Transformer

by Alan_Kim 2021. 8. 12.
728x90
반응형

Recurrent Neural Networks(RNN)

 RNN은 주어진 모델 자체가 Sequential Model이다.

즉 연속된 순서가 존재하는 모델로 비디오, 텍스트등이 여기에 속한다고 생각하면 된다.

 Sequential Data에서의 RNN 모델의 성능은 뛰어나지만, 단점도 존재한다.

우선 과도한 Back Propagation으로 Gradient가 발산하거나 0으로 수렴되는 Gradient Vanishing 현상이 일어날 수 있다.

 앞의 변수, 즉 과거를 담는 변수에 영향을 받는데 모든 데이터를 담으면 Gradient가 너무 작아지거나 커지는 Gradient Vanishing현상으로 정상적인 학습이 어려워진다. 이를 위해 모델의 변수개수를 조절하거나 초기값을 잘 설정하거나 Activation함수를 ReLU로 설정하는 등 조정을 했었다.

 하지만 문제는 이뿐만이 아니라 장기기억력이 떨어진다는 것도 있다. 너무 작은 Gradient의 영향으로 모든 문장의 정보를 담기 어렵다. 따라서 이를 보완하기 위해 LSTM이 나타났다.

 

Long Short Term Memory (LSTM)

 LSTM은 기존 RNN 모델의 순서 정보를 HGidden Layer에 담는 과정을 발전시켜 RNN의 큰 단점이었던 단기 기억만 가능하다는 부분을 개선했다. 가장 기본적인 tanh를 activation func으로 활용하는 RNN

 LSTM의 핵심은 Cell이라 불리는 c(t)와 다수의 Gate를 통한 정보 필터링이라 볼 수 있다. 특정 시점 t에 대한 데이터 x(t)와 그 이전 시점까지의 정보 h(t-1)로 각각의 Gate와 현재 시점의 Cell 정보 c(t)를 만들고 여기에 한 번의 처리를 거쳐 최종형태의 h(t)를 만들어낸다.

LSTM Unit에 대한 설명

Forget Gate : 이전에 넘어온 정보에서 버릴 것 선택

Input Gate : cell에서 어떤 정보를 저장할 것인지 선택

Update cell : cell 상태 update

Output Gate : updated cell state를 사용하여 결과 추출

 

Transformer

언어는 형식이 있지만 때로는 그 형식에 어긋나지만 전달하는데 문제가 없는 경우가 있다.

예로 육하원칙을 지켜서 쓴 '너 지금 침대에서 잠을 자지마'를 '자지마!' 해도 의미 전달하는데 문제가 없다.

Attention is all you need(The Transformer).2017 에서는 기계 번역 모델은 오직 Attention 개념만 있으면 된다는 것이다.

Attention은 '집중, 주의'라는 뜻을 지닌 것과 같이 특정 단이어 focus를 두고 의미를 해석한다고 보면 된다. 이는 이전에 이전의 기억을 축적하는 Sequential model의 한 종류의 RNN계열의 모델 보조 정보 또는 보조 장치로써 사용한 것과 달리 RNN계열의 모듈을 아에 쓰지 않고 좋은 성능을 보여줬다.

모델의 큰 구조는 Sequencial data를 처리하고 Encoder-Decoder 형식을 가지고 있다. 이는 번역뿐만 아니라 이미지 분류등에도 사용될 수 있다는 것이다.

Transformer은 모든 Token을 순서대로 입력받는 RNN과 달리 모든 Token을 한 번에 받아 처리하는 방식을 사용하기 때문에 학습이 빠르다. 

Transformer 모델은 여러 개의 해당 모듈을 N번 쌓아둔 Encoder와 해당 정보를 받아 비슷한 구조의 모듈을 또 여러 겹 쌓아둔 Decoder로 구성돼 있다.

RNN과 달리 한 번에 처리하는 방식이기 때문에 입출력의 sequence 길이가 다를 수 있다.

Self-Attention에서는 각 글자들이 dependencies해서 특징을 나타내는 벡터를 추출하고 Feed Forward Neural Network에는 독립적 단어들이 나타난다.

728x90
반응형

'AI-Tech 부스트캠프' 카테고리의 다른 글

2021_08_14_(토)  (0) 2021.08.14
[DL] Generative Models  (0) 2021.08.13
[DL] Convolutional Neural Networks (CNN)  (0) 2021.08.12
[DL] 최적화 (Optimization)  (0) 2021.08.10
[DL] 딥러닝의 역사  (0) 2021.08.09

댓글