본문 바로가기
Deep Learning/딥러닝

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

by 뚜찌지롱 2021. 2. 16.

 

알파고와 함께 딥러닝, 머신러닝이 화두가 되면서 아마 많은 사람들이 알파고는 딥러닝 기술을 이용했다고 생각할 것입니다. 하지만, 강화학습 기술을 이용한 알파고는 대량의 과거 바둑 기보를 통해 학습하고 자기 자신과 경기를 하면서 학습했습니다. 그 결과, 알파고는 전세계적인 프로 바둑 기사들을 압승하며 전적 73승 1패라는 기록을 세웠고, 오해와 함께 딥러닝과 머신러닝이 다시 수면 위로 올라오게 되었습니다. 딥러닝은 새로 개발된 알고리즘이 아닌 오랜 역사가 있다는 것도 알고만 지나가도록 합시다. 😊

데이터 분야에 종사하는 사람으로서 새로운 트렌드에 민감할 수 밖에 없었고 언젠가는 공부해야 할 과제라고 생각했습니다. 마침 좋은 유튜브 강의가 있어 공부하다가 글로 끄적여 놓는 것이 나중에 다시 공부할 때 도움이 되리라 생각하고 포스팅을 시작하겠습니다. 

 


인공지능, 머신러닝, 딥러닝의 포함관계 (출처: https://steemit.com/mbl/@mbl/mbl-gpu)

 

○ 인공지능 (Artificial Intelligence)

 

뉴스만 봐도 자주 등장하는 'AI'를 우리는 인공지능이라고 부르기도 한다. AI가 언젠가는 인간을 초월하여 세상을 지배할 것이라는 소리도 나오는 거 보면 엄청 대단하고 무섭고 어렵다고 생각할 수 있다. 과연, 인공지능이 무엇일까?

 

얼마 전까지만 해도 인공지능의 정의는 학자마다 주장하는 것이 달라 여러 가지가 정의가 존재했다. 이에 과학기술정보통신부 4차산업혁명위원회(2018)는 인공지능이란 "인지, 학습 등 인간의 지적능력(지능)의 일부 또는 전체를 컴퓨터를 이용해 구현하는 지능" 의미한다고 정의했다. 즉, 인간의 사고 능력을 기계적으로 구현, 자동화한 시스템을 의미한다. 

인공지능은 일종의 컴퓨터 프로그램이라고 생각하면 된다(어떠한 방법론이 아님). 

 

여기서, 머신러닝과 딥러닝이 나오는데 인공지능의 한 분야이다. 자세히 말하면 딥러닝은 또 머신러닝의 한 분야이다. 

 

  • 머신러닝(Machine Learning)

아서 사무엘이 말하기를 머신러닝"기계가 일일이 코드로 명시하지 않은 동작을 데이터로부터 학습하여 실행할 수 있도록 하는 알고리즘을 개발하는 연구 분야"라고 정의하였다(1959). 즉, 데이터가 알고리즘에 주어지면 알고리즘이 스스로 데이터의 특징을 파악하고 학습하면서 점차적으로 정확도가 개선되는 모델을 만드는 것이다. 따라서, 데이터를 많이 처리할수록 알고리즘이 우수해지며 더 정확한 예측을 수행할 수 있게된다.

 

머신러닝의 절차에 대해 간략하게 소개해보면, 1) 데이터를 준비 2) 알고리즘을 선택 3) 알고리즘을 훈련 = 모델 4) 검증 순으로 진행된다. 이는 간략하게 정리된 것이다.

 

