brunch

You can make anything
by writing

C.S.Lewis

by 한규동 Jul 21. 2019

인공지능, 머신러닝, 딥러닝 개념

[인공지능 이야기] 정의, 주요 개념 구분, 종류, 예시

알파고 이후 인공지능, 머신러닝, 딥러닝 이라는 용어가 유행하고 있으며, 인공지능은 머신러닝, 딥러닝과 거의 같은 개념으로 이해되고 있다. 하지만 이들 개념에는 엄연한 차이가 있다. 여기서는 인공지능과 머신러닝, 딥러닝의 개념에 대해 간략하게 살펴보자. 이를 위해 당초 [인공지능 이야기 시리즈]로 썼던 다섯 개의 글을 간략히 요약해 본다.


[인공지능 이야기 시리즈]

인공지능 개념(AI) | 인공지능 정의, 유형. 분야, 역사

머신러닝 개념(Machine Learning) | 머신러닝 정의, 종류, 예시, 통계와 비교

머신러닝, 기계가 학습한다는 의미 | 머신러닝 과정에 구체적으로 무슨 일이 일어나는가?

인공신경망 개념(Artificial Neural Network) | 생물학적 신경망, 인공신경망, 퍼셉트론, MLP

딥러닝 개념(Deep Learning) | 딥러닝 등장 3대 사건, 기본 개념, CNN, RNN, 장단점


인공지능 ⊃ 머신러닝 ⊃ 인공신경망 ⊃ 딥러닝

인공지능은 사람의 지능을 모방하여 사람이 하는 것과 같이 복잡한 일을 할 수 있는 기계를 만드는 것을 말한다. 인공지능이 가장 넓은 개념이고, 인공지능을 구현하는 방법 중 중요한 방법이 기계학습 또는 머신러닝(Machine Learning)이다. 딥러닝(Deep Learning)은 머신러닝의 여러 방법 중 중요한 방법론이며 인공신경망(Artificial Neural Network)의 한 종류이다. 즉, 인공지능 ⊃ 머신러닝 ⊃ 인공신경망 ⊃ 딥러닝 관계가 성립한다. 아래에서 각 개념에 대해 좀 더 상세히 살펴보자.

인공지능, 머신러닝, 딥러닝의 포함 관계(참고1 일부 편집)


인공지능 개념(Artificial Intelligence)

먼저 인공지능에 대해서 알아보자. 인공지능(AI, Artificial Intelligence)이라는 용어는 1956년 다트머스 회의에서 처음 등장했다. '인공지능'이라는 용어를 만든 존 매카시(John McCarthy)는 ‘인텔리전트한 기계를 만드는 과학과 공학(the science and engineering of making intelligent machines)’이라고 정의했다. 하지만 인텔리전트한 기계(intelligent machines)의 개념은 여전히 모호하다.

존 매카시의 '인공지능' 정의(참고2)


인공지능 알파고(AlphaGo)는 이세돌 9단에게 바둑을 이길 정도로 사람보다 뛰어난 실력을 발휘했고, IBM의 왓슨(Watson) 또한 미국의 퀴즈쇼(제퍼디쇼)에서 사람을 이기는 등 일반적으로 생각하는 '대단한' 인공지능 다운 면모를 과시했다. 하지만 일상 생활에서는 세탁기부터 냉장고, 가습기까지 생활 가전에 간단한 기능을 추가했을 뿐인데 인공지능을 이용하고 있다고 광고하고 있어 인공지능의 개념이 혼란스러운 상황이다.


인공지능 정의


인공지능의 개념이 혼란스러운 이유는 아직 인공지능의 정의(definition)가 명확하지 않기 때문이다. 전 세계 110여 개 나라의 1300여 개 대학교에서 교재로 사용하고 있다는 '인공지능 - 현대적 접근'(Artificial Intelligence - A Modern Approach)에는 네 가지 관점에서 여러 가지 정의가 나온다.

인공지능 - 현대적 접근(참고3)

인간처럼 생각하는 관점(Thinking Humanly), 인간처럼 행동하는 관점(Acting Humanly), 이성적으로 생각하는 관점(Thinking Rationally), 이성적으로 행동하는 관점(Acting Rationally) 등 4가지 관점에서 다양한 정의가 존재한다. 그러나 모두가 동의하는 하나의 정의는 없다. 즉, 인공지능이 무엇인지는 명확하지 않다.    

