brunch

You can make anything
by writing

C.S.Lewis

by 김덕현 Dec 07. 2018

머신러닝과 딥러닝

[4IR-3.3] 4차 산업혁명 기술 이해-3

머신러닝과 인접 기술 간의 관계

   인공지능(AI)은 관심 있는 물체나 현상을 인식하고 추론-학습해서 상황에 알맞게 판단-행동하는 인간의 지능과 유사한 컴퓨터 SW를 만드는 기술이다. AI의 핵심 부분이라고 할 수 있는 추론-학습 영역은 1970년대까지는 문제 해결용 프로그램이나 규칙기반(rule-based) 시스템이 담당해 왔고, 1980년대 이후 머신러닝, 2010년대 이후 딥러닝 등으로 고도화되었다. 머신러닝은 AI의 한 분야이며, 딥러닝은 머신러닝의 여러 가지 기법 중 하나이다. 자료의 계산/집계나 가공을 위해 작성된 프로그램(예: 설계/제조자동화용 CAD/CAM SW, 국세청 연말정산 SW)은 컴퓨터 SW의 일종일 뿐, AI는 아니다. 마찬가지로, 여러 가지 투자/진단 규칙을 지식베이스에 축적해 놓고 실제 상황이 발생했을 때 적합한 투자/진단 조언을 해 주는 증권투자 전문가 시스 같은 것은 AI에 속하지만 머신러닝은 아니다. 머신러닝은 많은 데이터를 교재 삼아 컴퓨터를 학습시켜 두고 실제 문제/현상을 만났을 때 사람이 개입하지 않아도 컴퓨터 스스로 해결할 수 있게 만드는 기술이다. 머신러닝은 수집된 데이터와 훈련된 알고리즘(함수 또는 변환식)을 활용해서 주어진 문제를 해결하기 위한 것이고 데이터 마이닝은 수집된 데이터 속에서 과거에는 몰랐던 새로운 지식을 찾아내기 위한 것이라는 점에서 차이가 있다. 그러나, 두 기술은 통계학의 회귀분석(Regression Analysis), 군집분석(Cluster Analysis), 연결(또는 연관성)분석(Link Analysis) 등과 AI 영역의 사례기반 추론(Case-Based Reasoning), 인공신경망(Artificial Neural Network), 유전자 알고리즘(Genetic Algorithm) 등을 공통적으로 활용한다.


   회귀분석은 하나(또는 여러 개)의 독립변수와 종속변수 간의 관계를 함수로 표현해 놓고 새로운 독립변수 값이 주어졌을 때 그에 해당되는 종속변수 값을 예측하는 방식이다. 군집분석은 주어진 개체들을 속성에 따라 어느 그룹에 속하는지 판별, 분류하는 기법이다. 연결분석은 주어진 개체 간에 존재하는 연관성을 찾아내기 위한 기법이다. 사례기반 추론은 과거에 있었던 사례(case)를 바탕으로 새로이 등장한 사례의 결과를 예측하는 방식이다. 인공신경망은 사람의 신경망 즉, 뇌세포인 뉴런(neuron)과 뉴런을 연결하는 축색돌기(axon) 및 시냅스(synapse) 간의 상호작용을 흉내 낸 알고리즘을 가리킨다. 유전자 알고리즘은 생물의 진화과정(예: 적자생존과 유전법칙 등)을 모방한 알고리즘이다. 딥러닝은 머신러닝의 여러 가지 기법 중에서 인공신경망의 일종인 심층신경망(DNN: Deep Neural Network)을 활용하는 기법이다. 인공신경망 연구는 1958년 로젠블라트(Frank Rosenblatt)가 퍼셉트론(perceptron)이란 모델을 제시한 데서 비롯되었지만, 여러 가지 제약으로 인해 최근까지 실용화에 이르지는 못했다. 2006년 제프리 힌튼(Geoffrey Hinton) 교수가 딥러닝의 새로운 접근방법을 제시했고 이후 다양한 이론/기법이 개발됨에 따라 광범위한 문제에 활용되고 있다.  

    