또한, 머신러닝은 크게 3가지 방법으로 나뉠 수 있다.

 

  1. 지도학습 (Supervised Learning) : 입력값과 출력값이 모두 존재하는 데이터(labeled data)를 학습시키는 것으로 새로운 데이터가 주어졌을 때 데이터 기반으로 예측한다. 대표적으로 회귀 또는 분류 문제가 있다.
  2. 비지도학습(Unsupervised Learning) : 입력값만 존재하는 데이터(unlabeled data)를 학습시키는 것으로 비슷한 특징끼리 군집화 하여 새로운 데이터에 대한 결과를 예측한다. 비지도학습은 데이터의 특징을 분석하여 군집하므로 그룹핑 알고리즘이라고 할 수 있다. 대표적으로 군집 또는 압축 문제가 있다.
  3. 강화학습(Reinforcement Learning) :  강화학습은 행동적인 머신러닝이며 옳은 행동을 했을 때 보상을 받음으로써 훈련을 시키는 것이다. 즉, 어떤 환경 안에서 정의된 주체(agent)가 현재의 상태(state)를 관찰하여 선택할 수 있는 행동(action)들 중에서 가장 최대의 보상(reward)을 가져다주는 행동이 무엇인지를 학습하는 것이다. 지도학습과 유사하다고 하지만 labeled 데이터가 아닌 환경과의 상호작용을 통해 얻는 보상으로부터 학습한다는 점에서 차이가 있다. 강화 학습의 예로는 게임, 알파고 등이 있다.


    강화학습에서는 지도학습과 비지도학습에서 들어보지 못했던 단어들이 등장한다. 예시를 들어 설명하겠다.

개를 훈련시키는 강화학습 ( 출처 : http://www.comworld.co.kr/news/articleView.html?idxno=49705)

    위 그림의 경우, 강화 학습의 목표는 개(agent)를 훈련시켜서 어떤 환경(environment) 속에서 과제를 완수하도록 하는 것이고, 조련사뿐만 아니라 개의 주변도 환경의 일부이다. 먼저, 조련사가 어떤 명령이나 단서를 제공한다. 개는 그 환경의 상태(state)를 관찰(observe)하고, 어떤 행동(actions)을 취하며 반응하게 된다. 만일 그 반응이 원하는 행동에 근접하였다면 조련사는 간식이나 장난감 같은 보상(reward)을 제공하고, 아니라면 부정적인 보상을 줄 것이다. 

 

 4. 준지도 학습을 포함하여 분류하는 경우도 있다.

 

     준지도학습(Semi-supervised Learning) : labeled data와 unlabeled data가 섞인 데이터를 이용하며, 일반적으로               
     labeled data가 충분하지 않을 때 unlabeled data를 이용하여 학습하는 방식이다. 즉, unlabeled data를 이용하여

     지도학습의 성능을 끌어올리는 것이 목표이다.

 

 

  • 딥러닝(Deep Learning)

딥러닝은 머신러닝의 일부분이다. 모든 딥러닝은 머신러닝에 속하지만, 모든 머신러닝이 딥러닝에 속하지 않는다는 것을 유념하자. 딥러닝 알고리즘은 인간의 뇌가 학습하는 방식을 모방한 인공신경망(artificail neural network)의 구조를 가진다. 인간의 뇌가 오감을 통해 몸으로 들어오는 정보를 흡수하고 처리하는 것과 마찬가지로 딥러닝은 여러 데이터에서 정보를 입력받아 실시간으로 분석한다. 그 결과, 딥러닝은 인간의 개입 없이 분석 및 물리적 작업을 수행하면서 자동화를 개선하는 인공지능과 서비스를 구현한다. 

 

딥러닝의 절차에 대해 간략하게 소개해보면, 1) 데이터 준비(전처리 및 지도학습을 위한 labeling) 2) 모델을 구성하고 학습 3) 코드 생성 및 배포 순으로 진행된다.                                  =>  딥러닝은 데이터에 labeling이 되거나 수동으로 labeling을 해줘야한다.

 

 

 

○ 머신러닝과 딥러닝의 차이

 

딥러닝은 머신러닝의 일부 분야라고 언급하였다. 그렇다면, 나머지 분야와 딥러닝의 차이가 무엇일까? 지도학습이나 비지도학습에서 모델을 만들기 위해서는 입력데이터의 특징을 추출해야하는 작업을 반드시 선행해야한다. 반면, 딥러닝은 이러한 작업이 모델링을 할때 포함되며(즉, 신경망을 통해 데이터의 특징이 추출되고) 학습이 진행될수록 더 나은 방향으로 특징이 추출되게 된다. 이런 추출방식은 사람이 정한 알고리즘에 의한 추출보다 더 우수한 성능을 나타낼 수 있다. 따라서, 데이터가 충분히 많다면 딥러닝이 머신러닝보다 우수한 성능을 나타내는 요인이 된다.  

 

 

