2016년 1월 23일 토요일

인공지능의 과거와 현재, 그리고 미래 (하)



* 이 글은 "인공지능의 과거와 현재, 그리고 미래 (상)"에서 이어집니다.


현재 기술 사회의 가장 핫한 이슈, 기계학습 

기계학습이란 경험(experience)을 통해 특정 작업(task)의 성능(performance)을 향상시키는 방법을 말한다. 이는 몇가지 특정한 사건들보다 다수의 사건에 대한 경험을 통해 그들의 추세(패턴)를 학습, 이를 기반으로 판단을 내린다는 점에서 “패턴인식(Pattern Recognition)”이라고도 불리는데, 전통적인 통계학을 기반으로 한 인공지능의 새로운 패러다임이라고 할 수 있다. 

기계학습 이전의 고전 인공지능은 다양한 상황들에 대해 인간이 정해준 규칙에 의해 따라 판단하는 논리 기계와 유사했다고 볼 수 있었다. 하지만 세상 일은 워낙 다양한 요인들에 의해 발생하고 또 일반적인 규칙으로는 설명할 수 없는 예외상황들도 종종 발생하다 보니 실제 문제의 적용에 있어서 고전 인공지능은 무한한 케이스들에 대한 끝없는 수정과 보완을 필요로 했었다. 그럼에도 불구하고 우리는 무한한 케이스들 모두를 대응할 수 없기에 기존의 인공지능은 단순한 문제에만 적용 가능한 불완전한 인공지능일 수 밖에 없었다.

간단한 기계학습 문제 중 하나. 만약에 데이터가 선형모델을 따른다고 가정한다면, 우리는 주어진 문제를 직선의 파라메터 a, b를 찾는 문제로 치환할 수 있을 것이다. 이를 통해 우리는 새로운 질문(예를 들면 ‘키 180cm인 사람의 몸무게는 몇 kg일까?”)에 대해 답을 예측할 수 있다.

하지만 기계학습은 인간의 사전 지식(prior knowledge)에 의존하기보다는 데이터 그 자체에서 의미있는 판단들을 뽑아내는데 중점을 둔다. 예를 들어 위의 그림과 같이 키와 몸무게의 상관관계에 대한 데이터를 얻었다고 하자. 그렇다면 우리는 이 데이터들을 가장 잘 표현하는 추세선(fitting curve)을 얻은 뒤, 이 추세선을 기반으로 새로운 질문에 대해 답을 할 수 있을 것이다. 예를 들면 “키가 180cm인 사람의 몸무게는 얼마인가?”란 질문에 대해 “80kg”이라고 대답하 듯 말이다. 물론 키가 180cm인 사람이 모두 몸무게가 80kg인 것은 아니겠지만, 인공지능은 이 질문에 대해 가장 높은 확률을 가진 답이 80kg이라고 이야기하는 것이며, 이와 함께 다른 몸무게를 가질 가능성이 있는 확률분포(probabilistic distribution)를 제공하기도 한다. 이처럼 기계학습은 기존 데이터의 패턴을 기반으로 새로운 질문에 답을 하는 알고리즘인데, 그 성능은 데이터의 양과 질에 크게 의존하기에 무엇보다 예측에 필요한 양질의 데이터를 수집하는 것이 중요하다. 이것이 바로 구글과 같은 기업이 사용자 데이터 수집에 사활을 걸고 있는 이유이기도 하다. 

