머신러닝과 딥러닝 개념적 차이?
(pc에 최적화되어있으니 pc버전으로 봐주시면 더 좋을 것 같습니다)
머신러닝과 딥러닝을 개념적으로 구분하기 위해 한 예를 들어서 단순하게 설명하려고 합니다.
기존에는 어떤 이미지를 인식하려면 처음부터 알고리즘을 설계했었을 것입니다.
개 사진을 보고 개라는 결과를 얻기 위해서는 사람들이 보통 개에 대해 알고 있는 특징인
귀가 2개 있고, 다리가 4개 있고 코가 있다 등등의 기준이 있어야 할 것입니다.
아주 어려웠겠지만, 처음에는 이런 기준을 바탕으로 알고리즘을 짜서 이미지 인식을 했을 것입니다.
------------> [ 사람이 설계한 알고리즘 ] ------------> 결과(개)
↓
하지만 머신러닝이 도입되면서
이미지에서 특징 feature (입력 데이터의 중요한 정보)을 추출하고
그 특징의 패턴을 '기계'가 머신러닝 기술로 학습하면서
모아진 데이터로부터 규칙을 찾아내는 역할을 맡게 됩니다.
단, 여전히 이미지를 벡터로 변환할 때 사용하는 특징은 '사람'이 설계합니다.
--------> [ 사람이 생각한 특징 ] --------> [ 기계학습 ] --------> 결과(개)
(SIFT, SURF, HOG) (SVM, KNN)
이 때, 이미지의 특징은 벡터 vector로 주로 표현합니다.
Computer Vision에서는 SIFT, SURF, HOG 등을 이용하여 이미지 데이터를 벡터로 변환합니다.
예를 들어, HOG는 입력 이미지의 윤곽선 정보를 이용하기 때문에 사람 등을 식별할 때 사용하기 적합하다.
벡터로 변환된 이미지 데이터를 주로 지도 학습 Supervised Learning의
대표 분류Classification 기법인 SVM, KNN으로 학습합니다.
(여기서 학습한다는 것의 의미는 '기계'가 입력된 이미지 데이터로부터 어떤 '규칙'을 찾아내는 것을 의미합니다.)
↓
딥러닝 Deep Learning, 신경망 개념이 도입되면서 특징을 '사람'이 만들지 않고
'기계'가 입력 데이터로부터 학습하는 방식이 생기게 됩니다.
즉, 개를 학습하든 사람을 학습하든 어떤 특징을 사용하지 않고 온전히 '기계'에 맡기게 됩니다.
-------------------> [ 신경망 ] --------------------> 결과(개)
(딥러닝)
신경망에서는 이미지 데이터를 날것 그대로 학습하고 feature 역시 이전과 달리 '기계'가 스스로 알아내게 합니다.
딥러닝을 end-to-end maching learning이라고 하는데, 이 의미는
처음부터 끝까지 입력 데이터에서 결과를 얻는 과정에 사람의 개입이 없다는 뜻을 내포합니다.
[출처] Deep Learning from Scratch, ゼロ から作る
'Computer Science > Deep Learning' 카테고리의 다른 글
[비전공자용] [Python] Xavier Initialization (Xavier 초기화) & He Initialization (He 초기화) (0) | 2020.07.10 |
---|---|
[비전공자용] [Python] 모멘텀, AdaGrad, Adam 최적화기법 (0) | 2020.07.09 |
[비전공자용] 확률적 경사 하강법 SGD 의 단점 (0) | 2020.07.08 |
[비전공자용] [Python] 오차역전파법 Backpropagation 신경망 구현 (0) | 2020.07.08 |
[비전공자용] [Python] 확률적 경사 하강법을 이용한 2층 신경망 미니배치 학습 구현 (0) | 2020.07.07 |