○ 딥러닝과 강화학습의 차이

 

딥러닝과 강화학습은 기계학습에서 동등한 위치에 놓여있으며, 두 분야 모두 자율적으로 학습을 한다는 점에서 비슷하다. 이 둘의 차이점은 딥러닝의 경우, 훈련 데이터의 학습을 기반으로 새로운 데이터에 적용한다. 강화학습의 경우, 훈련 데이터 없이 시행착오를 통해 보상을 최대로하기 위해 지속적으로 행동을 조정하는 동적인 학습이다. 다시 정리하면, 딥러닝에서는 데이터를 준비하는 단계가 필수적이지만 강화학습에서는 agent와 환경과의 상호작용을 통해 학습을 하기 때문에 데이터를 준비하는 단계가 환경을 모델링하는 과정으로 치환이 된다. 

 

두 분야의 뿌리는 확실히 다르지만 또 상호배타적이라고 할 수 없다. 강화학습에서도 딥러닝의 사용은 보편적이기 때문이다. 즉, agent를 훈련하기 위해 딥러닝을 사용하는 경우가 존재한다. 어떤 상태를 입력으로 받아서 이 상태에 대한 최적의 액션이 무엇인지를 결정하는 과정에서 딥러닝 모델이 적용된다. 강화학습을 모델링하는데 있어서 시스템이 매우 복잡하지만 딥러닝을 이용할 경우 입력과 출력의 관계를 통해 복잡한 모델을 비교적 간략화 시키기 때문에 agent를 학습시키기 위해 딥러닝을 사용하게 된다.

.

.

끝으로, 알파고에 대한 재미있는 칼럼이 있어서 가져왔다. 

강화학습의 큰 예시인 알파고에 대해 얘기해보자. 알파고는 바둑을 두는 방법을 학습하기 위해 먼저 대량의 과거 바둑 기보를 통해 인간 바둑 기사들을 모방 학습한다. 그 다음에 독립적으로 자기 자신을 상대로 수 없이 바둑을 두면서 시행착오를 거쳐 경기력을 개선해 나간다. 이 시행착오 과정이 강화학습인 것이다. 사실 강화학습은 본래 데이터가 필요없다. 그런데 이세돌과 대국한 알파고, 이듬해 중국 기사들과 대국한 알파고는 인간이 생산한 기보를 통해 학습했다. 데이터를 사용한 것이다. 그렇게 해서 만들어진 최강자가 '알파고 마스터' 버전이며, 인간 프로 기사에게 완승을 거두었다. 한편 데이터 없이 중국 바둑 규칙 내에서 마음대로 플레이하고, 승률이 높은 수를 찾도록 하는 훈련을 시켜 최종 버전인 '알파고 제로'를 만들었다. 무려 자가대국 2900만 판을 두도록 했고 '알파고 마스터' vs '알파고 제로'의 대결 결과, 알파고 제로는 89대 11로 알파고 마스터를 이겼고, 바로 바둑에서 은퇴했다. 

→ 알파고 마스터 = "강화학습" + "지도학습"

→ 알파고 제로 = "강화학습"

(출처) http://www.newstof.com/news/articleView.html?idxno=951

 

 

 

<참고문헌>

brunch.co.kr/@namujini/22

en.wikipedia.org/wiki/Machine_learning

www.ibm.com/cloud/learn/machine-learning

Machine Learning - Tom M. Mitchell 

www.forbes.com/sites/bernardmarr/2018/10/22/artificial-intelligence-whats-the-difference-between-deep-learning-and-reinforcement-learning/?sh=4d8b76e1271e

www.youtube.com/watch?v=qBYdpzfIenU

davinci-ai.tistory.com/31

댓글