본문 바로가기
COURSERA

week 1_Recurrent Neural Networks (Andrew Ng)

by HYUNHP 2022. 4. 27.
728x90
반응형

안녕하세요, HELLO

 

오늘은 DeepLearning.AI에서 진행하는 앤드류 응(Andrew Ng) 교수님의 딥러닝 전문화의 마지막이며, 다섯 번째 과정인 "Sequence Models"을 정리하려고 합니다.

 

"Sequence Models"의 강의를 통해 '시퀀스 모델과 음성 인식, 음악 합성, 챗봇, 기계 번역, 자연어 처리(NLP)등을 이해하고, 순환 신경망(RNN)과 GRU 및 LSTM, 트랜스포머 모델에 대해서 배우게 됩니다. 강의는 아래와 같이 구성되어 있습니다.

 

~ Recurrent Neural Networks

~ Natural Language Processing & Word Embeddings

~ Sequence Models & Attention Mechanism

~ Transformer Network

 

"Sequence Models" (Andrew Ng) 1주차 "Recurrent Neural Networks"의 강의 내용입니다.


CHAPTER 1. 'Sequence Models'

 

CHAPTER 2. 'Different types of RNNs'

 

CHAPTER 3. 'Gated Recurrent Unit (GRU)'


CHAPTER 1. 'Sequence Models'

 

□ Examples of sequence data

 

sequence data는 연속성을 가지는 데이터로, 대표적으로 음성, 음악, DNA 등이 이에 해당합니다. 


□ Notaions

 

시퀀스 데이터는 위첨자 꺽쇠로 <> 표현합니다. Tx, Ty는 x와 y에 대한 시퀀스 데이터 길이를 나타냅니다.


□ Recurrent neural network model

 

일반적인 신경망으로는 텍스트 훈련이 잘 되지 않습니다. 왜냐하면, 입력과 출력의 길이가 트레이닝 데이터마다 다른 점과 두 번째로는 텍스트의 서로 다른 위치에서 학습된 피쳐가 공유되지 않기 때문입니다.

sequence data를 훈련시키는 일반적인 모델에는 RNN(Recurrent Neural Network)이 있습니다. RNN(Recurrent Neural Network)은 입력과 출력을 시퀀스 단위로 처리하는 시퀀스(Sequence) 모델입니다. RNN은 은닉층의 노드에서 활성화 함수를 통해 나온 결괏값을 출력층 방향으로도 보내면서, 다시 은닉층 노드의 다음 계산의 입력으로 보내는 특징을 갖고 있습니다.

RNN의 특징은 T+1 시점에서 훈련할 때는, X<T+1>과 더불어 T 시점의 훈련된 일부 데이터를 활용합니다. 구체적으로는 T 시점의 활성화 값(activation value)이 T+1 시점에 전달됩니다. 

 

각 시점 단계에서 파라미터를 공유합니다. (Wax, Waa, Wya) 이때 표기법은 Wax를 예를 들어, W는 가중치를 의미하며, 아래첨자 x는 곱해지는 대상을 나타내고, 아래첨자 a는 산출되는 대상(a)을 의미합니다. 

순방향 전파에 있어서 activation function은 비선형 함수인 tanh, relu를 활용하고, 예측값 계산에 있어서는 sigmoid function을 사용합니다.



□ Bakpropagation through time

 

프로그래밍 라이브러리에서 역전파 진행을 자동으로 구현해주고 있어, 실제 사용에는 편하지만 이번에는 작동 원리에 대해서 파악하고자 합니다.

신경망의 순전파는 왼쪽에서 오른쪽으로 순차적으로 진행됩니다. 분류 함수에 있어 예측값과 실제값의 차이인 오차는 분류 함수에서의 오차 계산과 동일하게 정리됩니다. 그리고 전체 T에 대해서는 summation을 통해 계산됩니다.

