brunch

You can make anything
by writing

C.S.Lewis

by 강한별 Apr 21. 2017

마스터 알고리즘

마스터 알고리즘 - 

페드로 도밍고스 지음, 강형진 옮김, 최승진 감수/비즈니스북스

추천 대상 : 머신 러닝의 배경을 좀 더 자세히 알고 싶은 사람. 그리고 머신 러닝이 앞으로 나아갈 방향에 대해서도 나옴

추천 정도 : ★ ★ ★ ★ 

메모 : 인간이 기계보다 유리한 점은 추상화를 잘 하는 것이라고 하던데(뇌과학에서는) 머신러닝에서도 이 부분이 중요하지 않을까 하는 생각이 들었다. 적절한 추상화를 통해 과적합을 피하려고 노력하는 것이다. 

머신 러닝, 딥러닝 관련한 책을 보면 볼수록(아직 많이 보지도 않았지만) 인간의 학습에 대해서 경외감을 느끼게 된다. 인간은 어떻게 학습하고 추론하는 걸까. 인간은 어떻게 추론하는 능력을 가지게 되었을까. 그것을 어떻게 기계에게 가르칠 수 있을까.

인간은 자신이 알고 있는 다양한 전제들을 활용해 조합하고 투영하는데 그럼 기계는 그러한 지식들을 모두 가지고 있어야 한다니 어렵게 느껴지지만 뭔가 또 존잘들이 좋은 방법을 만들어주겠지! 그런 생각도 들고..

인간은 적절히 잊어버리는 걸 잘 하고 때로는 기억해내기도 하는데 그런 것을 기계에 적용시킬 수 있을까 그런 생각도 든다.



발췌


사실 머신러닝machine learning은 우리 주위에 널리 퍼져 있다


당신이 컴퓨터를 사용할 때마다 어딘가에서 머신러닝이 관여한다고 보면 된다.


인터넷 데이트 서비스를 사용한다면 머신러닝이 당신의 사랑을 찾아내도록 도와줄 것이다.


이렇듯 마술 같은 기술들이 작동하는 까닭은 머신러닝이 하는 일이 근본적으로 예측이기 때문이다. 우리의 소망과 행동의 결과, 우리의 목표를 달성하는 방법, 세상이 바뀌는 모습 등을 예측한다.


모든 머신러닝 알고리즘이 똑같이 작동하지는 않으며, 차이가 있기 때문에 다른 결과가 나온다. 아마존과 넷플릭스의 추천 알고리즘을 비교해 보자. 두 알고리즘이 당신에게 적당한 책을 서점에서 추천해 준다면, 아마존은 당신이 전에 자주 찾은 서가로 데려갈 경향이 높고, 넷플릭스는 지금은 낯설고 이상하게 보이지만 결국 당신이 좋아할 책을 소개할 것이다.


머신러닝은 우리 모두에게 중요한 질문의 대답이다. 즉 우리는 어떻게 배우는가? 더 나은 방법이 있는가? 우리는 무엇을 예측할 수 있는가? 우리가 배운 것은 신뢰할 만한가? 머신러닝 분야에서 경쟁하는 종족들은 이러한 물음에 매우 다르게 대답한다.


연결주의자connectionists는 두뇌를 분석하고 모방하며 신경과학과 물리학에서 영감을 얻는다. 진화주의자evolutionaries는 컴퓨터에서 진화를 모의시험하며 유전학과 진화생물학에 의존한다. 베이즈주의자Bayesians는 학습이 확률 추론의 한 형태라고 믿으며 통계학에 뿌리를 둔다. 유추주의자analogizers는 유사성similarity 판단을 근거로 추정하면서 배우며 심리학과 수학적 최적화의 영향을 받는다.


이 책의 두 번째 목표는 당신이 최종 마스터 알고리즘을 발명하도록 가르치는 것이다. 고난도 수학과 아주 힘든 이론 연구가 필요한 일이라고 생각하겠지만, 가장 필요한 것은 신비로운 수학에서 한발 물러나 학습 현상의 지배 형태를 보는 안목이다. 멀리서 숲으로 다가오는 비전문가가 이미 특정한 나무의 연구에 깊이 빠진 전문가보다 더 나을 수 있는 것이다


미래가 잘 보이지 않는 분야라며 중간에 그만두는 연구원도 있었지만 나는 묵묵히 계속해 나갔다. 나에게는 컴퓨터를 가르치는 일보다 더 관심을 끄는 일이 없었다.


알고리즘이란 컴퓨터가 수행할 일을 순서대로 알려 주는 명령어의 집합이다.


흔히 컴퓨터는 숫자가 전부라고 생각하지만 사실은 그렇지 않다. 논리가 컴퓨터의 전부다.


알고리즘은 명령어를 아무렇게나 모아 놓은 것이 아니다. 명령어는 컴퓨터가 수행할 수 있을 정도로 정확하고 분명해야 한다


반면 알고리즘은 언제나 똑같은 결과를 낸다


하지만 알고리즘의 에덴동산에도 뱀이 있다.


그중 하나인 ‘공간복잡성’space complexity은 알고리즘이 컴퓨터 저장 장소에 보관할 정보량의 크기다.


이 괴물의 형제는 ‘시간복잡성’time complexity이다. 알고리즘을 수행하는 데 걸리는 시간, 즉 원하는 결과를 얻기까지 알고리즘이 트랜지스터를 사용하는 횟수를 의미한다.


머신러닝을 이런 관점에서 보면 두 가지 생각이 떠오른다. 첫째, 데이터를 더 많이 얻을수록 더 많이 배울 수 있다. 데이터가 없다면? 배울 것이 없다. 데이터가 엄청나다면? 배울 것이 많다


머신러닝은 지식을 배우기도 하고 기술을 배우기도 한다


머신러닝에서 지식은 자주 통계 모형statistical model의 형식을 띤다. 지식은 대부분 통계의 특성이 있기 때문이다.


기술은 자주 절차procedure라는 형식을 띤다.


