머신러닝(Machine Learning)
'딥러닝이 무엇인가요?'라고 물어보는 것은 사실 '머신러닝이 무엇인가요?'라는 질문과 거의 유사합니다. 딥러닝은 머신러닝의 하위개념이기 때문이죠. 그러므로, 먼저 머신러닝에 대해 알아보겠습니다.
머신러닝은 Machine과 Learning이라는 단어가 합쳐진 합성어입니다. 여기서 Machine은 기계가 아니라, 함수(function)라는 뜻이며 Learning은 계수(coefficients)를 계산한다라는 의미를 가집니다. 즉, 기계를 학습하는 것이 아니라, 계수를 계산해주는 함수를 만드는 것이 머신러닝이라고 볼 수 있습니다.
이를 이해하기 위해, 기존의 프로그래밍 방식과 머신러닝의 차이점을 살펴봅시다.
기존의 프로그래밍의 경우, 데이터와 데이터를 처리하기 위한 프로그램(함수)을 만들어서 결과를 얻습니다. 반면에 머신러닝은 데이터와 결과값을 넣어주고, 계산을 통해 데이터 처리용 함수를 얻어냅니다. 데이터 분석 같이 데이터로부터 정보를 뽑아내는 작업과 다르게, 데이터에서 정보를 최대한 잘 뽑아내는 함수를 만드는 것이 머신러닝의 최종 목표가 되는 것이죠.
머신러닝 분야에서 자주 쓰이는 '데이터를 이해한다'라는 말 역시 같은 맥락에서 나온 단어입니다. 입력 데이터의 분포를 고려해서 원하는 결과와 유사한, 또는 있을 법한 결과를 잘 뽑아내는 모델을 만들었을 때 비로소 데이터를 잘 이해한다라고 말할 수 있습니다.
그렇다면 어떤 머신러닝 기법이 좋은 걸까요?? 일반적으로, 일반화(Generalization) 성능이 우수한 기법을 좋은 방법이라고 말합니다. 이는, 하나를 가르쳐도 열을 아는 모델을 만드는 걸 의미하는데요. 적은 데이터만으로도 아직 보지 않은 데이터를 잘 처리하는 것이 머신러닝의 최종 목표입니다.
딥러닝(Deep Learning)
딥러닝의 Deep은 모델의 깊이를 의미합니다. 보통 모델의 깊이가 깊을수록 더 복잡한 데이터를 잘 표현할 수 있습니다. 위의 그림처럼, 딥러닝은 여러 Layer를 쌓아서 모델을 구축하는 특징이 있습니다. 이는 인간의 신경망 구조를 본뜬 것으로, 다양한 딥러닝 모델들은 인간의 생체 기작에서 아이디어를 참고해 만들어졌습니다. 구조 자체가 머신러닝과 달라보이지만, 사실 딥러닝은 머신러닝 방법 중 하나에 속합니다. 다만, 다루는 네트워크가 DNN(Deep Neural Network)라는 것이 특징인 것이죠. DNN 모델을 전통적으로 일반화 성능이 안 좋기 때문에, 이를 높이기 위한 여러 연구들이 진행되고 있습니다.
머신러닝의 독특한 특징 중 하나는, 모든 task에서 성능이 좋은 모델을 만들 수 없다는 것입니다. 그러므로, task가 주어지면 데이터를 어떻게 표현할지, 어떤 모델을 사용할지, 어떻게 데이터에 최적화할지를 고민하게 되는데요. 이 때, 데이터를 가공하는 과정은 순전히 인간의 몫입니다. 데이터를 컴퓨터가 처리하기 좋게 변환해주는, 다시 말해 데이터를 압축해서 새로운 정보를 얻어내는 과정을 인코딩(encoding)이라고 합니다.
딥러닝과 머신러닝의 주요한 차이점은 인코딩 과정의 자동화 여부입니다. 딥러닝은 데이터를 어떻게 인코딩 할지 고민하지 않아도 되며, 학습 과정 중에 최적의 인코딩 방식을 찾습니다.
3줄 요약
1. 머신러닝은 함수의 계수를 찾는 기법이다.
2. 딥러닝은 머신러닝 기법 중 하나로, DNN을 대상으로 한다.
3. 머신러닝의 최종 목표는 일반화 성능이 좋은 모델(함수)을 만드는 것이다.
이번 아티클을 통해 머신러닝, 딥러닝의 개념에 대해 정확히 알아가셨으면 좋겠네요! 다음에도 흥미롭고, 재밌는 아티클로 찾아오겠습니다:)
'아티클' 카테고리의 다른 글
Dropout의 실체: Dropout Reduces Underfitting (0) | 2023.03.08 |
---|---|
The Forward-Forward Algorithm: 역전파의 시대는 갔다? (0) | 2023.03.02 |