KAIST 김진형 교수에게 듣는 AI 최강의 수업
 
지은이 : 김진형
출판사 : 매일경제신문사
출판일 : 2020년 11월




  • 인공지능은 각종 산업 영역에서 혁신을 촉진하고 생산성을 향상시키고 복잡한 문제를 해결하는 데 도움을 준다. 맥킨지는 인공지능이 세계 경제에 미치는 파급효과로 매년 1.2%씩 글로벌 GDP가 증가해 2030년쯤에는 글로벌 GDP에 연 13조 달러를 추가할 것으로 예상했다. 하지만 이런 거시적 이야기가 아닌 당장 우리가 맞게 될 변화는 무엇일까. 그리고 어떤 준비를 해야 할까. 일자리가 사라지고 또 생기고 그에 맞게 교육이 변화될 것이다. 더 나아가 우리의 삶도 긍정적으로 변화할 것이다. 법률이나 세무 조언 등을 더 쉽고 자세하게 받을 수 있다. 의학적 변화는 혁명에 가깝다. 두 발을 잃은 사람이 자유롭게 걸을 수 있게 되고, 자신의 병을 예측해서 선제적으로 예방을 할 수 있을 것이다. 이 책을 그러한 모든 것을 담아낸다. AI가 변화시킬 거시적 세계와 직접적인 우리 삶의 모습을 짚어보고 그 방향성을 제시한다.


    AI 최강의 수업


    인공지능이 변화시키는 우리의 삶, 우리의 세상

    인공지능이란 무엇인가

    지능이 필요한 업무를 기계에 시켜라

    교과서들을 보면, 첫 페이지에서 인공지능을 ‘지능이 필요한 업무를 기계에 시키고자 하는 노력, 기술’이라고 정의한다. 이 정의를 좀 더 구체화하려면 여기서 말하는 ‘지능이 필요로 하는 업무’란 무엇인가를 먼저 명확히 해야 할 것이다.


    엄밀한 의미에서 사람이 수행하는 데 지능이 필요치 않은 일이란 없다. 단순히 두 발로 걷는 일조차 상상할 수 없을 정도의 복잡한 지능이 필요하다. 이는 많은 고등동물 중 인간만이 두 발로 서서 다닌다는 사실에서 유추할 수 있다. 더구나 인간을 인간답게 하는 언어구사 능력, 물체식별 능력, 문제 해결 능력, 논리적 추론과 학습 능력 등에 고도의 지능이 필요하다는 것은 의심의 여지가 없다. 인공지능은 이와 같은 업무를 기계에 시키고자 하는 학문이자 기술이다. 즉 기계로 하여금 보고, 듣고, 언어를 사용하여 소통하며, 필요한 정보를 획득하고, 문제를 해결하기 위하여 의사결정을 하며, 계획을 수립하고, 추론을 거쳐 상황을 파악하고, 새로운 사실을 배우고, 알고 있던 지식을 수정·보완하여 성능을 스스로 개선할 수 있는 능력을 갖게 하고자 하는 것이다.


    문제 해결의 범용 도구로써 인공지능

    인공지능의 기술은 크게 보면 네 가지로 분류할 수 있다. 첫째는 컴퓨터로 하여금 보고, 듣고, 언어를 사용하여 소통하게 하는 인지 기술, 둘째는 판단하여 의사결정하며, 계획을 수립하여 문제를 해결하는 기술, 셋째는 지식을 이용하여 추론하는 기술, 넷째는 데이터로부터 배우는 기술이다. 지난 70년 동안 인공지능 영역에서는 이런 요소 기술을 거의 독립적으로 연구하고 구현했다. 현재는 이런 요소 기술을 종합한 인공지능이 지능적 업무를 자동화하고, 고난도의 문제를 해결하며, 사람과 같은 상호작용을 하는 정보 시스템을 만들려고 시도한다. 그런 의미에서 인공지능은 정보 시스템을 만드는 기술이다. 다양한 영역에서 다양한 문제를 해결하려고 인공지능을 이용한다. 인공지능 기술의 큰 가치가 범용 기술이라는 데 있다.


    인공지능이 각광을 받자 요즘은 대부분의 신제품과 서비스를 인공지능이라고 주장한다. 센서에 반응하는 시스템은 물론이고 겉보기에는 전통적인 정보 시스템 같은데도 이를 인공지능 시스템이라고 홍보하기도 한다. 인공지능을 이용했다고 홍보하는 것이 비즈니스를 위하여 도움이 되기 때문일 것이다. 가끔 특정 제품이 인공지능이냐 아니냐로 경쟁회사 간에 논란이 있기도 했다. 1980년대는 세탁기와 선풍기의 기능이 인공지능이냐는 논쟁이 있었다. 인공지능의 정의 자체가 ‘지능을 필요로 하는 업무를 컴퓨터에게 시키고자 하는 노력’이라고 광범위하게 되어 있으니 구현된 지능의 수준이 단순하다고 기업들의 주장을 나무랄 수도 없다.


    상식적으로 판단하면 다음과 같은 요소가 포함된 정보 시스템을 인공지능 시스템이라고 분류하는 데는 무리가 없을 것이다.


    - 인지 기능을 갖춘 시스템: 영상, 음성 등의 신호를 분석 및 처리하여 물체나 사건을 탐색하거나 인식한다.

    - 자연어로 소통하는 시스템: 대화형 인터페이스, 번역, 문장 이해 능력을 활용한다.

    - 의사결정과 행동을 자동으로 수행하는 시스템 : 행위의 자동화 및 최적화를 도모한다.

    - 알려지지 않은 값이나 미래 사건을 예측하는 시스템: 고장 예측, 비정상 탐지가 가능하다.

    - 기계 학습을 하거나 그 학습 결과를 사용하는 시스템: 데이터 분석, 기계 학습, 딥러닝을 사용하여 판단 기능을 구현한다.

    - 위와 같은 시스템 개발에 도움을 주는 시스템: 개발 환경, 도구, 플랫폼, API 등을 포함한다



    사람보다 똑똑한 인공지능을 위한 기술

    사람처럼 vs 합리성 추구

    사람처럼 vs 합리성 추구

    인공지능 개발 방법론의 연구에서는 두 학파가 있다. 하나는 사람처럼 생각하고 행동하도록 만들자는 학파다. 이를 ‘사람처럼’ 학파라고 하자. 다른 학파는 사람이 어떻게 하는가에 연연하지 말고 합리적으로 생각하고 행동하도록 만들자는 학파다. 이를 ‘합리성’ 학파라고 하자.


    사람처럼

    사람처럼 행동하는 인공지능을 만들려는 시도는 튜링 테스트의 영향을 크게 받았다. 사람을 흉내 내는 기계를 만드는 것이 지능 기계를 만드는 것이라고 생각한 초기 연구자들이 대부분 이런 철학으로 연구에 임했다. 자연스럽게 이들의 연구 주제는 사람이 사용하는 자연어로 소통하는 기계, 시각 장치로 물체를 인식하는 컴퓨터, 문제 해결을 위한 계획을 스스로 세워서 수행하는 로봇 등에 집중되었다. 사람을 흉내 내는 기계를 만들면 그 기계로 여러 가지 문제를 사람처럼 해결할 수 있을 것이라고 생각했다.


    이 학파의 외골수 학자들은 겉으로 나타나는 행동은 물론이고 생각하는 방식도 사람과 같아야 제대로 된 지능 기계를 만들 수 있다고 생각한다. 아직도 사람의 지적 능력이 기계보다 월등하게 좋기 때문에 인공지능의 작동 기재도 사람의 두뇌작용을 흉내 내고자 하는 시도가 자연스럽다. 이들은 인간의 인지 기능과 마음을 연구하는 심리학이나 신경과학에서의 과학적 발견을 이용해서 인지작용의 계산 모델을 만들고자 노력한다. 궁극적으로 뇌를 복제하거나 기능을 모의하고자 하는 것이다. 이들은 인간지능을 잘 이해하면 인공지능도 쉽게 만들 수 있다고 생각한다. 그래서 계산 기법을 이용하여 인간지능을 더 잘 이해하는 것을 단기적 목적으로 한다.


    합리성 추구

    합리적으로 행동하는 인공지능을 만들자는 주장은 사람을 흉내 내는 인공지능에 대한 반작용이다. 사람이 어떻게 하는가에 연연하지 말고 합리적으로 행동하는 에이전트를 만들자는 것이다. 여기서 합리적인 행동이란 여러 행동 중에서 동의할 수 있는 원칙에 따라 선택된 행동이다. 원칙에 동의하면 최적의 합리적 행동은 수학적으로 구할 수 있다. 많이 쓰이는 합리성 원칙으로 기대치 최대화 원칙이 있다.


    합리적 에이전트는 가용한 정보를 이용하여 세상의 모델을 만들고, 합리성 원칙에 따라서 최적화된 행동을 찾는다. 외부 상황에 대한 불확실성을 감소할 목적으로 센서를 이용하여 정보를 획득하는 노력도 한다. 자원이 제한된 경우에는 그 상황에서 최선책을 찾는 제한된 합리성을 목표로 둔다. 합리적으로 행동하는 지능형 에이전트를 만들자는 노력은 목표지향적으로 문제를 해결하는 엔지니어들이 선호한다.


    목표를 달성하는 문제 해결 기법

    인공지능 교과서에서 본격적인 기술 소개는 항상 문제 해결(Problem Solving) 기법으로부터 시작된다. 우리의 일상 대화에서 ‘문제 해결’이란 단어를 장애나 고난을 극복한다는 의미로 사용하지만 인공지능 영역에서는 목표를 달성하는 방법이란 의미로 사용된다. 자주 사용되는 문제 해결 기법으로는 탐색기법이 있다. 에이전트가 처한 상황에서 취할 수 있는 행동을 찾는 기법이다. 탐색기법의 성능이 에이전트의 지능 수준을 결정한다. 좋은 탐색기법을 갖춘 에이전트는 더 지능적인 행동을 더 빠르게 찾을 수 있다.


    계획 세우기

    계획 세우기는 목표를 달성하는 여러 가능한 행동 중에서 에이전트가 어느 행동을 선택해야 목표에 도달할 수 있는가를 찾아내는 기술이다. 하나의 행동으로 목표에 도달할 수 없을 때가 대부분이기 때문에 여러 행동을 순차적으로 수행하여 목표에 도달해야 한다. 즉 행동의 계획을 세우는 것이다. 목표에 도달하는 데에는 여러 경로가 있을 수 있다. 이 중에서 주어진 평가 기준에 의하여 최적의 경로를 찾는다. 내비게이션으로부터 길 안내를 받을 때 최단 거리, 최소 시간, 무료 주행 등 다양한 평가기준을 선택할 수 있는 것과 같다. 계획 수립 후에 행동하는 에이전트는 이런저런 행동을 무작위로 해보는 것보다는 합리적으로 문제를 해결할 수 있다.


    외부 환경의 상황을 상태(State)라고 한다. 한 상태에서 다른 상태로 이동하려면 행동(Action)을 취해야 한다. 행동에는 비용이 소요된다. 목표에 도달하기 위한 순차적 행동을 탐색하는 것이 우리의 목표다. 복잡한 현실의 문제를 탐색의 문제로 표현하기 위해 적절한 가정을 도입해 단순화하는 것이 일상적이다. 한 상태에서 도달할 다음 상태가 모두 관찰 가능하다거나, 행동에 소요되는 비용이 모두 알려졌다거나, 행동을 취하면 다음 상태에 도달하는 데 불확실성이 없다는 등의 가정을 도입한다. 어떠한 가정을 도입했는가에 따라서 탐색 방법이 다르고 복잡도가 천차만별이다.


    정상에 가려면 언덕 오르기를 반복해야

    탐색 공간이 매우 복잡해 계산적으로 최적화하기 어려운 문제는 단지 국지적 정보만 갖고 문제 해결을 시도해야 한다. 현재 상황에서 취할 수 있는 행동의 효과만을 고려할 뿐이다. 이러한 행동 선택을 반복함으로써 목적함수의 값을 최적화하는 위치에 도달하기를 기대한다. 이러한 탐색 결과가 전역적 차원에서 최적임을 보장할 수는 없다. 그럼에도 국지적 탐색 기법은 계산적으로 어려운 최적화 문제를 해결하기 위한 접근법으로 각광받고 있다. 인공 신경망의 학습 알고리즘도 이런 탐색 기법을 기반으로 한다.


    국지적 탐색 알고리즘은 간단하다. 현 위치에서 목적함수의 값이 가장 많이 증가하는 이웃으로 한 발자국 이동하는 것이다. 이를 반복한다. 이런 탐색법을 언덕 오르기(Hill-Climbing) 알고리즘이라고 한다. 연속 공간상에서는 급경사탐색법, 또는 경사하강법(Gradient Descent)이라고 한다. 오르기를 할 것인가 내려가기를 할 것인가는 목적함수의 성격에 달렸다. 목적함수의 최소점을 찾으려면 내려가기를 해야 하고, 목적함수의 최대점을 찾으려면 오르기를 해야 할 것이다. 오류 자승의 평균치(MSE, Mean Squred Error)를 목적함수로 놓는 기계 학습의 문제에서는 MSE의 최소점을 찾아야 한다. 필요하다면 목적함수에 -1을 곱하여 최소점을 찾는 문제를 최고점을 찾는 문제로 변환할 수 있다. 여기에서는 최고점을 찾는 것으로 급경사탐색법을 설명을 하고자 한다.


    이 알고리즘은 안개가 자욱하여 앞을 내다볼 수 없는 산속에서 정상을 찾아가는 방법으로 유추할 수 있다. 전체 지형을 볼 수 없기 때문에 정상에 도달하는 길을 알 수 없다. 이때 시도해볼 수 있는 유일한 방법은 경사가 가장 가파른 방향으로 한 발자국 올라가 보는 것이다. 이를 반복하면 정상에 도달한다. 도달한 곳이 최정상이 아니라 지역의 작은 봉우리(Local Maximum)일 수도 있다. 또 넓은 평지에서는 방향을 잃을 수도 있다. 이런 실패 가능성을 최소화하기 위해 가던 방향의 관성을 유지하여 작은 계곡을 뛰어넘게 하거나 보폭을 조정하는 등 다양한 아이디어가 사용된다. 또 여러 곳을 출발점으로 놓고 시도한 후에 결과가 가장 좋은 곳을 선택하기도 한다.


    스스로 배우는 기계 학습

    기계 학습이란?

    일반적으로 학습이라는 단어가 갖는 의미는 경험을 쌓음으로써 행동의 양태가 변화하고 발전하는 것이다. 인공지능에서 이야기하는 기계 학습(Machine Learning)은 ‘성능이 향상되는 컴퓨터 알고리즘에 관한 연구’를 총칭한다. 기계 학습 능력을 가진 컴퓨터는 개발자가 명시적으로 프로그래밍하지 않아도, 외부 환경의 관찰과 경험으로 스스로 능력을 향상시킨다.


    모델과 모델링, 기계 학습과의 관계

    모델은 현실 세계의 사물이나 사건의 본질적인 구조를 나타내는 모형이다. 현실 세계의 복잡한 현상을 추상화하고 단순화하여 모델로 표현한다. 물리적 표현일 수도 있고, 자연어 문장, 컴퓨터 프로그램, 수학 방정식처럼 기호적일 수도 있다. 모델을 만드는 작업을 모델링이라고 한다. 모델을 이용하여 관계자끼리 소통하거나, 수학 계산을 적용하여 해결책을 도출한다. 그렇게 하기 위하여 문제 풀이에 필요한 것만 추상적으로 표현하고, 적절한 수준으로 단순화시키는 것이 필요하다. 단순화를 적게 하면 복잡해서 수학적으로 해결할 수가 없게 되고, 반대로 지나치게 단순화시키면 해결한 문제가 현실과는 동떨어진 것이라서 효용성이 없다. 따라서 가급적 현실을 제대로 표현하면서도 문제 해결이 가능하도록 복잡도를 낮추는 것이 필요하다.


    기계 학습이란 훈련데이터집합을 잘 표현하는 모델을 만드는 작업이다. 즉, 모델의 틀을 설정하고 훈련데이터집합을 잘 표현하는 파라미터(매개변수)값을 구하는 작업이다. 기계 학습에서 특히 관심 있는 것은 입력과 출력 간 함수 관계의 모델이다. 전통적인 기계 학습 기법에서는 모델의 틀로써 수식을 주로 사용했다. 선형 함수 또는 간단한 비선형함수가 많이 쓰였다. 수식 모델은 독립변수 종속변수, 파라미터 등으로 구성된 방정식이 일반적이다. 확률적인 현상을 모델링할 때는 확률함수를 사용한다.


    지도 학습

    지도 학습(Supervised Learning)은 입력과 출력 간의 관계를 학습하는 데 사용된다. 입력과 그에 해당하는 출력이 쌍으로 주어진 훈련 데이터집합에서 입력과 출력 간의 함수관계를 배운다. 이렇게 얻어진 함수를 모델이라고 한다. 모델은 새로운 입력에 해당하는 출력을 예측하는 데 사용한다. 지도 학습으로 수행하는 대표적 문제는 패턴 분류와 회귀분석이다.


    패턴 분류 문제

    패턴 분류(Pattern Classification) 문제에서 입력은 패턴의 표현이고 출력은 라벨, 즉 패턴 범주의 명칭이다. 개와 고양이 사진을 구분하는 문제를 생각해보자. 정확하게 개, 혹은 고양이라고 라벨이 주어진 사진의 데이터집합이 훈련에 사용된다고 가정하자. 이 데이터 집합으로 개와 고양이의 모양을 구분하는 알고리즘을 만드는 것이 기계 학습의 목적이다.


    전통적인 패턴 분류 기계 학습 방법론에서는 시스템 개발자가 분류에 사용할 특성을 지정해주었다. 그러면 기계 학습 알고리즘이 훈련 데이터를 이용하여 범주를 나누는 특성의 경계값을 찾았다.


    인공 신경망에서는 패턴 분류에 사용할 특성과 그 경계값을 학습 알고리즘이 스스로 찾는다. 그런 의미에서 인공 신경망 학습은 패턴 분류 알고리즘을 시작부터 끝까지 자동으로 만드는 능력이 있다고 할 수 있다. 이런 능력이 인공 신경망 기법의 가장 두드러진 장점이라고 할 수 있다.


    아마도 그림의 예제로 훈련시킨 인공 신경망은 개와 고양이를 분류하는 데 있어서 귀 끝 방향을 특성으로 보았을 것이다. 훈련데이터를 자세히 보면 고양이는 귀가 서 있지만, 개는 귀가 아래로 처져 있다. 그 특성은 인공 신경망이 학습과정에서 스스로 찾아내어 분류하는 데 사용했을 것이다.


    회귀분석 문제

    회귀분석(Regression Analysis)은 입력과 출력이 연속형 숫자로 주어졌을 때 이들의 함수관계를 학습하는 문제다. 지도 학습으로 훈련시켜서 모델을 구축하면 이를 이용하여 새로운 입력에 해당하는 출력값을 추론할 수 있다. 시간에 따라 변화하는 시계열 데이터로 미래를 예측하는 것도 가능하다.


    회귀분석에서는 모델의 틀을 직선, 다항식 곡선, 로지스틱 곡선, 평면, 곡면 등으로 설정할 수 있다. 파라미터 수가 많은 복잡한 함수를 설정할수록 복잡한 데이터 특성의 표현이 가능하지만 계산 복잡도는 높아진다. 가장 간단한 회귀분석 문제는 데이터집합을 잘 나타내는 직선을 찾는 것인데, 선형 회귀분석이라고 한다. 0으로부터 점진적으로 커져서 1에 접근하는 S자 모양의 로지스틱 곡선을 모델의 틀로 사용하는 것을 로지스틱 회귀분석이라고 하는데 이는 입력값에 해당하는 확률을 구하는 데 사용할 수 있다.


    기계 학습의 작업 과정

    기계 학습을 한다는 것은 기계 학습 알고리즘을 사용하여 훈련데이터집합을 잘 표현하는 모델을 구하는 것이다. 학습과정의 핵심은 모델의 틀을 미리 설정한 후에 최적의 파라미터값을 구하는 것이다. 기계 학습의 작업과정은 그림과 같다. 훈련데이터 준비가 처음 해야 할 작업이다. 훈련데이터 수집은 많은 노력이 소요된다. 특히 지도 학습을 위한 데이터는 라벨을 모두 붙여야 하기 때문에 많은 수작업이 필요하다.


    해결하고자 하는 문제의 유형에 따라 적절한 기계 학습 알고리즘을 선택해야 한다. 알고리즘에 따라 학습 결과의 성능과 요구되는 계산량의 차이가 많다. 따라서 알고리즘의 본질과 장단점을 잘 이해하는 것이 중요하다. 간단한 패턴 분류를 위해서는 전통적인 의사결정나무 기법과 선형 경계선 분석 알고리즘 등으로 충분할 수도 있다. 군집화를 위해서는 K-평균 알고리즘이나 계층적 군집화 방법 등을 단순한 거리 개념과 같이 사용할 수 있다. 이 방법들은 대부분 통계적 추론 기법으로 오래전부터 잘 알려진 알고리즘들이다. 인공 신경망 기법은 최근 딥러닝 기법이 알려짐에 따라 다시 각광받고 있는 강력한 방법론이다. 인공 신경망 알고리즘은 지도 학습, 비지도 학습, 강화 학습 등에 모두 사용할 수 있다. 다양한 문제에 적용할 수 있는 매우 일반적인 방법론이다. 다양한 망구조에 따라 기능과 성능이 다르기 때문에 깊은 이해와 개발 경험에 의한 통찰력이 필요하다. 공개 소프트웨어로 만들어진 개발 도구들을 사용할 수 있는 이점도 크다. 이 방법론은 뒤에서 자세히 다룰 것이다.


    학습 알고리즘을 결정했으면 모델의 틀을 결정해야 한다. 모델의 틀은 학습 알고리즘을 정하고 나면 선택의 여지가 좁혀진다. 전통적인 방법에서는 패턴 분류의 경계선 형태는 어떤 것으로 할 것인가, 회귀분석에서는 선형으로 혹은 2차 다항식으로 할 것인가 등을 결정한다. 인공 신경망 기법을 사용하겠다고 결정했으면 망구조를 결정해야 한다. 입출력층의 노드 개수는 문제의 성격이 결정해주겠지만 은닉층의 구조는 선택의 여지가 많다. 순환 경로를 둘 것인지, 계층적으로 구성할 것인지 등 망구조가 인공 신경망의 기능과 성능을 결정한다. 데이터의 양에 따라 연결선, 즉 망의 파라미터 수를 제한하는 것이 바람직할 수도 있다. 그래야 새로운 입력에 잘 작동한다. 이런 문제를 일반화 문제라고 하는데 다음 장에서 다룰 것이다.


    모델의 틀, 즉 구조가 결정되면 최적의 파라미터를 탐색하는 작업을 수행한다. 이 작업이 바로 최적의 모델을 선정하는 작업이다. 이 과정은 컴퓨터가 수행한다. 많은 컴퓨팅 자원이 소요된다. 훈련의 속도와 성능을 결정하는 여러 가지 하이퍼파라미터가 있는 데 그 하이퍼파라미터의 성격을 잘 이해하고 결정해야 한다. 이것저것 시도해보고 결정하는 것이 일반적이다.


    학습의 결과인 모델의 성능을 평가하는 것이 마지막 작업이다. 평가의 핵심은 새로운 데이터에 얼마나 잘 작동하는가를 보는 것이다. 그래서 훈련데이터와는 별도로 평가용 데이터집합을 준비한다. 평가에서 부족함이 발견되면 모델의 틀을 변경하거나 하이퍼파라미터값을 변경해 가면서 좋은 모델 찾기를 반복한다.


    학습 잘하는 딥러닝의 등장

    용어에 대해 몇 가지 짚어보고 가자. 여러 층으로 구성된 신경망을 전통적으로 고층 신경망 혹은 다층 신경망이라고 지칭했다. 요즘 연구자들은 이를 심층 신경망(Deep Neural Network)이라고도 한다. 학습 알고리즘은 기본적으로 오류역전파 알고리즘을 사용하는데, 고층 신경망 학습을 위한 시도를 딥러닝이라고 부른다. 일부 연구자들은 심지어 인공 신경망 연구의 모든 분야를 딥러닝이라고 부르기도 한다. 어떤 용어를 사용하든 본질은 같은 것이다. 이 책에서는 고층 신경망과 심층 신경망을 혼용하고 있다.


    딥러닝은 오류역전파 알고리즘으로 학습을 수행하는데, 난관을 극복하기 위한 여러 아이디어, 즉 묘수의 집합이라고 할 수 있다. 이 묘수 덕분에 심층 신경망을 학습시킬 수 있게 되었다. 묘수들은 몇 개의 범주로 나눠볼 수 있다. 첫째 은닉 노드의 가중치 수정을 가속하는 방법, 둘째 급경사탐색의 좋은 시작점을 선정하는 방법, 셋째 일반화 능력을 떨어뜨리는 과적합을 막기 위한 조치, 넷째 도메인 특성을 감안한 망구조의 설계 기법이다.


    그러나 딥러닝을 가능하게 한 일등공신은 강력한 컴퓨팅 능력과 빅데이터다. 더 빠르고 강력한 계산 자원은 더 큰 심층 신경망의 구현과 실험을 가능하게 했다. 컴퓨터 두뇌에 해당하는 것이 CPU(Central Processing Unit)다. 다양한 형태의 계산을 수행하는 컴퓨터의 핵심 전자회로다. 그러나 반복적인 단순 계산은 보조적 전자회로인 GPU(Graphical Processing Unit)를 이용한다. GPU는 여러 개의 계산 소자(Processing Unit)를 병렬적으로 연결하여 계산 속도가 빠르다. 원래 GPU는 컴퓨터 그래픽 생성작업을 신속하게 하기 위하여 개발되었다. GPU가 연결선의 가중치를 급경사탐색법으로 수정하는 단순한 계산이 여러 번 반복되는 인공 신경망의 학습, 특히 딥러닝에서 큰 역할을 하고 있다. GPU의 사용으로 며칠이 걸리던 학습이 몇 분만에 가능해졌다. 이런 계산 능력에 더해 인터넷을 통해서 얻고 나눌 수 있는 많은 데이터는 더 깊은 심층 신경망 구조와 도전적인 실험을 가능하게 했다.


    2014년 페이스북은 딥러닝을 활용해 안면인식 시스템을 만들었다. 이는 9층 신경망이며, 1억 2,000만 개의 연결을 갖고 있다. 4,000명의 사진 400만 개로 훈련시켰는데 인간 수준의 능력인 97.35%의 인식률을 보였다.


    이러한 성공 사례에도 불구하고 딥러닝 학습에는 아직 많은 문제가 남아 있다. 딥러닝 훈련방법은 블랙박스와 같다. 훈련에 사용되는 여러 아이디어들은 이론적으로 보장되는 것이 아니다. 실증적으로 확인되는 경우가 대부분이다. 묘수라고 생각했던 것들이 항상 잘 먹히는 것도 아니다. 데이터 성격, 형태, 망구조 등에 따라서 작동하기도 하고 그렇지 않기도 한다. 이는 곧 학습 성공과 실패로 이어진다. 또 학습 알고리즘을 조정하는 오류값 수정의 보폭, 관성의 비중, 초기화 방법 등 여러 가지 하이퍼파라미터값의 설정이 필요하다. 하이퍼파라미터값의 설정에 따라서 훈련의 성패와 속도가 결정된다. 경험에 의존하여 하이퍼파라미터값들을 설정하지만, 그 설정이 어떤 영향을 미치는지에 대하여는 아직 제대로 이해하지 못한다. 그래서 심층 신경망 훈련에는 많은 경험에 의한 통찰력이 요구된다.


    딥러닝에서 많이 쓰이는 신경망 몇 가지

    순환 신경망

    순환 신경망(RNN, Recurrent Neural Network)은 한 노드의 출력이 다시 입력으로 들어오는 순환경로가 존재하는 신경망을 말한다. 이런 망구조로는 시간적 행동 양태를 표현할 수 있다. 내부에 기억장치를 갖추면 RNN도 길이가 일정하지 않은 연속적인 입력을 처리할 수 있다. LSTM이라는 RNN 구조는 각 노드에서 입력 게이트, 출력 게이트, 망각 게이트라는 3개의 관문을 조정하여 임의의 시간 간격에 걸쳐 값을 기억하며 노드로 들어오고 나가는 정보의 흐름을 조절한다. 이 메커니즘으로 평범한 RNN에서 자주 발생하는 기울기 소멸 문제를 해결할 수 있다. LSTM은 시계열 데이터를 기반으로 한 분류와 예측에 적합하다. 연속적으로 말하고 있는 음성의 인식, 연결된 필기의 인식, 단어들이 계속되는 문장의 이해, 행동인식 등 시간에 따른 정보 패턴을 파악하는 문제에서 좋은 성과를 내고 있다.


    생성망(Generative Network)

    신경망을 데이터 분류만이 아니라 데이터 생성의 목적으로 사용할 수 있다. 순차적으로 생성되는 데이터가 원하는 특성 분포를 나타내도록 훈련할 수 있다. 어떤 확률 분포를 갖는 입력 데이터가 순차적으로 입력될 때 다른 확률 분포를 갖는 데이터가 순차적으로 출력되도록 학습할 수 있다. 즉, 신경망이 입력 분포를 다른 분포로 바꾸는 함수 역할을 하는 것이다. 앞에서 보았던 오토엔코더 계열의 신경망들을 생성 모델로 사용할 수 있다.


    * * *


    본 도서 정보는 우수 도서 홍보를 위해 저작권자로부터 정식인가를 얻어 도서의 내용 일부를 발췌 요약한 것으로, 저작권법에 의하여 저작권자의 정식인가 없이 무단전재, 무단복제 및 전송을 할 수 없으며, 원본 도서의 모든 출판권과 전송권은 저작권자에게 있음을 알려드립니다.