많은 경우 복잡한 것은 그 핵심에 있는 지식이지 절차는 매우 간단하다


당신이 게으르고 극히 명석하지 않은 컴퓨터과학자라면 머신러닝은 딱 맞는 직업이다


머신러닝은 발견을 자동화한다.


하지만 빅 데이터는 당신이 지식으로 바꾸지 못하면 쓸모가 없다


일단 학습된 프로그램이 설치되면 악당들은 이를 물리치려고 자신의 행동을 바꾸어 버린다. 변함없이 한결같은 자연 세계와 대조되는 부분이다. 이에 대처하는 해법은 머신러닝에 내가 연구한 일종의 게임 이론을 결합하는 것이다. 이렇게 하면 머신러닝은 현재 적수를 물리치는 방법만 학습하지 않는다. 악당이 머신러닝에 대처하는 방안도 막아 내도록 학습한다


우리가 한 분야에서 이것들이 어떻게 적용되는지 발견하면 다른 분야에서 더 쉽게 어떻게 적용되는지를 발견할 수 있고, 일단 한 분야에서 이 방정식을 푸는 방식을 배우면 다른 모든 분야에서도 풀 수 있는 방법을 알게 된다


현실에는 예측 가능한 일도 있고 예측 불가능한 일도 있으며 머신러닝의 첫째 임무는 둘 사이를 구분하는 것이다


기호주의자symbolists는 모든 지능을 기호를 다루는 활동으로 귀결 짓는다. 수학자가 수식을 다른 수식으로 바꾸면서 방정식을 푸는 것과 같다.


연결주의자connecrionists에게 학습은 두뇌가 하는 활동인 터, 우리가 해야 할 일은 두뇌를 역공학reverse engineer(완성된 제품을 분해하여 그 생산 방식과 적용 기술을 알아낸 뒤 복제하는 것 — 옮긴이)으로 알아내는 것이다.


진화주의자evolutionaries는 모든 학습의 어머니는 자연 선택이라고 믿는다.


베이즈주의자Bayesians는 불확실성에 주목한다. 학습된 지식은 모두 불확실하며 학습 자체는 불확실한 추론의 형태를 띤다. 그러므로 오류가 끼어 있는 듯하고 불완전하며 서로 모순된 정보들을 흩어 버리지 않고 잘 다루는 방법을 찾는 것이 과제다.


유추주의자analogizers에게 머신러닝의 핵심은 상황들 사이의 유사성을 인식하여 다른 유사점들을 추론하는 것이다.


머신러닝 개발자는 모든 과학자처럼 장님이 코끼리를 만지는 상황에 처해 있다


우리의 목표는 결론을 바로 내리지 않고 각 부분을 만지는 것이다. 모든 부분을 만지고 나서 코끼리의 전체 모습을 그려 볼 것이다. 모든 부분을 결합하여 하나의 해법을 어떻게 만들지는 분명하지 않다. 불가능하다고 여기는 사람들도 있지만 이것이 우리가 앞으로 할 일이다


컴퓨터 과학은 아직 젊은 분야이며 물리학이나 생물학과 달리 변혁을 시작하는 데 박사 학위가 필요하지도 않다(빌 게이츠와 세르게이 브린, 래리 페이지 혹은 마크 주커버그를 보라). 중요한 것은 통찰력과 인내력이다.


‘우리가 본 것에서 시작한 일반화를 보지 못한 것까지 적용하는 일을 어떻게 정당화할 수 있는가?’ 모든 머신러닝은 이 질문에 답하려는 시도라 할 수 있다.


‘세상에 공짜는 없다’라는 정리의 실질적인 결론은 ‘지식이 없는 학습 같은 것은 없다’이다. 데이터만으로는 충분하지 않다. 무에서 출발하면 다만 무에 도달할 뿐이다. 머신러닝은 지식 펌프knowledge pump여서 데이터를 통해 많은 지식을 끄집어낼 수 있지만 그러기 위해서는 먼저 펌프에 마중물을 부어야 한다.


선입견은 나쁘다. 하지만 머신러닝에서 선입견은 없어서는 안 된다. 선입견 없이는 학습이 불가능하다. 사실 선입견은 인간의 인식 기능에도 없어서는 안 되는데, 인간은 이미 두뇌 회로로 짜여 있고 우리는 선입견을 당연한 사실로 받아들인다. 의심할 만한 편견하고는 차원이 다른 편견이다.


진화와 마찬가지로 머신러닝도 매번 옳은 결과를 얻지는 못한다. 사실 실수가 나오는 것은 규칙이지 예외가 아닐 정도다. 하지만 괜찮다. 실패한 시도는 버리고 성공한 내용을 기초로 다시 만들어 나가면서 축적된 결과가 중요한 것이기 때문이다. 일단 새로운 지식을 하나라도 얻으면 앞으로 얻을 더 많은 지식을 유도하는 기초가 된다. 유일한 문제는 어디서 시작하는가이다.


뉴턴의 원리는 머신러닝에 관한 최초의 불문율이다. 우리는 최대한 널리 적용될 수 있는 규칙들을 유도하고 데이터의 한계에 따라 필요할 때만 적용 범위를 줄인다.


하지만 뉴턴의 원리는 단지 첫 단계에 불과하다. 여전히 우리가 경험하는 것마다 이를 설명하는 규칙을 파악해야 한다. 기초 데이터에서 규칙성을 끌어내는 방법을 알아야 하는 것이다.


우리가 필요한 것은 단 하나의 규칙이 아니라 다음과 같이 규칙의 집합으로 정의된 개념을 배우는 것이다.


학습은 중요한 부분을 기억하는 만큼 세부 항목은 잊는 것이다.


좋은 머신러닝은 무지blindness와 환각hallucination 사이에 난 좁은 길을 영원히 걸어야 한다.


과적합 문제는 잡음noise에 의해 더 심각해진다. 머신러닝에서 잡음은 데이터에 나타난 오류이거나 당신이 예측할 수 없이 무작위로 나타나는 사건이다.


