데이터 스터디/Stats\ML

02. 머신러닝 vs 딥러닝

케이와이엠 2022. 2. 4. 17:05

머신러닝을 배워보기 전에,

머신러닝과 꼭 같이 불려다니는 분야인 '딥러닝'과 비교해보는 시간을 가져보겠다. 

머신러닝과 딥러닝의 차이는 무엇일까? 

 

 

먼저 둘의 공통점을 살펴보자.

둘은 모두 AI(인공지능)의 하위분야로서 아래와 같은 집합그림으로 표현가능하다. 

AI는 인간다운 사고를 하는 컴퓨터를 통해 구현하는 기술인데, 우리는 AI를 또 다른 말로 computational rationality로 표현하기도 한다. rationality란 기대되는 효용성(expected utility)를 최대화하는 것이다. 효용성은 주식 투자 = 저위험 고수익 , 자율주행자동차 = 고안전, 고정확도 등이 될 것이다. 

* Computational rationality is the study of computational principles of intelligence in living and artificial beings.

the goal of computational rationality: identifying decisions with highest expected utility, while taking into consideration the costs of computation in complex real-world problems in which most relevant calculations can only be approximated.  (Gershman SJ, Horvitz EJ, Tenenbaum JB. Computational rationality: A converging paradigm for intelligence in brains, minds, and machines. Science. 2015 Jul 17;349(6245):273-8. doi: 10.1126/science.aac6076. Epub 2015 Jul 16. PMID: 26185246.) 

 

이때 머신러닝과 딥러닝은 구분할 수 있는 '다른'분야가 아니다. 

딥러닝은 머신러닝의 하위분야이다. 


먼저 A부분에 들어갈 ML에 대해 정리해보자.

 

머신러닝은 기계, 즉 컴퓨터가 데이터를 통해 학습하는 것을 의미한다. 이때 학습은 사용자가 넣은 데이터(텍스트, 이미지, 음성 등) 안에서 규칙을 알아내어 훈련(training)하는 과정을 말한다. 그 후 학습된 규칙 속에 우리가 최종적으로 궁금해하는 test set을 넣어 오류가 적도록 만들어준다. 

 

사실 머신러닝은 설명할 게 딱히 없다. 아묻따 우리가 알고있는 데이터사이언스 분야가 머신러닝이다.  

개인적으로 머신러닝은 오류를 최소화하는 예측/분류 모델을 생성하는 단계를 포함한 그 이외의 단계를 모두 아우르는 다소 포괄적인 단어라고 생각한다. visualization(시각화), model interpretation(모델 해석), anomaly detection(이상치 탐지) 등 머신러닝을 구성하는 분야들로 머신러닝은 완성된다. 학습에 단 1%라도 기여한다면 그게 바로 머신러닝일 것이다.  


다음으로 B부분에 들어갈 DL에 대해 정리해보자. 

 

딥러닝은 인간의 뇌에서 신경망(신경세포=뉴런들의 구성)이 작용하는 원리와 유사하게 작동하는 처리방식을 가진다. 따라서 그의 역사 속에는 neuroscience(뉴로사이언스) -> neuro network 등 뉴런이 들어간 이름들이 속속 등장한다.  

 

딥러닝의 핵심은 바로 '층(layer)' 이다. 

'딥(deep)'이라는게 바로 '층'을 가리키는거고 '층'은 '직선의 개수' 혹은 '단계'라고 이해하면 쉽다. 

간단히 예를 들어,

-class A : x1=(0,1), x2=(1,0)

-class B : x1=(0,0)x2=(1,1)

라는 두 종류의 타입이 있다고 했을 때, 둘을 구분하는 방법을 생각해보자. 둘을 구분하는 직선이 몇 번 필요할 것인가에 대한 답이 바로 '층'이 될 것이다. class를 구분해주는 x1^2+x2^2 또는 x1∗x2 와 같은 곱하기 나누기 등의 변환 과정을 통해 데이터의 규칙을 찾으면 된다. 만약 복잡한 데이터라면 더욱 더 많은 층(layer)을 만들어 보다 정확한 규칙을 만들어 나가야한다. 따라서 우리는 층 기반 표현 학습(layered representation learning) 또는 계층적 표현 학습(hierarchical) 이라고도 표현한다. 

 

 

딥러닝은 여러 층을 가진 인공신경망(Artificial Neural Network, ANN)을 사용하여 머신러닝 학습을 수행하는 것으로, 입력층(input layer)과 출력층(output layer) 사이에 여러 개의 은닉층(hidden layer)을 가지는 심층 신경망(Deep Neural Network, DNN)으로의 발전을 가져오는 등 심층학습을 이어오고 있다.  


 

A와 B를 더 세분화해서 비교해보면 위와 같다. (위에서 사용한 "통계적"머신러닝이라는 말은 통계적 모형을 사용해 머신러닝을 진행하는 것인데, 더 자세한 이야기는 바로 다음 포스팅에서 다루기로 하자.) 또한 어느정도의 데이터 양을 충족해야 딥러닝의 성능이 머신러닝보다 높아진다. 실제로도 분석을 하다보면 딥러닝 모델보다 부스팅이나 트리 등 머신러닝 모델이 더 성능이 우수한 경우도 많이 봤다. 따라서 딥러닝 모델이 항상 더 좋다고 할 수 없다.