brunch

You can make anything
by writing

C.S.Lewis

by 코딩하는 수학쌤 Sep 27. 2021

36. 인공 신경망-2. 다중 퍼셉트론의 학습과 딥러닝

[4악장 - Cadenza] 머신러닝의 알고리즘과 수학

3) 다중 퍼셉트론의 등장과 학습의 한계

 민스키는 퍼셉트론의 한계를 밝혔지만 그와 동시에 이를 해결할 수 있는 가능성도 함께  제시했습니다. 퍼셉트론의 구조를 여러층으로 반복한 ‘다중 퍼셉트론’이라는 인공신경망이 XOR과 같이 직선 하나로 해결하지 못하는 문제들을 해결할 수 있을 것이라고 언급을 했습니다. 즉 기존에는 입력값과 출력값은 동일한데 가중치를 곱하고 편형을 빼주는 단계를 여러 번 거치면 XOR 논리 회로도 충분히 해결할 수 있다는 가능성을 열어둔 것입니다. 이를 다중 퍼셉트론이라고 합니다.

 퍼셉트론에서 해결하지 못했던 XOR 문제의 경우 위의 예시와 같은 다중 퍼셉트론으로 해결이 가능했습니다. 이 예시에는 Nand라는 논리가 새로 등장하는데 AND에 부정을 취해준 형태입니다. 그러면 다음과 같은 단계를 거쳐 XOR이 구현됩니다. 이처럼 입력층과 출력층 사이에 또 다른 은닉층을 둠으로써 단일 퍼셉트론으로 해결하지 못했던 복잡한 논리 게이트의 구현이 가능합니다. 

 실제로 입력값을 각 논리 게이트 결과를 조합하며 얻어낸 결과를 살펴보면 XOR이 완벽하게 구현이 됩니다. 따라서 회로의 자체를 만드는 것은 가능하지만, 문제는 퍼셉트론 자체가 사람의 개입 없이 자체적인 학습 방법으로 다중 퍼셉트론을 구현해가야 한다는 점이었습니다. 초기값을 임의로 설계해두고 알아서 야금야금 학습을 통해 위의 구조와 같은 결과를 거두도록 되어야 하는데, 이 방법에 대해서는 민스키도 구체적인 방법을 제시하지 못했습니다.



 앞서 살펴봤던 단일 퍼셉트론의 경우는 마치 자전거를 탈 때 핸들이 바퀴랑 바로 연결되어 있는 것과 비슷합니다. 가중치를 조금씩 바꾸면 결과가 바로 어떻게 되는지 바로 파악이 되니까 학습 방법을 제시하기가 쉬웠습니다. 따라서 학습 알고리즘을 설계하는 것이 그렇게 어렵지 않았습니다.


 반면 다중 퍼셉트론의 경우 은닉층이 존재합니다. 은닉층마다 가중치를 업데이트를 해줘야 하는데, 앞부분부터 어떻게 조절을 해야 하는지를 설명하기란 불가능합니다. 예를 들어 자전거의 핸들과 바퀴 사이에 수많은 기어가 존재한다고 해볼게요. 핸들 조정을 해보니 바퀴가 이상하게 동작합니다. 그러면 어떤 기어를 어떻게 바꾸어야 제대로 작동할까요? 한 번에 완벽하게 기어비를 맞히는 것은 불가능에 가깝습니다. 즉 다중 퍼셉트론은 이론적으로 논리 회로의 구현은 가능하지만 스스로 알고리즘을 통해 모든 층의 학습 방법을 찾아내지 못했습니다. 


 모두가 한숨을 쉬고 있을 무렵, 누군가는 이런 문제에 대해 집념을 가지고 계속 도전을 이어나가기 마련입니다. 인공신경망의 세계도 그런 사람이 존재했습니다. 바로 제프리 힌튼 교수입니다.