과적합 문제는 가정이 너무 많고 가정들을 시험하여 솎아 낼 데이터는 충분하지 않을 때 발생한다


요점을 정리하면 다음과 같다. 학습은 당신이 보유한 데이터의 양과 당신이 고려하는 가설 수 사이의 경주다. 데이터가 많을수록 살아남는 가설의 수를 기하급수적으로 줄이지만, 많은 가설을 가지고 시작하면 나쁜 가설들이 여전히 남아 있는 채로 가설 검증이 끝날 수 있다. 경험으로 보건대 만약 머신러닝이 지수함수적인 가설 수를 고려하려고만 할 때(예를 들어 가능한 모든 접합 개념) 사례가 충분하고 특성치가 너무 많지 않다면 지수함수적으로 많은 양의 데이터가 이 가설 수를 상쇄하고 당신은 해답을 얻는다. 반면 만약 머신러닝이 이중으로 지수함수적인 숫자를 고려한다면(예를 들어 모든 가능한 규칙의 모음) 데이터는 지수함수 중 하나만 상쇄시키고 당신은 여전히 곤경에 빠진다.


머신러닝에서 우리는 유의성 검정 결과가 적절하게 나오도록 시험할 규칙의 수를 조절할 수 있지만 그렇게 하면 나쁜 규칙과 함께 좋은 규칙도 많이 버리는 경향이 나타난다. 더 나은 방법은 몇몇 잘못된 가정을 어쩔 수 없이 포함하지만 매우 낮은 유의성을 나타내는 것은 거부하여 그 수를 일정 한계 아래로 낮추면서 살아남은 가설들을 더 많은 데이터로 시험하는 것이다. 인기 있는 또 다른 방법은 더 단순한 가설을 선호하는 것이다. ‘분할 정복’ 알고리즘은 은연중에 더 단순한 규칙을 선호하는데, 규칙이 긍정적 예를 설명할 경우 규칙에 더 이상 조건을 붙이지 않고 모든 긍정적 예를 다 설명하기만 하면 더 이상 규칙을 만들지 않기 때문이다. 하지만 과적합 문제와 싸우기 위해 더 단순한 규칙을 더 강력하게 선호하여 부정적 예를 다 설명하기 전이라도 조건을 더하지 않도록 해야 한다. 예를 들어 규칙의 길이에 비례하여 벌점을 부과하고 규칙의 정확도에서 그 벌점을 뺀 값을 평가 지표로 사용할 수 있다.


머신러닝이 무지한가, 아니면 환각을 보는가? 머신러닝은 이런 상황에서 ‘편중’bias과 ‘분산’variance이라는 기술 용어를 사용한다


만약 머신러닝이 계속 같은 실수를 하면 문제점은 편중이다. 머신러닝을 더 유연하게 조정하든지 다른 머신러닝으로 바꾸어야 한다. 실수에 어떤 패턴이 없으면 문제점은 분산이다. 덜 유연한 머신러닝으로 시도하거나 더 많은 데이터를 구해 시험해야 한다.


더 많은 규칙을 추론할수록 더 많은 규칙을 또다시 추론할 수 있다. 이것은 지식을 창출하는 선순환이며 과적합 문제와 계산 비용에 의해서만 제한될 뿐이다. 그런데 여기에서도 초기 지식이 도움이 된다. 메워야 할 구멍이 커다란 구멍 하나가 아니라 여러 개지만 작은 구멍이라면 우리의 귀납 과정은 덜 위험하고 과적합 문제를 일으킬 가능성도 더 작아진다


역연역법의 또 다른 한계는 계산량이 매우 많아서 대용량의 데이터를 처리하기 어렵다는 점이다. 이런 점 때문에 기호주의자가 선택한 알고리즘은 의사결정트리를 이용한 귀납법이다.


의사결정트리는 한 사례에 대하여 스무고개 놀이를 하는 것과 같다.


의사결정트리는 분할 정복 알고리즘을 변형하여 만들 수 있다. 먼저 뿌리 단계에서 시험할 특성을 뽑는다. 다음은 각 가지로 내려가는 사례들에 집중하고 그 사례들을 시험할 특성을 뽑는다(예를 들면 세금 감면 찬성자와 낙태 반대자나 찬성자를 살펴본다). 우리가 유도한 새로운 단계마다 이런 일을 반복하여 한 가지에 속하는 모든 사례는 같은 유형이 되도록 한다. 같은 유형이 될 때 그 가지에 유형의 이름을 붙인다. 한 가지 핵심 질문은 ‘각 단계마다 시험할 가장 좋은 특성을 어떻게 뽑는가’이다. 정확하게 예측한 사례 수를 나타내는 정확도는 여기서 매우 좋은 기준은 아니다. 우리가 하고자 하는 일은 특정한 유형을 예측하는 것이 아니고 오히려 유형을 단계적으로 분리하여 각 가지를 ‘순수하게’ 만드는 것이기 때문이다


특성치가 이산치라면 각 특성치마다 가지를 만드는 것은 괜찮지만 특성치가 연속치인 경우라면 어떠한가? 연속하는 변수의 모든 값에 가지를 만든다면 트리는 무한대로 커질 것이다. 간단한 해법은 엔트로피 관점에서 평가하여 소수의 핵심 기준값을 뽑고 이것들을 사용하는 것이다. 예를 들면 ‘환자의 체온이 섭씨 38도 이상인가, 미만인가?’라고 물을 수 있다.


기호주의자의 머신러닝은 그 기원과 지도 원리 때문에 다른 머신러닝 학파보다 머신러닝을 제외한 인공 지능 분야에 여전히 더 가깝다.


머신러닝으로 역연역법을 수행시키는 것은 슈퍼 과학자를 보유하는 것과 같다. 이 슈퍼 과학자는 증거들을 체계적으로 살펴서 유도 가능한 지식을 평가하고 이 중 가장 강력한 지식을 모아 다른 증거들과 함께 사용하고 아직 발견되지 않은 더 많은 가설들을 만들어 내며 이 모든 작업을 컴퓨터의 속도로 해낸다.