인공지능 정의(참고3)


인공지능 효과(AI effect)


인공지능은 정의하기 어려울 뿐 아니라, 세월에 따라 그 개념도 변한다. 예전에는 인공지능의 한 분야로 여겨졌던 문자 식별, 검색엔진, 장기, 체스, 기계번역 등이 더 이상 지능적(?)으로 느껴지지 않는다. 이를 인공지능 효과(AI effect)라 한다. "예전에 인공지능이라고 불렀지만 실용화되어 하나의 분야를 구성하면서 이제 더 이상 인공지능이라고 불리지 않게 되었다. 이것은 'AI 효과'라고 불리는 흥미 깊은 현상이다. 많은 사람들이 그 원리를 알아버리면 '이것은 지능이 아니다'라고 생각하는 것이다."(참고4) 위키피디아에서도 AI효과(AI effect)를 언급하면서 '인공지능은 아직까지 실현되지 않은 모든 것'(AI is anything that has not been done yet)이라 정의하고 있다.(참고5)


인공지능의 4가지 유형


이처럼 실체를 알기 힘든 인공지능의 개념을 파악하기 위한 좋은 방법이 없을까? "인공지능과 딥러닝"이라는 책에 인공지능의 4가지 유형이 나온다.

먼저 레벨 1은 단순한 제어 프로그램을 탑재한 전자제품을 마케팅적으로 '인공지능 탑재'라 부르는 경우이다. 레벨 2는 입력과 출력이 다양한 경우로서 추론/탐색 또는 지식베이스를 활용하는 등 고전적인 인공지능 방법론이 이에 해당한다. 레벨 3은 머신러닝을 활용하는 인공지능이며, 레벨 4는 딥러닝을 이용하는 경우이다. 인공지능의 정의는 명확하지 않지만 이러한 4가지 유형으로 인공지능을 구분하면, 앞에서 언급했던 인공지능 세탁기부터 알파고까지 다양한 인공지능을 구분할 수 있을 것이다.

인공지능의 4가지 유형(참고6)


인공지능 논의 초기에는 인간의 뇌와 사고 방식을 모방하여 인간과 유사한 기계를 만들기 위해 노력하였으나, 점점 인간의 지능 구현 자체보다는 현실의 문제를 기계를 이용하여 효율적으로 풀기위해 노력하는 방식으로 발전하였다.


* 인공지능 개념에 대한 상세한 내용 : 인공지능 개념(AI) 참고


머신러닝 개념(Machine Learning)

머신러닝 정의


명확한 정의가 없는 인공지능과 달리 머신러닝은 정의(definition)가 있다. 머신러닝 용어를 만든 아서 사무엘의 1959년 정의와 톰 미첼의 1998년 정의가 있으며, 최근에는 톰 미첼의 정의가 많이 쓰인다.


아서 사무엘(Arthur Lee Samuel)은 머신 러닝을 "컴퓨터가 명시적으로 프로그램되지 않고도 학습할 수 있도록 하는 연구 분야(Field of study that gives computers the ability to learn without being explicitly programmed)"라고 정의했다.(참고7) 일반적인 컴퓨터 프로그램은 "A 입력에 B 조건이 성립하면 X를 동작시킨다"를 인간이 작성하는 반면, 머신러닝에서는 A라는 정보를 입력할 때 대답이 X가 되는 조건 B를 찾도록 기계를 학습시킨다.(참고8)

곱하기를 계산하는 프로그램을 예로 들면, 일반적으로 사람이 프로그램을 작성할 때는 입력 숫자와 곱하기 연산자를 활용하여 결과 값을 계산하지만, 머신러닝에서는 입력값 A와 정답 X를 활용하여 스스로 학습하여 조건 B를 찾는다.    

머신러닝과 일반적인 프로그램 비교(참고9 일부 변경)


다음, 카네기 멜론 대학의 머신러닝 교수인 톰 미첼(Tom Mitchell)은 "만약 어떤 작업 T에서 경험 E를 통해 성능 측정 방법인 P로 측정했을 때 성능이 향상된다면 이런 컴퓨터 프로그램은 학습을 한다고 말한다(A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P, improves with experience E)"라고 프로그램의 학습을 정의하였다.(참고7)

예를 들어, 필기체 문자를 인식하는 경우, 작업 T는 필기체 문자 인식, 성능 P는 필기체 인식의 정확도, 경험 E는 정답이 표시된 필기체 문자의 입력이 될 것이며, 이 경우 정답이 표시된 필기체 문자를 입력하여(경험 E를 통해) 성능 P가 향상된다면 이 프로그램은 학습된다고 할 수 있다.    

톰 미첼의 머신러닝 정의 예제(참고9 일부 변경)


머신러닝 종류


머신러닝은 지도학습, 비지도학습과 강화학습의 세 가지 종류가 있다.

(기본 내용) 참고7, (도표) 참고9, (학습모델) 참고10

지도학습은 입력값과 함께 결과값(정답 레이블)을 같이 주고 학습을 시키는 방법으로, 분류/회귀 등 여러가지 방법에 쓰인다. 지도학습의 구체적인 학습모델은 SVM(Support Vector Machine), 결정트리(Decision Tree), 회귀모델 등이 있다. 위 오른쪽 첫번째 그래프는 선형 회귀분석을 이용하여 아파트 가격을 예측하는 지도학습을 보여준다.

비지도학습은 결과값(정답) 없이 입력값만을 이용하여 학습을 시킨다. 위 오른쪽 두번째 그래프는 소셜 네트워크 데이터를 활용하여 사람들 사이의 친소(親疎) 관계를 예측하는 비지도학습을 보여준다.

강화학습은 결과값(정답) 대신 어떤 일을 잘했을 때 보상(reward)을 주는 방법으로 학습을 시킨다. 위 오른쪽 마지막 사진은 강화학습을 통해 기계 팔에게 탁구를 가르치는 장면이다. 강화학습은 현재의 상태(State)에서 어떤 행동(Action)을 취하는 것이 최적인지를 학습하는 것이다. 행동을 취할 때마다 보상(Reward)이 주어지는데, 이러한 보상을 최대화 하는 방향으로 학습이 진행된다.


머신러닝 사례 영상


머신러닝이 어떻게 이루어 지는지를 한눈에 파악할 수 있는 사례가 있다. 아래 영상은 강황학습을 통해 기계팔에 탁구를 가르치는 영상인데, 머신러닝이 어떻게 이용되는지 감이 잡힐 것이다.

https://www.youtube.com/watch?v=SH3bADiB7uQ


프라이팬의 팬케익을 뒤집는 로봇 팔을 만드는 강화학습 영상 역시 참고하면 좋겠다.

https://www.youtube.com/watch?v=W_gxLKSsSIE


머신러닝의 결과는 가중치(파라미터)

사람이 하는 학습의 결과는 두뇌에 지식 형태로 축적된다. 그렇다면 머신러닝을 하여 학습을 한 결과는 기계에 어떤 식으로 축적될까? 머신러닝의 결과는 가중치(weight) 값, 즉 파라미터(parameter) 값의 형태로 축적된다. 예를 들어, 머신러닝을 이용하여 손으로 쓴 숫자를 인식하는 프로그램을 만들 때, 입력값은 숫자 그림의 픽셀값이며, 머신러닝을 통해 각 픽셀값에 대응하는 최적의 가중치를 찾는 과정을 거친다. 숫자 인식을 위한 입력값이 20x20=400개의 픽셀값이라 하자. 손으로 쓴 숫자를 인식하기 위해 예측함수인 hi함수가 h1부터 h0까지 10개가 필요하며(각각 1, 2, ..., 9, 0의 확률값을 계산), 각 함수마다 400개의 픽셀값에 대응하는 θ값(θ1, θ2, ..., θ399, θ400)이 필요하므로 총 4,000개(400*10)의 θ값들을 찾아야 한다.

손으로 쓴 숫자를 인식하기 위한 예측함수 h1부터 h0(1, 2, ..., 9, 0의 확률값 계산)

초기에는 임의의 θ값으로 시작하고, 계산된 hi값과 정답 y값과의 차이를 이용하여 hi값이 정답에 가까워지도록 θ값을 조절해 주는 과정을 거치는데, 이것이 머신러닝의 학습 과정이며(이때 경사 하강법Gradient Descent을 쓰는데 너무 복잡해지므로 자세한 설명은 생략), 이를 통해 최적의  θ값(가중치 값)을 구하게 된다.


* 머신러닝 개념에 대한 상세한 내용 : 머신러닝 개념(Machine Learning) 참고

* 머신러닝 결과인 가중치에 대한 상세한 내용 : 머신러닝, 기계가 학습한다는 의미 참고


딥러닝 개념

인공신경망(Artificial Neural Network, Neural Network)


딥러닝은 인간의 뇌 신경망을 모방한 인공신경망의 한 종류이다. 먼저 인공신경망에 대해서 알아보자.

인간의 뇌는 1000억 개가 넘는 신경세포(뉴런)가 100조 개 이상의 시냅스를 통해 병렬적으로 연결되어 있다고 한다.(참고11) 각각의 뉴런은 수상돌기(Dendrite)를 통해 다른 뉴런에서 입력 신호를 받아서 축색돌기(Axon)를 통해 다른 뉴런으로 신호를 내보낸다. 시냅스(Synapse)는 뉴런과 뉴런을 연결하는 역할을 한다. 출력신호는 입력된 신호가 모여서 일정한 용량을 넘어설 때 일어난다.

생물학적인 신경세포(뉴런) 구성(참고12)


인공신경망 뉴런 모델은 생물학적인 뉴런을 수학적으로 모델링한 것이다. 즉, 생물학적인 뉴런이 위의 그림과 같이 다른 여러개의 뉴런으로부터 입력값을 받아서 세포체(cell body)에 저장하다가 자신의 용량을 넘어서면 외부로 출력값을 내보내는 것처럼, 인공신경망 뉴런은 여러 입력값을 받아서 일정 수준이 넘어서면 활성화되어 출력값을 내보낸다.

인공신경망 뉴런 모델(참고7 내용 일부 편집)


인공신경망은 이렇게 수학적으로 모델링된 인공 뉴런들을 여러개 쌓아서 만들 수 있다. 아래 그림들은 Layer1(input layer, 입력층), Layer2(hidden layer, 은닉층), Layer3(output layer, 출력층)로 구성된 인공신경망(뉴럴 네트워크)이다. 이러한 모델을 인공신경망에서는 다층 퍼셉트론(MLP,  Multi-Layer Perceptron)이라고 한다.

뉴럴 네트워크(참고13)


딥러닝은 최근 유행하는 인공신경망(Artificial Neural Network)의 새로운 이름


인공신경망에서 이용했던 다층 퍼셉트론(MLP,  Multi-Layer Perceptron)은 근본적인 한계를 가지고 있었다. 복잡한 문제를 해결하기 위해서는 신경망의 층수를 여러층 쌓은 모델을 이용해야 하는데, 깊은 층수를 쌓을 경우 역전파(Backpropagtion) 학습과정에서 데이터가 사라져 학습이 잘 되지 않는 현상인 '사라지는 경사도(Vanishing Gradient)' 문제가 있었다. 또한 학습한 내용은 잘 처리하나 새로운 사실을 추론하는 것, 새로운 데이터를 처리하는 것을 잘하지 못하는 한계도 있었다. 이로 인해 오랜 기간 동안 인공신경망은 이용하기 어려워 거의 몰락에 가까운 상황에 이르렀으며 '인공신경망'이라는 단어는 사용하면 안되는 단어가 되었다고 한다.(참고 14~17) "90년대 초부터 인공신경망 분야가 완전히 몰락을 했습니다. 미국, 일본, 유럽에서 인공신경망이란 단어 자체를 사용해서는 안되는, 그 단어를 사용하면 정부 과제를 받을 수 없을 정도로..."(김대식, 참고17)

Geoffrey E. Hinton(참고12)


인공신경망의 이러한 한계는 2000년이 넘어서야 극복할 수 있는 방법이 나왔다. 캐나다 토론토 대학의 제프리 힌튼(Geoffrey Hinton) 교수는 2006년에 깊은 층수의 신경망 학습시 사전 학습(Pretraining)을 통해서 학습함으로써 Vanishing Gradient 문제를 해결할 수 있음을 밝혔다. 또한 새로운 데이터를 잘 처리하지 못하는 문제는 학습 도중에 고의로 데이터를 누락시키는 방법(dropout)을 사용하여 해결할 수 있음을 2012년에 밝혔다. 이런 방법을 사용하여 기존의 인공신경망의 한계를 뛰어넘은 인공신경망을 '딥러닝'이라는 새로운 이름으로 부르기 시작했다. '인공신경망'이라는 이름이 가진 부정적인 인식에서 벗어나기 위해서였다.(참고14, 17) 



"기존 인공신경망의 한계를 뛰어넘은 인공신경망을 '딥러닝'이라고 이름을 새로 붙인겁니다. 리브랜딩 한 겁니다. 왜냐, 인공신경망이 이미지가 너무 안좋으니까..." (김대식, 참고17)


딥러닝이 최근 유행한 데는 이러한 한계 극복과 함께 다양한 요인이 작용했는데, 여기에는 세가지 요인이 있다. 첫번째는 위에서 살펴본 것과 같이 기존의 인공신경망의 한계를 극복할 수 있는 알고리즘의 개발, 두번째는 오랜 정보화의 결과로 신경망 학습에 필요한 막대한 학습데이터가 축적됐다는 점, 세번째는 신경망을 이용한 학습과 계산에 적합한 그래픽 처리장치(GPU, Graphics Processing Unit) 등 하드웨어의 발전이다.


딥러닝 유행 3대 사건


딥러닝은 2010년대부터 유행하고 있는데, 이러한 유행에는 몇 가지 중요한 사건이 계기가 되었다.


먼저, 마이크로소프트사의 음성인식 정확도가 급격히 좋아진 사례를 살펴보자. 아래 자료를 보면 1990년대는 음성인식 오류율이 꾸준히 줄었으나 2000년부터 2010년까지 10년간 전혀 발전이 없었다. 그러다가 딥러닝(DL, Deep Learning)을 도입하고 오류율이 급격히 줄어든 것을 볼 수 있다. 이를 통해 딥러닝의 강력한 힘을 깨달았다고 한다.

마이크로소트의 음성인식 오류율 변화(참고18, Yoshua Bengio 발표자료)


다음으로 이미지 인식 분야의 경진대회인 이미지넷(IMAGENET)의 정확도가 급격히 향상된 사건을 살펴보자. 이미지넷 대회는 사진을 보고 사진속의 대상을 인식하는 대회로서, 2011년까지 인식 오류율이 26%에 가까운 상황이었으며, 사람들은 1년 내내 노력해서 1% 올리기가 어려운 상황이었다고 한다. 2012년 캐나다 토론토 대학교의 수퍼비전팀(SuperVision)이 딥러닝 방식인 deep convolutional neural network을 적용한 알렉스넷(AlexNet)으로 16.4%라는 경이로운 오류율을 기록했다. 1년만에 거의 10% 가까이 오류율을 끌어올린 이 사건을 보고 이미지 인식분야의 많은 사람들이 거의 경악 수준으로 놀랐다고 한다. 그 후 이미지넷에 참여하는 모든 참가자가 딥러닝 방식을 적용했으며, 이미 2015년에 사람의 오류율(5.1%)보다 더 뛰어난 3.57%의 오류율을 달성했다. 참고로, 수퍼비전팀을 이끌었던 사람이 캐나다 토론토 대학교의 인공지능 대부 제프리 힌튼 교수(Geoffrey Hinton)이다.

이미지넷 대회 이미지 인식률 추이(참고19)


세번째는 비지도학습(Unsupervised Learning)을 이용하여 이미지를 인식하는 것이 가능함을 보여준 사건이다. 2012년 구글에서 유튜브(Youtube) 동영상을 캡쳐한 화면(200x200) 1000만개를 학습시켜서 고양이, 인간 등을 인식시키는 데 성공했다. 지금까지는 지도학습(Supervised Learning)을 이용하여 이미지를 인식시켰으나 이번 사건은 비지도학습을 통한 학습의 가능성을 확인한 중요한 사건이라고 한다. 이 프로젝트는 앤드류 응(Andrew Ng) 교수가 주도했으며, 16,000개의 CPU 코어를 가지고 9개층 10억개 파라미터(parameter)를 가진 인공신경망을 3일간 학습시켰다. 아래 그림은 고양이를 인식시킨 사진으로 유명한데, 실제 발표된 논문을 보면 인간의 얼굴에 대한 인식 정확도가 81.7%, 인간의 몸은 76.7%이고 정작 고양이 인식 정확도는 74.8%였다.(참고20)

