RNN 동작
RNN의 가중치
![](https://velog.velcdn.com/images%2Fpeterpictor%2Fpost%2F892c72b1-e26a-4f79-aaa4-5a2175342821%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-07-08%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%208.06.09.png)
![](https://velog.velcdn.com/images%2Fpeterpictor%2Fpost%2F98cf4770-2ee0-47a8-a2cf-096ff68a3cfe%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-07-08%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%208.08.00.png)
![](https://velog.velcdn.com/images%2Fpeterpictor%2Fpost%2F91e08cd7-7494-44fb-9967-f54809f81381%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-07-08%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%208.08.14.png)
- 입력층에서 은닉층으로 가는 과정에서 필요한 u
- 은닉층에서 은닉층으로 보내는 과정에서 필요한 w
- 두 행렬의 같은 행이 연산에 필요함
은닉층의 계산
![](https://velog.velcdn.com/images%2Fpeterpictor%2Fpost%2F3e6e737d-4130-47dc-8816-e2c7d55c7107%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-07-08%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%208.13.13.png)
![](https://velog.velcdn.com/images%2Fpeterpictor%2Fpost%2Fe0b28182-c9ba-4b66-ae12-a080653255c2%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-07-08%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%208.13.45.png)
- 현재입력과 입력 가중치를 연산한 값에 직전 은닉층 결과에 은닉층 가중치를 연산하고 바이어스텀을 더한 결과 값에 활성함수의 결과가 다음 연산에 넘길 은닉층 연산 결과
출력층 계산
![](https://velog.velcdn.com/images%2Fpeterpictor%2Fpost%2Fcb77d451-5486-49f8-88e0-64a13a379201%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-07-08%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%208.18.19.png)
- 은닉층에 연산된 값에 출력층 가중치를 연산하고 c 바이어스를 터해 출력값을 만듦
- 예측 확률분포를 소프트맥스를 통해 출력결과를 계산한 값
RNN 동작의 예
![](https://velog.velcdn.com/images%2Fpeterpictor%2Fpost%2Fb58c86d2-f843-4fe2-8b51-68485db2dca7%2Fezgif.com-gif-maker%20(1).gif)
![](https://velog.velcdn.com/images%2Fpeterpictor%2Fpost%2F6dd1c5b5-ab01-4461-b896-e70935c7105f%2Fezgif.com-gif-maker%20(2).gif)
![](https://velog.velcdn.com/images%2Fpeterpictor%2Fpost%2F0af206a9-87cc-4d8b-83b1-3daac4578e72%2Fezgif.com-gif-maker%20(3).gif)
- Tanh 함수로 넘겨서 히든스테이트(메모리)를 통과
![](https://velog.velcdn.com/images%2Fpeterpictor%2Fpost%2F2999d3c4-85e0-4bd1-b64b-7241611a8706%2Fezgif.com-gif-maker%20(5).gif)
RNN의 기억(memory), 문맥 의존성
![](https://velog.velcdn.com/images%2Fpeterpictor%2Fpost%2F71082d8b-f1e5-4837-8cb2-5068160a2beb%2Fezgif.com-gif-maker%20(6).gif)
- 첫번째 입력이 변하면 은닉층에서 연산된 값이 다음 은닉층 연산에 영향을 주기 때문에 은닉층 연산값 모두가 바뀌고
- 따라서 예측값도 전부 바뀜
- RNN이 입력값을 기억한다고 할 수 있음
- 결과적으로 과거에 입력된 입력값이 현재, 앞으로 입력될 입력값과 상호작용을 함