반면 역연역법은 심각한 결점이 있다. 가능한 추론의 가짓수가 방대하여 초기의 지식에 가깝게 머물지 않으면 망망대해에서 조난당하기 쉽다. 역연역법은 잡음에 쉽게 오류를 일으킨다. 전제나 결론 자체가 틀렸다고 한다면 어떤 것이 연역 과정에서 빠졌는지 어떻게 파악하겠는가? 가장 심각한 것은 실제 개념은 규칙의 모음으로 간결하게 정의되는 일이 거의 없다는 사실이다. 실제 개념은 흑이거나 백이 아니다. 그 사이에 넓은 회색 지대가 존재한다.


기호주의자 학습과 연결주의자 학습의 차이점은 기호주의는 순차적인sequential 반면 연결주의는 동시적parallel이라는 점이다


신경망neural network은 소수의 가까운 친구들이 페이스북 친구 1000명 이상보다 중요한 사회관계망과 더 비슷하다. 그래서 당신에게 가장 많은 영향을 미치는 친구가 가장 신뢰하는 친구다. 친구가 추천한 영화가 좋았다면 당신은 다음번에도 그 친구의 추천을 따를 것이다. 반면에 당신이 좋아하지 않는 영화에 대하여 입이 마르도록 칭찬한다면 그 친구의 의견을 무시해 버릴 것이다


퍼셉트론은 선형 경계linear boundary만 학습할 수 있기 때문에 배타적 논리합은 배울 수 없다


제프 힌튼은 그다음 10여 년 동안 볼츠만 기계의 여러 가지 변형을 만드는 시도를 계속했다. 심리학자에서 컴퓨터과학자로 변신했고, 모든 디지털 컴퓨터에서 사용하는 논리 연산의 발명가인 조지 부울George Boole의 손자의 손자인 힌튼은 전 세계 연결주의자의 지도자다. 그는 누구보다 오랫동안 그리고 열심히 두뇌가 어떻게 작동하는가를 이해하려고 노력했다. 그는 어느 날 집에 들어오면서 대단히 흥분하여 “내가 해냈다고! 두뇌가 어떻게 작동하는지 알아냈다고!”라고 소리쳤다. 딸의 대답은 “아, 아빠, 제발 그만 하세요!”였다. 힌튼이 최근 열정을 쏟는 대상은 딥 러닝deep learning(컴퓨터가 스스로 데이터를 이용하여 사람처럼 스스로 학습할 수 있도록 인공 신경망을 기반에 두고 구현한 머신러닝 기술 — 옮긴이)이다.


S자를 옆으로 길게 늘인 것같이 보이는 이 곡선은 다양한 이름으로 알려졌는데 지수함수, 시그모이드 곡선 혹은 S자 곡선이라 부른다. 세상에서 가장 중요한 곡선이므로 꼼꼼히 살펴보기를 권한다.


선형 모델은 상태 전이를 다루지 못한다. 신경망은 스펀지가 물을 빨아들이듯이 상태 전이를 빨아들인다.


핵심은 은닉 층을 입력과 출력 층보다 훨씬 작게 만들어 신경망이 입력을 은닉 층에 그대로 복사하는 일과 은닉 층이 출력 층에 그대로 복사하는 일을 모두 할 수 없게 하는 것이다. 은닉 층이 작으면 흥미로운 일이 일어난다. 신경망은 입력을 더 적은 정보량으로 부호화해야 하고, 그러면 이 정보는 은닉 층에서 표현할 수 있게 되며, 이런 정보를 다시 원래 크기로 복호화複號化한다.


그다음 명석한 생각은 드문드문한 자동부호기들을 클럽 샌드위치처럼 겹겹이 쌓아 올리는 것이다. 첫 번째 자동부호기 입장에서는 두 번째 자동부호기의 입출력 층이 은닉 층이 되고 이런 식으로 두 번째 자동부호기 입장에서는 그 이후 자동부호기의 입출력 층이 은닉 층이 된다. 신경세포는 비선형적이기 때문에 각 은닉 층은 이전 은닉 층에서 수행한 결과를 바탕으로 더 정교한 표현을 만들어 낸다. 여러 가지 얼굴 영상을 입력하면 첫 번째 자동부호기는 얼굴의 윤곽과 눈, 코, 입 등 얼굴 각 부분을 부호화하고, 두 번째 자동부호기는 이런 정보를 이용하여 코끝이나 눈의 홍채 등 얼굴에 나타나는 특징을 부호화하고, 세 번째 자동부호기는 누구의 코와 눈인지를 학습하고, 다음번 자동부호기는 이런 식으로 점점 더 정교하게 학습해 나간다. 마지막으로 맨 마지막 층은 기존의 퍼셉트론이 올 수 있으며 아래층에서 제공하는 높은 수준의 특징으로 당신의 할머니를 인식하며 단 하나의 은닉 층에서 제공하는 정교하지 않은 정보만 사용하는 경우나 한꺼번에 모든 층으로 역전파를 실행하는 경우보다 훨씬 쉽게 학습이 가능하다.


하지만 주목할 만한 성공에도 불구하고 이 모든 신경망은 여전히 두뇌와 전혀 다르다. 구글 신경망은 고양이 얼굴이 정면으로 보여야 인식할 수 있다. 사람은 고양이가 어떤 자세를 취해도 인식하고 얼굴을 알아보기 힘들 때도 인식할 수 있다


머신러닝이 가장 잘하는 일은 다른 컴퓨터 분야와 마찬가지로 폭발적인 조합의 양을 처리할 때 당신을 불리하게 만드는 방향 대신 유리하게 만드는 방향으로 가는 것이다.