보통 기계학습은 주어진 훈련데이터를 가지고 데이터의 패턴을 파악한 후 이를 바탕으로 새로운 질문에 대해 예측(prediction)하는 것을 목적으로 하는데, 이는 크게 지도학습(supervised learning)비지도학습(unsupervised learning)으로 구분할 수 있다. 지도학습은 훈련데이터(초기 패턴을 학습할 수 있도록 이용가능하게 주어진 데이터)에 조건 X뿐만 아니라 이에 대한 정답(또는 라벨) Y까지 주어져 있는 경우의 기계학습을 말한다. 예를 들어 우리에게 주어진 사진 자료들이 “얘는 영희, 얘는 철수, 얘는 강아지…”와 같이 사진마다 일일이 라벨링이 되어 있다면 이를 학습하고 다른 사진들에서 영희, 철수, 강아지들을 찾아내는 문제는 지도학습 문제로 볼 수 있다. 반면 여러 동물사진을 섞어놓고 이 사진에서 비슷한 동물끼리 자동으로 묶어보라고 이야기한다면 이는 비지도학습 문제라고 볼 수 있다. 인간은 이러한 지도학습과 비지도학습의 과정을 모두 이용한다고 알려져 있으며, 아직까지의 인공지능은 지도학습 연구가 더욱 활발한 모습이다. 하지만 인간이 세상을 라벨링 없이도 이해할 수 있듯이 (예를 들어 굳이 ‘강아지’라고 배운 적 없어도 비슷한 종류를 모두 강아지라고 구분할 수 있듯), 미래의 인공지능 역시 라벨링 없이 세상을 이해할 수 있는 비지도학습이 더욱 강조될 전망이다. 

지도학습(supervised learning)과 비지도학습(unsupervised learning)의 예제. 지도학습의 경우는 훈련데이터 각각에 대해 라벨이 주어져 있는 반면에 비지도학습은 그런 것 없이 단지 데이터의 분포만을 활용하여 어떠한 부류의 군집(clustering)들이 있는지 분석해낸다. (사진출처)

기계학습은 어떠한 종류의 특징값(feature)들을 입력값으로 이용하는지가 기계학습의 성능에 매우 큰 영향을 준다. 예를 들어 기계학습을 이용해 우리가 사진 속 얼굴들이 누군지 인식해야 한다면 우리는 이미지의 개별 픽셀들을 기계학습의 입력값으로 사용할 수도 있겠지만, 그 대신 눈, 코, 입 등을 따로 떼어서 입력값으로 이용할 수도 있을 것이다. 또다른 예로 인간의 보행동작을 기계학습을 이용해 분석하려고 한다면, 관절들의 위치를 기계학습의 입력값으로 사용할 수도 있겠지만, 관절들의 각도 또는 각속도를 입력값으로 선택할 수도 있을 것이다. 이처럼 우리가 선택할 수 있는 특징값의 형태는 무궁무진하며 더욱 좋은 기계학습 성능을 얻기 위해서는 같은 사물들을 비슷한 특징들로 묶어주고 다른 사물들을 구별되는 특징들로 묶어주는 특징값을 찾는 것이 매우 중요하다. 

예를 들어 우리가 개와 물고기 사진을 구분하는 분류(classification) 문제를 기계학습으로 풀어야한다고 생각해보자. 색깔이 이들을 구분하는데 좋은 특징값이 될까? 아마도 아닐 것이다. 한가지 가능한 방법으로는 사진에서 먼저 털을 검출해낸 뒤 털이 많은 것을 개, 털이 거의 없는 것을 물고기라고 판단할 수 있을 것이다. 이처럼 우리는 원본 사진 대신 전처리(preprocess)를 통해 사진 속의 털을 강조한 사진을 기계학습에 입력값으로 이용할 수 있는데, 이것이 바로 좋은 특징값을 이용한 예일 것이다. 이처럼 기계학습의 성능은 기계학습 알고리즘의 우수성에도 관련이 있지만, 이에 못지않게 사용자가 입력하는 특징값에도 많은 영향들을 받는다. 좋은 특징값을 찾기위해 기계학습 연구자들은 원래의 데이터를 또다른 공간으로 매핑하여 사용하는 커널(kernel) 방법 이용하기도 하였다. 

기계학습은 여러 재료(입력값)를 받아 요리를 하는 요리도구와 같다. 어떤 재료를 요리도구에 넣느냐가 그 맛(성능)을 크게 좌우한다.   그럼에도 불구하고 어떠한 특징값을 사용해야 좋은지는 여전히 기계학습의 어려운 과제 중 하나이다. 이러한 어려움을 극복하기 위해 새로운 방법론이 제시되었는데, 이것이 바로 최근 큰 관심을 끌고있는 딥러닝이다. 미래 인공지능의 희망이라 불리는 딥러닝, 그것은 과연 무엇일까?

