본문 바로가기
책 이야기

[페드로 도밍고스] 마스터 알고리즘

by manga0713 2016. 9. 17.

[표지 이미지출처: 교보문고]

 

 

 

 

책은, 알고리즘들과 그것들의 애플리케이션에 대한 연대기이다.

머신러닝, 딥러닝, 인공지능의 과거, 현재, 미래를 다소 어렵지만 흥미로운 전개 방식을 통해 풀어내느라 고생한 저자, '페드로 도밍고스'에게 존경을 보낸다.

 

 

 

다음은 책의 밑줄 부분이다.

 

 

들어가는

 

머신러닝 알고리즘은 다른 인공물을 설계하는 인공물이다.

 

이렇듯 마술 같은 기술들이 작동하는 까닭은 머신러닝이 하는 일이 근본적으로 예측이기 때문이다.

 

데이터와 머신러닝은 예측 범위를 크게 넓힌다.

 

머신러닝의 다섯 종족(inverse deduction, backpropagation, genetic programming, Bayesian inference, support vector machine) 각자 자기만의 마스터 알고리즘(master algorithm/general-purpose learner) 있다.

 

실제로 각각의 알고리즘은 특정 작업에는 훌륭하지만 다른 일에는 그렇지 않다.

 

 

1 머신러닝의 혁명이 시작됐다

 

우리는 알고리즘의 시대에 살고 있다.

 

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

 

힘들겠지만 논리곱, 논리합, 부정 가지 기본 동작이면 아무리 복잡한 알고리즘도 표현할 있다.

 

알고리즘으로 표현할 없으면 진정으로 이해한 아니라는 말이 있다.

 

복잡성 괴물(Complexity monster): 시작 복잡성(time complexity), 공간 복잡성(space complexity), 사람이 연관된 복잡성(human complexity)

 

공간 복잡성: 컴퓨터가 제공할 있는 기억 장소보다 기억 장소가 필요하면 알고리즘은 사용할 없으며 포기해야 한다.

 

시간 복잡성: 우리가 기다릴 있는 시간보다 알고리즘을 수행하는 시간이 길면 알고리즘은 쓸모가 없다.

 

사람이 연관된 복잡성: 알고리즘이 너무 복잡하게 뒤얽혀서 인간 두뇌가 이해하지 못하거나, 알고리즘의 여러 부분 사이에서 일어나는 상호작용이 너무 많고 복잡하면 오류가 슬금슬금 생기기 시작한다.

 

머신러닝은 지식을 배우기도 하고 기술을 배우기도 한다. ~ 지식은 자주 통계 모형(statistical model) 형식을 띤다. ~ 기술은 자주 절차(procedure)라는 형식을 띤다. ~ 많은 경우 복잡한 것은 핵심에 있는 지식이지 절차는 매우 간단하다.

 

산업혁명은 수공업을 자동화하고 정보혁명은 정신 노동을 자동화한 반면 머신러닝은 자동화 자체를 자동화했다.

 

어떻게 원하는 것을 찾을까? 이것이 정보 시대를 규정하는 문제이며, 머신러닝은 문제를 해결하는 크게 기여한다.

 

머신러닝 알고리즘은 중개인 matchmaker 이다.

 

머신러닝은 사람이 다룰 있을 만큼 선택안을 현명하게 줄여 준다.

 

최선의 알고리즘과 최대의 데이터를 보유한 기업이 승리한다. 이로써 새로운 종류의 순환고리가 생긴다. 가장 많은 고객을 보유한 회사가 가장 많은 데이터를 수집하고 가장 좋은 모형을 학습하고 가장 많은 신규 고객을 얻으며, 이러한 선순환이 계속 이어지는 것이다. ~ 축적된 데이터 없이 시작하려는 도전자는 가엾을 뿐이다.

 

'데이터는 새로운 석유다'라는 말은 인기 있는 후렴구이고 석유처럼 데이터도 정제하는 일이 사업이다.

 

경쟁사는 없고 우리만 보유한 데이터는 무엇인가? 이것을 어떻게 이용할 것인가? 우리는 없지만 경쟁사가 보유한 데이터는 무엇인가?

 

머신러닝은 멋진 신기술이다. 하지만 멋진 신기술이어서 채택하는 것이 아니라 채택하지 않으면 기업이 생존할 없기 때문에 채택하는 것이다.

 

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

 

 

2 마스터 알고리즘은 어떻게 탄생하는가

 

학습에 필요한 적절한 데이터를 제공한다면 머신러닝은 같은 알고리즘으로 가지(대다수를) 일을 있다.

 

보편적인 머신러닝을 발명하는 것은 우리 우주에서 가장 밑바탕에 있는 규칙성, 모든 현상에서 나타나는 규칙성을 발견하고 규칙성을 데이터와 연결하는 효율적인 계산 방법을 찾아내는 것이다.

 

마스터 알고리즘은 수학의 논리적 확장이다.

 

최고의 수익을 내도록 주식을 사고파는 순서를 찾는 일은 최적화 문제다.

 