머신러닝과 삶에서 매우 중요한 문제는 탐험과 개발 사이 딜레마exploration-exploitation dilemma다. 효과가 있는 것을 발견하면 그것만 계속 사용해야 할까? 아니면 시간 낭비가 될 수 있지만 더 나은 해법을 얻을 수도 있다는 것을 알고 새로운 시도를 해야 할까?


어쨌든 타호 사건을 계기로 진화주의자는 머신러닝 분야의 나머지 진영과 최종 결별을 하고 집을 나갔다. 유전자 프로그램 개발자들은 자신만의 학술 회의를 시작했고 유전 알고리즘 학술 회의와 결합하여 유전과 진화 컴퓨팅 학술 회의GECCO를 결성했다. 머신러닝의 주류는 이 분야를 대체로 잊었다. 슬픈 결말이지만 역사에서 성 때문에 결별하는 일이 처음은 아니지 않은가


생물학에서는 이런 효과를 1896년 이것을 제안한 제임스 마크 볼드윈의 이름을 따서 ‘볼드윈 효과’Baldwin effect라고 부른다. 볼드윈 방식의 진화에서는 가장 먼저 배운 행동은 나중에 유전적으로 고정된다. 개와 비슷한 포유동물이 헤엄치는 법을 배울 수 있다면 익사할 경우보다 물개로 진화할 가능성이 크다. 그러므로 개체의 학습은 라마르크설에 의지하지 않더라도 진화에 영향을 준다는 것을 알 수 있다. 제프 힌튼과 스티븐 놀런Steven Nowlan은 신경망 구조를 진화시키는 유전 알고리즘을 사용하고 적합성은 개체 학습을 허용할 때만 시간이 지나면서 증가한다는 것을 관찰하여 머신러닝에서 볼드윈 효과를 입증했다.


우리는 보통 원인에 대한 결과의 확률을 알고 있지만, 우리가 알고 싶은 확률은 결과가 나왔을 때 결과의 원인에 대한 확률이기 때문에 베이즈 정리가 유용하다. 예를 들어 우리는 독감 환자의 몇 퍼센트가 열이 나는지 알지만, 우리가 진정으로 알고자 하는 것은 열이 있는 환자가 독감에 걸렸을 확률이 얼마나 되는가이다. 이처럼 베이즈 정리는 한 지점에서 다른 지점으로 가게 해 준다.


해가 뜰 거라는 확률을 2분의 1이나 3분의 2 혹은 다른 값으로 사전에 추정하는 것을 정확히 무엇으로 정당화할 수 있는가? 베이즈주의자의 대답은 확률이란 횟수가 아니라 주관적인 믿음의 정도라는 것이다. 그러므로 확률값을 어떻게 정할지는 당신에게 달렸고, 베이즈 추론에서 얻을 수 있는 것은 당신의 사후 믿음을 구하기 위해 당신의 사전 믿음을 새로운 증거들로 갱신하라는 것이 전부다(이것은 ‘베이즈의 크랭크 돌리기’로 알려져 있다). 이 아이디어에 대한 베이즈주의자들의 헌신은 종교에 가깝다. 200년간 계속됐고 지금까지도 늘어만 가는 공격을 견딜 만큼 말이다. 그리고 베이즈 추론을 수행하기에 충분히 강력한 컴퓨터의 등장과 대규모 데이터 덕분에 베이즈주의자는 다시 우위를 점하기 시작했다.


우리는 꼭 추정해야 하는 확률의 수를 일정한 범위 내로 줄이는 단순화 작업simplifying이 가능하도록 가정을 세운다. 매우 간단하고 인기 있는 가정은 원인에서 나오는 모든 결과가 서로 독립적이라고 여기는 것이다


베이즈 정리를 사용하고 원인이 조건으로 주어졌을 때 결과들은 서로 독립적이라고 가정하는 머신러닝 알고리즘을 ‘나이브 베이즈 분류기’Naive Bayes classifier라고 부른다


추정에 필요한 충분한 데이터를 확보할 수 있는 과도하게 단순한 모형은 추정에 필요한 데이터를 충분히 확보할 수 없는 완벽한 모형보다 낫다. 매우 틀리지만 동시에 매우 유용하기도 한 모형도 있다는 사실이 놀랍다.


구글의 연구 부서장인 피터 노빅Peter Norvig이 언젠가 나에게 나이브 베이즈 분류기는 구글에서 가장 널리 쓰이는 머신러닝이고 구글이 하는 일의 구석구석에 머신러닝이 적용된다고 말했다.


마르코프 네트워크는 특징들과 이에 대응하는 가중치가 모인 것으로 이들은 함께 확률 분포를 정의한다.


마르코프 네트워크는 데이터 전체의 가능성을 최대화하거나 우리가 알고 있는 것이 주어진 경우 우리가 예측하고자 하는 것의 조건부 가능성을 최대화하도록 학습시킬 수 있다.


연구란 돌고 돈다고 말하는 사람들도 있지만 한 번 돌 때마다 진보를 향하여 나아가는 나선형에 더 가깝다. 머신러닝에서 그 나선형은 마스터 알고리즘으로 수렴한다.


지금까지 우리가 만난 모든 종족은 하나의 공통점이 있다. 그들은 연구하는 현상에 대하여 명확한 모형을 학습한다. 그 모형은 규칙의 모음이거나 다층 퍼셉트론이거나 유전자 프로그램이거나 베이즈 네트워크다. 하지만 유추주의자는 단 하나의 사례처럼 적은 데이터를 가지고도 학습할 수 있다. 모형을 만들지 않기 때문이다.


전반적인 모형 대신 국부적인 모형을 만들려는 아이디어는 분류 작업을 넘어서 여러 분야에 적용된다. 과학자들은 연속 변수들을 예측하기 위하여 자주 선형회귀법을 사용하지만 현상은 대부분 선형적이지 않다.


요즘은 모든 종류의 알고리즘이 소비자에게 상품을 추천하는 데 사용되지만 가중치 k-최근접 이웃 알고리즘이 최초로 널리 사용된 알고리즘이며 여전히 이 알고리즘을 이기기는 힘들다.


