이전 회에서 쉬미트후버와 호흐라이터는 한동안 신경망 연구자들을 괴롭혀온 문제, 즉 다층 신경망을 구현했음에도 학습이 진행되지 않는 기울기 소실을 식별하고 해결하며 신경망 발전에 엄청난 기여를 했다고 전했다. 기울기 소실이나 과적합 같은 문제의 해결은 본격적인 딥러닝 발전에 중요한 문제였지만, AI 발전 역사를 다루는 이 글에서 다루기에는 깊은 기술적 내용을 포함하고 있다. 하지만, 딥러닝의 발전 과정을 이해하기 위해 최대한 가볍게 다뤄 보기로 한다.
민스키는 로젠블래트의 단층 신경망인 퍼셉트론이 배타적 논리합(XOR) 문제를 해결할 수 없고, 다층 신경망을 구현하더라도 현실적으로 은닉층의 가중치 조정 문제를 해결할 수 없다고 주장했다. 이 때문에 잠시 멈춰졌던 신경망 연구는 역전파 모델이 개발되며, 다층 신경망을 구현할 수 있게 돼 다시 활기를 찾았다.
이렇게 신경망의 층을 늘려주면 학습 능력이 향상될 것이라고 기대한 연구자들은 또 다른 문제에 부딪히게 됐다. 층을 늘려도 학습이 더 잘 이루어지지 않는다는 상황이 발생했기 때문이다. 이런 상황의 핵심 원인은 기울기 소실과 과적합 때문이었다.
앞선 오류 역전파에 관한 설명에서 신경망은 출력층의 오류를 바탕으로 이전의 은닉층에 대해 미분 계산으로 가중치를 다시 계산하여 업데이트하는 방식을 반복한다고 설명했다. 이렇게 학습 과정에서 역전파는 데이터를 미분해 기울기가 낮은 쪽으로 계속 이동시켜 근사값을 구하는데, 이를 ‘경사하강법(Gradient Descent)’이라고 한다.
또 처음 인공신경망을 설명할 때 개별 뉴런 모델은 다수의 입력에 가중치를 곱해 더한 값이 임계값보다 크면 1, 작으면 0을 결과값으로 출력한다고 설명했다. 이렇게 출력값을 연산하는 함수를 ‘활성 함수(Activation Function)’라고 하고, 1 또는 0의 값을 만들기 위해서는 계단 함수나 S자형 곡선을 가진 시그모이드(Sigmoid) 함수를 활성 함수로 사용했다.
그런데, 역전파하기 위해서 0과 1 사이의 출력을 갖는 시그모이드 함수 값을 미분하면 0~0.25 사이의 값만 표현되고, 다시 수차례 미분하게 되면 기울기에 해당하는 값은 0에 가까워져 버리는 현상이 발생하게 된다. 이것은 출력층에서 입력층으로 갈수록 역전파의 효과가 사라져 학습이 더 이상 진행되지 않는다는 것을 의미한다.
이런 현상을 ‘기울기 소실(Vanishing Gradient)’이라고 하고, 호흐라이터가 1991년 학위 논문에서 '식별'했다. 쉬미트후버와 호흐라이터가 이 문제를 식별'’했다는 것은 단순히 이 현상을 처음으로 관찰했다는 것을 넘어, 그것이 신경망의 깊이가 깊어질수록 학습 성능을 저해하는 근본적인 문제임을 수학적으로 분석하고, 그 원인을 규명했다는 의미였다.
이들의 기울기 소실 문제 식별 이후 다양한 해결책들이 많은 연구자들에 의해 강구되기 시작했다. 쉬미트후버와 호흐라이트가 1995년에 개발하고 1997년에 발표한 LSTM도 순차적 데이터인 시계열 데이터를 학습하는 순환 신경망에서 기울기 소실 문제를 해결하는 방법dml 하나였다.
2010년대 이후에 기울기 소실 문제를 해결하는 방안으로 널리 사용되고 있는 것은 활성 함수로 시그모이드 함수 대신 ‘ReLU(Rectified Linear Unit)’ 함수를 사용하는 것이었다. ReLU 함수는 0보다 작은 값이 나오면 0을 반환하고, 0보다 큰 값이 나오면 그 값을 그대로 반환하는 함수이므로, 시그모이드 함수에서와 같은 미분 시 기울기 소실 문제는 발생하지 않는다.
또 ReLU 함수는 계산식이 간단해 학습이 빠르고 컴퓨팅 자원 소모가 적다는 장점도 있다. 그래서 ReLU 함수를 역전파가 필요한 은닉층에 적용하고, 출력층에만 시그모이드 함수를 사용하는 것이 기울기 소실 문제를 해결하는 방안으로 널리 사용되고 있다.
ReLU와 비슷한 함수에 대한 고려는 1960년대에도 있었으며, 2000년에는 제프리 힌튼과 나이르(Vinod Nair)가 볼츠만 머신에 ReLU함수를 적용해서 제안하기도 했다. 그러나 신경망의 활성 함수로서의 광범위한 적용과 중요성은 2010년대 이후 이뤄졌다.
2011년 몬트리올대학교의 요수아 벤지오와 그의 박사과정 제자 글로롯(Xavier Glorot) 등은 논문을 통해 기존에 널리 사용되던 활성 함수와 비교해 ReLU함수가 심층 신경망 학습을 향상할 수 있다는 것을 발표했다. 또 2012년 ILSVRC 이미지 인식대회에서 우승한 힌튼과 제자들의 알렉스넷(AlexNet)이 ReLU를 실제 적용, 그 효과가 입증되며 크게 부각됐다. 이후 Leaky ReLU, PReLU, ELU와 같은 ReLU를 개선한 형태의 다양한 함수가 제안되고 사용되고 있다.
기울기 소실을 해결하는 다른 방안으로 잔차 연결(Residual Connections)도 제시됐다. 이는 하나의 은닉층이 다음 은닉층과도 연결되지만, 몇개의 은닉층을 건너뛰어도 연결되는 방식이다. 이를 적용한 마이크로소프트 북경연구소팀의 레스넷(ResNet)이 2015년 ILSVRC 이미지 인식대회에서 우승하며 효과적으로 기울기 소실 문제를 해결하는 방법으로 알려졌다.
이 외에도 벤지오와 글로롯이 2010년에 제시한 초기 가중치를 적절히 조정해 기울기 소실을 완화하는 가중치 초기화 방법, 각 층에 들어가는 입력을 평균과 분산으로 정규화하여 학습을 효율적으로 만드는 배치 정규화 방법, 기울기 값을 자르는 그래디언트 클리핑(Gradient Clipping) 방법 등 다양한 방식으로 기울기 소실 문제를 극복해 나가고 있다. 컴퓨터 연산 처리 능력의 획기적인 향상도 기울기 소실 문제의 완화에 어느 정도 도움이 되고 있다.
층을 늘려도 학습이 더 이뤄지지 않는다는, 즉 다층 신경망에서의 한계를 보여주는 또 다른 현상은 신경망이 깊어질수록 지나치게 완벽히 학습하며 너무 정교하게 입력 패턴을 감지하게 되는 것이다. 이 경우, 훈련한 데이터에 대한 정확도는 매우 높지만, 새로운 데이터에 대해서는 정확성이 떨어지는 ‘과적합(Over fitting)’ 문제가 발생하게 된다.
이것은 학생이 공부를 열심히 해 그동안 풀어왔던 문제는 완벽하게 풀지만, 문제가 조금 변형되거나 새로운 문제를 만나면 제대로 대응하지 못하는 경우와 같다. 과적합 문제는 꽤 오랫동안 연구자들을 괴롭혔지만, 해결책들은 의외로 간단했다.
먼저 학습을 하는 과정에서 모델의 성능을 모니터링하다 성능이 더 이상 향상되지 않거나 나빠지기 시작하면 훈련을 중단한 상태에서 모델을 확정하는 것이다. 이 방법은 신경망 연구 초기부터 사용되던 개념이었는데, 1990년대 중반에 중요성이 강조되며 방법론으로 자리 잡았다.
그다음으로는 비용과 시간이 허락한다면 훈련 데이터의 양을 늘리는 방법이다, 데이터의 양이 적을수록 특정 패턴이나 노이즈까지 학습하게 돼 과적합 현상이 발생할 확률이 높다. 따라서 학습 데이터양을 늘려, 과적합 현상 발생 확률을 줄여주는 것이다.
신경망의 학습 성능에 영향을 주지 않는 범위에서 학습에 사용하는 특성(Features)의 수를 줄이거나, 신경망 모델의 복잡도를 줄이는 정규화도 과적합 문제 해결의 방법이며, 복잡한 모델을 좀 더 간단하게 만드는 방법으로 가중치 규제(Regularization)를 하는 방법도 있다. 머신러닝의 앙상블 기법도 해결책의 하나인데, 이런 대부분 알고리즘은 1990년대 중반에 개발되거나 그때부터 널리 채용됐다.
과적합 해결 방안으로 가장 간단해 보이는 방법은 임의로 선택된 은닉층의 일부 출력을 학습 연산 과정에서 무작위로 누락해 버리는 방법이다. 이를 ‘드롭 아웃(Drop Out)’이라고 하는데, 2010년대 초에 힌튼 교수팀이 개발했다. 힌튼은 2014년 발표한 논문에서 드롭 아웃을 고안하게 된 계기로 버클리대학교 리브낫(Adi Livnat) 등의 논문 ‘진화에서 성의 역할을 위한 혼합성 이론’을 들고 있다.
이는 생물의 경우 부모의 유전자를 반반씩 받은 자손이 대를 거듭할수록 조상의 유전자가 희석돼 우수한 특성을 잃어버리는 불합리성이 있지만, 오히려 무작위적인 방식으로 다양한 유전자가 혼합되며 생물의 유연성과 강건성이 더 강화됐다는 것이다. 힌튼 교수팀은 그들의 논문에서 드롭 아웃을 통해서 무작위로 선택된 뉴런이 다른 무작위로 선택된 뉴런과 결합하고 학습하며 더 견고한 학습 모델을 만들 수 있다고 제안했다. 이렇게 탄생한 드롭 아웃은 아주 간단한 방법으로 오랜 난제를 해결해 줬다.
문병성 싸이텍 이사 moonux@gmail.com
- [AI의 역사] 61 AI 노벨상을 비난한 위대한 이방인의 불만 – 쉬미트후버와 순환 신경망의 개발
- [AI의 역사] 60 AI의 겨울인가 아닌가? – 세기말 전후의 AI 연구
- [AI의 역사] 59 보상과 처벌을 통해 학습하는 강화학습의 발전 과정 - 머신러닝의 분류 (하)
- [AI의 역사] 63 결국 이겼다. 그러나 빨리 날 수 있는 파리일 뿐이다 – IBM의 딥 블루
- [AI의 역사] 64 코끼리는 체스를 두지 않는다 – 다양한 인공지능 게임 프로그램들
- [AI의 역사] 65 직관을 갖고 뻥카도 구사하는 AI – 게임에서 강화학습과 딥러닝
