마스터 알고리즘
페드로 도밍고스 지음 | 비즈니스북스
마스터 알고리즘
페드로 도밍고스 지음
비즈니스북스 / 2016년 7월 / 504쪽 / 22,000원
머신러닝의 혁명이 시작됐다
우리는 알고리즘의 시대에 살고 있다. 알고리즘은 휴대전화나 노트북 컴퓨터뿐만 아니라 자동차와 집, 가전제품에도 이용된다. 그리고 은행은 고객과 알고리즘으로 구성된 거대한 복합체라고 볼 수 있다. 또 알고리즘으로 공장을 가동하고 상품을 사고팔고 운송하고 대금을 지급하고 거래 내용을 기록한다. 알고리즘이 갑자기 한꺼번에 멈춘다면 우리가 아는 세상의 현재 모습은 더 이상 존재하지 않을 것이다. 알고리즘이란 컴퓨터가 수행할 일을 순서대로 알려 주는 명령어의 집합이다.
그렇다고 알고리즘이 명령어를 아무렇게나 모아 놓은 것은 아니다. 명령어는 컴퓨터가 수행할 수 있을 정도로 정확하고 분명해야 한다. 예를 들어 조리법은 알고리즘이 될 수 없다. 일하는 순서나 각 단계를 완벽한 수준으로 정해 주지 않기 때문이다. 새로운 조리법을 시도해 본 사람이라면 알겠지만, 맛있는 요리가 나올 때도 있지만 요리를 망치기도 한다. 반면 알고리즘은 언제나 똑같은 결과를 낸다. 주방 로봇이 케이크를 만들게 하려면 로봇에게 설탕을 인식하는 영상 정보 처리 방법과 숟가락을 들어 올리는 방법 등을 알려 주어야 한다. 현재 이런 방법들을 개발하고 있다.
[머신러닝은 무엇인가] 모든 알고리즘은 입력과 출력이 있다. 데이터를 컴퓨터에 넣으면 알고리즘이 처리하여 결과를 출력한다. 머신러닝은 이 과정을 바꾸었다. 데이터와 원하는 결과를 넣으면 데이터를 결과로 바꿔 주는 알고리즘을 내놓는다. 머신러닝은 학습자(learner)라고도 알려져 있는데, 머신러닝을 통해 컴퓨터가 스스로 프로그램을 작성하기 때문에 사람은 프로그램을 작성할 필요가 없다.
머신러닝의 능력은 기술 수준이 낮은 농사에 비유하면 가장 잘 설명할 수 있을 것이다. 산업화 사회에서 제품은 공장에서 만든다. 이는 기술자가 부품을 조립하는 방법부터 부품을 만드는 방법, 천연 자원에 이르기까지 모든 과정을 정확하게 알아야 한다는 것을 의미한다. 수많은 일을 해야 한다. 반면 우리가 필요한 것을 얻는 아주 오래된 방법이 있다. 바로 자연이 생산하도록 하는 것이다. 우리는 농사를 지을 때 씨앗을 심고 물과 양분을 충분히 주고 다 자란 열매를 수확한다.
그렇다면 기술은 현재의 모습이 아니라 농사와 더 비슷할 수는 없을까? 사실은 가능하다. 그리고 그것이 머신러닝의 약속이다. 머신러닝은 씨앗이고 데이터는 토양, 학습된 프로그램은 성장한 식물이다. 머신러닝 전문가는 농부와 같이 씨를 뿌리고 물과 비료를 주고 농작물의 건강 상태를 늘 살펴보지만, 그 외에는 한발 물러나 식물 스스로 자라게 한다. 한편 머신러닝은 여러 가지 형태를 띠고 다른 이름으로 불리기도 한다. 패턴 인식, 통계 모형, 데이터 마이닝, 지식 추론, 예측 분석, 데이터 사이언스, 적응형 시스템, 자기 조직 시스템 외에 다른 이름도 있다. 이 책에서는 알고리즘 전체를 폭넓게 지칭하기 위해 ‘머신러닝’이라는 용어를 사용한다.
한편 머신러닝은 인공 지능과 혼동되기도 한다. 기술상 머신러닝은 인공 지능의 하위 분야지만, 이제는 크게 성장하고 성공하여 부모 같은 인공 지능이 자신보다 더 뛰어난 머신러닝을 자랑스러워할 정도다. 인공 지능의 목표는 컴퓨터를 가르쳐서 지금은 인간이 하는 일을 더 잘하게 하는 것이고, 이를 달성하는 데 학습이 가장 중요한 요소다. 정보 처리 생태계에서 머신러닝은 최상위 포식자다. 머신러닝 혁명은 자동화를 새로운 경지로 끌어올리며 인터넷과 개인용 컴퓨터, 자동차, 증기 기관이 혁명을 일으킨 것처럼 경제 변화와 사회 변화를 광범위하게 일으킬 것이다.
[우리는 어디로 향하는가] 기술 동향은 이리저리 왔다 갔다 한다. 머신러닝의 특이한 점은 이러한 모든 변화, 즉 기술의 대유행과 급락 속에서도 흔들리지 않고 성장을 지속한다는 점이다. 웹 2.0의 시대가 되면서는 사회관계망의 데이터 마이닝부터 제품에 관해 블로거들이 어떤 말을 하는지 파악하는 일까지 머신러닝의 새로운 응용 분야가 생겼다. 이와 동시에 모든 유형의 과학자들이 대형 모형화를 채택하는 경우가 늘어났으며, 그중에서 분자생물학자와 천문학자가 최전선에서 돌격을 지휘한다. 2011년 빅 데이터가 모방을 통해서 널리 전파되었으며 이로써 머신러닝은 곧바로 전 세계 미래 경제의 중심으로 인식되었다. 이제 머신러닝과 거리가 멀어 보이는 음악과 스포츠, 포도주 감정 등을 포함한 인간 활동 영역에서 머신러닝이 관여하지 않는 분야는 별로 없어 보인다.
이런 성장이 대단해 보이기는 하지만 앞으로 다가올 모습의 맛보기일 뿐이다. 머신러닝의 유용성에도 불구하고 현재 산업계에서 작동하는 머신러닝 세대의 능력은 매우 제한되어 있다. 지금 연구실에서 개발 중인 머신러닝 알고리즘이 세상으로 나가는 시기에는 “머신러닝에서 돌파구가 생기면 마이크로소프트 열 개의 가치가 있다.”라는 빌 게이츠의 말도 겸손하게 들릴 것이다. 그리고 연구자들의 두 눈을 번뜩이게 만드는 착상이 결실을 맺는다면, 머신러닝은 단지 문명의 새로운 시기가 아니라 지구 생명의 진화 역사상 새로운 단계를 열어 보일 것이다.
마스터 알고리즘은 어떻게 탄생하는가
한정된 데이터에서 적절한 지식을 모두 얻어낼 수 있는가? ‘적절한’(relevant)이라는 말에 주목하자. 우리는 단지 이 세상의 지식에만 관심이 있을 뿐 존재하지 않는 세상에는 관심이 없다. 그러므로 보편적인 머신러닝을 발명하는 것은 우리 우주에서 가장 밑바탕에 있는 규칙성, 즉 모든 현상에서 나타나는 규칙성을 발견하고 규칙성을 데이터와 연결하는 효율적인 계산 방법을 찾아내는 것이다.
물리학 법칙만 규칙성으로 사용해서는 계산이 효율적이어야 한다는 조건을 만족하지 못한다. 하지만 보편적인 머신러닝이 전용(specialized) 머신러닝 알고리즘보다 더 효율적이어야 한다는 것을 의미하지는 않는다. 컴퓨터 과학에서 매우 자주 볼 수 있듯이 우리는 보편성을 살리기 위해 기꺼이 효율성을 희생한다. 이런 방식은 목표로 설정된 지식을 학습하는 데 필요한 데이터의 양을 정할 때도 적용된다. 즉 보편적 머신러닝은 전용 머신러닝 알고리즘보다 더 많은 데이터를 요구하지만, 필요한 만큼 데이터를 확보했다면 문제없다. 데이터가 더 많아지면 많아질수록 이런 일이 더 많이 일어날 것이다.
이 책의 중심 가설이 여기에 있다. 세상의 모든 지식, 즉 과거, 현재, 미래의 모든 지식은 단 하나의 보편적 학습 알고리즘으로 데이터에서 얻어 낼 수 있다. 나는 이 머신러닝을 마스터 알고리즘(master algorithm)이라 부른다. 만약 이런 알고리즘이 가능하다면, 이 알고리즘을 발명하는 일은 역사상 가장 위대한 과학의 성취가 될 것이다. 사실 마스터 알고리즘이 우리의 마지막 발명품인 까닭은 한 번 발명된 이후에는 마스터 알고리즘이 발명할 수 있는 다른 모든 것을 발명해 나갈 것이기 때문이다.
[마스터 알고리즘은 당신에게 무엇을 주는가] 언젠가는 집집마다 로봇이 설거지를 하고 잠자리를 준비하고 아이들을 돌볼 것이다. 그런 시대가 얼마나 빨리 다가올 것인가는 마스터 알고리즘을 발견하는 일이 얼마나 어려운가에 달려 있다. 우리가 할 수 있는 최선이 인공 지능의 문제를 부분적으로 해결하는 여러 종류의 머신러닝 알고리즘을 결합하는 일이라면, 우리는 곧 복잡성이라는 벽에 부딪히고 말 것이다. 마스터 알고리즘이 단독으로 인공 지능이 못하는 일을 해결하는 것은 아니다. 하지만 80대 20 법칙이 여기에도 적용된다. 마스터 알고리즘이 해결책의 80퍼센트를 담당하고, 나머지 20퍼센트의 일은 인공 지능이 맡을 최선의 자리다.
[또 다른 만물 이론이 될 것인가] 마스터 알고리즘을 찾는 일이 기술적 오만의 완벽한 본보기라고 말하는 사람도 있을 것이다. 하지만 꿈꾸는 것이 오만은 아니다. 마스터 알고리즘이 철학자의 돌이나 영구 기관처럼 실현 불가능한 위대한 희망으로 판명 날 수도 있을 것이다. 더 가능성 있게는 돌을 하나하나 쌓아 올려 짓는 대성당처럼 여러 세대에 걸쳐 완성하는 과업일 수도 있다. 확인하는 유일한 방법은 어느 날 일찍 일어나 마스터 알고리즘을 찾아 여행길을 떠나는 것이다.
[머신러닝의 다섯 종족] 물론 마스터 알고리즘을 사냥하는 데 아무것도 없는 무에서 출발할 필요는 없다. 우리는 지금까지 수십 년간 머신러닝을 연구했다. 우리는 이러한 거인들의 어깨를 빌리겠지만 그들의 주장을 곧이곧대로 받아들이지는 않을 것이다. 이런 태도는 다음과 같은 질문을 제기한다. 마스터 알고리즘을 발견했을 때가 언제인지 어떻게 알 수 있을까? 그것은 하나의 머신러닝이 데이터 외에는 최소한의 입력만 받고 상황에 따라 변수만 바꾸면서 인간처럼 여러 가지 활동, 즉 영상과 문서를 모두 이해하고 생물학과 사회학 그리고 다른 여러 과학 분야에서 중요한 발견을 해낼 때다. 이런 기준으로 보자면 비현실적인 조건에서는 한 가지가 이미 존재하지만, 아직까지 마스터 알고리즘이 될 만큼 이 기준을 충족하며 작동한 머신러닝은 분명히 없다.
마스터 알고리즘을 탐색하는 활동은 서로 다른 아이디어로 경쟁하는 머신러닝 분야의 종족이 여럿이라 복잡하기도 하지만 생동감도 있다. 주요 종족은 기호주의자와 연결주의자, 진화주의자, 베이즈주의자, 유추주의자 등이다. 종족마다 핵심 믿음과 가장 관심 있게 다루는 특별한 문제가 있다. 종족마다 자기와 관련된 과학 분야에서 얻은 여러 가지 아이디어를 기초로 각 종족의 문제에 대한 해답을 발견했고, 각 종족을 상징하는 마스터 알고리즘을 각자 보유하고 있다.
기호주의자(symbolists)는 모든 지능을 기호를 다루는 활동으로 귀결 짓는다. 수학자가 수식을 다른 수식으로 바꾸면서 방정식을 푸는 것과 같다. 기호주의자는 아무것도 없는 곳에서는 학습을 시작할 수 없다고 생각한다. 당신은 데이터와 함께 초기 지식이 필요하다. 기호주의자는 새로운 문제를 풀기 위하여 이미 존재하는 지식을 학습 과정에서 사용하는 방법과 단편적인 여러 가지 지식을 합치는 방법을 알아냈다. 그들의 마스터 알고리즘은 연역을 진행하는 데 필요한 지식 중 빠진 지식이 무엇인지 파악한 후 연역을 최대한 보편적으로 만드는 역연역법(inverse deduction)이다.
연결주의자(connectionists)에게 학습은 두뇌가 하는 활동인 터, 우리가 해야 할 일은 두뇌를 역공학(reverse engineer, 완성된 제품을 분해하여 그 생산 방식과 적용 기술을 알아낸 뒤 복제하는 것)으로 알아내는 것이다. 두뇌는 신경세포의 연결 강도를 조절하여 학습하며, 주요 문제는 어떤 연결이 오류를 일으키는지 파악하여 올바르게 수정하는 것이다. 연결주의자의 마스터 알고리즘은 역전파법(back propagation)이다. 이는 시스템의 출력을 목표값과 비교한 후 여러 층에 걸친 연결된 신경세포들의 연결 상태를 계속 바꾸어 시스템의 출력이 목표값에 더 가깝게 한다.
진화주의자(evolutionaries)는 모든 학습의 어머니는 자연 선택이라고 믿는다. 자연 선택이 우리를 만들었다면 어떤 것이라도 만들 수 있고, 우리가 해야 할 일은 자연 선택을 컴퓨터에서 모의실험하는 것이 전부다. 진화주의자가 달성하려는 핵심 과제는 학습하는 구조물이다. 역전파법처럼 변수를 조절하는 것에 더하여 이러한 조절값들을 세부 조정할 수 있는 두뇌를 창조한다. 진화주의자의 마스터 알고리즘은 유전자 프로그래밍(genetic programming)이며, 자연이 생명체를 짝 지우고 점진적으로 발달시키는 방식과 같은 방식으로 컴퓨터 프로그램을 짝 지우고 발달시킨다.
베이즈주의자(Bayesians)는 불확실성에 주목한다. 학습된 지식은 모두 불확실하며 학습 자체는 불확실한 추론의 형태를 띤다. 그러므로 오류가 끼어 있는 듯하고 불완전하며 서로 모순된 정보들을 흩어 버리지 않고 잘 다루는 방법을 찾는 것이 과제다. 해결책은 확률 추론이며 마스터 알고리즘은 베이즈 정리와 그 정리의 파생 수식이다. 베이즈 정리가 새로운 증거를 우리의 믿음에 어떻게 끌어넣을지 알려 주고, 확률 추론 알고리즘이 가능한 가장 효율적으로 그 일을 수행한다.
유추주의자(analogizers)에게 머신러닝의 핵심은 상황들 사이의 유사성을 인식하여 다른 유사점들을 추론하는 것이다. 환자 둘이 비슷한 증상을 보인다면 그들은 같은 병에 걸렸을 것이다. 핵심 과제는 두 사물이 얼마나 비슷한가를 판단하는 일이다. 유추주의자의 마스터 알고리즘은 서포트 벡터 머신(Support Vector Machine, SVM)이며 어떤 경험을 기억할 것인가와 새로운 예측을 위해 그 경험들을 어떻게 결합할 것인가를 파악한다.
각 종족의 주요 문제에 대한 해법은 뛰어나며 어렵게 얻은 머신러닝 분야의 진전이다. 하지만 진정한 마스터 알고리즘은 한 가지가 아니라 다섯 가지 문제를 모두 해결해야 한다. 예를 들어 암을 치료하려면 세포의 신진대사망을 이해해야 한다. 어떤 유전자들이 다른 어떤 유전자를 통제하는가, 생성된 단백질이 어떤 화학 반응을 조절하는가, 유전자와 단백질이 혼합된 곳에 새로운 분자를 첨가하면 신진대사망에 어떤 영향을 미치는가를 이해해야 하는 것이다. 생물학자들이 수십 년 이상 고생스럽게 쌓아 올린 지식을 전부 무시하고 무에서 이 모든 것을 배우려는 시도는 어리석은 행위다.
개별 데이터만으로는 얻을 수 없는 결과를 얻기 위해 기호주의자는 DNA 염기 서열 분석기와 유전자 발현 미세 배열기, 그 밖의 여러 가지 장비에서 얻은 데이터를 생물학 지식과 결합하는 방법을 사용한다. 하지만 역연역법으로 얻는 지식은 순전히 정성적이다. 우리는 누가 누구와 상호작용하는지 뿐만 아니라 얼마나 하는지를 배워야 하며 이런 일은 역전파법으로 할 수 있다.
그럼에도 불구하고 역연역법과 역전파법은 그것들이 발견한 상호작용과 변수들을 적용할 기본 구조가 없으면 길을 잃고 말지만 유전자 프로그래밍은 이 구조를 발견할 수 있다. 현시점에서 신진대사에 관한 완전한 지식과 환자의 모든 관련 데이터를 갖추었다면 그 환자의 치료법을 발견할 수 있을 것이다. 하지만 실제로 우리가 가진 정보는 항상 빠진 부분이 매우 많으며 여기저기 오류도 있다. 그런 상황에서도 우리는 진보해야 하며, 이때가 바로 확률 추론이 필요한 순간이다.
치료가 가장 힘든 경우 환자의 암은 이전에 보던 것과 매우 다르며 우리의 모든 지식은 쓸모없어진다. 이번에는 유사성에 기반을 둔 알고리즘이 겉으로는 매우 다르게 보이는 상황들 사이에서 유사성을 찾아내며 핵심적인 유사성에 모든 관심을 집중하고 나머지는 무시하면서 이 곤경에서 우리를 구해 준다.
선생님 없이 배우기
당신이 부모라면, 아이의 첫 3년 동안 학습의 모든 신비가 눈앞에 펼쳐질 것이다. 갓난아기는 말하지도, 걷지도, 물체를 알아보지도 못하고 아이가 보지 않을 때도 사물은 계속 존재한다는 사실조차 이해하지 못한다. 하지만 달이 지나면서 어느 때는 많이 어느 때는 적게 시행착오를 겪고 엄청나게 인식이 발달하며 세상이 어떻게 돌아가고 사람들이 어떻게 행동하고 어떻게 의사소통하는지 알아낸다. 세 살 생일쯤에는 이 모든 학습이 통합되어 안정된 자아, 즉 일생동안 계속되는 의식의 흐름을 형성한다. 우리가 자신의 영아기와 유아기로 돌아가 갓난아기의 눈으로 세상을 다시 볼 수 있다면 학습에 관해, 존재 자체에 관해 우리가 모르는 많은 부분이 일순간에 분명해질 것이다.
하지만 현재 우리가 알지 못하는, 이 우주에서 가장 커다란 신비에 대한 질문은 어린아이의 마음에 어떤 일이 벌어지고 있는가이다. 아이들의 학습을 과학적으로 연구한 역사는 아직 짧으며 본격적으로 시작된 지 겨우 몇 십 년밖에 안 되지만 이미 주목할 만한 성과를 냈다. 비디오로 촬영한 영상과 실험 중 보이는 아기들의 반응을 연구함으로써 아기들의 마음속에서 무슨 일이 진행되는지 놀랄 정도로 많은 것을 추론할 수 있다. 그리고 일관성 있는 모습이 발견되었다. 아기의 마음은 단순히 미리 정해진 유전 프로그램에 따라 펼쳐지는 것이거나 감각 데이터에 존재하는 연관성을 기록하는 생물학 장치가 아니다. 오히려 자신의 현실을 능동적으로 종합하여 바꾸는데, 이런 현실의 변화는 시간에 따라 매우 급격하게 나타난다. 한편 지능을 가진 기계를 만드는 방법은 로봇 아기를 만들어 인간 아기가 하듯이 세상을 경험하게 하는 것이라고 주장하는 연구자도 있다.