이것은 차원의 저주라 불리며 다소간 모든 머신러닝 알고리즘에 영향을 주지만 특히 최근접 이웃 알고리즘에 나쁜 영향을 준다. 차원이 낮은 경우(2차원이나 3차원처럼) 최근접 이웃 알고리즘은 보통 매우 잘 작동한다. 하지만 차원이 올라갈수록 상황은 급속히 나빠진다.


의사결정트리 역시 차원의 저주curse of dimensionality에서 벗어나지 못한다.


사실 어떤 머신러닝도 차원의 저주에서 벗어나지 못한다. 차원의 저주는 머신러닝에서 과적합 문제에 이어 두 번째로 가장 나쁜 골칫거리다


차원이 많아질수록 오류를 일으키는 비율도 올라가기 때문에 SVM도 차원의 저주에 무관한 것은 아니다. 하지만 SVM은 대다수 알고리즘보다 저항력이 강하다.


어떤 유추주의 머신러닝 알고리즘이라도 가장 중요한 질문은 어떻게 유사성을 측정하는가이다. 이것은 두 데이터 사이의 유클리드 거리Euclidean distance처럼 간단하기도 하고 최종 결과로 유사성값을 출력하는, 여러 단계의 서브루틴subroutine을 포함하는 프로그램만큼 복잡하기도 하다


하지만 현재 우리가 알지 못하는, 이 우주에서 가장 커다란 신비에 대한 질문은 우주가 어떻게 시작되었는가, 혹은 어떻게 끝날 것인가, 혹은 어떤 무한소의 실로 짜여 있는가라는 것이 아니다. 바로 어린아이의 마음에 어떤 일이 벌어지고 있는가이다. 0.5킬로그램 정도밖에 안 되는 회색 젤리가 어떻게 의식이 자리 잡는 곳으로 성장하는가이다.


군집cluster은 비슷한 사물의 집합이고, 최소한 다른 군집의 구성원보다는 서로 더 유사한 사물의 집합이다. 사물을 유사한 것끼리 모으는 것은 사람의 본성이며 종종 지식으로 가는 첫 번째 단계다.


그리하여 로비는 닭이 먼저냐 달걀이 먼저냐라는 문제와 마주치게 되었다. 로비는 사물의 유형을 안다면 수량을 세어서 그 유형을 모형화할 수 있고, 유형의 모형을 안다면 사물의 유형을 추론할 수 있다. 우리가 다시 딜레마에 빠진 듯 보이지만 사실 그런 상황과는 거리가 멀다. 먼저 어떤 식이든 당신이 원하는 대로 각 사물의 유형을 추측한다. 무작위라도 괜찮다. 그러면 이제 순조롭게 경주에 참여했다. 당신은 그러한 유형과 데이터를 이용하여 유형의 모형을 학습할 수 있다. 이러한 모형을 기반으로 유형을 재추론할 수 있고 계속 이런 식으로 반복한다. 처음에는 미친 방식처럼 보인다. 모형에서 유형을 추론하고 유형에서 모형을 추론하는 과정이 영원히 반복되어 결코 끝나지 않을 것 같다. 이 과정이 끝난다 하더라도 의미 있는 군집을 도출했다고 믿을 까닭이 없다. 하지만 1977년 하버드대학의 통계학자 셋(아서 뎀프스터Arthur Dempster, 낸 레어드Nan Laird, 도널드 루빈Donald Rubin)이 이런 미친 방식이 실제로 작동한다는 것을 보였다. 한 번 순환할 때마다 군집의 모형은 점점 더 좋아지고 모형이 가능성의 국소 최대값이 되면 순환은 끝난다. 그들은 이 방식을 EM 알고리즘이라 불렀다. 여기서 E는 expectation(예상되는 확률을 추론)을 가리키고 M은 maximization(최대 가능성을 나타내는 변수들을 추정)을 가리킨다. 그들은 또한 이전의 많은 알고리즘이 EM 알고리즘의 특별한 경우라는 점을 밝혔다


주요 성분 분석principle-component analysis, PCA으로 알려진 이 과정은 과학자의 도구 상자에서 핵심 도구다. PCA가 자율 학습unsupervised learning분야에서 차지하는 위치는 선형회귀법이 지도 학습 분야에서 차지하는 위치와 같다


넷플릭스도 비슷한 아이디어를 사용한다. 단순히 비슷한 취향을 가진 가입자가 좋아하는 영화를 추천하는 대신 가입자와 영화를 더 낮은 차원인 ‘취향 공간’taste space에 모두 투사하여 이 공간에서 당신과 가까운 영화를 추천한다. 이런 방법으로 넷플릭스는 당신이 좋아하리라고 전혀 생각하지 못한 영화를 찾을 수 있다.


이전 장들에서 우리가 본 머신러닝 알고리즘은 모두 즉각적인 성과를 추구한다. 모든 행동은 스팸메일을 찾는 일이든 주식을 사는 일이든 선생님에게 즉각적인 보상이나 처벌을 받았다. 그런데 스스로 탐험하고 이리저리 움직이다가 상을 찾고 미래에 다시 상을 찾을 방법을 파악하는 알고리즘, 즉 주위를 기어 다니다가 입에 물건을 집어넣는 아기와 매우 비슷한 알고리즘만 전적으로 다루는 머신러닝의 하위 분야가 있다. 이것은 강화 학습reinforcement learning이라 부르며 당신의 첫 번째 가사 로봇이 이 알고리즘을 많이 쓸 것이다


당신은 연결된 상태들의 가치에서 일관성을 유지하기 위해 상태를 옮긴 후 방금 관측한 가치, 즉 당신이 얻은 보상과 옮긴 새로운 상태의 가치의 합을 사용하여 이전 상태의 가치를 갱신한다. 물론 아직은 그 값이 올바른 값이 아닐 수도 있지만 이렇게 하면서 충분히 오랫동안 돌아다니면 모든 상태와 이동하는 행동에 대한 올바른 값을 얻을 것이다. 이것이 강화 학습의 핵심이다


