머신러닝, 딥러닝, 인공지능
머신러닝, 딥러닝, 인공지능 이 용어들의 차이는 무엇일까? 인공지능 하면 인간에게 도움을 주는 아이폰의 시리와 같은 인공지능 비서를 떠올릴 수도 있고, 또는 영화 아이로봇의 로봇처럼 인간을 위협하는 존재가 떠오를 수도 있다. 딥러닝하면 얼마전 이세돌을 바둑으로 격파한 알파고의 학습 방법으로 많은 사람들이 기억한다. 하지만 이러한 개념들이 서로 간에 어떠한 관계를 갖고 있는지에 대해 모호하게 느껴질 수도 있다. 본 포스팅에서는 인공지능이 머신러닝과 다른점, 그리고 머신러닝과 딥러닝의 차이점에 대해서 구체적으로 살펴보아 이들의 차이점이 궁금한 분들에게 도움이 될 수 있는 포스팅을 해보고자 한다.
인공지능에 대한 인류의 오랜 꿈
피그말리온과 갈라테아 (출처)
사실, 인공지능이라는 개념은 최근에 와서 생긴 개념이 아니다. 역사적으로 생각하는 물체를 만든다는 것은 인류의 오랜 꿈이였다. 그리스 로마신화에 나오는 피그말리온과 갈라테아가 그 한 예이다. 이 이야기는 독신으로 살던 한 조각가가 상아로 조각상을 만들고 아프로디테에게 간절히 빌어, 아프로디테가 이 남자를 딱하게 여겨 조각상에 생명을 불어넣고 조각상이 여인으로 변했다는 이야기이다. 넓은 의미의 인공지능은 기계를 인간처럼 보이게 만드는 모든 기술을 총칭한다. 갈라테아는 본래 조각상이었지만 인간처럼 생각하고 행동할 수 있게 되었다. 이러한 이야기를 통해 우리는 옛 사람들에게도 기계에 생명을 불어넣어 인간처럼 만드는 '환상' 이 있었음을 짐작할 수 있다.
하지만 오늘날, 이러한 신화처럼 인공지능이 어느날 갑자기 생기지는 않을 것이다. 우리는 인공지능을 구현하기 위해서 컴퓨터 프로그램을 활용한다. 프로그램은 인공 지능을 구현하는 방법이다. 즉, 현대에서 말하는 인공지능이란 컴퓨터 프로그램을 통해 인간처럼 이해하고, 추론하고, 사고하게 할 수 있는 방법이다. 다른 말로 인공지능이란 인간의 "인지기능" 을 모방하는 시스템을 말한다. 인지 기능이란 무언가를 배우고 이를 통해 문제를 해결할 수 있는 인간의 능력이다.
"artificial intelligence" is applied when a machine mimics "cognitive" functions that humans associate with other human minds, such as "learning" and "problem solving".
출처 - Deep learning, Youshua Bengio et al. (2016)
인공지능은 머신러닝, 딥러닝을 포함하고 있는 상위 개념이다.
인공지능을 구현하는 두 가지 방법
IBM - Deep blue (1996)
컴퓨터 프로그램을 통해 인공지능을 구현하는 방법에는 두 가지가 있다. 하나는 규칙기반 시스템(Rule-based system) 이다. (이는 expert system, Knowledge base system 등으로 불리기도 한다.) 이 방법은 기계가 인간처럼 사고하도록 하기 위해서 Rule을 이용한다. 얼마 전, 바둑은 인간의 영역이라고 여겨졌던 바둑에서 최정상 선수인 이세돌과 커제를 각각 4:1, 3:0으로 꺾었다. 하지만 그로부터 약 20년 여년전 체스가 먼저 컴퓨터에게 정복 당했는데, IBM에서 만든 Deep blue라고 하는 체스용 컴퓨터가 체스 챔피언을 접전 끝에 4:2로 이긴 것이다. Deep blue는 1초에 20억개 이상의 경우의 수를 계산하여 최고의 수를 두는 당시대의 최고의 기술이었다. 이러한 경우의 수를 구하는 것은 프로그래밍을 통해 체스의 규칙을 컴퓨터에 입력해주고, 이 규칙하에서 Deep blue가 가능한 경우의 수를 조회하는 것이다. 즉, 체스 게임의 Rule을 이용한 것이다.
인공지능을 구현하는 두 번째 방법은 바로 머신러닝(Machine Learning)이다. 이 방법인 인간이 컴퓨터에게 규칙을 입력해주는 것이 아니라, 기계 스스로 배우도록 한다. 이게 무슨말이냐 하면, 데이터를 주고 이 데이터에서의 정답을 알려주면 기계가 새로운 데이터가 들어왔을 때 정답을 예측한다는 것이다. 고양이 사진 100개를 보여주고 새로운 고양이 사진을 보여주면 기계가 이 사진을 고양이라고 맞춘다는 원리이다. 이 방법의 놀라운 점은 사람이 학습하는 방법과 같다는 것이다. 태어난지 얼마 안 된 아이는 고양이가 무엇인지 모른다. 하지만 사람들이 그것을 고양이라고 부르기 때문에 새로운 고양이를 보았을 때 지금까지의 경험을 토대로 그것을 "고양이" 라고 말할 수 있게 된다. Knowledge from experience 즉, 경험으로부터의 지식이 머신러닝의 핵심이라고 할 수 있다.
A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P if its performance at tasks in T, as measured by P, improves with experience E. Mitchell, T. (1997)
현대의 인공지능 예를 들어, 자율 주행차, 컬링 로봇, 의료 진단 시스템 등은 대부분 머신러닝을 활용한다. 하지만 규칙기반 시스템이 아예 쓰이지 않는 것은 아니다. 규칙기반 시스템은 풀고자 하는 문제에 따라서 유용하기도 하다. 특히, 세계관이 좁은 문제의 경우. 예를들어 체스의 경우 경우의 수가 바둑에 비해 적기 때문에 인간이 모든 규칙을 일일히 입력하는 것이 어렵지 않다. 또 게임 캐릭터의 인공지능도 규칙기반 시스템을 사용한다. 하지만 인공지능에 대한 연구는 대부분 머신러닝을 어떻게 하면 더 잘할 수 있을지에 대한 것이다.
딥러닝
Deep learning (also known as deep structured learning or hierarchical learning) is part of a broader family of machine learning methods based on learning data representations, as opposed to task-specific algorithms. Learning can be supervised, semi-supervised or unsupervised.
딥러닝은 생물의 뇌 회로에서 영감을 받은 머신러닝 모델이다. 인간처럼 인간은 어떻게 생각하고, 사고하고, 기억을 저장할까?
인간의 뇌는 1000억개의 뉴런과 100조개의 시냅스로 이루어져 있다. 시냅스에서 뉴런에 전기적 신호를 보내면 뉴런은 이 전기적 신호에 반응하여 이 신호를 다음 뉴런으로 전달한다. 이러한 뉴런-시냅스라는 작은 단위가 이루어진 뇌를 통해 인류는 이해하고 사고하고 고차원적인 사고를 할 수 있는 것이다. 딥 러닝은 이러한 뇌의 신호 전달 과정에서 영감을 얻어 고안되었다.
딥러닝에서 뉴런을 모방한 것은 퍼셉트론(Perceptron)이라고 하며, 이는 1958년 Rosenblatt에 의해 처음 제안되었다. 퍼셉트론은 x1~xn의 인풋을 받아들이고 이 인풋들의 곱의합(weighted sum)을 계산하고, 활성화 함수(activation function)에 대입하여 최종 y를 예측한다. 하지만 이러한 기본적인 퍼셉트론 만으로는 복잡한 문제를 해결하기 어렵다.
Multi-layer perceptron (MLP)는 Hidden layer라는 layer를 도입해 인풋을 한 차원 높은 단계의 특징, 즉 representation으로 나타낸다. 퍼셉트론의 y를 그 다음 layer의 input으로 넣어준다는 것이다. 이것이 딥러닝을 Representation learning의 한 종류라고 말하는 이유이다.
1986년 hidden layer를 포함한 신경망 모델을 효율적으로 트레이닝 할 수 있는 방법, Backpropagation이 등장한다.
우리가 길거리의 고양이를 보고 왜 고양이라고 생각을 할까? 우리는 분자 단위로 고양이를 읽어들여 뇌에서 직접적으로 이 정보를 이용하여 고양이라고 판단하지 않는다. 우리는 눈에 보이는 고양이의 형체를 전체적으로 보고, 이곳에서 고양이로 판단할만한 유용한 정보를 추출(extract)한다. 이 정보는 예를 들면, 뾰족한 귀, 갈색 털, 날카로운 눈빛, 네 개의 발과 같은 것이다. 분자 단위의 고양이의 형체에서 이러한 정보를 인간은 자동적으로 추출하는 능력이 있는 것이다. 이 때, 뾰족한귀, 갈색 털과 같은 고양이의 특징을 representation 이라고 한다. 딥러닝 모델에 Hidden layer를 추가한다는 것은 이러한 representation을 추출해내는 한 개의 층을 더 추가한다는 것이다. 층을 깊게 쌓을 수록 기본적인 특징을 조합하여 한 단계 위의 고차원 적인 특징을 추출해낼 수 있는 능력을 갖게 된다.
머신러닝과 딥러닝의 차이점은 바로 이부분이다. 고전적인 머신러닝 알고리즘을은 인풋 특징들 (예를 들면, 고양이의 분자단위)를 바로 매핑시켜 이를 통해 고양이인지 여부를 판단하고자 한다. 딥러닝이란 Deep 이라는 말에서 알 수 있듯, 매우 추상적인 분자단위의 고양이에서 유용한 정보를 추출하여 이를 통해 고양이를 판단할 수 있는 고차원 적인 Feature로 변환하는 Representation learning 과정이 그 알고리즘 자체에 내재되어 있다.
딥러닝은 이러한 Deep 한 구조를 통해 인간이 쉽게 할 수 있는 것이지만 형식화하여 설명하기는 힘든 영역, 직관적이며 고차원적인 인간 고유의 영역에 도전하고 있다.
The true challenge to artificial intelligence proved to be solving the tasks that are easy for people to perform but hard for people to describe formally—problems that we solve intuitively, that feel automatic, like recognizing spoken words or faces in images. (Deep learning, Yoshua bengio et al, 2016)
AI의 종류의 그 차이점 (Deep learning, Yoshua bengio et al, 2016)
딥러닝은 오로지 데이터로만 배우고, 데이터의 규칙을 찾아내는 수많은 파라미터들을 통해 구현되기 때문에 수많은 데이터가 필요하다. 예를 들어, 고양이를 찾아내는 딥러닝 시스템을 만들어본다고하자. 기계가 고양이 사진을 보고 고양이임을 알아내기 위해서는 많은 고양이 사진이 필요하다. 고양이와 비슷하게 생긴 여우, 삵 등을 고양이와 구분하는 것은 그 작은 디테일의 차이를 기계가 구분하는 것은 쉽지 않을 것이다. 따라서 수많은 데이터셋이 뒷받침 되지 않으면 아무리 좋은 딥러닝 모델을 구현하더라도 무용지물이다.
한 편, 딥러닝이 뇌과학에서 영감을 얻은 것은 사실이지만, 반드시 뇌과학적 지식을 그대로 적용하지는 않는다. 딥러닝은 다소 공학적인 면이 있다. 실제로 biological relevance가 없더라도, 그것이 성능 향상에 도움이 된다면, 유용하게 쓰인다.
결론
1. 인공지능 > 머신러닝 > 딥러닝
2. 인공지능을 구현하는 방법은 크게 규칙기반 시스템과 머신러닝으로 나눌 수 있다. 즉, 머신러닝은 인공지능을 구현하는 한 방법이다.
3. 머신 러닝은 사람이 일일히 규칙을 정의하지 않아도 데이터를 통해 배우는 것이 핵심이다. 즉, Knowledge from experience로 인공지능을 구현한다.
4. 딥 러닝은 생물체의 뇌 구조에서 영감을 얻은 머신러닝 기법 중 하나로 핵심 원리는 다계층 구조를 이용한 Representation Learning을 통해 스스로 데이터속에서 유용한 feature를 찾아내는 것이다. 딥 러닝은 기존 머신러닝과는 다르게 인간 고유의 영역, 이미지 분석, 언어 인식과 같은 직관적이고 고차원적인 사고를 요하는 분야에 강점이 있다.
참고
Deep learning, Yoshua bengio et al, 2016
'Data science' 카테고리의 다른 글
7v로 알아보는 빅데이터의 정의 및 데이터셋과의 차이점 (0) | 2018.10.26 |
---|---|
데이터과학(Data science)은 새로운 것인가? (0) | 2018.10.02 |
SAS Base (SBP) 취득 절차 및 후기 (0) | 2018.08.24 |
딥러닝 모델의 K-겹 교차검증 (K-fold Cross Validation) (2) | 2018.08.15 |
R로 구현하는 Gibbs Sampling (1) | 2018.05.17 |