유승훈

lec08 - Basic Deep Learning 본문

강의정리/모두를 위한 딥러닝 시즌 2

lec08 - Basic Deep Learning

seunghuni96 2021. 2. 20. 15:11

이번 강의에서는 딥러닝, 머신러닝에 대한 설명이나 활용보다는 역사가 어떻게 흐르면서 발전했는지를 설명합니다. 

 

인류가 기계에 있어 궁극적으로 삼는 목표는, 사람을 대신해서 귀찮은 일을 해결해주는 기계를 만드는 것입니다.

 

사람을 대신해서 일을 시키려면, 먼저 인간이 어떻게 생각하는가?에 대한 이해가 필요했습니다.

연구결과 뇌의 구조는 상당히 복잡하지만, 뇌를 이루는 각 Unit인 뉴런은 상당히 단순하게 동작한다는 것을 알 수 있었습니다. 뉴런은 Input에 대해 각자의 Weight를 갖고 합쳐지고, Bias를 더해 그 다음 단계로 넘어가는 방식으로 동작하고 있었습니다.

 

또 이 값이 정해진 어떤 값 이상이면 활성화되고, 아니면 활성화되지 않는다는것도 알 수 있었습니다. 연구자들은 이런 형태의 구조는 수학적 구현가능성을 보고, 실제로 구현해냈습니다.

 

당시에는 상당히 혁신적인 제안이었기 때문에, 허무맹랑한 약속들도 있었지만 성공도 거두었습니다.

 

그때까지는 And/Or Logic을 해결하기가 어려웠습니다. 하지만 앞에서 제안했던 구조로 And/Or Logic을 풀 수 있었습니다. 이를 선형으로 구분할 수 있게 된 것입니다.

 

하지만 XOR(배타적 논리합)은 풀 수 없었습니다. 그림에서 어떻게 선을 긋더라도 낮은 정확도를 보이는 것을 알 수 있습니다. 이에 대해 Marvin Minsky 교수님은 1969년에 이런 문제는 모델을 여러개 합쳐서 풀 수 있다. 그런데 Weight와 Bias를 학습시킬 방법이 없다고 이야기했습니다. AI분야에서 선구적인 연구자였기 때문에, 많은 사람들이 정말 불가능한가보다.. 생각하고 있었습니다.

 

이후에 Back Propagation이 등장했습니다. 역전파라고도 하죠.

 

Input이 모델의 Weight와 Bias를 거쳐서 Output이 되는데, 이 Output이 틀리다면, Weight와 Bias를 조정해야 합니다. Output의 Error를 구해서, 다시 모델로 돌아가 Weight와 Bias를 조정한다면 어떨까?하는 발상에서 출발한 것입니다.

 

이를 통해 더 복잡한 형태의 신경망을 학습하고, 더 복잡한 문제를 풀 수 있게 되었습니다.

 

약간 다른 방식으로 푼 Convolutional Neural Networks(CNN)도 있습니다. 

 

고양이의 시신경에 대한 연구에서 출발하는데, 고양이에게 여러가지 형태의 그림을 보여주고 시신경을 관찰한 결과, 그림의 형태에 따라 활성화되는 뉴런들이 다르다는 것을 밝혀냈습니다. 뉴런이 부분마다 담당하는 것들이 다르고, 나중에 합쳐지는 것인가?하는 결과를 얻습니다.

 

이러한 결과를 데이터에 활용해서, 데이터를 여러 조각으로 나눠서 학습시키고, 나중에 합치는 발상이 등장합니다. 이는 특히 문자, 숫자 인식에 있어서 엄청난 정확도를 보여줍니다. 매년 있었던 이미지 인식 대회에서도 아주 좋은 결과를 보여주었습니다.

 

그런데, CNN도 Error를 구해서 모델로 보낼 때, Layer를 거칠수록 Error의 의미가 떨어진다는 단점이 있었습니다. 때문에 적은 층의, 비교적 간단한 모델로 문제로 풀때는 괜찮았지만, 여러 층이 필요한, 복잡한 문제를 풀 때는 좋은 성능을 보이지 못했습니다. 이와 함께 SVM, Random Forest와 같이 비교적 간단하고 성능도 좋은 알고리즘들이 등장하면서 선택받지 못하는듯 했습니다. 하지만 2006,7년에 Weight의 초기값을 잘 선택하면 복잡한 구조의 모델에서도 학습이 가능하다는 것이 연구를 통해 밝혀졌습니다. 이때 비교적 주목받지 못했던 Neural Network에서 이름을 Deep Nets, Deep Learning으로 이름을 바꾸면서 '딥' 개념이 등장하게 되었습니다.

 

이것이 계속 발전하면서 오늘에까지 이르렀고, 계속해서 복잡한 문제를 푸는 연구가 이루어지고 있습니다.

 

Comments