탐험과 개발의 딜레마란, 보상을 최대화하기 위하여 항상 가장 높은 가치의 상태로 가는 행동을 당연히 취하고자 하지만 그렇게 하다가는 다른 어딘가에 있을 수도 있는 더 큰 보상을 발견하지 못할 수 있는 상황을 말한다. 강화 학습 알고리즘은 때로는 최선의 행동을 선택하다가 때로는 무작위로 행동을 선택하는 방식을 사용하여 이 문제를 해결한다(우리 두뇌도 이런 목적으로 ‘잡음 발생기’를 지닌 것처럼 보인다). 학습할 것이 많은 초기에는 많이 탐험하는 것이 이치에 맞다. 일단 당신이 주변 지형을 알게 되면 그곳의 개발에 집중하는 것이 최선이다. 그것이 바로 인간이 한 생애를 살며 행동하는 방식이다.


강화 학습은 심리학과 신경과학에도 영향을 주었다.


우리는 사물을 덩어리로 나누어 인식하고 기억하는데, 어느 시간 동안 단기 기억으로는 한정된 수량만 유지할 수 있다(심리학자 조지 밀러George Miller의 유명한 논문에 따르면 일곱 개를 중심으로 두 개 안팎의 수량이다). 결정적으로 사물을 덩어리로 묶으면 다른 방식으로 할 수 있는 것보다 훨씬 더 많은 정보를 처리할 수 있다.


뉴웰의 오랜 동료이자 인공 지능 공동 설립자인 허버트 사이먼Herbert Simon은 체스 초보자와 전문 체스 기사의 주요 차이점을 더 일찍 발견했다. 체스 초보자는 체스판에서 기물의 위치를 한 번에 하나씩 파악하는 반면 전문 체스 기사는 여러 기물이 관련된 커다란 배치 형태를 파악한다. 체스 실력이 나아진다는 것은 기물의 배치를 덩어리 형태로 더 많이, 더 크게 파악하는 것과 관련된다. 뉴웰과 로젠블룸은 유사한 과정이 체스뿐만 아니라 모든 기술 획득 과정에서 나타난다고 가정했다.


로젠블룸과 뉴웰은 ‘청킹’ 프로그램을 다양한 문제에 적용하여 시행할 때마다 완료 시간을 측정하고 일련의 지수 법칙 곡선들을 내놓았다. 하지만 그것은 시작에 불과했다. 다음은 청킹을, 뉴웰과 또 다른 그의 제자인 존 레어드John Laird가 함께 연구한 ‘소어’Soar라고 이름 붙인 인지와 접합했다. 목표의 계층 구조를 미리 정의한 상황에서만 작동하는 프로그램이 아닌 소어 프로그램은 암초에 부딪힐 때마다 새로운 하위 문제를 정의하고 해결할 수 있다. 일단 새로운 덩어리가 생기면 소어는 비슷한 문제들에 적용하기 위하여 역연역법과 비슷한 방법으로 이것을 일반화했다. 소어에 접합한 청킹 방법은 연습의 지수 법칙 외에도 여러 가지 학습 현상의 훌륭한 모형임이 판명되었다.


뉴웰과 동료들은 모든 학습은 ‘청킹’으로 압축하고 모든 인지는 소어로 압축하기 위해 노력했지만 결국 실패하고 말았다. 문제 해결 프로그램이 더 많은 덩어리와 더 복잡한 덩어리를 학습하자 이들을 적용하는 대가가 너무도 커져서 프로그램이 점점 더 빨라지는 대신 점점 더 느려진 것이다.


데이터를 서로 연관되지 않은 사물들에서 무작위로 뽑은 표본이 아니라 복잡한 관계망의 일면으로 다루는 새로운 종류의 학습 방법이 필요하다. 관계망에 있는 지점들은 상호작용한다. 당신이 한 사람에게 취한 행동은 더 많은 사람에게 영향을 주며 다시 돌아와 당신에게 영향을 미친다. 관계형 학습기relational learner라 불리는 프로그램은 높은 사회 지능을 지니지 않을 수도 있지만 차선책이다. 전통적인 통계 학습에서 모든 사람은 고립된 섬이며 완전히 혼자다. 관계형 학습에서 모든 사람은 대륙의 한 조각이며 본토의 일부다. 인간은 연결하도록 태어난 관계형 학습자이며, 로비가 통찰력 있고 사교적인 로봇으로 자라기를 바란다면 사람처럼 연결하도록 설계해야 한다.


비관계형 학습에서 모형의 변수는 모든 독립적 사례(예를 들어 우리가 진단한 모든 환자)에만 있다. 관계형 학습에서는 우리가 만든 각 특징의 견본이 그 견본에 해당하는 모든 사례의 변수를 하나로 묶는다.


관계형 학습 알고리즘은 한 관계망에서 배운 것을 다른 관계망에도 적용할 수 있도록 일반화를 수행할 수 있다(예를 들어 애틀랜타에서 독감이 어떻게 퍼지는가에 대한 모형을 학습하고 이를 보스턴에 적용한다).


관계형 학습 알고리즘이 할 수 있는 가장 멋진 기술은 이따금 가르쳐 주는 선생님을 성실한 선생님으로 바꾸는 것이다.


세상이 어떻게 작동하는지 이해하고 싶다면 관계형 학습은 좋은 도구다.


마스터 알고리즘으로 가는 첫 번째 발걸음은 놀라울 정도로 간단할 것이다. 메타학습meta learning이라는 방식을 사용하여 여러 가지 머신러닝 알고리즘을 하나로 묶는 것은 어렵지 않다고 밝혀졌다. 메타학습은 넷플릭스와 왓슨, 키넥트, 그 외 셀 수 없이 많은 곳에서 사용되고 머신러닝 알고리즘들이 담긴 화살통에서 매우 강력한 화살이다. 또한 메타학습은 계속 이어지는 더 깊은 통합의 디딤돌이기도 하다.