딥러닝이 이끄는 인공지능의 미래 

 딥러닝(Deep Learning) 또는 딥뉴럴네트워크(Deep Neural Network)라고 불리는 기술은 사실 오랜 역사를 가진 인공신경망(Artificial Neural Network)이 발전한 형태라고 할 수 있다. 이 방법은 사람의 뇌가 수많은 신경세포들에 의해 움직인다는 점에 착안하여 만들어졌는데, 많은 수의 노드들을 놓고 그들을 연결하여 이들의 연결값들을 훈련시켜 데이터를 학습한다. 즉, 관측된 데이터는 많은 요인들이 서로 다른 가중치로 기여하여 만들어졌다고 생각할 수 있는데, 인공신경망에서는 요인들을 노드로, 가중치들을 연결선으로 표시하여 거대한 네트워크를 만든 것이다. 딥러닝은 간략히 말해 이러한 네트워크들을 층층히 쌓은 매우 깊은 네트워크를 일컫는다. 

딥뉴럴네트워크의 모습. 구글은 딥러닝과 빅데이터를 이용해 컴퓨터 스스로 많은 사진들을 학습하여 사람의 얼굴과 고양이의 얼굴을 학습해내는 비지도학습 결과를 발표해 세상을 놀라게 한 바 있다. (사진출처)

1920년대부터 꾸준히 연구되어온 인공신경망은 이내 한계에 부딪혔었는데, 그 이유는 거대한 네트워크를 학습시키는 방법이 많이 발달되지 않았기 때문이었다. 또한 거대한 네트워크를 학습시키려면 많은 양의 데이터와 이를 처리할 수 있는 컴퓨팅 파워가 필요했는데, 당시에는 이러한 조건들이 받쳐주지 않아 인공신경망은 불완전한 방법으로 여겨졌었다. 하지만 2000년대 중반부터 깊은 인공신경망인 딥뉴럴네트워크를 학습하는 방법이 개발되어 현재는 이미지인식, 음성인식, 자연어처리 등 다양한 분야에서 표준 알고리즘으로 자리잡고 있으며, 매우 빠른 속도로 기존의 기계학습 방법들을 대체하고 있다. 

그렇다면 딥러닝이 여러 머신러닝 챌린지에서 다른 기계학습 방법들을 압도할 정도로 좋은 성능을 보일 수 있는 비결은 관연 무엇일까? 그것은 바로 특징값 학습(representation learning)에 있다. 기계학습의 단점 중 하나는 좋은 특징값을 정의하기가 쉽지 않았다는 점이었는데, 딥러닝은 여러 단계의 계층적 학습과정을 거치며 적절한 특징값(입력값)을 스스로 생성해낸다. 이 특징값들은 많은 양의 데이터로부터 생성할 수 있는데, 이를 통해 기존에는 인간이 포착하지 못했던 특징값들까지 데이터에 의해 포착할 수 있게 되었다. 딥러닝은 특히 마치 인간이 사물을 인식하는 방법처럼, 모서리, 변, 면 등의 하위 구성요소부터 시작하여 나중엔 눈, 코, 입과 같이 더 큰 형태로의 계층적 추상화를 가능하게 하였는데, 이는 인간이 사물을 인식하는 방법과 유사하다고 알려져있다. 구체적으로는 Convolutional Neural Network(CNN)Recurrent Neural Network(RNN)란 방법이 널리 쓰이는데, 최근의 이미지인식이나 음성인식 등의 비약적 발전은 대부분 이들 방법의 역할이 크다고 할 수 있다. 

딥러닝은 깊은 학습구조 속에 단계적으로 좋은 특징값들을 자동으로 뽑아낸다. 예를 들어 이미지인식의 경우 낮은 단계에서는 선들을 추출하는 반면, 더욱 높은 레이어에서는 사람의 얼굴 부분도 추출한다. 이러한 단계적 특징추출이 딥러닝이 좋은 성능을 보여주는 이유이기도 하다. (사진출처)

