[자연과학] 생태 과학 칼럼 모음

[과학읽기] 알고리즘, 인생을 계산하다.. 인생의 모든 문제를 단숨에 해결하는 생각의 혁명 (2019.08.31)

푸레택 2019. 8. 31. 17:24

 

 

 

 

 

 

 

<서문>

● 인생의 거의 모든 문제를 해결하는 알고리즘algorithm

 

당신이 샌프란시스코에서 아파트를 구한다고 하자. 샌프란시스코는 미국에서 집 구하기가 가장 힘든 도시라고 할 수 있다. 첨단 기술 부문이 급성장하고 있는 반면에 갑갑한 도시 계획 법규로 건물 신축이 제한되어 있어서 이 도시는 뉴욕만큼 집값이 비싸며 여러 면에서 뉴욕보다도 경쟁이 더 극심하다. 몇 분 사이로 새로운 매물이 올라왔다가 사라지고, 오픈하우스는 사람들로 미어터지며, 집주인의 손에 먼저 수표를 쥐어주는 사람이 집 열쇠를 넘겨받기도 한다.

 

이렇게 급박하게 돌아가는 시장에서는 합리적인 소비자의 행동을 특징짓는다고 보는 이론상의 사실 검토나 심사숙고를 할 겨를이 거의 없다. 구매를 결정하기 전에 여러 대안들을 비교·검토할 수 있는 쇼핑몰 고객이나 온라인 쇼핑객과 달리, 샌프란시스코에 살고자 하는 사람은 매순간 즉시 양자택일을 해야 한다. 다른 모든 집들을 제쳐두고 지금 둘러보는 아파트를 당장 구매하든지, 그냥 나가서 다시는 돌아오지 말든지 말이다.

 

논의를 단순화하기 위해, 당신이 물품으로 나와 있는 아파트 중에서 가장 좋은 것을 구할 기회를 최대화하는 데에만 관심이 있다고 하자. 당신의 목표는 '그때 잡아야 했는데'와 '더 살펴봐야 했는데'라는 양쪽의 후회를 최소한으로 줄이는 것이다. 당신은 즉각 진퇴양난에 빠진다. 비교 판단할 기준이 없다면, 어느 아파트가 가장 좋은지를 어떻게 알 수 있겠는가? 그리고 여러 아파트를 둘러보지 않는다면(그리고 놓치지 않는다면), 선택의 기준을 어떻게 정할 수 있겠는가? 정보를 더 모을수록 가장 좋은 기회가 왔음을 더 잘 알아차릴 수 있을 것이다. 하지만 그러는 사이에 좋은 기회를 이미 놓쳤을 가능성도 함께 더 높아진다.

 

그렇다면 정보를 얻는 활동 자체가 성공에 위협이 될 때, 어떻게 하면 정보에 근거한 결정을 내릴 수 있을까? 거의 진퇴양난이라고 할 만한 잔인한 상황이다. 이런 종류의 문제에 직면했을 때, 대다수는 '둘러보기'와 '뛰어들기' 사이에 어떤 균형이 필요하다는 식의 말을 할 것이다. 다시 말해 기준을 정할 수 있을 만큼 아파트들을 충분히 둘러본 다음에, 자신이 정한 기준을 충족하는 집이 나오면 사야 한다는 것이다. 사실상 이 균형 개념은 정확히 옳다. 그러나 대다수가 확실하게 말하지 못하는 부분은, 그 균형이 어디냐 하는 것이다. 다행히도 답이 나와 있다. 바로 37%다.

 

가장 좋은 아파트를 구할 확률을 최대로 높이고 싶다면 아파트를 구하는 데 드는 시간의 37%(1개월을 둘러본다면 11일째까지)는 막연하게 돌아다니면서 대안들을 살펴보는 것이다. 이때 수표는 집에 놔두고 다니도록 한다. 그저 둘러볼 뿐이니까. 하지만 그 뒤에는 이미 본 집들보다 나은 집을 보기만 하면 그 즉시 행동할 준비를 하라. 곧바로 대금을 건넬 수 있도록. 이것이 단순히 둘러보기와 뛰어들기 사이의 직관적으로 흡족한 타협안을 의미하는 것은 아니다. 이 값은 입증할 수 있는 '최적해optimal solution'이다. 그것을 아는 이유는 아파트 구하기가 '최적 멈춤optimal stopping' 문제라고 하는 수학 문제의 일종이기 때문이다. '37% 법칙'은 이런 문제들을 풀기 위한 단순한 일련의 단계들을 가리킨다. 컴퓨터과학자들이 '알고리즘'이라고 부르는 것이다.

 

그리고 뒤에서 말하겠지만, 아파트 구하기는 최적 멈춤이 일상생활에 적용되는 양상 중 하나에 불과하다. 대안들을 계속 둘러보거나 그만 찾아보는 행동은 삶에서 조금씩 다른 모습을 띠고 등장하는 하나의 동일한 구조라 할 수 있다. 동네를 몇 바퀴 돌아야 주차 공간을 찾게 될까? 모험적인 벤처 사업에 얼마나 운을 쏟아부어야 수익을 언게 될까? 더 좋은 집이나 차를 구하려면 얼마나 오랫동안 기다려야 할까? 계속 부담이 있는 상황에서 또다시 도전 과제가 나타난다. 바로 연애 상대 찾기다. 최적 멈춤은 연속되는 일부일처제의 과학이라고 말할 수 있을 정도다.

 

이 단순한 알고리즘은 아파트 구하기만이 아니라, 최적 멈춤 문제와 직면하는 삶의 모든 상황에서 해결책을 제공한다. 사람들은 매일 이런 문제들을 붙들고 씨름하며 -시인은 주차보다는 구애의 문제를 글로 적는 데 더 많은 잉크를 소비할 것이 분명하지만- 때로는 몹시 번민한다. 하지만 그 번민은 불필요하다. 적어도 수학적으로는 해결된 문제들이기 때문이다.

 

우리가 일상적인 한 주를 보낼 때 주변에 보이는 근심 걱정이 가득한 모든 임차인, 운전자, 구혼자는 본질적으로 이러한 과정을 되풀이하고 있다. 그들에게 필요한 것은 심리치료사가 아니라 알고리즘이다. 심리치료사는 그들에게 충동적인 태도와 너무 많은 생각시 이에 적절하면서 편안한 균형을 찾으라고 말한다. 알고리즘은 그들에게 그 균형이 37%라고 말한다.

 

모든 사람이 직면하는 특정한 문제 집합, 즉 우리가 유한한 시간과 공간에서 삶을 영위한다는 사실로부터 직접 비롯되는 문제들이 있다. 하루 또는 10년 동안에 우리는 무엇을 해야 하고, 무엇을 하지 말아야 할까? 느슨하고 흐트러진 모습을 얼마나 용납해야 할까? 그리고 지나치다고 볼 수 있는 질서는 어느 정도의 수준일까? 새로운 활동과 기존의 친숙한 활동 사이에 어떻게 균형을 잡아야 충족되는 삶을 살 수 있을까?

 

이런 문제들이 인간만의 것처럼 보일지 모르지만, 그렇지 않다. 컴퓨터과학자들은 반세기 넘게 이런 일상적인 난제들에 상응하는 문제들을 붙들고 씨름해 왔으며, 해결한 사례들도 많다. 프로세서가 최소한의 시간과 비용으로 사용자들이 요구하는 모든 과제를 수행하려면 어떤 식으로 '주의'를 배분해야 할까? 과제 사이의 전환은 언제 해야 하고, 애초에 과제를 얼마나 많이 떠맡아야 할까? 한정된 기억 자원을 활용하는 최선의 방법은 무엇일까? 자료를 더 모아야 할까, 아니면 이미 가지고 있는 자료를 토대로 행동해야 할까? 사람은 하루의 시간을 배분하는 것도 힘들지 모르지만, 우리 주변에 있는 모든 컴퓨터는 밀리초(1,000분의 1초) 단위로 쉽게 시간을 배분한다. 그리고 컴퓨터가 하는 방식으로부터 우리는 많은 것을 배울 수 있다.

 

알고리즘을 인간의 삶에 적용한다니, 좀 기이하게 결부시키는 것처럼 보일지 모른다. '알고리즘'이라는 말을 들으면 빅데이터, 거대 정부, 대기업이 짠 불가사의하고 불가해한 음모를 떠올리는 사람들도 많다. 비록 알고리즘이 현대 세계의 기반 시설을 점점 더 많이 떠맡고 있지만, 인간사에 실질적인 지혜나 지침은 거의 제공하지 못하는 것처럼 보이기 때문이다. 하지만 알고리즘은 그저 어떤 문제를 푸는 데 쓰이는 유한한 일련의 단계들을 의미하며, 컴퓨터보다 훨씬 더 폭넓게 쓰인다. 그리고 컴퓨터보다 훨씬 더 오래되었다. 알고리즘은 기계가 사용되기 훨씬 이전부터 사람이 써온 것이었다.

 

'알고리즘'이라는 단어는 페르시아 수학자 알-콰리즈미al-Khwarizmi의 이름에서 유래했다. 9세기에 손으로 수학 계산하는 기법을 설명한 책을 쓴 사람이다. (그의 책은 《알-자브르 왈-무카발라al-Jabr wa'l-Muqabala》였고, '알-자브르'는 대수학algebra 이라는 단어의 어원이 되었다.)" 그러나 알려진 최초의 수학 알고리즘은 알-콰리즈미의 책보다 더 앞선다. 바그다드 인근에서 발견된 4,000년 전 수메르 점토판에는 긴 나눗셈을 하는 방식이 적혀 있다.

 

하지만 알고리즘은 수학에만 한정된 것이 아니다. 요리법에 따라 빵을 요리하는 것도 알고리즘을 따르는 것이다. 본을 따라서 스웨터를 뜨는 것도 알고리즘을 따르는 것이다. 망칫돌 끝으로 정확한 순서에 따라 쳐서 부싯돌 조각의 끝을 날카롭게 떼어내는 것은 정교한 석기를 만드는 핵심 단계인데, 이것 역시 알고리즘을 따르는 것이다. 석기 시대 이후로 알고리즘은 인류 기술의 일부였다.

 

이 책에서 우리는 '알고리즘 설계algorithm design'라는 개념을 살펴볼 것이다. 사람들이 매일 마주치는 도전 과제들의 더 나은 해결책을 찾는 것을 말한다. 컴퓨터과학이라는 렌즈를 일상생활에 들이대면 크고 작은 여러 규모에서 파급 효과가 나타난다. 가장 직접적인 차원에서는 특정한 문제를 풀 실질적이고 확실한 방법을 제시한다.

 

최적 멈춤은 살펴볼 때가 언제이고 뛰어들 때가 언제인지를 알려준다. 탐색/이용 트레이드오프는 새로운 것을 시도하는 일과 좋아하는 것을 즐기는 일 사이에 균형을 찾는 방법을 알려준다. 정렬 이론은 사무실을 어떻게 정리할지(그리고 정리하는 게 맞는지)를 알려준다. 캐싱 이론은 옷장을 채우는 법을 알려준다. 일정 계획 이론은 시간을 배분하는 법을 알려준다.

 

그다음 수준에서, 컴퓨터과학은 이런 영역들 각각에서 펼쳐지는 더 깊은 원리를 이해할 어휘를 제공한다. 칼 세이건의 말 그대로다. "과학은 지식의 집합이라기보다는 생각하는 방법이다. 삶이 너무나 혼란스러워서 엄밀한 수치 분석이나 쉬운 답을 기대할 수 없을 때에도, 더 단순화한 형태들에 맞추어진 직관과 개념을 이용하면 그런 문제의 핵심을 이해하고 일을 진척시킬 방법이 나온다.

 

더 폭넓은 차원에서 컴퓨터과학이라는 렌즈를 통해 우리의 일상을 들여다본다면 우리는 인간 마음의 특성, 합리성의 의미, 그리고 모든 의문들 중에 가장 오래된 것인 '살아가는 방법'에 관해 무언가를 깨닫게 될 수 있다. 인지개념을 환경이 부과하는 근본적인 계산문제들을 푸는 수단이라는 관점에서 살펴본다면, 우리가 인간의 합리성을 생각하는 방식에도 근본적인 변화가 일어날 수 있다.

 

컴퓨터 속에서 일어나는 일들을 연구함으로써 우리가 어떤 식으로 생각하고 판단하는지, 무엇을 믿고 어떻게 행동하는지를 밝혀낼 수 있다는 개념이 극도로 환원론적일뿐 아니라 사실상 오도하고 있다고 보는 사람도 많을 것이다. 컴퓨터과학이 우리가 어떻게 생각하고 어떻게 행동하는지에 관해 무언가 말해주더라도, 누가 그 말에 귀 기울이고 싶어 하겠는가? 과학 소설에는 인공지능과 로봇이 으레 등장하지만, 그들의 생활은 우리가 원하는 삶과는 달라 보인다.

 

우리가 컴퓨터라고 하면, 냉정하기 그지없는 기계적이고 결론적인 시스템을 떠올리기 때문에 그럴 수도 있다. 우리는 기계가 엄밀한 추론 논리를 적용하고, 대안들을 철저히 살펴본 뒤 결정을 내리며, 아주 오랫동안 힘들게 생각해야 할지라도 어쨌든 정답을 내놓는다고 여긴다. 사실 최초로 컴퓨터를 상상한 사람들도 본질적으로 그점을 염두에 두고 있었다. 앨런 튜링은 길게 이어지는 계산 단계들을 꼼꼼히 따라가서 실수 없이 정답을 내놓는 인간 수학자를 유추함으로써 컴퓨터 연산 개념을 정의했다.

 

그러니 현대 컴퓨터가 어려운 문제에 직면했을 때 실제로 그런 식으로 풀지 않는다고 말하면 놀랄지도 모르겠다. 물론 단순한 산수 문제는 현대 컴퓨터에게 그리 어렵지 않다. 오히려 현재 컴퓨터과학의 가장 큰 도전 과제는 사람과 대화하거나, 손상된 파일을 고치거나, 바둑에서 이기는 일 같은 것이다. 규칙이 명확하지 않거나 필요한 정보 중에서 일부가 빠져 있거나, 정답을 찾으려면 천문학적인 수의 가능성들을 살펴보아야 하는 문제들이다. 그리고 연구자들이 가장 어려운 부류의 문제들을 풀기 위해 개발한 알고리즘이 쓰이면서 컴퓨터는 칠저한 계산에 극도로 의지하던 양상에서 점점 더 벗어나왔다. 우연을 받아들이고, 정확성을 희생시켰지만, 대신에 시간을 단축하고 근삿값을 사용하면서 풀어야 하는 현실세계의 과제들을 다루는 쪽으로 나아왔다.

 

컴퓨터가 현실세계의 문제들을 푸는 데 더 적합해질수록, 컴퓨터는 사람들이 살아갈 때 빌려 쓸 수 있는 알고리즘뿐 아니라, 사람의 인지 활동 자체를 비교할 수 있는 더 나은 기준까지 제공한다. 지난 10~20년 동안 행동경제학 쪽에서는 인간에 관한 매우 특이한 이야기가 흘러나왔다. 오류투성이의 별난 뇌 때문에 우리가 비합리적이고 실수를 잘 한다는 것이다. 우리는 이 자기 비하적인 이야기에 점점 익숙해져왔지만, 아직 당혹스러운 질문들이 남아 있다. 한 예로, 네 살배기가 100만 달러가 넘는 슈퍼컴퓨터보다 시각, 언어, 인과 추론 등 많은 인지 과제를 휠씬 더 잘해내는 이유가 대체 무엇이란 말인가?

 

컴퓨터과학이 일상적인 문제들에 대해 내놓는 해결책들은 사람의 마음에 관해 다른 이야기를 들려준다. 아주 단순히 말하자면, 삶은 어려운 문제들로 가득하다. 그리고 사람들이 저지르곤 하는 실수는 사람 뇌의 오류 가능성보다는 그 문제가 지닌 어려운 측면들에 관해 더 많은 것을 알려주곤 한다. 알고리즘 관점에서 세상을 바라보고, 우리가 직면한 문제의 기본 구조와 그 해결책의 특성을 알아낸다면, 우리는 자신이 실제로 얼마나 문제를 잘 해결하고 있는지를 간파하고, 자신이 어떤 오류를 저지르는지 더 잘 이해할 수 있을 것이다.

 

사실 사람은 컴퓨터과학자들이 연구하는 몇몇 가장 어려운 문제들과 끊임없이 대면하고 있다. 우리는 불확실성, 시간 제약, 미흡한 정보, 급속히 변하는 세상에 대처하면서 결정을 내려야 하는 상황에 종종 처한다. 최첨단 컴퓨터과학의 알고리즘이 내놓는 해결책이 효율적이지도, 늘 맞는다고도 할 수 없는 상황도 있다. 알고리즘이 아예 존재하지 않는 듯한 상황도 있다.

 

그러나 완벽한 알고리즘이 아직 나오지 않은 영역에서도, 몇 세대에 걸친 컴퓨터과학자들과 현실세계의 가장 어려운 문제들 사이의 씨름을 통해 많은 깨달음이 도출되어 왔다. 힘들여 얻은 이 교훈들은 합리성에 관한 우리의 직관과 어긋나곤 하며, 세상만사를 산뜻한 몇 줄의 공식에 억지로 담아내려고 시도하는 수학자의 옹색한 처방과는 전혀 달라 보인다. 그런 교훈들은 이렇게 말한다. 언제나 모든 대안을 고려할 필요는 없다. 매번 최상인 것처럼 보이는 결과를 내놓을 필요도 없다. 때로는 무질서해 져라, 가볍게 돌아다녀라. 참고 기다려라. 본능을 믿고 너무 오래 고심하지 마라. 느긋해져라. 동전을 던져라. 용서하지만 잊지는 마라. 자신이 옳다고 믿어라.

 

어쨌든 컴퓨터과학이 내놓는 지혜를 염두에 두고 살아간다는 것도 그리 나쁘지 않게 들린다. 그리고 대다수의 조언과 달리, 이 지혜는 증거를 통해 뒷받침된다. 컴퓨터를 위한 알고리즘을 설계하는 일이 본래 두 분야 사이의 틈새에 놓인 주제, 즉 수학과 공학의 기이한 잡종이었듯이, 사람을 위한 알고리즘을 설계하는 일도 어느 한 분야에 딱 들어맞는 주제가 아니다. 오늘날 알고리즘 설계는 컴퓨터과학, 수학, 공학만이 아니라, 통계학과 경영학 같은 인접 분야들에까지 걸쳐 있다. 그리고 우리는 기계를 위해 설계된 알고리즘이 인간의 마음과 어떤 관련이 있을지를 생각하고 있으므로 인지과학, 심리학, 경제학 등도 살펴볼 필요가 있다.

 

이 책의 저자인 우리는 이런 학제 간 분야에 친숙하다. 브라이닌은 컴퓨터과학과 철학을 공부한 뒤 대학원에서 영문학을 공부했고, 이 세 분야가 교차하는 연구를 하고 있다. 톰은 심리학과 통계학을 공부한 뒤 UC버클리대학교 교수가 되었고, 그곳에서 인간의 인지와 컴퓨터 계산 사이의 관계를 생각하면서 대부분의 시간을 보내고 있다. 하지만 인간을 위해 더 나은 알고리즘을 설계하는 일과 관련된 모든 분야들에 전문가라고 할 만한 사람은 없다. 그래서 지니고 살아갈 만한 알고리즘이 뭐가 있을지 알아보기 위해, 우리는 지난 50년 사이에 등장한 몇몇 가장 유명한 알고리즘을 개발한 사람들과 대화를 나누었다. 또 세계에서 가장 명석한 인물에 속할 그들에게, 자신의 연구가 삶에 접근하는 방식에 어떤 영향을 미쳤는지 물어보았다. 배우자를 찾는 일에서 양말을 정리하는 일에 이르기까지 말이다.

 

컴퓨터와 인간의 마음이 똑같이 직면한 가장 큰 도전 과제들 중 몇 가지를 살펴보는 것에서 이야기를 시작하기로 하자. 유한한 공간, 유한한 시간, 한정된 주의, 알려지지 않은 미지의 것들, 불완전한 정보, 예측할 수 없는 미래를 어떻게 관리할 것인가? 어떻게 하면 확신을 갖고 우아하게 선택할 수 있을까? 어떻게 하면 공동체에서 동시에 같은 일을 하려는 모든 사람들과 함께할 수 있을까?

 

이런 도전 과제들의 수학적 근본 구조를 알아보고, 컴퓨터가 그런 과제들을 어떻게 처리하는지 살펴보기로 하자(때론 우리가 상상한 것과 정반대로 처리한다). 그리고 마음이 어떻게 작동하는지를 살펴보도록 하자. 마음이 같은 유형의 현안들을 다루고 같은 제약들에 대처하는, 컴퓨터와 다르면서도 깊이 들어가면 연관되어 있는 방식들을 살펴볼 것이다.

 

궁극적으로 우리는 주변에서 접하는 문제들에 대처할 현실적인 방안들, 인간의 가장 곤란한 난제들의 배후에 있는 우아한 구조들을 보는 새로운 방법들, 인간과 컴퓨터의 난제들이 서로 깊이 연관되어 있다는 깨달음을 얻게 될 뿐 아니라, 더욱 심오한 무언가도 지니게 될 것이다. 우리 주변 세계를 가리키는 새로운 어휘와 우리 자신에 관한 진정으로 필요한 새로운 무언가를 배울 기회를 말이다.

 

<저자>

☆ 브라이언 크리스천 Brian Christian: 브라운대학교에서 컴퓨터과학과 철학을 공부하고, 워싱턴대학교에서 시작 으로 문학 석사 학위를 받았다. 현재 기술과 사회. 문화, 인공지능 및 심리 분야에서 가장 주목할 만한 젊은 저술가로 촉망받고 있다. 구글, 마이크로소프트, 런던정경대학 등에서 강의한 바 있으며, <월스트리트저널>, <가디언>, <와이어드> 등 대중 매체와 <인지과학>과 <파리 리뷰>를 바롯한 과학 전문 저널과 문학 저널에 기고하고 있다. 지난 2009년 뢰브너 프라이즈에 '공모자confederate로 참가해 '가장 인간적인 인간Most Human Human' 상을 받은 경험을 토대로 《가장 인간적인 인간>을 출간했다.

 

☆ 톰 그리피스Tom Griffiths: UC버클리대학교의 심리학 및 인지과학 교수로서, 컴퓨터 인지과학 연구실을 맡고 있다. 인지심리학에서 문화적 진화에 이르기까지 다양한 분야의 논문 150편 이상을 발표했고, 국립과학재단, 슬로언재단, 마국심리학회, 심리작용학회 등에서 다양한 상을 받았다. 컴퓨터과학으로 사람들이 매일 부딪히는 일상의 문제를 해결하는 방법과 미래를 예측하고 인과관계를 학습하는 법을 연구하고 있다.

 

<옮긴이>

☆ 이한음: 서울대 생물학과를 졸업한 뒤 실험실을 배경으로 한 과학 소설 <해부의 목적>으로 1996년 <경향신문> 신춘문예에 당선됐다. 전문적인 과학 지식과 인문적 사유가 조화된 번역으로 우리나라를 대표하는 과학 전문 번역자로 인정받고 있다. 케빈 켈리, 리처드 도킨스, 에드워드 윌슨, 리처트 포티, 제임스 왓슨 등 저명한 과학자의 대표작이 그의 손을 거쳐갔다. 과학의 현재적 흐름을 발빠르게 전달하기 위해 과학 전문 저술가로도 활동하고 있다. 저서로는 과학소설집 <신이 되고 싶은 컴퓨터>, <DNA, 더블댄스에 빠지다>가 있으며, 옮긴 책으로는 <인에비터블, 미래의 정체>, <제2의 기계 시대), <복제양 돌리>, <인간 본성에 대하여>, <쫓기는 동물들의 생애>, <펀치의 부리>, <DNA : 생명의비밀>, <살아있는 지구의 역사> 등이 있다. <만들어진 신>으로 한국출판문화상 번역 부문을 수상했다.

 

/ 2019.08.31 편집 택..