이보다 훨씬 더 간단한 메타학습은 통계학자 레오 브레이먼Leo Breiman이 발명한 ‘배깅’bagging(자루에 넣기)이 있다. 배깅은 학습 예제에서 새로운 표본을 추출해 여러 학습 예제를 무작위로 만들어 머신러닝 알고리즘에 적용한 후 그 결과들을 투표 방식으로 통합한다. 이렇게 하는 까닭은 분산이 줄어들기 때문이다. 통합된 모델은 데이터에 예상 밖의 변화가 생겼을 때 단일 모델보다 훨씬 덜 민감하므로 ‘배깅’은 정확도를 향상하는 매우 쉬운 방법이다. 모형들이 의사결정트리이고, 학습 예제에만 변화를 주는 것이 아니라 각 지점에서 파악하여 얻은 속성들 가운데 무작위로 뽑아 부분 집합을 만들고 이를 각 트리가 보유하는 식으로 변화를 주면 ‘랜덤 포레스트’random forest라 부르는 방식이 된다. 랜덤 포레스트는 매우 정교한 분류기다. 마이크로소프트의 키넥트는 당신의 동작을 파악할 때 랜덤 포레스트 방식을 사용하며, 이 방식은 머신러닝 경연 대회에서도 자주 우승한다.


매우 성능이 좋은 메타학습법 중에는 학습이론가 요아브 프로인트Yoav Freund와 롭 샤피르Rob Schapire가 발명한 ‘부스팅’boosting(강화법)이 있다. 부스팅은 여러 학습 알고리즘을 결합하는 대신 이전 모형들이 저지른 실수를 바로잡는 새 모형을 이용하면서 같은 분류기를 데이터에 반복 적용한다. 이 방식은 학습 예제에 가중치를 부여한다. 학습을 할 때마다 잘못 분류한 사례의 가중치를 증가시켜 다음번 학습에서는 이 사례에 더욱 집중하도록 하는 것이다.


MLN을 학습시킨다는 의미는 임의로 예측하는 방식보다 더 자주 세상에서 진실이 되는 공식을 발견하고 공식이 예측하는 확률이 관찰되는 횟수와 맞도록 공식의 가중치를 정하는 것이다.


앨리스와 밥 모두 어떤 희귀한 책을 샀다면, 둘 다 많이 팔리는 책을 산 경우보다 더 많은 정보를 내포할 것이며, 당연히 더 높은 가중치를 얻어야 한다


파라오가 품었던 야망의 끝판처럼 유럽의 퓨처아이시티FutureICT 연구 과제는 말 그대로 온 세상의 모형을 세우는 것을 목표로 삼는다. 사회와 정부, 문화, 기술, 농업, 질병, 세계 경제 등 포함하지 않은 것이 없다. 지금은 확실히 미성숙한 상황이지만 앞으로 다가올 미래의 모습을 드러내는 전조로는 충분하다. 한편 이와 같은 연구 과제는 우리가 규모의 한계를 확인하고 그 극복 방안을 발견하는 데 도움이 될 것이다.


암 박멸 알고리즘은 전 세계 수십만 명의 생물학자와 종양학자, 데이터과학자가 협력하여 연구하고, 또 여러 번 반복해야 나오는 최종 결과일 것이다. 가장 중요한 점은 암 박멸 알고리즘이 의사와 병원의 도움을 받아 수백만 암 환자의 데이터를 모으는 것이다. 그러한 데이터가 없으면 암을 치료할 수 없고 데이터가 있으면 치료할 수 있다.


컴퓨터가 당신에 대해 어떤 모형을 세웠으면 하는가? 그런 모형을 세우기 위해 당신은 컴퓨터에 어떤 데이터를 줄 수 있는가? 두 가지 질문은 당신이 머신러닝 알고리즘과 상호작용을 할 때마다 마음속에 품고 있어야 한다.


모든 사람이 당신의 데이터를 사랑하며, 이는 전혀 놀라운 일이 아니다. 이 데이터는 당신의 세계와 당신의 돈, 당신의 투표, 심지어 당신의 마음으로 들어가는 관문이기 때문이다


일자리를 잃지 않는 최선의 길은 당신의 업무를 당신 자신이 자동화하는 것이다. 전에는 당신이 하지 않았고 앞으로 빠른 시간 안에 컴퓨터가 하지 못하는 당신 업무를 할 수 있는 시간을 얻을 것이다(그런 부분이 없다면 컴퓨터가 아직 자동화하지 않은 일들은 한 발 앞서 얻어라). 컴퓨터가 당신의 일을 하는 법을 학습했다면 컴퓨터와 경쟁하려고 하지 마라. 컴퓨터를 활용하라.


내가 의미하는 것은 인간이 되는 경험을 하지 않고서는 이해할 수 없는 모든 것에 해당되는 인간성이다. 우리는 인간성이 점차 사라진다고 걱정하지만 다른 직업들이 자동화되면 잿더미에서 다시 일어날 것이다. 더 많은 일이 기계로 저렴하게 수행될수록 인간미 넘치는 사람이 기여하는 부분은 더 가치 있을 것이다.


안심하시라. 마스터 알고리즘을 갖춘 인공 지능이 세상을 지배할 가능성은 0이다. 그 이유는 간단하다. 인간과 달리 컴퓨터에는 그만의 고유한 의지가 없다.


이제 당신 차례다. 머신러닝을 더 배우고자 한다면 이 책 끝에 있는 <더 읽을거리>를 살펴보라. 그리고 UCI 저장소archive.ics.uci.edu/ml/에서 데이터 모음을 내려 받고 실행해 보라. 준비가 되면 진행 중인 머신러닝 경연 대회를 전문으로 다루는 Kaggle.com에 들어가 둘러보고 참가할 대회를 하나 혹은 둘 정도 선택하라.

매거진의 이전글 단어의 사생활
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari