데이터과학 유망주의 매일 글쓰기 — 68일차
RNN
#RNN
오늘 한일:
어제 RNN이라는 “Recurrent Neural Network”라는 신경망에 대해 배웠다. CNN과 학습되는 원리는 같지만, “순서를 고려한다"는 차이점이 있다. 일반적으로 CNN에 대해 학습 시간이 좀 더 오래걸린다.
그렇다면 RNN이란 무엇일까?
RNN(Recurrent Neural Network)
시계열 데이터(Time-Series Data)의 경우 Markov Chain등의 방법이 많이 사용된다. Recurrent한 연결을 두어 시간 정보를 반영할 수 있게 만드는 신경망이라고 할 수 있다. 쉽게 말해서 CNN이 Open-Loop를 가지고 있다면, RNN은 무언가 피드백을 받는 Closed-Loop가 있다고 볼 수 있다.
가장 좋은 예는 베이지안 정리라고 할 수 있다. 이전의 계산된 확률을 고려하여, 새로운 확률을 계산하는 것처럼, 이전 단계의 결과를 이용하여 다음 단계의 계산에 활용하는 개념이다.
좌측에 “V”처럼 ‘h’로 표기된 은닉층에서 Closed-Loop로 재귀(recurrent)하는 행위를 보이는 값이 있는 것을 볼 수 있다. 이 구조는 우측에 나타난 구조와 같다고 볼 수 있는데, “t-1” 시점에서 hidden 층에 대해, V값이 U와 더해져 가중치 값인 “W”가 업데이트 된다. 여기서 사용된 “V”가 다음 “t” 시점의 hidden 층에서 다시 U와 더해지고, 가중치를 업데이트한다. 이 과정이 계속 반복되는 것이라 볼 수 있다. 결국 아래와 같은 수식으로 계산이 이루어진다.
위 수식을 보면 두개의 가중치와 하나의 편향값이 고려된다는 것을 알 수 있다. 두 가중치 중 하나는 이전(t-1) 시점 은닉층(h)의 가중치를 고려하는 것이며, 다른 하나는 현재(t) 시점 입력값(x)의 가중치가 된다. 이전 시점 은닉층의 가중치와 해당 시점 은닉층의 값을 곱한 것, 현재 시점 입력값의 가중치와 현재 시점의 입력값을 곱한 것, 그리고 마지막으로 편향값을 더한 값을 sigmoid로 변환하여 “현재 시점(t)의 은닉층"값을 출력하는 것이다.
RNN에서는 시간을 고려하기 때문에, 학습을 할 때 Backpropagation의 개념에 시간개념이 더해지게 된다. Backpropagation Through Time (BPTT)라고도 불린다.
그러나 이 BPTT계산에서 RNN의 문제가 드러난다. 만약 Recurrent가 100회 1000회 연속으로 계산이 이루어진다면, V값이 아무리 1에 가까운 0.9나 1.1이라도 매우 큰 수가 될 수 있다. 이렇게 되면 가중치의 업데이트가 하나의 값으로 좁혀지기 어려워지므로, V값을 조절해 줄 수 있는 장치가 필요하다.
앞으로 할일:
오늘은 RNN이라는 신경망에 대해 리뷰해 보았다. CNN에 비해 시간 정보를 다룰 수 있기 때문에, 시계열 데이터를 처리할 수 있다는 장점이 있지만, 학습을 하는데 있어 V값을 조정할 방법이 없다는 것이 매우 큰 약점이다.
그렇다면 이 약점을 보완할 수 있는 것은 어떤 것이 있을까? 바로 Gate라는 개념인데, 내일 다룰 LSTM이라는 주제에서 이어서 설명을 하도록 하겠다.
오늘은 2020년의 마지막이었다. 이제 10분이 지났으니 2021년이 되었다고 말할 수 있다. 올 한해는 정말 많은 사건이 내게 있었다. 좋은 직장에서 큰 맘을 먹고 나온 일, 새로운 직장에서 적응하지 못하고 나온 일, 마지막으로 새로운 기회를 얻어 지금 이렇게 데이터 사이언스를 배울 수 있게된 일, 내 눈에 녹내장이 있다는 것을 발견한 일 등등이 있었다. 사실 따지고 보면 위기가 많았던 지난 1년 이었지만, 그만큼 나도 많은 것을 배웠다. 특히, 이번 데이터 사이언스 과정을 지나는 지난 4개월 동안 정말 많이 성장했다. 나도 그렇고 나의 동료 수강생들도 그렇다. 파이썬이라는 언어를 처음 접해보는 수준에서, 어느 덧 딥러닝 논문을 읽어볼 수 있는 수준까지 도달했다. 그러한 성장 뒤에는 매일 매일 치열한 노력이 있었다. 중간에 내 건강에 대한 소식을 듣고, 상당히 심리적으로 어렵기도 했지만, 그것을 뒤로하고 지금 내 삶을 더 나아지게 하는데 집중했다.
앞으로 정규 과정은 5개월이 더 남았지만, 지금 한대로만 한다면 분명 잘 돌파해나갈 수 있다는 나 자신에 대한 믿음이 생긴다. 새해에도 나와 동료 수강생들이 이 과정을 잘 이수하여 한번 더 성장하기를, 무엇이든지 배울 수 있다는 용기를 배우기를, 마지막으로 좋은 결과로 이어져 각자에 맞는 자리를 찾아갈 수 있기를 진심으로 바란다.
어머니가 소띠인데, 올해는 소의 해인 만큼, 그에게 더 나은 한해가 되기를 바란다.
모두 새해 복 많이 받으세요!(Happy New Year!)
참조:
(1) https://miro.medium.com/max/4136/1*SKGAqkVVzT6co-sZ29ze-g.png