딥러닝을 통한 인공지능의 이해
딥러닝을 통한 인공지능의 이해
  • 곽수하 / 컴공 조교수
  • 승인 2019.02.28 17:59
  • 댓글 0
이 기사를 공유합니다

바야흐로 인공지능(Artificial Intelligence)의 시대다. 고도의 성능과 신뢰성으로 무장한 작금의 인공지능은 테슬라의 자율주행 자동차와 아마존의 인공지능 비서 등을 통해 도전적인 실제 환경에서도 만족스럽게 동작할 수 있음을 보였으며, 알파고와 IBM 왓슨을 통해 전문적이고 고차원적인 지식과 경험이 필요한 분야에도 인공지능이 진출할 수 있다는 것을 보였다. 이런 사례들이 세상에 소개된 지 얼마 되지 않아 이미 인공지능은 온갖 사물과 서비스에 탑재돼 우리의 삶과 문화를 변화시키고 있다. 또한 우주를 해석하는 도구로써 활용되기도 하고, 인간의 전유물이라고 여겨졌던 글이나 음악, 그림의 창작까지 가능한 수준으로 발전하고 있다.

이런 인공지능 발전의 한가운데에는 딥러닝(Deep Learning)이 있다. 관련 분야를 전공하는 입장에서도 딥러닝 이후 인공지능 열풍이 시작된 것이 다소 갑작스럽게 느껴지기에, 이 분야에 익숙하지 않은 사람들은 딥러닝을 이전에 없던 완벽하게 새로운 기술 혹은 이전의 인공지능과 전혀 다른 새로운 무언가로 여길 수도 있을 듯하다. 하지만 딥러닝이라는 용어는 이미 1980년대에 소개된 바 있으며 이를 위한 기초적인 이론은 1960년대에 소개됐을 정도로 상당히 긴 역사를 가진다. 그렇다면 딥러닝이 도대체 무엇이고 왜 지금에서야 주목을 받게 됐을까?

 

인공지능, 기계학습, 그리고 딥러닝

▲그림 1. 인공지능, 기계학습, 그리고 딥러닝의 관계
▲그림 1. 인공지능, 기계학습, 그리고 딥러닝의 관계

영국의 수학자 앨런 튜링이 1950년에 저술한 ‘계산 기계와 지능(Computing Machinery and Intelligence)’을 시발점으로 본다면 인공지능의 역사는 제법 길다고 할 수 있다. 딥러닝은 이런 긴 역사 동안 소개된 다양한 인공지능 방법론 중 하나다. 그림 1을 통해 좀 더 엄밀하게 이야기하자면, 인공지능의 한 부류로 기계학습(Machine Learning)이 있고 딥러닝은 기계학습의 일종이다. 따라서 딥러닝을 이야기하기 전에 기계학습이 무엇인지를 먼저 살펴봐야 한다.

기계학습이 인공지능의 한 부류라면, 기계학습이 아닌 인공지능도 있을 것이다. 그중 대표 격이 규칙 기반 인공지능(Rule-based AI)이다. 규칙 기반 인공지능은 사람이 직접 정의한 규칙들에 따라서 동작하는 알고리즘으로 생각할 수 있다. 아래의 그림 2의 예시를 살펴보거나 우리가 자주 접하는 ARS 시스템 등을 떠올려보면 쉽게 연상할 수 있을 것이다. 기계학습이 활성화되기 전에는 규칙 기반 인공지능 방법론에 따라 방대하고 정교한 규칙들을 축적하고 이에 기반을 둬 동작하는 알고리즘을 설계하는 데 노력을 쏟았다. 하지만 이런 인공지능은 지식과 규칙을 제공하기 위해 많은 노동력을 요구하고, 상황의 변화나 입력의 불안정성 때문에 발생하는 규칙 외의 상황들에 적절하게 대응하기 어렵다는 단점을 가진다.

▲그림 2. 게임을 위한 규칙 기반 인공지능의 예
▲그림 2. 게임을 위한 규칙 기반 인공지능의 예