머신러닝의 유형과 장/단점

   머신러닝은 주어진 문제를 풀 수 있도록 데이터를 활용해서 문제해결 모델(즉, 함수나 변환식을 구현한 알고리즘)을 훈련시키는 방식이다. 머신러닝 모델은, 사람도 그렇듯이, 훈련을 잘 시키면 문제를 잘 풀지만, 그러지 못했다면 문제를 잘 풀지 못한다. 문제해결 모델을 학습시키는 방법으로 지도학습, 비지도학습, 강화학습 등이 있다. 지도학습(supervised learning)이란 정답(: output)이 무엇인지 표시한 데이터(: input)를 학습시켜서 문제해결 모델(: process)을 만드는 방식이다. 예를 들면, 각각 고양이, 개, 비스킷 등의 레이블(즉, 정답)을 붙인 수천~수만 장의 사진을 입력해서 모델을 훈련시켜 놓고 새로운 사진을 입력하면 그것이 무엇인지 식별해 내도록 만드는 것이다. 반면, 비지도학습(unsupervised learning)은 정답이 무엇인지 알려 주지 않은 데이터를 활용해서 문제해결 모델을 만드는 방식이다. 지도학습은 분류(classification)나 예측(prediction) 작업에, 비지도학습은 군집(clustering) 작업에 주로 활용된다. 예를 들면, 은행이 수많은 고객 거래 데이터를 분석해서 이탈 가능성이 있는 고객인지 아닌지를 판별하는 것은 분류, 과거 수십 년 동안의 기상관측 결과와 실제 수집된 대기 환경 데이터를 활용해서 다음 날/달/해의 기상관측치를 제시하는 것은 예측 작업에 해당된다. 신제품을 판매할 시장의 소비자들을 특성의 유사성(또는 근접성)에 따라 몇 개의 그룹으로 나누는 것이 군집 작업이다. 분류/예측/군집 작업을 위해서는 작업의 목적과 활용되는 데이터의 특성(예: 이산형, 연속형)에 알맞은 알고리즘을 선정, 활용해야 한다. 분류 작업에는 통상 KNN(k-Nearest Neighbor), SVM(Support Vector Machine), Decision Tree(의사결정나무) 등이, 예측 작업에는 Regression(회귀)이, 군집 작업에는 K-Means Clustering, Hierarchical Clustering(계층형 군집) 등이 활용된다 (각 알고리즘의 구체적 내용은 전문자료를 참고 바람). 강화학습(reinforcement learning)은 위에 소개한 지도/비지도학습과는 달리 문제해결 모델-에이전트(agent)라고 함-로 하여금 환경을 관측해서 적절한 행동을 취하게 하고 그 결과에 따라 적절한 보상을 해주는 과정(즉, 시행착오 경험)을 반복하는 훈련방식이다. 강화학습에는 Markov Decision Process 알고리즘이 활용된다.


   머신러닝 기반 시스템은 문제의 특성에 알맞은 모델을 만들어 놓으면 그다음부터는 컴퓨터가 알아서 문제를 해결할 수 있기에 전통적 프로그램은 물론, 전문가 시스템 같은 규칙기반 시스템보다 효율적, 효과적이다. 전문가 시스템은 특정 영역의 전문가가 가진 지식을 획득/표현하기가 쉽지 않은 데다가 축적된 지식베이스만으로는 실제 문제를 해결할 수 없는 경우도 많다는 점에서 한계가 있었다. 머신러닝은 기업활동, 정부서비스, 개인생활 등 모든 인간활동에 적용될 수 있다. 기업 경우, 제조/서비스/농축산업 등 산업에 관계없이 전략 수립과 실행, 조달-생산-판매, 마케팅/유통/물류 등을 지능화하는데 쓰일 수 있다. 머신러닝은 실제로 각종 포털의 연관검색이나 검색어 자동완성, 음악/영화 콘텐츠 추천, 경찰의 범죄발생 지역/시간대 예측, 금융기관의 사기성 결제나 불량고객 식별, 광고 타겟 분석, 구인/구직 추천 또는 매칭, 보안시스템의 악성 공격/위협 탐지, 차량의 최적 이동경로 탐색, 불량 제품의 사전 식별, 장비/설비 고장 원인의 사후 진단 등에 적용되고 있다. 머신러닝은 상대적으로 적은 데이터만으로도 문제해결 모델을 훈련시켜서 활용할 수 있다는 것이 장점이지만, 고수준의 지능화를 구현하는 데는 한계가 있다. 머신러닝 중에서 지도학습은 데이터에 일일이 레이블을 붙여야 하므로 대량 데이터를 입력하기 어렵다는 것이 단점이다. 비지도학습은 레이블을 붙이는 수고를 할 필요는 없지만, 문제해결에 근접할 뿐이지 정답을 제공하지는 못한다.

     

