본문 바로가기

【1】Deep Learning 시작하기/다시 마주친 장벽, Vanishing Gradient Problem

I am Hinton! 기울기 소실 사건을 해결하다! - 제한 볼츠만 머신(RBM)

훗날 토론토 대학교의 제프리힌튼(Geoffrey Hinton) 교수는 딥러닝이 한계를 가지게 된 이유 4가지를 정리했다. 우리는 힌튼 교수의 제안을 바탕으로 기울기 소실 문제를 해결할 아이디어를 접근해볼 것이다.

 

Geoffrey Hinton’s summary of findings up to today

     (1) Our labeled datasets were thousands of times too small.

     (2) Our computers were millions of times too slow.

     (3) We initialized the weights in a stupid way.

     (4) We used the wrong type of non-linearity.

 

힌튼의 네가지 제안 중에 (1)번과 (2)번은 데이터셋과 하드웨어사양의 문제이기 때문에 다루지 않을 것이다. 따라서 (3)번과 (4)번 이유를 살펴보며 신경망의 위기를 극복할 방안들에 대해 이야기해보도록 하겠다.

 

해결책 1 : 시작이 반 - 제한 볼츠만 머신(RBM)

“ We initialized the weights in a stupid way “

 

 먼저 힌튼이 3번째 이유로 제시한 가중치의 초기화에 대해서 말해보자. 기존에는 가중치와 바이어스의 초기값을 임의로 주고 오차역전파를 이용해 최적의 값을 찾아냈었다. 만약에 모든 층의 가중치 값을 0으로 준다면 어떻게 될까? 입력 X에 가중치 W을 곱하는 과정에서 모두 0이 되므로 결과에 아무런 영향도 주지 못할 것이다. 이러한 가정으로부터 파라미터의 초기 값을 어떻게 주는지는 성능에 영향을 준다. 그렇다면 파라미터의 초기값을 랜덤하게 주는 것이 아닌 똑똑하게 주는 방법들에 대해 이야기해보도록 하자. 가장 먼저 소개할 방법은 RBM이라고 불리는 방식이다. RBM은 힌튼 교수가 vanishing gradient를 해결하기 위해 제안했으며 앞으로 계산한 값과 거꾸로 계산한 값의 차이를 줄이는 목적으로 가중치를 업데이트 하는 방식이다. 

 

 

각층의 가중치들은 서로 독립적이라는 가정하에 가중치가 연결된 바로 앞 뒤 층만 고려해서 가중치의 초기값을 찾는다. 

 

 

이해를 돕기 위해 값을 넣고 한번 계산해보자.

 

 

먼저 X1=2, X2=1이라고 하면 네 개의 가중치를 임의로 정한다. 우리는 위에서부터 1,1,2,-1이라고 하겠다. X와 각 가중치의 곱을 더한 가중합의 값을 각각 4(=2x1+1x2) 와 1(=2x1+1x(-1))이 된다. 이제 결과 값인 4,1과 가중치 값만 있다고 생각하고 방향만 반대로 계산해서 X1'X2'를 계산해보면 5(= 4x1+1x1)과 7(=4x2+1x(-1))이 된다. 이렇게 생긴 XX'의 차이를 줄이는 방향으로 가중치를 조금씩 수정하다 보면 X=X'를 만드는 가중치 값을 얻을 수 있다. 임의로 가정한 [1, 1, 2, -1]에서 수정이 된 값 [1, 0.5, -1, 1]을 이 단계의 가중치 초기값으로 사용한다. 마찬가지로 이 과정을 출력층까지 진행하면서 가중치의 초기값을 찾는 방식을 RBM방식이라고 한다.

 

 

 

 


작성자 홍다혜 ghdek11@gmail.com / 이원재 wonway333@gmail.com