머신러닝 vs 딥러닝?
빅데이터와 인공지능. 이 두가지 키워드를 공부하기 시작한지 벌써 1년이 다되어 갑니다.
그럼에도 불구하고 가끔 저 둘의 핵심적인 차이가 혼동되는 경우가 생겨
오늘을 빌어 깔끔이 정리를 해두고자 합니다.
시작부터 주제를 벗어나는 것일 수 있겠습니다만,
딥러닝, 머신러닝의 차이에 대해 생각해 보기전
컴퓨터 사이언스와 데이터 사이언스를 비교해보겠습니다.
다음과 같은 문제를 떠올려 봅시다.
- a,b 인풋을 사용하여 a+b 아웃풋을 얻고자 한다.
- 이를 위한 함수는 어떻게 정의하여야 하는가
기존의 컴퓨터를 이용한 문제 해결 방식인 컴퓨터 사이언스는 위의 문제를 해결할 함수를 사람이 직접 수식을 코드로써 구현하면 다음부터는 해당 계산을 컴퓨터가 처리할 뿐이었습니다.
사람이 함수를 구성해주어야만 컴퓨터는 아 1+1=2구나, 2+2=4구나 하는 것입니다.
그러나 데이터 사이언스의 경우에서는 조금 다릅니다.
이 경우에서는 사람이 직접 수식을 코드화하는 것이 아니라 컴퓨터에게 무엇을 보고 배워야하는지, 훈련셋을 던져줍니다.
그러면 컴퓨터는 자가적으로 0+0=0, 1+1=2 이었으니 2+2=4일거같다 - 라고 판단하게 되는 것입니다.
핵심은 컴퓨터에게 데이터를 주는 과정이 How to think, 어떻게 생각해야하는지를 알려주는 과정이라는 것이며, 이러한 목표를 머신러닝을 통해 달성합니다.
다만 이러한 학습을 위해서는 당연히 많은 양의 데이터가 요구되고, 이것이 빅데이터와 인공지능이 항상 붙어다니는 이유입니다.
다시 돌아와, 머신러닝을 통해 a,b 인풋을 사용해 a+b라는 아웃풋을 뱉어내는 것에 성공했다면, 정말 컴퓨터가 학습한 함수가 덧셈일까요? 한다면
정답은 알 수 없습니다.
분명 우리가 원하는 결과를 내지만, 그 안의 함수는 굉장히 추상적이기에(정확하게 표현해낼 수 없기에) 우리는 이러한 특징을 "블랙 박스"라고 칭합니다.
또 이러한 "블랙 박스"라는 특징을 뒤집어 생각한다면, 인간이 정확히 수식화하기 어려운 문제를 이 컴퓨터가 해결할 수도 있다는 말이되며, 이것이 최근 많은 분야에서 머신 러닝이 각광받는 이유라 생각됩니다.
요약하면 a,b 를 a+b로 변환하는 함수를 사람이 찾아 기계에게 알려준다면 컴퓨터 사이언스, 빅데이터를 기반으로 기계가 찾게만든다면 데이터 사이언스(머신러닝)이 되겠습니다.
그래서 머신러닝과 딥러닝이 무슨 차이인가?
위에서 언급하였듯이 컴퓨터에게 데이터를 주고, 학습을 시키는 것이 머신러닝인데
당연하게도 이러한 머신러닝에는 굉장히 다양한 알고리즘이 존재합니다.
어떤 방정식의 형태를 따를 것인지, 수형도의 형태로 나눠나갈 것인지, 통계학적 기법을 사용할 것인지...참고
그 중 하나가 인공신경망 또는 뉴럴 네트워크라고 불리우는 알고리즘이며,
이러한 알고리즘을 채택한 머신러닝을 간단히 딥러닝이라고 칭합니다.
결국 인공지능 > 머신러닝 > 딥러닝 이라는 집합관계가 성립하는 것입니다.
서두는 길었는데 본문은 굉장히 간단히 정리된 것 같습니다.
덧붙이자면 최근 화두가 된 것은 딥러닝이 맞으나, 문제별로 머신러닝과 딥러닝이 가진 강점이 다르며 지금 당장에서는 머신러닝이 적용된 분야가 훨씬더 많다고 하니, 참고하시면 좋을 것 같습니다.
'머신러닝 > [기타]' 카테고리의 다른 글
특이값 분해(Singular Vector Decomposition, SVD) (0) | 2020.03.13 |
---|---|
머신러닝 개발의 과정 (0) | 2020.03.12 |
특성 선택(Feature Selection) (0) | 2020.03.09 |
분류 성능평가 (0) | 2020.03.08 |
결측치(Missing Value) 처리 (2) | 2020.03.06 |