"데이터는 인간의 직관 intuition 대체할 없다."라는 말이 있다. 사실은 반대가 맞는 말이다. 인간의 직관은 데이터를 대체할 없다. 직관은 사실을 모들 사용하는 것이고 당신은 사실을 모르기 때문에 직관이 소중하다. 하지만 증거가 눈앞에 있다면 거부할 이유가 없다.

 

당신이 권위 있는 미래학자가 되고 싶다면 데이터를 활용하라. 데이터와 싸우지 마라.

 

알고리즘에서 무엇이 중요하고 무엇이 중요하지 않은가, 중요한 요소들은 어떤 공통점이 있는가, 중요 요소들이 어떻게 서로 보완할 있는가를 알아낸다면 마스터 알고리즘을 합성할 있다.

 

머신러닝을 가르쳐라. 그러면 머신러닝이 당신에게 봉사할 것이다. 하지만 먼저 당신이 머신러닝을 이해해야 한다. 내가 하는 일에서 머신러닝이 있는 것은 무엇이고 없는 것은 무엇이며 내가 일을 잘하기 위해 어떻게 머신러닝을 이용할 있을까를 이해해야 한다.

 

미래를 차지할 사람은 자신의 독특한 전문 지식을 머신러닝이 가장 하는 것과 결합하는 법을 매우 깊은 수준으로 이해하는 사람이다.

 

컴퓨터가 배울 있다는 사실이 컴퓨터가 스스로 의지를 획득한다는 것을 의미하지는 않는다.

 

사실상 우주를 완전히 모의시험하려면 하나의 동일한 우주가 필요하다.

 

 

3 흄이 제기한 귀납의 문제: 기호주의자의 머신러닝

 

군데에서 얻은 일반화를 다른 것에도 적용할 있다는 보장은 없는 것이다.

 

머신러닝에서 개념에 맞는 사례를 긍정적 (양의 예제)라고 하고, 개념에 반하는 예를 부정적 (음의 예제)라고 부른다.

 

머신러닝 알고리즘은 데이터에서 어떤 패턴을 찾는 능력이 거의 무제한이기 때문에 과적합 문제에 특히 취약하다. ~ 과적합 문제는 잡음 noise 의해 심각해진다.

 

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

 

 

4 우리 두뇌는 어떻게 학습하는가: 연결주의자의 머신러닝

 

(연결주의자들의 믿음) 지식이란 신경세포neuron 사이의 연결에 있다.

 

연결주의는 동시적parallel

 

신뢰 할당 문제credit-assignment problem 복잡한 모형을 얻어 때마다 나타나는 문제이고 머신러닝의 핵심 문제다.

 

볼츠만 기계는 신뢰 할당 문제를 이론으로는 있지만 실제로는 학습이 매우 느리고 어려움이 많아 응용 분야에 적용하기에는 대부분 비실용적이다.

 

 

5 진화, 자연의 학습 알고리즘: 진화주의자의 머신러닝

 

두뇌는 무엇이라도 배울 있지만 두뇌를 진화시키지는 못한다.

 

가장 빨리 학습하는 자가 승리한다.

 

진화는 훌륭한 구조를 찾고, 신경망 학습은 구조를 학습시킨다.

 

무엇보다 머신러닝의 목표는 어떤 수단을 사용하든지 최고의 학습 알고리즘을 찾는

 

실수의 대가가 클수록 실수할 가능성을 줄여야 한다.

 

설명적 이론 descriptive 규범적 이론normative theory 사이의 대립, 다시 말해 '이것은 이렇게 된다.' '이것은 이렇게 되어야 한다' 사이의 대립에서 나타나는 긴장.

 

 

6 베이즈 사제의 성당에서: 베이즈주의자의 머신러닝

 

증거가 가설과 일치한다면 가설이 옳을 가능성이 올라간다. 만약 아니라면 내려간다.

 

데이터가 매우 적을 때는 어떻게 학습할 것인가

 

 

7 당신을 닮은 것이 당신이다: 유추주의자의 머신러닝

 

최근접 이웃 알고리즘은 이제까지 발명된 머신러닝 알고리즘 중에서 가장 간단하고 가장 빠르다.

 

요즘은 모든 종류의 알고리즘이 소비자에게 상품을 추천하는 사용되지만 가중치 k-최근접 이웃 알고리즘이 최초로 널리 사용된 알고리즘이며 여전히 알고리즘을 이기기는 힘들다. ~ 말할 필요도 없이 컴퓨터들이 1 이내에 사고파는 주식 거래 같은 분야에서는 여전히 번째로 선택되지 않는다.

 

차원의 저주

 

사실 어떤 머신러닝도 차원의 저주에서 벗어나지 못한다. 차원의 저주는 머신러닝에서 과적합 문제에 이어 번째로 가장 나쁜 골칫거리다. ~ 차원이 증가할수록 학습 자체가 점점 어려워진다는 것이 문제다.

 

그렇지만 전혀 희망이 없는 것은 아니다. 가장 먼저 있는 일은 관련 없는 차원들을 없애는 작업이다.

 