이와 다르게 기계학습은 의사 결정을 위한 규칙을 사람으로부터 받지 않고 데이터로부터 학습하는 인공지능 방법론이다. 따라서 학습을 위한 데이터만 충분히 주어진다면 사람이 제공한 규칙들보다도 더 정교하고 신뢰할만한 추론이 가능한 모델을 얻을 수 있다. 기계학습을 매우 간단히 이야기하자면, 입력을 받으면 정답을 내놓는 함수를 설계하고, 이 함수가 제대로 동작하게 만드는 인자(Parameter)들의 값을 데이터로부터 추정하는 것이다. 그림 3은 이에 대한 간단한 예를 보여준다. 학습에 활용되는 입력과 정답의 쌍들은 학습 데이터 세트(Training Dataset)라 부르며 대부분의 경우 사람에 의해 직접 구축 및 제공된다. 또한 함수의 인자값은 함수의 출력과 정답의 차이를 최소화하는 방향으로 추정되며 그 과정은 보통 최적화(Optimization) 기법을 통해 구현된다. 

▲그림 3. 함수 형태의 인공지능 모델. (좌) 함수의 형태를 y = ax+b로 뒀을 때, 입력과 정답의 관계를 가장 올바르게 표현하는 인자값을 추정한다. (우) 입력 이미지에 사람이 있는지 판별하는 인공지능 모델도 간단히는 함수로 생각할 수 있다. 기계학습에서는 이와 같은 함수를 설계하고 그 인자값들을 입력과 정답 데이터로부터 추정함으로써 원하는 방식으로 동작하는 인공지능 모델을 학습한다.
▲그림 3. 함수 형태의 인공지능 모델. (좌) 함수의 형태를 y = ax+b로 뒀을 때, 입력과 정답의 관계를 가장 올바르게 표현하는 인자값을 추정한다. (우) 입력 이미지에 사람이 있는지 판별하는 인공지능 모델도 간단히는 함수로 생각할 수 있다. 기계학습에서는 이와 같은 함수를 설계하고 그 인자값들을 입력과 정답 데이터로부터 추정함으로써 원하는 방식으로 동작하는 인공지능 모델을 학습한다.

딥러닝 이전 시기의 기계학습 방법론들이 보이는 주요한 특징 두 가지는 △수학적으로 우아하고 간결하게 표현되는 함수로 모델을 설계하며 △그 과정에서 입력 정보가 어떻게 표현되는지는 고려하지 않는다는 것이다. 예를 들어 그림 3의 이미지 분류를 수행하는 함수는 입력이 어떤 이미지인지 전혀 고려하지 않고 다만 정해진 차원의 실수 벡터임을 가정한다. 따라서 이런 모델을 활용하기 위해서는 데이터를 적합한 형태의 실수 벡터로 변환시키는, 데이터의 표현 방식을 별도로 설계해야 한다. 그림 4는 이미지 데이터 표현 방식 중 물체 인식 분야에서 널리 사용되는 ‘Histogram of Oriented Gradient(HOG)’를 설명한다. 이런 데이터 표현 방식은 전문 연구자들에 의해 직접 설계되기 때문에 수제 데이터 표현 혹은 수제 특징(Hand-crafted Feature)이라고도 불린다.

▲그림 4. HOG는 입력 이미지에서 계산되는 윤곽선들의 방향성을 수치화하고, 이를 통해 이미지 전체에서 나타나는 형태 정보를 잡아내기 위해 설계됐다. 보통 이미지의 각 지엽적인 영역마다 윤곽선 방향의 분포도(Histogram)를 계산하고, 영역 당 분포도들을 하나의 실수 벡터로 이어붙여 이미지의 표현으로 사용한다.
▲그림 4. HOG는 입력 이미지에서 계산되는 윤곽선들의 방향성을 수치화하고, 이를 통해 이미지 전체에서 나타나는 형태 정보를 잡아내기 위해 설계됐다. 보통 이미지의 각 지엽적인 영역마다 윤곽선 방향의 분포도(Histogram)를 계산하고, 영역 당 분포도들을 하나의 실수 벡터로 이어붙여 이미지의 표현으로 사용한다.

