본문 바로가기
자연어처리/개념 정리

RNN 개념 간단 정리 (자연어 처리)

by 아인슈페너먹고싶다 2022. 9. 6.

 

RNN(Recurrent Neural Network)sequential한 data를 다루는 모델이다.

 

Requrrent, 재귀적 학습을 통해 바로 이전 시점의 hidden state 값을 input으로 활용하는 특징을 가지고 있으며

 

번역, 분류, 분석 등 다양한 자연어 처리 모델에서 활용되고 있다. 

 

 

(여기서 hidden state는 은닉층으로, 현재를 t 시점이라 할 시 다음 시점인  t+1시점의 자신에게 보내는 값)

 

 

 

 


 

 

 

가장 기본적인 RNN 모델의 이미지를 생각해본다면 다음과 같다. 

 

 

 

출처 https://wikidocs.net/22886

 

 

 

 

위의 예시는 입력층과 출력층의 뉴런 개수가 같지만 뉴런 단위가 달라짐에 따라 RNN 모델의 용도를

 

다양하게 활용할 수 있다.

 

 

 

 

출처 : 구름 AI 자연어처리 과정

 

 

 

 

 

먼저 one-to-one은 모델의 기본적인 형태를 나타내고 

 

 

one - to - many 같은 경우 one에 해당하는 이미지에 맞는 제목을

 

각각의 텍스트로 출력하고자 하는 용도로 사용 된다. 

 

 

many - to - one 같은 경우는 어떤 여러 단어로 구성된 텍스트를 가지고

 

해당하는 감성을 분류를 할 시 활용된다.

 

 

many - to - many 같은 경우는 양쪽 다 텍스트를 대상으로 하기에

 

언어를 번역하는 용도로 활용되곤 한다.

 

 

 

 

 

 


 

 

RNN의 hidden state 값을 나타내는 수식은 다음과 같다. 

 

 

 

$$ h_{t} = tanh(W_{hh}h_{t-1}+W_{xh}x_{t}+b) $$ 

 

 

 

t-1시점의 hidden state값에 가중치를 곱해주고, t시점의 input 값에 가중치를 곱해준 후  (b는 편향)

 

tanh함수에 넣어준다. 

 

 

 

출력층 값을 나타내는 수식은 다음과 같다.

 

 

$$ y_{t} = f(W_{h}h_{t}+b) $$

 

 

 

t시점의 hidden state값에 가중치를 곱해주고 비선형 활성화 함수에 넣어준다.

 

 

 

 

 

 

RNN을 활용한 Character-level의 언어모델은 다음과 같다.

 

 

출처 : 구름 AI 자연어처리 과정

 

 

 

 

RNN은 평소에도 많이 다뤘으니 꿑!

 

 

댓글