SVM 많은 머신러닝의 관습적인 지혜를 되돌아보게 했다. 예를 들어 때때로 오컴의 면도날로 오인하는 '모형이 간단 할수록 정확하다'라는 개념이 거짓임을 보였다.

 

 

8 선생님 없이 배우기

 

문제는 어떻게 (데이터를) 모으는 일을 것인가이다.

 

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

 

'효과의 법칙'law of effect. 즐거움을 주는 행동은 미래에 되풀이 가능성이 높고, 고통을 받는 행동은 되풀이될 가능성이 덜하다는 것이다. 말하자면 즐거움은 시간을 거슬러 여행하므로 행동과 멀리 떨어진 효과와 행동이 연결될 있다. 인간은 이러한 종류의 장기 보상 추구를 다른 어떤 동물보다 잘하며, 이것이 인간의 성공에 결정적인 기여를 한다.

 

모든 상태가 상벌이 결정 나는 상태는 아니지만 상태는 일정한 가치가 있다는 개념은 강화 학습의 핵심이다.

 

움직이면 체크메이트를 외칠 있는 자리는 실제로 승리만큼 좋은 것이며, 따라서 높은 가치를 지닌다. 이런 식으로 추론을 계속 진행하여 최종 결과와의 연결이 불분명할 만큼 멀리 떨어진 첫수가 좋은 수인지 나쁜 수인지도 판단한다.

 

강화 학습의 목표는 최대 보상으로 이끄는 행동을 항상 선택하는 것이다.

 

강화 학습은 어떤 상태에서 시작하여 얻을 있는 보상을 모두 합하여 상태의 가치를 평가하고 이런 값을 최대화하는 행동을 선택한다.

 

탐험과 개발의 딜레마란, 보상을 최대화 하기 위하여 항상 가장 높은 가치의 상태로 가는 행동을 당연히 취하고자 하지만 그렇게 하다가는 다른 어딘가에 있을 수도 있는 보상을 발견하지 못할 있는 상황을 말한다. 강화 학습 알고리즘은 때로는 최선의 행동을 선택하다가 때로는 무작위로 행동을 선택하는 방식을 사용하여 문제를 해결한다.

 

사물을 덩어리로 묶으면 다른 방식으로 있는 것보다 훨씬 많은 정보를 처리할 있다.

 

인식과 기억에서 덩어리는 다른 기호들이 형성하는 유형을 대표하는 기호다.

 

청킹chunking 자극과 반응으로 구성된다.

 

 

9 마스터 알고리즘을 위한 마지막 퍼즐 조각

 

마르코프 네트워크는 특징들의 가중치 합으로 정의된다.

 

마르코프 네트워크는 확률 분포를 나타내는 매우 유연한 방법이 된다.

 

컴퓨터 과학에서는 문제를 효율적으로 풀기 전까지는 문제를 정말로 것이 아니다. 어떤 일을 하는 방법을 안다고 해도 있는 시간과 기억 장치 용량의 한계 안에서 과제를 해낼 없다면 그리 유용한 아니다.

 

 

10 이것이 머신러닝이 펼치는 세상이다

 

당신은 가지 수준에서 (컴퓨터와) 상호작용을 한다. 첫째는 당신이 원하는 것을 얻는 수준의 상호작용이다. ~ 둘째는 컴퓨터가 당신에 대해 학습하도록 하는 수준의 상호작용이다.

 

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

 

자신의 경험을 공유한다면 ~ 당신은 누구와 데이터를 나눠야 하는가?

 

세르게이 브린은 "우리는 구글이 당신 두뇌에 번째 반구가 되기를 원한다."라고 말했고, 구글의 몇몇 기업 인수는 인수 기업이 보유한 연속적으로 흘러 들어오는 데이터가 구글의 데이터를 얼마나 보완하는가와 관련될 것이다.

 

데이터는 감각 기관의 확장이고 머신러닝 알고리즘은 두뇌의 확장이라고 생각하라.

 

대결 상황은 사람 기계가 아니다. 기계를 이용하는 사람 기계를 이용하지 않는 사람의 대결이다.

 

직업의 정의에 따라서 컴퓨터와 로봇이 지닐 없는 요소, 예를 들어 인간의 경험 같은 것을 요구하기 때문에 정말로 사람을 대체할 없는 직업도 있을 것이다.

 

궁극적으로 우리가 기계에서 원하는 것이 무엇이고, 그것을 얻었는지 확인하는 일은 모든 분야의 사람들이 상근으로 해야 하는 직업이 것이다.

 

선물 경제gift economy, 공개 소프트웨어 운동은 선물 경제를 미리 보여 주는 사례다.

 

사람의 결정이 다른 사람의 결정과 일치하는 횟수만큼 로봇의 결정이 사람의 결정과 일치하는 일이 반복되면 학습은 끝난다.

 

특이점singularity 있는 유일한 문제는 실제로는 존재하지 않는다는 것이다(언제 당신이 마지막으로 케이크를 0명의 사람에게 나누어 주어 사람마다 무한대의 조각을 받았는가?).