딥러닝이 기존의 기계학습과 차별화되는 점은 △굉장히 복잡하고 거대한 함수를 모델로써 활용하고 △이런 모델이 ‘입력 데이터의 표현’과 ‘정답을 추론하는 과정’ 모두를 포괄한다는 것이다. 딥러닝은 깊은 신경망(Deep Neural Network) 모델에 기반을 두는 기계학습이라고 정의할 수 있다. 생물학적인 신경망으로부터 영감을 받아 설계된 깊은 신경망은 기존의 기계학습 모델들보다 훨씬 복잡한 구조와 방대한 수의 인자들을 갖는다. 그리고 깊은 신경망은 별도의 데이터 표현 기술을 필요로 하지 않고, 입력 데이터를 그대로 받아 바로 정답을 추론할 수 있다. 이는 깊은 신경망이 입력 데이터를 인식하기 쉬운 수치적 형태로 변환하는, 즉 데이터 표현 방식을 자체적으로 포함하고 있기 때문이다. 특히 깊은 신경망은 데이터 표현 방식까지도 인자화 (Parameterize)해 데이터로부터 학습하는데, 이를 표현 학습(Representation Learning)이라 부른다. 딥러닝 이전의 기계학습 모델들에서 데이터 표현 방식과 정답을 추론하는 모델이 독립적으로 개발됐던 것과 달리, 깊은 신경망의 표현 학습은 정답을 추론하는 데 직접적인 도움이 되는 방향으로 데이터의 표현 방식을 학습해 기존 기계학습 모델들보다 더 나은 성능에 도달하는 것을 가능케 한다. 

깊은 신경망의 구조

▲그림 5. 신경세포를 모방한 퍼셉트론의 구조. (가) 신경세포는 좌측 말단의 돌기들로부터 신호를 받아 가중치를 곱한 뒤 전체 가중 신호의 합이 역치를 넘어서면 우측 돌기들로 출력 신호를 내보낸다.(나) 신경세포의 역치 함수의 예. (다) 퍼셉트론은 신경세포와 비슷하게 입력 벡터 x=[x1,x2,…,xd]T를 받아 가중치 w=[w1,w2,…,wd ]T를 곱하고 역치와 비슷한 역할을 하는 활성함수(Activation Function)을 통과시킨다. (라) 퍼셉트론을 위한 활성함수들의 예.
▲그림 5. 신경세포를 모방한 퍼셉트론의 구조. (가) 신경세포는 좌측 말단의 돌기들로부터 신호를 받아 가중치를 곱한 뒤 전체 가중 신호의 합이 역치를 넘어서면 우측 돌기들로 출력 신호를 내보낸다.(나) 신경세포의 역치 함수의 예. (다) 퍼셉트론은 신경세포와 비슷하게 입력 벡터 x=[x1,x2,…,xd]T를 받아 가중치 w=[w1,w2,…,wd ]T를 곱하고 역치와 비슷한 역할을 하는 활성함수(Activation Function)을 통과시킨다. (라) 퍼셉트론을 위한 활성함수들의 예.

신경망을 구성하는 기본 단위를 퍼셉트론(Perceptron)이라 부르는데, 이는 신경세포(Neuron)를 모방하기 위한 수학적인 모델이다. 그림 5는 신경세포와의 비교를 통해 퍼셉트론이 어떻게 정의되는지를 설명한다. 단일 퍼셉트론 역시 입력을 받아서 정답을 내놓는 하나의 기계학습 모델로 활용할 수 있지만, 그 구조의 단순함 때문에 실세계의 복잡한 입력–정답 쌍들 사이의 관계를 표현하기에는 역부족이다. 이런 문제를 해결하기 위해 다수의 퍼셉트론으로 이루어진 계층(Layer)을 여러 개 쌓아놓은 구조의 신경망을 활용할 수 있는데, 이를 다층 퍼셉트론(Multi-layer Perceptron)이라 한다. 그림 6에서 설명하고 있듯이 다층 퍼셉트론은 입력 정보를 여러 퍼셉트론을 통해 비선형적(Non-linear)으로 변환시키는데, 이 변환된 정보를 입력에 대한 새로운 표현으로 간주할 수 있다. 이는 다층 퍼셉트론의 학습 과정을 통해 정답을 추론하는 마지막 계층과 데이터를 표현하는 그 이전의 계층들이 서로 도움이 되는 방향으로 함께 학습될 수 있음을 의미한다. 

▲그림 6. 다층 퍼셉트론의 예. 간결한 도식화를 위해 하나의 퍼셉트론은 입력과 출력, 그리고 그들을 잇는 화살표들로 표현되었다
▲그림 6. 다층 퍼셉트론의 예. 간결한 도식화를 위해 하나의 퍼셉트론은 입력과 출력, 그리고 그들을 잇는 화살표들로 표현되었다

다층 퍼셉트론은 가장 기본적인 깊은 신경망 구조 중 하나이며, 현재 사용되는 많은 깊은 신경망들은 퍼셉트론의 종류나 계층의 개수 등을 변화시킴으로써 다층 퍼셉트론을 확장한 모델들이라고 볼 수 있다.   

 

딥러닝의 성공 요인
딥러닝이 이전부터 존재했던 개념이지만 그다지 빛을 보지 못했던 이유로 크게 두 가지를 들 수 있다. 첫째는 과적합(Overfitting)이다. 과적합은 기계학습 모델이 학습 데이터 세트에서의 성능을 올리는데 지나치게 집중한 나머지, 학습 데이터와 조금이라도 다른 데이터가 입력됐을 때 제대로 동작하지 못하는 현상을 의미한다. 이런 현상은 학습해야 할 모델의 인자 수보다 학습 데이터의 양이 턱없이 적은 상황에서 쉽게 발생한다. 특히 깊은 신경망 모델의 수많은 인자를 제대로 학습할 만큼 충분히 큰 학습 데이터 세트가 예전에는 존재하지 않았기 때문에 딥러닝은 과적합 문제에서 자유롭기 어려웠다. 둘째는 막대한 계산 복잡도다. 깊은 신경망은 많은 양의 인자들을 포함하고 있기 때문에, 학습하거나 활용할 시 타 모델들 대비 대단히 긴 시간이 필요했다. 이 때문에 경제성이 떨어지고 유지보수와 개선이 어려워서 인공지능 연구자들의 관심을 받지 못했다.

최근 들어 딥러닝이 다시 빛을 보게 된 것은 위의 문제들에 대한 해결책들이 마련됐기 때문이다. 먼저 전과 달리 방대한 학습 데이터 세트들을 쉽게 얻을 수 있고 과적합을 완화하기 위한 다양한 기술들이 발표됐기 때문에, 과적합으로 발생하는 문제들에서 비교적 자유로워질 수 있었다. 또한 게임에서나 활용했던 GPU(Graphics Processing Unit)의 막대한 병렬계산능력을 깊은 신경망 학습에 활용함으로써 모델의 학습과 활용에 필요한 시간을 획기적으로 줄일 수 있게 됐다. 위와 같은 해결책들에 힘입어, 딥러닝은 2012년 대규모 영상분류 문제에서 기존의 기계학습 방법론으로는 도달할 수 없었던 높은 수준의 정확도를 보이면서 많은 연구자의 관심을 끌어모으기 시작했고 얼마 지나지 않아 인공지능의 대명사가 될 수 있었다. 

 

남아있는 문제들
딥러닝 기술이 나날이 발전하면서 성공적인 실세계의 응용 사례들을 다양하게 보여주고 있지만, 아직 해결해야 하는 문제들도 여럿 남아있다. 그중 하나는 정답이 부여된 학습 데이터의 부족이다. 요즘 같은 빅데이터 시대에는 학습에 사용될 입력 데이터를 다량 취득하는 데는 문제가 없으나, 데이터들에 정답을 부여하는 과정은 여전히 사람의 노동에 의존하는 경우가 많다. 특히 고차원적인 추론을 수행하는 인공지능을 학습하기 위해서는 그에 합당하게 복잡한 정답을 제공해야 하므로 정답을 부여하는 데 많은 노동력과 시간이 요구된다. 이런 이유로 정답이 부여된 학습 데이터가 부족한 경우가 종종 발생하는데, 이는 많은 학습 데이터를 요구하는 깊은 신경망에는 치명적일 수 있다. 위와 같은 문제를 해결하기 위한 다양한 연구들이 진행되고 있으며 △전이 학습(Transfer Learning) △약 지도 학습(Weakly Supervised Learning) △준 지도 학습(Semi-supervised Learning) △도메인 적응(Domain Adaptation) 등이 그 예다.

또 다른 중요한 문제 중 하나는 딥러닝 모델의 설명 가능성이다. 보통 깊은 신경망들의 복잡한 구조 때문에 이들이 내놓는 결과들이 어떤 이유로 도출됐는지를 파악하기가 쉽지 않은데, 의료 인공지능과 같은 분야에서는 이런 블랙박스 모델들을 사용하는 데 거부감이 들 수밖에 없다. 최근에는 이와 같은 문제를 해결하고자 설명이 가능한 딥러닝 모델에 대한 연구를 활발히 진행하고 있다.

이 외에도 △신경망의 구조나 학습을 위한 인자들까지도 스스로 학습하고 결정하는 메타 학습 △뛰어난 인식 성능을 유지하면서도 사용자의 개인정보를 보호하는 딥러닝 기술 △지금보다 더 빠르고 안정적인 신경망 학습을 위한 이론과 기술 등 다양한 문제들을 해결하기 위해 연구자들이 각고의 노력을 기울이고 있다.