딥러닝은 하드웨어의 발전과 함께 더욱 날개를 펴고있다. 딥러닝은 수많은 뉴런과 깊은 신경망을 학습해야 하기에 기존 컴퓨터로는 학습에 몇 주가 소요되기도 한다. 하지만 최근에는 GPU를 이용한 병렬처리 연산의 발달과 함께 딥러닝을 위한 미래 하드웨어 디자인도 고안되고 있어 그 처리속도가 더욱더 빨라지고 있다. 또한 클라우드 컴퓨팅을 이용하여 많은 양의 연산을 디바이스가 아닌 서버에서 처리하도록 함으로써 딥러닝의 혜택을 모바일로도 가져오고 있다. 바야흐로 딥러닝이 점점 우리의 생활 속에 침투하고 있다고 하여도 과언이 아닐 것이다. 

딥러닝의 또다른 장점 중 하나는 이 방법이 다양한 분야에서 공통적으로 활용될 수 있다는 것인데, 예를 들어 이미지 인식과 자연어 처리는 예전에는 전혀 다른 방법들이 적용되었었지만 딥러닝은 이 두가지 문제를 같은 방법으로 해결할 수 있다. 이를 이용하면 더욱 흥미로운 상상들을 할 수 있는데, 그 대표적인 예가 딥러닝을 이용해 이미지를 분석하고 이에 대한 자막을 자동으로 달아주는 것이다. 이 방법이 보편화된다면 미래엔 시각장애인도 컴퓨터로부터 눈 앞의 상황을 설명받을 수 있는 날도 올 수 있을 것이다. 

딥러닝이 생성한 자동 자막. 딥러닝은 사진에서 물체를 인식한 후 그것의 기능적 관계를 파악해 자막을 만들어줄 수 있다. (사진출처)

딥러닝은 미래 인공지능의 희망으로 떠오르고 있다. 그도 그럴 것이 이미지 인식 등의 분야에선 이미 인간의 오차율을 넘어섰으며, 이제껏 불가능이라 여겨졌던 일들도 척척 해내고 있기 때문이다. 테크기업들의 인공지능 기술경쟁은 이미 시작되었다. 특히 그 경쟁은 미래 인공지능 기술의 핵심으로 불리는 딥러닝(Deep Learning) 연구인력들의 영입전쟁으로 촉발되고 있다. 딥러닝의 거장으로 불리는 토론토대학의 제프리 힌톤(Geoffrey Hinton) 교수, 뉴욕대학의 얀 러쿤(Yann LeCun) 교수, 그리고 스탠포드 대학의 앤드류 응(Andrew Ng) 교수는 구글, 페이스북, 바이두에 각각 영입되었고, 딥러닝 인재들이 모여 만든 기업 딥마인드는 50명 남짓의 뚜렷한 제품도 없는 작은 기업임에도 불구하고 구글에 무려 5000억 가량에 인수되어 세계를 놀라게하기도 하였다. 최근에는 테슬라 자동차의 창업주 일론 머스크(Ellon Musk) 등의 지원 하에 1조원 규모의 비영리 인공지능 연구단체 오픈 에이아이(Open AI)가 출범하기도 하였다. 

미래의 인공지능을 향한 꿈에 세계가 딥러닝 기술을 주목하고 있다. 하지만 한가지 잊지말아야 할 것은 딥러닝 역시도 오랜세월동안 외면받아왔던 기술이었으며, 그럼에도 불구하고 꾸준히 그 방법을 연구했던 연구자들이 있었기에 지금의 딥러닝도 있을 수 있었다는 것이다. 최근에는 많은 연구들이 딥러닝 트렌드에 치우치는 경향이 있는데, 이 또한 경계하며 다른 인공지능 방법론에 대해서도 연구를 게을리하지 말아야 할 것이다. 

그럼에도 불구하고 미래의 인공지능의 중심에 딥러닝이 있을 것이란 사실엔 모두가 수긍하는 분위기이다. 딥러닝이 이끄는 인공지능의 미래, 그 미래는 과연 어떤 모습일까?

[Link] T-Robotics, "쉽게 풀어쓴 딥러닝의 거의 모든 것"


* 이 글은 동아엠엔비에서 곧 발간될 "과학이슈 11 시즌4"에 수록될 글의 초고입니다.

[rss] http://t-robotics.blogspot.kr/feeds/posts/default