[시즌1].Lecture 08_1 - 딥러닝의 기본 개념과, 문제, 그리고 해결_딥러닝의 기본 개념: 시작과 XOR 문제

* 이 글은 홍콩과기대 김성훈 교수님의 무료 동영상 강좌 "모두를 위한 머신러닝과 딥러닝 강의"를 보고 요점을 정리한 글 입니다.

 

Deep Learning(딥 러닝)의 시작

인류의 궁극적 목표 중 하나는 우리를 대신해서 골치 아픈 일을 생각해 주는 기계를 만드는 것 일것입니다. 이러한 목표를 이루기 위해서 사람들은 인간의 뇌에 대하여 연구를 하게 되었고 연구해본 결과 인간의 뇌가 굉장히 복잡하게 연결되어 있다는 사실에 놀랐고 이것과 반대로 뇌에서의 가장 작은 단위인 뉴런이 굉장히 단순하게 동작된다는 것에 놀라게 되었습니다.

 

뉴런은 어떠한 입력 신호를 받아서 다른 뉴런으로 보내주거나 어떠한 반응을 일으킵니다. 뉴런은 달려있는 여러개의 돌기로부터 신호를 받아들이는데 이 돌기들의 길이에 따라 입력받는 신호의 양이 각자 달라집니다. 이러한 입력받은 모든 신호들을 합친 값을 어떠한 반응을 일으키거나 다른 뉴런으로 보내주기 전에 어떠한 값을 추가적으로 더해줍니다. 이렇게 생성된 값이 어떤 기준의 값보다 크다면 반응을 일으키고 작으면 반응을 일으키지 않습니다.

 

사람들은 이러한 뉴런에서 일어나는 현상들을 알아낸 사람들은 뉴런에서 일어나는 현상과 비슷하게 작동하는 모델을 만들어내게 됩고 이러한 모델에서 사용하는 함수를 Activation Function(활성화 함수)라고 부릅니다. 뉴런에서와 같이 입력받은 신호를 각각의 Weight(가중치)를 곱한 뒤 합쳐준 뒤 Bias라는 특정한 값과 합쳐줍니다. 여기서 나온 값들을 모두 합친 값이이 어떤 기준보다 크다면 1을 작다면 0을 보내주는 것이 바로 Acrivation Function의 역할이라고 할 수 있습니다. 이런 모델을 잘 살펴본다면 Logistic Regression(논리 회귀)들을 여러개 합쳐놓은 것과 유사하다는 것을 알 수 있을 것 입니다.

 

Back Propagation(역 전파)

과거에는 AND 혹은 OR와 같은 문제들을 해결할 수 있다면 이것들을 조합해서 생각하는 기계를 만들어 낼수 있다고 생각했기 때문에 이런 문제들을 기계가 예측할 수 있도록 만드는 것이 중요한 문제였습니다. 하지만 XOR 문제의 경우와 같은 많은 복잡한 문제들은 Linear한 모델을 어떻게 사용해도 해결할 수 없었고 결국 1969년에 MIT의 Marvin Minsky 교수는 이런 문제를 해결하기 위해서는 Multi Layer Perceptrons(MLP)를 사용해야 하는데 각각의 Layer에 필요한 Weight와 Bias를 학습시킬 수 있는 방법이 없다고 이야기했습니다.

 

하지만 그 후에 BackPropagation(역전파)를 사용하면 이런 문제를 해결할수 있다는 사실을 알게되었는데 여기서 Back Propagation은 Neural Network의 결과가 잘못된 경우 역으로 전파해가면서 그 Error에 대한 Weight와 Bias를 수정하는 알고리즘을 의미합니다. 이런 BackPropagation을 사용하게 되면서 XOR같은 문제 뿐만이 아니라 다른 복잡한 문제들도 해결되었습니다. BackPropagation은 1974년에 Paul Werbos에 의해 처음으로 발표되었지만 이 때는 잘 알려지지 않았고, 1986년 Hinton에 의해 발표된 같은 이론이 주목을 받기 시작하면서 널리 알려지게 되었습니다.

 

Back Propagation(역 전파)의 문제점

우리가 해결하고자하는 많은 복잡한 문제들은 많은 개수의 Layer를 가지고 있는 Neural Network를 사용해서 해결해야만 합니다. Back Propagation은 적은 개수의 Layer를 갖는 Neural Network에서는 문제없이 돌아가지만 많은 개수의 Layer를 가지고 있는 Neural Network에서는 문제가 생기게 됩니다. Back Propagation은 결과에서 나온 Error를 전 단계의 Layer로 보내주면서 Weight와 Bias를 조금씩 수정을 하는 구조인데, Layer수가 많아지게 되면 뒤로 전파되는 Error의 의미가 점점 작아지게 되서 제대로 학습을 시키기가 어려워지게 됩니다.

 

이러한 이유 때문에 어떠한 부분에서는 Back Propagation보다 훨씬 쉬운 SVM(Support Vector Machine)이나 Random Forest와 같은 알고리즘들이 더 정확하게 나오기도 합니다.

 

Convolutional Neural Network(CNN, 합성곱 신경망)

Lecun 교수는 다른 이미지를 볼 때 사용되는 신경세포가 다르다는 사실으로 부터 새로운 학습 방법을 생각해 내었습니다. 이런 현상을 기반으로 만든 새로운 학습법이 바로 Convolutional Neural Network(CNN, 합성곱 신경망)입니다. Convolutional Neural Network는 어떠한 이미지를 작은 부분들로 나누어 각각에 대한 값을 학습시키는 방법을 의미합니다. 이런 방법을 통해서 글자를 인식하는 부분에 있어서는 90% 이상의 정확도를 보일만큼 굉장히 유용한 학습법입니다. 이런 글자 인식 이외에도 자율주행 연구에도 이런 Convolutional Neural Network가 사용되고 있습니다.