머신러닝(Machine Learning, 기계학습)과 딥러닝(Deep Learning, 심층학습)의 차이는 뭘까?

AI(Artificial Intelligence, 인공지능)에 대한 관심이 높아지면서 머신러닝(Machine Learning, 기계학습)과 딥러닝(Deep Learning, 심층학습) 차이가 무엇인지 궁금해졌다.

1. 머신러닝(Machine Learning)

머신러닝에 대해 위키피디아의 정의를 보면 다음과 같다.

Machine learning is the subfield of computer science that, according to Arthur Samuel in 1959, gives "computers the ability to learn without being explicitly programmed."

번역) 머신러닝은 아서 사무엘(Arthur Samuel)이 1959년에 언급한 '명시적으로 프로그래밍 된 것 없이 배울 수 있는 능력을 컴퓨터가 갖게 하는 컴퓨터 과학의 하위 분야이다.

참고로 아서 사무엘은 머신러닝을 "기계가 일일이 코드로 명시하지 않은 동작을 데이터로부터 학습하여 실행할 수 있도록 하는 알고리즘을 개발하는 연구 분야"라고 정의하였다.

2. 딥러닝(Deep Learning)

딥러닝에 대해 위키피디아의 정의를 보면 다음과 같다.

Deep learning (also known as deep structured learning or hierarchical learning) is the application of artificial neural networks (ANNs) to learning tasks that contain more than one hidden layer.

번역) 심층학습(심층구조학습 또는 계층적 학습이라고도 알려져 있음)은 하나 이상의 숨겨진 계층을 포함하는 학습 작업들에 인공 신경망(ANN)을 적용하는 것이다.

달리 표현해보면 큰 틀에서 사람의 사고방식을 컴퓨터에게 가르치는 머신러닝의 한 분야라고 할 수 있다.

주요 연구 결과로는 2012년 스탠포드대학의 앤드류 응과 구글이 함께한 딥 러닝 프로젝트에서는 16,000개의 컴퓨터 프로세서와 10억 개 이상의 neural networks 그리고 DNN(deep neural networks)을 이용하여 유튜브에 업로드 되어 있는 천만 개 넘는 비디오 중 고양이 인식에 성공하였다.

3. 그러면 어떻게 다를까?

딥러닝은 머신러닝의 한 분야이기 때문에 아서 사무엘이 언급한 프로그래밍 없이 배우는 능력을 갖추는 컴퓨터 과학 분야의 다양한 방법들(머신러닝) 중에 사람의 사고방식의 방법을 사용하여 보다 빨리 능력을 갖는 방법이 딥러닝이다.

사람은 개와 고양이 이미지를 봤을 때 판별할 수 있는 것은 이미 다양한 경험과 학습 및 교육을 통해 해당 이미지를 뇌에서 분석하고 특징을 확정 지은 뒤, 지식과 경험에 따라 판단하는 능력이 갖춰져 있기 때문이다.

3.1. 그림에 있는 동물이 개 또는 고양인지 인지하는 방법

사람이 개와 고양이 이미지를 보고 판단할 수 있는 능력을 컴퓨터가 처리한다고 생각했을 때 그 접근의 차이가 머신러닝과 딥러닝을 구분할 수 있게 된다.

1) 머신러닝으로 인지

머신러닝의 경우 주어진 소재를 우선 인간이 먼저 처리한다

이미지의 경우 사람이 학습 데이터를 알맞게 분류하는 등 컴퓨터가 인식할 수 있도록 사전 잡업을 해야 한다. 그 다음 컴퓨터가 데이터에 포함된 특징을 분석하고 축적하는 과정을 거친다. 마지막으로 컴퓨터가 축적된 데이터를 바탕으로 이미지의 특징을 종합해 답을 이끌어 내는 것이 머신러닝이다.

물체를 인식할 때나 배경을 인식해 물체를 검출할 때 머신러닝 기술을 사용할 수 있다.

즉 기계학습의 흐름을 보면 각 그림의 특징을 기계(컴퓨터)에 인식시키고 학습시킴으로써 문제를 해결하는 것이다. 하지만 사전 데이터 작업 처리를 인간이 먼저 개입을 한다.

2) 딥러닝으로 인지

딥러닝의 경우 인간이 하던 작업이 생략된다. 즉 먼저 처리하는 작업이 없다.

개와 고양이를 분석하기 위해서 딥러닝 알고리즘 중 회선 신경망(Convolutional Neural Network, CNN)을 이용하여 이 알고리즘에 데이터(이미지)를 그대로 던져 주면 스스로 분석한 후 답을 내는 방식이 딥러닝이다.

CNN은 이미지를 이해하고 이로부터 높은 수준의 추상화된 정보를 추출하거나, 새로운 질감을 가진 그림을 그리는 등 다양한 영상처리, 컴퓨터 비전 분야에서 많이 연구되고 있는 딥러닝 알고리즘 중 하나이다. 

여기서 알아야 할 점은 딥러닝은 넓은 의미에서 머신러닝 개념에 포함된다는 것이다. 왜냐하면 머신러닝 연구 분야에서 사람의 사고 방식을 따르는 알고리즘이 딥러닝 이기 때문이다.

3.2. 어떻게 다르게 사용될까?

딥러닝은 방대한 양의 데이터에 대한 계산 처리를 위해 연산 능력이 높은 GPU 등의 하드웨어가 필요하다. 따라서 하드웨어 영향이 있고 데이터양이 많은 경우에는 딥러닝을, 그렇지 않은 경우에는 머신러닝을 채용하는 것이 좋다.

머신러닝을 선택한 경우 학습시킬 때 수 많은 등급 분류를 사용할 수 있다는 옵션이 있다. 또 최적의 답을 도출하기 위해 어떤 특징을 이용하거나 하는 등의 선택을 할 수도 있다. 머신러닝의 경우 목적에 따라 접근 방식을 달리 선택할 수 있는 장점도 있다.

머신러닝의 경우는 자신의 연구를 포함시킬 여지가 남아 있고 처리 시간이 짧은 반면, 딥러닝은 이용자의 많은 지식과 노력 없이도 높은 정밀도를 얻을 수 있는 특징이 있다.

그러나 딥러닝의 경우 높은 시스템 성능이 요구되고 처리 시간이 오래 걸린다는 단점이 있다. 또 딥러닝을 높은 정밀도로 학습하기 위해서는 방대한 데이터가 필요할 뿐만 아니라, 내부의 알고리즘을 인간이 이해할 수 없기 때문에 오류수정(디버깅)이 사실상 불가능 하다.

즉 머신러닝과 딥러닝은 엄격하게 같은 머신러닝에 포함돼 있는 것이며 그 구분은 처리하는 데이터의 양, 하드웨어 성능, 그리고 구하고 싶은 결과의 내용에 따라 선택해야 하는 것이다.

참고자료

댓글

이 블로그의 인기 게시물

C++로 프로그래밍할 때 인자 또는 리턴 값으로 std::vector 등 STL 데이터 타입 처리하는 좋은 방법

macOS가 갑자기 부팅이 되지 않을 경우 데이터 복구 또는 백업 방법

Git 저장소를 병합하는 방법(How to merge repositories in Git)