딥러닝의 주요 개념과 발전과정

   딥러닝은 인공신경망의 일종인 심층신경망(DNN: Deep Neural Network)을 이용하는 기법을 가리킨다. 인공신경망 입력 데이터가 여러 개의 변환식을 거쳐서 목표값을 출력하도록 구성되어 있다. 초기의 인공신경망을 퍼셉트론(perceptron)이라고 하며 이것은 3 계층 즉 입력층(input layer), 은닉층(hidden layer), 출력층(output layer)이 연결된 네트워크이다. 즉, 각 계층은 여러 개의 노드(node, 즉, 인공 뉴런)를 포함하고 있고 노드와 노드는 링크(link, 즉, 인공 시냅스)로 연결되어 있다. 인간의 뇌가 새로운 지식을 학습할 때 뉴런과 뉴런을 잇는 시냅스 중 해당 영역이 활성화되는 것처럼 인공신경망에서는 노드와 노드 사이의 링크 중에서 유의미한 링크에 높은 가중치를 설정한다. 은닉층이 하나단순 페셉트론은 배타적 논리합 연산(‘XOR’)을 할 수 없는 제약이 있었다. 은닉층이 여러 개인 다계층 퍼셉트론(또는 심층신경망)은 입력 데이터를 분석-가공하는 능력은 커지지만, 목표값에 이를 때까지 따져봐야 하는 경로의 수가 많아지므로 학습시키기 어려워진다. 1974년, 당시 하버드대 박사과정 학생이었던 폴 웨어보스(Paul Werbos)가 다계층 퍼셉트론을 훈련시킬 수 있는 오류/오차 역전파(back propagation) 기법을 제안하였으나 주목받지 못했다. 이것은 네트워크의 순방향으로 링크의 가중치를 조절해 가면서 심층신경망을 훈련시킨 다음, 목표값과 실제값 사이에 차이가 있으면 역방향으로 링크의 가중치를 조절한 후, 다시 순방향으로 링크의 가중치를 조절하는 식의 훈련과정을 반복해서 오차가 최소 수준에 이르도록 다.

   1989년 얀 르쿤(Yann LeCun) 박사- 현재 페이스북 AI 연구소장-는 우편번호 인식 문제에 오류 역전파를 적용한 딥러닝을 처음 적용하였지만, 숫자 10개를 인식하는데 3일이 걸릴 정도로 느려서 그 이상 발전될 수 없었다. 또한, 딥러닝은 많은 양의 데이터로 오랜 시간 동안 훈련시키다 보면 비정상적인 데이터까지 모델에 반영되어 오히려 문제해결 능력을 떨어뜨리는 현상- 이를 ‘과적합(overfitting)이라고 함-이 나타난다. 한 마디로, 인공신경망 기반의 딥러닝은 실용화될 수 없는 이론적 모델이었으나 2006년, 힌튼 교수가 과적합 문제를 해결할 수 있는 모델을 개발함으로써 부활된 셈이다. 딥러닝이 확산될 수 있었던 이유로 ① 과적합 문제가 해결된 것 ② 모델을 훈련시키기에 충분한 수준의 빅데이터를 SNS나 각종 센서 등을 통해 확보할 수 있게된 것 ③ 병렬처리 컴퓨팅과 CPU의 수십 배 성능을 가진 GPU(Graphic Processing Unit)가 내장된 컴퓨터 HW가 등장한 것 등을 꼽을 수 있다.

   2010년 전후로 딥러닝을 위한 여러 가지 알고리즘이 계속 발전되었다. 예를 들면, 영상, 음성 인식 문제에 합성곱 신경망(CNN: Convolutional Neural Network), 필기체 인식에 순환 신경망(RNN: Recurrent Neural Network), 힌튼 교수가 과적합 해소에 적용했던 제한 볼츠만 머신(RBM: Restricted Boltzmann Machine), 훈련 데이터가 적을 때 선행학습을 시킬 수 있는 심층 신뢰 신경망(DBN: Deep Belief Network), 강화학습에 적용할 수 있는 심층 Q-네트워크(DQN: Deep Q-Networks) 등이 있다(위키백과 '딥러닝' 항목 참조). 딥러닝은 글씨/자연어/사진/동영상 인식, 번역, 그림/이미지 제작, 소리(sound) 재생/복원, 미술품 복제, 음악 작곡, 기사/논문 작성, 컴퓨터 게임, 인구 통계나 선거결과 예측, 자율주행, 로보틱스, 딥 드리밍(Deep Dreaming, 환각), 도청방지를 위한 암호제작 등에 활용되고 있다(참조: https://brunch.co.kr/@itschloe1/23 ‘딥러닝의 30가지 적용 사례’, 번역 월급쟁이, 원저 Yaron Hadad). 2016년 3월에 등장한 알파고 리는 강화학습을 적용한 딥러닝의 시작이었으며 이후, 2017년 10월 알파고 제로, 2017년 12월 알파 제로 등이 발표되었다. 알파고 제로는 수많은 기보를 상당 시간 동안 학습시켰던 알파고 리와 달리 바둑 규칙만을 학습시킨 버전으로 학습 시작 36시간 만에 알파고 리를 능가했다고 한다. 바둑을 의미하는 '고'를 뺀 알파 제로는 바둑 외에 체스, 쇼기 등 게임을 학습시킨 버전으로 일반 인공지능(AGI)의 가능성에 도전하고 있다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari