- laplace
- pytorch
- Axis
- math
- sinchon icpc
- maths
- Dim
- argmax
- Computer science
- CP
- SUAPC
- #패스트캠퍼스 #패캠챌린지 #수강료0원챌린지 #패캠챌린지 #직장인인강 #직장인자기계발 #패캠인강후기 #패스트캠퍼스후기 #환급챌린지 #본인이선택한강의명
- probability theory
- 패스트캠퍼스 #포트폴리오 #직장인자기계발 #환급챌린지 #포트폴리오챌린지 #패스트캠퍼스후기 #초격차패키지 #오공완
- randn
- probability
- Discrete
- dims
- Counting
- cs-theory
Piico의 일상
Day 28: 9-1, 9-2 RNN, RNN backpropagation 그리고 구조적 한계 본문
오늘 공부한 내용은 Ch.7-8입니다:
- RNN 그리고 vectorized formula
- RNN backdrops 그리고 구조적 한계
Perceptron -> MLP -> CNN -> RNN. 한 달이지만 많은 내용을 공부했죠? 오늘은 마지막 chapter인 Recurrent neural network에 대해 공부해 봅시다. 아직 갈길은 멀지만 그래도 기초를 이렇게 공부하니 논문도 읽어보고 구현도 해보는 계기가 되는 것 같네요.
1. Recurrent neural network이란?
RNN이란 input을 sequentially feeding하는 모델입니다. 그래서 RNN의 응용은 광범위합니다. 예를 들어 언어에서 문장을 보면 글의 순서가 중요하지 않습니까? 문장들은 sequential data라 이런 RNN에 해당하는 데이터입니다. 영상도 그렇습니다. 영상은 사진들의 연속이니깐요. 그리고 주식도 sequential data니까 미래 주식의 가격을 예측하는 응용프로그램을 만들면 그것도 RNN model로 잘 활용을 할 수 있습니다.
여기서 recurrent라는 단어는 "다시 또는 반복적으로 일어나는"인 의미를 갖고 있습니다. 첫번째 input이 들어오고 MLP를 돌리고 거기서 얻은 h1(weights)을 두 번째 input이 들어올 때의 weights로 계산해 새로운 weights, h2, 를 얻고 세 번째 input이 들어오면 또다시 h2와 같이 계산해 새로운 h3 weights를 얻는 반복입니다. 이렇게 되면 5번째 input에 대한 weights는 가각 1,2,3,4의 x_i, W_i를 다 고려한 h_i 값이고, 이 h_i는 이전 정보를 담는 역할을 합니다.
2. RNN backpropagation 그리고 구조적 한계
"HELL_", 다음 빈칸에 들어갈 alphabet은 무엇일까요? alphabet 26개 중 하나일테니 이것도 사실은 우리가 배운 "다중분류 문제이다!"라고 할 수 있겠네요. Input x1, x2, x3, x4 = {H, E, L, L}이고 y2, y3, y4, y5는 그다음 letter인 {E, L, L, O}이다. 이렇게 sequential data에서 다음 데이터를 training 하면 google search창에 검색할 때 자동추천검색결과 같은 응용을 할 수 있다.
RNN backpropagation은 전에 배운 MLP하고 비슷합니다. Loss를 계산할 때 cross entropy로 activation과 weights를 거꾸로 돌아가면서 미분을 하면서 계산을 한다. 이 과정에서 우리는 h4 -> h3 -> h2 -> h1등 전 activation and weights를 모두 계산한다. 그래서 범용성은 좋지만 오래 전인 내용일수록 흐릿해지는 방식이다. 이는 ADAM과 구조적으로 비슷하다는 느낌이 든다.
이런 특성 때문인지 RNN은 고질적인 문제가 몇개 있다:
1. 멀수록 잊혀진다 (x5에 대한 loss를 계산할 때 x1에 대한 loss는 거의 0으로 근접한다
2. 점점 흐려진다 (tanh를 사용할 땐 vanishing gradients에도 약할 수 있다)
다음 시간에는 이런 문제점 완화와 실습을 하겠습니다. 수고하셨습니다!


'딥러닝 (Deep Learning)' 카테고리의 다른 글
Day 30: 9-4, 9-5, 9-6 Seq2seq의 개념 및 문제점 (0) | 2023.03.21 |
---|---|
Day 29: Ch. 9-4 RNN유형과 seq2seq (0) | 2023.03.20 |
Day 27: 8-8 Beautiful Insights for CNN (CNN 마무리) (0) | 2023.03.19 |
Day 26: 8-6, 8-7 VGGnet 모델 읽기 and 실습 (0) | 2023.03.17 |
Day 25: 8-4, 8-5 Padding, stride, pooling and CNN feature map (0) | 2023.03.16 |