RNN

RNN은 Data의 값 뿐만 아니라 Data의 순서(주가 데이터, 날씨 데이터, 문자 데이터 등등...)도 중요한 의미를 가지는

Sequential Data를 잘 다루기 위해 도입되었습니다.

 

위의 구조를 펼치면 왼쪽의 그림과 같이 됩니다.

이렇게 설계를 하게 되면 2번째 3번째... 값들은 그 이전 값들의 처리 결과를 반영하게 됩니다.

 

 

A에서 일어나는 동작입니다.

이 식을 보면 그 이전단계의 처리결과를 반영한다는 것을 알 수 있습니다.

공식을 보면 f()라는 함수에는 전단계의 hidden state와 지금 단계에서의 입력값을 가지고

현재의 출력값인 ht를 만들게 됩니다.

예시를 들기 위해 Vanilla RNN을 보면 위의 수식대로 이전 상태의 값이 반영되는 것을 알 수 있습니다.

여기에서 Weight값은 A에서 사용하기 때문에 각 A에서는 똑같은 Weight값을 사용한다고 보면 됩니다.

첫번째 A에서 계산을 진행할때는 그 이전 ht-1이 없기 때문에 0으로 계산합니다.

 

 

 

다양한 RNN

  • one to many: 하나의 input, 다수의 output     ex) 하나의 이미지가 들어가고 이미지를 설명하는 문장이 나오는것
  • many to one: 다수의 input, 하나의 output     ex) 여러 문장이 들어가고 하나의 감정 데이터가 나오는것
  • many to many: 다수의 input, 다수의 output, 문장이 끝난 시점에 output 문장 생성   ex) 번역
  • many to many: 다수의 input, 다수의 output, 하나하나의 input 데이터에 대한 output 데이터 출력

 

 

Code

 

 

 

 

 

출처:

https://www.youtube.com/watch?v=37jxyHXzxU4&list=PLQ28Nx3M4JrhkqBVIXg-i5_CVVoS1UzAv&index=28 

https://www.youtube.com/watch?v=-SHPG_KMUkQ&list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm&index=41 

 

'Deep Learning > Pytorch' 카테고리의 다른 글

24_Pytorch_MobileNet - 연산량 number of operations  (0) 2021.10.12
22_Pytorch_RNN_Practice  (0) 2021.10.07
20_Pytorch_ResNet  (0) 2021.10.06
19_Pytorch_VGG16  (0) 2021.10.05
18_Pytorch_CNN_MNIST  (0) 2021.09.30

+ Recent posts