4) 다중 퍼셉트론의 학습 방법 - 오차 역전파의 등장

 다중 퍼셉트론의 학습 방법을 찾으려는 노력은 계속 이어졌습니다. 다중 퍼셉트론은 각 층이 순서대로 연산을 이루는 특징이 있기 때문에 맨 뒤쪽부터 앞으로 반대로 진행하면서 가중치를 조절하면 되지 않을까 하는 시도가 있었습니다. 실제로 이를 이론적으로 구현할 수 있는 ‘후진 방식 자동 미분’이 1970년대에 발견되었고, 1974년에는 하버드 학생이었던 폴 웨어보스가 후진 방식 자동 미분에서 아이디어를 얻어 오류를 점차적으로 반대 방향으로 개선하는 방법을 박사학위 논문으로 작성하기도 했습니다.  


 이와 같은 연구가 이어지던 중 1986년 제프리 힌튼, 캘리포니아 대학의 데이비드 럼멜하트, 노스이스턴 대학의 로널드 윌리엄스가 다중 퍼셉트론 학습에 성공을 거두게 되었습니다. 결과가 다를 경우 맨 뒤쪽 층부터 차례차례 업데이트를 하면서 처음 입력층에 이르기까지 업데이트를 하는 방법이 성공을 거둔 것이죠. 이 방법은 다중 퍼셉트론의 데이터 처리 과정과 반대 방향으로 진행하며 오차를 수정하기 때문에 ‘오차 역전파’ 알고리즘이라고 불립니다. 민스키가 “지구 상의 그 누구도 다중 퍼셉트론을 학습시킬 방법을 찾아낸 바가 없다.”라고 말했던 다중 퍼셉트론의 학습 방법을 제프리 힌튼이 찾아낸 것입니다.





5) 딥러닝의 등장

 힌튼이 다중 퍼셉트론의 학습 방법을 찾는데는 성공을 했지만 방법이 완벽하지는 않았습니다. 복잡한 문제를 해결하기 위해서는 은닉층을 많이 추가해야 하는데, 그럴수록 학습이 잘 되지 않는 사례가 종종 등장했습니다. 다중 퍼셉트론의 오차 역전파 알고리즘 학습에는 미분이라는 수학 방법을 활용하는데, 각 층마다 미분을 계속 반복하다 보면 어느 순간 미분 값이 사라져서 학습이 잘 이루어지지 않는 사례가 종종 나타났습니다. 학습의 안정성이 문제가 되었던 것이죠.


 또한 학습은 잘 되었더라도 실제 데이터를 적용시키면 정확도가 떨어지는 상황이 일어났습니다. 즉 다중 퍼셉트론의 학습은 훈련 데이터에만 최적화되었을 뿐 실제 데이터에는 큰 효과가 없었던 사례가 발생했습니다. 이를 ‘과적합(overfitting)’이라고 부릅니다. 과하게 훈련에만 맞도록 최적화된 알고리즘이 만들어진 것이죠.

제프리 힌튼 교수는 다층 퍼셉트론의 오류를 극복하기 위한 연구를 계속했습니다.


 먼저 미분 값이 사라지는 문제는 가중치의 초기값을 잘 설정하면 많은 층의 신경망도 학습이 잘 이루어진다는 사실을 발견하고 “A fast learning algorithm for deep belief nets” 라는 논문을 발표했습니다. 두 번째 과적합 문제는 데이터를 처리하는 과정을 통해 해결했습니다. 힌튼은 다중 퍼셉트론처럼 여러 층을 가지고 있는 RBM이라는 모델을 연구하고 있었습니다. RBM 모델은 데이터의 특징 추출에 장점을 가지고 있는데, 이 특징을 활용해 입력 데이터를 비지도학습을 적용시킬 수 있었습니다. 비지도학습을 통해 과적합을 방지하는 초기 가중치를 찾았고, 역전파 알고리즘을 통해 미세하게 조정하는 방법을 통해 과적합 문제를 해결했습니다. 이러한 RBM 모델을 쌓아올린 모델을 심층 신뢰망(DBN, Deep Belief Network)이라고 불렀습니다. 


 힌튼은 이러한 연구를 바탕으로 논문을 발표했는데 인공신경망이라는 단어를 쓰면 사람들의 관심을 끌지 못했기 때문에 신경(Neural)이라는 단어 대신 신뢰(Belief)라는 용어를 사용했습니다. 이때부터 인공신경망, 퍼셉트론이라는 말 대신 딥러닝이라는 용어가 사용되기 시작했습니다. 이후 알고리즘을 꾸준히 개선한 결과 RBM의 도움 없이도 딥러닝의 구현이 가능하게 되었습니다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari