머신러닝&딥러닝/Do it ! 딥러닝 입문

인공지능 vs 머신러닝 vs 딥러닝

욱이명 2020. 11. 21. 23:52

인공지능(Artificial Intelligence)이란

인공지능은 '사람의 지능을 만들기 위한 시스템이나 프로그램'을 말한다. 예를 들어 알파고는 '사람처럼 바둑을 둘 수 있게  만들어진 프로그램'이고 음성 비서는 '사람이 음성으로 질문한 것에 대한 답을 사람처럼 답을 할 수 있도록 만들어진 프로그램'이다.

 

인공지능은 크게 약 인공지능(weak AI), 강 인공지능(strong AI)으로 나뉘는데 영화 아이언맨의 자비스, 로봇아이의 로봇들 처럼 사람과 구분이 안 될 정도로 강한 성능을 가진 인공지능을 강 인공지능이라 하고 테슬라의 자율주행, 아이폰의 음성 비서 시리, 구글의 인공지능 스피커 구글 홈 처럼 특정 영역에 특화되어 현재 인간들의 생활을 보조하는 기술로 많이 사용되고 있는 인공지능을 약 인공지능이라고한다.

 

현재는 강 인공지능을 만들 수 있는 방법에 대해 아는 사람이 아무도 없다. 심지어 강 인공지능이 나올 만한 시기도 예측하기 어렵다. 그래서 많은 인공지능 과학자들은 강 인공지능에 대해 섣불리 예측하거나 이야기하는 것을 꺼려한다. 그래서 지금 까지 발전을 거듭하고 있는 인공지능 기술은 모두 약 인공지능이고 머신러닝과 딥러닝도 약 인공지능에 포함되는 기술이다.

 

앞에서 언급했듯이 머신러닝과 딥러닝은 약 인공지능에 포함되는 기술이고, 딥러닝은 머신러닝에 포함되는 기술이다.

 

인공지능과 머신러닝, 딥러닝의 관계

 

머신러닝은 알고리즘의 종류에 따라 더 세부적으로 나눌 수 있는데 그중에 인공신경망 알고리즘을 사용하여 만든 것이 딥러닝이다. 또한 인공신경망의 기본 구성 요소는 다른 머신러닝 알고리즘이 발전된 것이다. 그래서 딥러닝을 잘 이해하기 위해서는 먼저 머신러닝을 알아야 한다. 

머신러닝(Machine Learning)이란

Machine Learning(머신러닝)을 한글로 풀어 쓰면 '기계 학습'이다. 이때 먼저 알아야 할 개념은 '학습'인데 머신러닝과 딥러닝에서 말하는 학습은 데이터의 규칙을 컴퓨터 스스로 찾아내는 것을 말한다. 

 

전통적인 프로그램은 사람이 규칙을 정해 프로그래밍하고 사람이 직접 규칙을 수정하는 반면 머신러닝은 사람이 만든 프로그램이기는 하지만 규칙을 스스로 찾아 수정한다. 바로 여기서 말하는 규칙을 찾아 수정하는 과정을 학습 또는 훈련이라고 부른다.

 

머신러닝은 학습 방식에 따라 지도 학습(supervised learning), 비지도 학습(unsupervised learning), 강화 학습(reinforcement learning)으로 분류되는데 머신러닝으로 다루는 많은 작업들이 지도 학습에 속한다.

지도 학습(supervised learning)

만약 전날의 습도에 따라 다음 날에 비가 왔는지 안 왔는지 꾸준히 기록했다면 오늘의 습도만 알아도 그 다음 날 비가 올지 안 올지 예측할 수 있을 것이다. 바로 이것이 지도 학습에 속한다. 지도 학습은 입력(전날의 습도)과 타깃(다음 날에 비가 왔는지 안 왔는지)로 이루어진 '훈련 데이터'로 학습을 시켜 규칙을 찾는다.

 

대부분의 머신러닝 알고리즘은 훈련 데이터와 규칙의 관계를 식으로 표현 할 수 있는데 규칙이란 뭘까. '오늘 습도가 0.6이상이면 내일 비가 온다'라고 했을 경우에 1.5 * x + 0.1 = y(y가 1이상이면 다음 날 비가 온다고 예측)이런 식으로 표현 할 수 있다. 이 식에서 x는 입력이고 y는 타깃이며 1.5와 0.1이 바로 규칙이다. 이 규칙은 각각 가중치와  절편이라고 부르는데 입력(x)과 곱하는 수(1.5)가 가중치, 더하는 수(0.1)가 절편이다. 여기서는 가중치와 절편이 가각 1개인 간단한 식을 규칙의 예로 들었는데 딥러닝은 이것보다 훨씬 많은 개수(10만, 100만)의 가중치와 절편을 가진다. 그리고 이런 수학식이 바로 모델이다. 엄밀히 정의하면 모델은 '훈련 데이터로 학습된 머신러닝 알고리즘'을 말한다. 그리고 가중치와 절편을 합쳐 모델 파라미터(model parameter)라고 부른다.    

비지도 학습(unsupervised learning)

타깃이 없는 훈련 데이터를 사용하면 비지도 학습이라고 한다. 비지도 학습은 훈련 데이터에 타깃이 없으므로 모델의 훈련 결과를 평가하기 어렵다는 특징이 있다.

강화 학습(reinforcement learning)

강화 학습은 머신러닝 알고리즘으로 에이전트라는 것을 훈련시킨다. 훈련된 에이전트는 특정 환경에 최적화된 행동을 수행하고 수행에 대한 '보상'과 '현재 상태'를 받는다. 에이전트의 목표는 '최대한 많은 보상을 받는 것'이다. 그래서 에이전트는 주어진 환경에서 아주 많은 행동을 수행하여 학습된다. 강화 학습의 대표적인 알고리즘으로는 Q-러닝(Q-learning), SARSA, 인공신경망을 사용한 DQN(Deep Q Network)등이 있다. 강화 학습의 예로는 딥마인드(DeepMind)의 알파고(AlphaGo)와 같은 게임이나 온라인 광고 등이 있다.

딥러닝(Deep Learning)이란

이미 앞에서 딥러닝(deep learning)은 머신러닝 알고리즘 중 하나인 인공신경망(artificial neural network)으로 만든 것이라고 설명했다. 머신러닝 알고리즘에는 선형 회귀나 로지스틱 회귀와 같은 알고리즘들이 있는데 인공신경망도 머신러닝 알고리즘 중 하나이다. 복잡한 문제를 해결하기 위해 인공신경망을 다양하게 쌓은 것을 딥러닝이라고 부르는 것이다. 딥러닝은 인공신경망을 사용해 만드는 것이므로 인공신경망과 딥러닝을 엄밀하게 구분하지 않는다. 둘을 거의 같은 개념으로 생각해도 좋다.

 

인공신경망이라는 이름 때문에 '딥러닝은 사람의 뇌와 깊은 연관이 있는 기술이다'라는 오해를 할 수 있다. 물론 인공신경망은 뇌의 뉴런에서 영감을 받아 만든 것이지만 딥러닝은 실제 뇌가 작동하는 방식과는 많이 다르므로 오해하지 않도록 해라

딥러닝과 머신러닝의 구체적인 차이점

대표적으로 둘의 차이점을 이야기할 때 '처리하는 데이터'를 예로 드는 경우가 많다. 딥러닝에 잘 맞는 데이터로는 이미지/영상, 음성/소리, 텍스트/번역 등의 비정형 데이터가 있고 머신러닝에 잘 맞는 데이터로는 데이터베이스, 레코드 파일, 엑셀/CSV 등에 담긴 정형 데이터가 있다. 이런 이유로 딥러닝은 보통 '인지'와 관련된 문제를 잘 해결한다고 알려져있는 반면에 머신러닝은 암환자의 검진 데이터나 회사의 매출 데이터와 같은 정형화된 데이터에 대한 문제를 잘 해결한다.