지금까지 RNN은 입력값과 출력값의 개수가 동일한 범위에서 계산되었습니다. 이후 CHAPTER 2부터는 입력값과 출력값의 개수가 다른 경우를 다뤄보겠습니다.

 

 

CHAPTER 2. 'Different types of RNNs'

 

□ Examples of sequence data

 

입력값과 출력값의 개수가 다른 경우는 쉽게 살펴볼 수 있습니다. 예를 들어 음식, 영화, 제품에 대한 5점 평가의 경우, 입력값은 각 평가의 개수라면 출력값은 1점부터 5점까지의 5가지 정수만을 가집니다.


■ Summary of RNN types


■ Many to many RNN architectures

여러 입력값에 대해 연산을 하여 여러 결과에 대한 출력값을 가집니다. many to one 모델과 유사하지만, 언어를 번역하는 모델 중 encoder과 decoder을 적용하는 경우가 있습니다. encoder는 언어를 입력받아, decoder에서 번역어로 처리하는 구조로 이뤄집니다.


■ Many to one RNN architectures

여러 입력값에 따라 매 순간 출력하는 것이 아니라, 마지막 순간에 출력하는 모델입니다. 문장 번역의 경우, 단어 하나하나 번역하는 것이 아닌 문장을 번역하는 경우에 해당합니다.


■ One to one RNN architectures

입력값이 하나만 존재하며, 이에 따라 하나의 출력만 나오는 모델입니다.


■ One to many RNN architectures

음악 생성 모델의 경우, 입력값이 하나에 출력이 여러 개인 모델에 해당합니다.


□ Language model and sequence generation

RNN 모델은 이전의 결괏값을 이어서 계산하며 진행됩니다. 이에 따라 y<1> = x<2>과 동일한 값이 입력됩니다.


□ Sampling nobel sequences

 

샘플링은 RNN 방식과 유사하지만, 다른 방법으로 진행됩니다. 각 예측값은 무작위로 샘플링하여 소프트맥스 분포에 따라 값을 구합니다. 이때 소프트맥스 분포는 Y의 분포를 따릅니다. 

NN은 activation function을 다음 신경망에 계산되지만, 샘플링은 T번째 샘플링 데이터를 T+1번째 샘플링에 적용합니다.


□ Vanishing gradients with RNNs

 

RNN은 깊은 신경망일수록 과거의 결괏값을 제대로 훈련하기 어렵습니다. 이로 인해 역전파를 진행할 때 교육 효과가 사라지는 vanishing gradients 문제가 생깁니다. 단수일 때, 복수형에 따라 동사가 달라집니다.

 

반응형

 

CHAPTER 3. 'Gated Recurrent Unit (GRU)'

 

□ Gated Recurrent Unit (GRU)

 

RNN의 기본적인 모델은 아래와 같이 T-1번째 활성화 결과가 T번째 입력값과 계산되어, T번째 활성화 값이 됩니다.

 

Gamma U는 0에서 1 사이의 값을 가집니다. sigmoid 활성화 값으로 0부터 1 사이 범위를 가집니다.


□ Long Short Term Memory (LSTM) unit


□ Bidirectional RNN (BRNN)

양방향 RNN 모델은 T번째 예측값이 1, 2,..., T-1과 더불어, T+1, T+2,...., N번째까지 영향을 받는 것을 계산하기 위함입니다.


□ Deep RNNs

a[2]<3>을 예시로, 입력값을 a[1]<3>을 받으며, t-1 활성화 값으로 a[2]<2>을 활용합니다. 출력값 y를 구하기 위해, 이전 연산에서 사용한 활성화 값을 사용합니다.


■ 마무리

 

"Sequence Models" (Andrew Ng) 1주차 "Recurrent Neural Networks"의 강의에 대해서 정리해봤습니다.

 

그럼 오늘 하루도 즐거운 나날 되길 기도하겠습니다

좋아요와 댓글 부탁드립니다 :)

 

감사합니다.

 

반응형

댓글