비지도학습을 이용한 이미지 인식(2012, 참고21)


이러한 3대 사건은 딥러닝을 성능을 확인시켜 주었으며, 사회 여러 분야에서 딥러닝을 활발히 이용하는 계기가 되었다.


딥러닝 4대 천왕


최근 딥러닝의 발전에는 아래 교수님들의 기여가 컸다고 한다. 사진 왼쪽부터 Yann LeCun, Geoffrey Hinton, Yoshua Bengio, Andrew Ng 교수인데, 딥러닝 분야를 선도하는 4명의 교수들이다. 대학교와 함께 페이스북, 구글, IBM, 바이두 등 기업에서도 같이 일하면서 학계와 업계를 이끌고 있다.

Yann LeCun, Geoffrey Hinton, Yoshua Bengio, Andrew Ng(참고22)



인공지능에 대해서 더 궁금하시면, 제가 쓴 아래 책을 참고하세요.

http://www.yes24.com/Product/Goods/110044822


참고자료
[1] http://blogs.nvidia.co.kr/2016/08/03/difference_ai_learning_machinelearning/
[2] https://www.artificial-solutions.com/blog/homage-to-john-mccarthy-the-father-of-artificial-intellige
[3] “Artificial Intelligence A Modern Approach” 3rd Edition 1~2 p, Stuart Russell, Peter Norvig, Prentice Hall
[4] “인공지능과 딥러닝” 마쓰오 유타카, 박기원 옮김, 동아 엠엔비
[5] https://en.wikipedia.org/wiki/AI_effect
[6] “인공지능과 딥러닝” 마쓰오 유타카, 박기원 옮김, 동아 엠엔비, 54p
[7] Andrew Ng 교수, Coursera Machine Learning 강의, https://www.coursera.org/learn/machine-learning/
[8] “구글에서 배우는 딥러닝” 닛케이 빅 데이터 著, 서재원 옮김, 영진닷컴, 28p
[9] “인공지능, 기계학습 그리고 딥러닝” 강의자료, https://www.slideshare.net/JinwonLee9/ss-70446412
[10] 인공지능, 머신러닝, 딥러닝 입문, 김의중, 위키북스
[11] https://news.skhynix.co.kr/1827
[12] https://www.yumpu.com/en/document/view/33756198/axon-dendrite-cell-body-neuron-nerve-cell-anatomy-synapse
[13] https://en.wikipedia.org/wiki/Artificial_neural_network
[14] “인간 vs 기계”, 김대식, 동아시아
[15] http://economyplus.chosun.com/special/special_view_past.php?boardName=C24&t_num=11363&img_ho=190
[16] “On the Origin of Deep Learning” 3page, Haohan Wang, Bhiksha Raj, https://arxiv.org/pdf/1702.07800.pdf
[17] 2016 카오스 [Brain] 10강 뇌의 미래와 인공 자아의 탄생 – 2(10분쯤), https://www.youtube.com/watch?v=MpUNjGeon70
[18] Yoshua Bengio “Scaling up Deep Learning”(2014) 강의자료 7page, http://www.iro.umontreal.ca/~bengioy/talks/KDD2014-tutorial.pdf, http://videolectures.net/kdd2014_bengio_deep_learning/
[19] Fei-Fei Li : Lecture 1 | Introduction to Convolutional Neural Networks for Visual Recognition 강의자료, https://www.youtube.com/watch?v=vT1JzLTH4G4
[20] http://www.hani.co.kr/arti/science/science_general/777909.htmlhttps://blog.google/topics/machine-learning/using-large-scale-brain-simulations-for/https://static.googleusercontent.com/media/research.google.com/ko//archive/unsupervised_icml2012.pdf
[21] http://www.etnews.com/20150320000014?m=1
[22] https://www.kdnuggets.com/2015/03/talking-machine-deep-learning-gurus-p1.html
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari