알고리즘 행성 여행자들을 위한 안내서 - 쇼핑부터 인공지능까지, 우리 삶을 움직이는 알고리즘에 관한 모든 것
제바스티안 슈틸러 지음, 김세나 옮김, 김택근 감수 / 와이즈베리 / 2017년 4월
평점 :
품절


이 책은 알고리즘 행성을 돌아다닌 일주일간의 여행 기록을 담고 있다. 그중에서도 특히 이 행성에서 정말로 중요한 것이지만, 집에 가만히 있을 때는 어느 누구도 인지하지 못하는 알고리즘에 관한 정보를 다루고 있다. 다들 한 번쯤 꿈꿔본 대단한 볼거리에 대한 이야기도 소개되어 있는데, 이는 지극히 일반적인 소식지는 물론 고급 정보지에서도 볼 수 없는 내용들이다. - '들어가는 글' 중에서

 

 

알고리즘에 관한 모든 것

 

책의 저자 제바스티안 슈틸러는 알고리즘을 설계하고 분석하는 응용수학자이다. 그는 브라운슈바이크 공과대학교 수학과 교수로 재직하고 있으며, 독일수학협회 소식지의 편집장으로도 활동하고 있다. 1974년 생 독일 출신으로 대학교에서 수학과 철학을 전공했으며, 베를린 공과대학교에서 수학 박사학위를 취득했다. 유럽연합 마리퀴리 펠로십으로 미국 MIT 슬론 경영대학원에서 연구활동을 하기도 했는데, 주요 연구 분야는 강건최적설계와 알고리즘적 게임이론이다. 학계뿐만 아니라, 대중교통 및 물류 분야에서도 다양한 프로젝트를 수행한 바 있다.

 

우리의 일상 어디에나 알고리즘이 존재한다. 알고리즘은 매우 다양한 형태로 표현되는데, 지극히 간단한 것들도 있고 매우 복잡하고 그 규모가 엄청난 것들도 있다. 주의하지 않으면 그냥 지나쳐버렸을 법한 찰나의 생각에서 착안되어 탄생한 것들도 있고, 장시간에 걸쳐 계획되고 고안된 것들도 있다. 또 문제를 해결하기 위한 주문형 알고리즘도 있다.

 

이와같은 알고리즘은 모두 인간들에 의해 만들어진다. 무수한 밤을 오직 연구에만 매달린 그런 사람들 말이다. 그런데, 저자는 "알고리즘은 게으름이 예술로 표현된 것"이라고 말한다. 컴퓨터가 널리 보급되면서 이 게르름의 예술이 자연히 빛을 보게 알고리즘은 국민경제에 당당히 영향력을 행사하는 무시 못할 존재가 되었다.

 

책은 모두 7장으로 구성됐는데, 제1장(알고리즘 행성)에선 알고리즘 행성이 우리들의 곁에 얼마나 가까이 있는지 보여준다. 제2장(알고리즘이란 대체 무엇일까?)에선 알고리즘의 진정한 의미를 생각해보며, 제3장(알고리즘의 난해함)에선 복잡성이 알고리즘 행성의 일상에 얼마나 영향을 미치는지 체험하게 하고, 제4장(복잡성이라는 중력에 맞서기)에선 복잡성이란 중력에 어떻게 맞서고 잇는지를 살펴보며, 제5장(알고리즘 원더랜드)에선 여행자 프로그램인 검색엔진 구글을 체함해본다.

 

이어서 제6장(균형으로 가는 길)에선 알고리즘이 인간의 평등한 공존을 위한 가능성을 열어주면서 인간의 삶 속에 깊이 뿌리내려왔던 과정에서 균형의 길에 대해 배우고, 마지막으로 제7장(새로운 시각)에선 알고리즘 사고의 거장 네 명을 만나 아직도 알고리즘이 미완성작이라는 그들의 평가를 듣게 됨으로써 세상에 대한 새로운 시각을 얻게 된다.

 

 

 

 

알고리즘의 성능 향상 vs 컴퓨터 성능의 진보

 

알고리즘은 컴퓨터의 존재 이전부터 존재해왔다. 단지 초기엔 컴퓨터가 아니라 한참 느린 경리 담당자의 단순노동에 의해 실행되었다. 알고리즘은 단순한 과정들의 연속이다. 이 과정들이 많이 모여 순차적으로 실행될 때, 알고리즘의 진가가 나타난다. 이처럼 단순한 과정들을 수없이 되풀이하여 실행하는 것은 컴퓨터가 제일 잘하는 일이다.

 

알고리즘의 성능 향상은 말 그대로 무無에서 비롯된다. 알고리즘의 성능이 향상되는 데에는 보조 에너지나 더 우수한 재료 같은 추가 자원이 필요하지 않다. 우리가 그저 덜 번거로운 방법으로 해결책을 찾으려다 보니, 어떻게 하면 일을 더 쉽게 처리할지 고민하다 보니, 알고리즘의 성능이 저절로 향상되는 것이다.

알고리즘의 필요성이 점점 커지는 이유는 하나다. 바로 커다란 구조, 거대한 규모의 구조 때문이다. 알고리즘은 어떤 문제의 범위가 커졌을 때 그 장점이 한껏 발휘된다. 알고리즘은 거대한 기술 또는 경제 시스템의 주인이 될 수 있도록 해주는 전문가용 도구다. 이런 점 때문에 알고리즘은 전지전능함에 대한 환상을 불러일으키기도 하고, 기술관료나 기업체에 유용하게 수용되기도 한다. 

알고리즘은 정보의 홍수를 헤쳐 나가기 위한 수단이다. 엄청난 양을 원활히 다룰 수 있다는 것이 바로 알고리즘의 장점이다. 다시 말해, 알고리즘은 처리해야 할 정보의 규모가 커져서 우리가 그 전반적인 상황을 정확하게 파악하지 못할 때 우리를 도와줄 수 있는 임시방편의 수단이다.

 
우리가 주목해야 할 것은 학문, 기술, 경제, 정치, 사생활에 미치는 알고리즘의 영향력이다. 알고리즘 가운데 상당수가 법률, 행정 규정, 계약 및 제도와 견줄 만한 의미를 갖고 있다. 알고리즘의 이런 역할은 앞으로도 계속될 것이다. 알고리즘이 이 역할을 어떻게 수행할지는 누가 그것을 이해하고 만들어 나가느냐에 달려 있다. 따라서 알고리즘은 사생활을 위협하는 것이 될 수도 있고, 정보화 시대의 장점을 포기하지 않고도 사생활을 보호해주는 수단이 될 수도 있다.

 

 

 

알고리즘은 다양성의 미학

 

<생명 게임>이라는 아심찬 게임이 있다. 이 게임은 수학자 존 호턴 콘웨이가 개발했다. 사각형 격자무늬 종이 위에서 진행되는 게임이다. 사각형을 먼저 몇 개 골라 그 안에 작은 토끼를 한 마리씩 그려 넣는다. 그냥 체크 표시만 해도 된다. 중요한 포인트는 연필과 지우개로 작업한다는 점이다.

 

토끼마다 이웃 토끼가 여덟 마리씩 있다. 상하좌우 각 한 마리씩 네 마리, 그리고 좌우 대각선 방향으로 각각 한 마리씩 네 마리, 총 여덟 마리다. 매 라운드마다 이웃 토끼가 두 마리 미만인 토끼는 모두 죽는다. 자우개로 죽은 토기를 지워라. 이웃 토끼가 세 마리를 넘는 토끼도 죽는다. 마찬가지로 지워라. 비어 있는 사각형에 인접해 있는 이웃 토끼가 딱 세 마리인 경우엔 빈 사각형에 한 마리가 새로 태어난다. 한 마리를 그려 넣어라. 

알고리즘의 본질은 확정된 규칙이 아니라, 거기에서 도출되는 다양성에 있다. 요리 레시피를 따르면 언제나 비슷한 요리를 만들 수 있다. 하지만 알고리즘은 인풋에 따라 예측 불가능한 다양성을 만들어낸다. 그렇기 때문에 알고리즘은 언제나 문제 유형의 맥락에서 설명된다. 똑같은 알고리즘이라도 어떤 인풋 데이터를 적용하는지에 따라 매우 다양한 결과가 나타나기 때문이다. 이런 의미에서 알고리즘은 게으름의 예술 작품이다. 미학적으로는 별 의미가 없는 원칙에서 어안이 벙벙할 정도의 다양성이 도출된다.

 

 

어렵다는 것은 무엇인가?

 

수수께끼하면 우리들은 테베의 스핑크스나 고르디우스의 매듭 등을 떠올린다. 쉽게 잘 풀리지 않는 수수께끼는 사람들을 매료시킨다. 누구나 그 수수께끼를 풀고 싶은 욕심이 생기기 때문이다. 이런 문제를 풀기 위해서 추론의 한계를 체계적으로 찾아내는 일은 20세기에 들어서야 비로소 시작되었다. 이는 '복잡성 이론'이라는 이름으로 진행되었다.  

복잡성 이론이란, 하나의 문제를 해결하기 위해 자세한 추론을 하는 데, 즉 각 알고리즘을 찾아내는 데 얼마나 많은 비용이 소요되는가를 다루는 문제다. 즉 이 비용은 알고리즘의 단점이 아니라, 그 문제의 본질이라 할 수 있다. 문제의 복잡성을 이해하는 것은 적절한 알고리즘을 연구하는 것과 궤를 같이한다. 무엇은 불가능한지 이해하는 사람은 올바른 알고리즘을 더 잘 찾아낼 수 있다.

 

앞서 예시한 고르디우스의 매듭은 어떻게 해결했을까? 정복자 알렉산더 대왕은 이 매듭을 풀려고 심사숙고한 게 아니라 단숨에 칼로 그 매듭을 끊어버렸다. 그렇다면 이는 문제를 해결한 것이라고 볼 수 있나? 결코 아니다. 이처럼 그 누구도 풀지 못하는 뭔가를 고안해낼 수 있는 것은 매우 유용한 능력이다.

 

  

 

 

중국 장군의 병사 헤아리기

 

오래된 수학적 마술 트릭을 이야기 해보자. 앞을 전혀 보지 못하는 중국 장군이 있었다. 전설에 따르면, 이 장군 휘하엔 엄청난 병력의 부대가 있었다. 전투가 시작되기 전, 병사들의 수는 3만 명쯤 됐다. 전투가 끝난 다음 날 아침, 장군은 병사들이 얼마나 생존하고 있는지 알고 싶었다. 어떻게 했을까? 맞다. 그는 병사들에게 번호를 외치도록 했다.

 

그런데, 병사들은 숫자에 대한 개념이 없어서 3만까지 셀 수가 없었다. 이들은 100까지 아니 35까지밖에 셀 줄 몰랐다. 어떻게 해야 장군은 병사들의 수를 헤아릴 수 있을까? 장군은 병사들에게 일단 26까지 차례대로 세어 나가라고 지시한다. 앞사람이 26을 외치면 다음 병사는 다시 1을 외친다. 이렇게 반복할 경우 마지막 병사의 외침을 통해 26으로 나눈 나머지를 알게 된다. 그런 다음엔 33까지만 외치게 한다. 이게 끝나면 마지막으로 35까지 숫자 세기를 한다.

 

장군은 이제 자신의 병력을 분명하게 규정해주는 나머지에 대해선 알고 있다. 그렇지만 아직도 자신의 병력을 정확하게 모르고 있다. 왜냐하면 이 나머지들로부터 숫자를 규정해내는 알고리즘이 없기 때문이다. 그런데, 주어진 나머지 숫자들의 조합을 통해 해당하는 최소의 숫자를 알아볼 수 있는 쉽고 빠른 알고리즘이 있다.

 

두 가지의 조건이 충족되어야 공식화할 수 있다. 첫째, 차례대로 헤아리기 위한 숫자들(26, 33, 35)에 공통 약수가 있어서는 안 된다. 둘째, 그 곱이 우리가 찾는 숫자만큼 커야 한다. 여기서 두 번째 조건은 비수학적인 논의가 필요해진다. 전투 전 병사들의 수가 30,030(26곱하기 33곱하기 35)보다 적었던 것은 아닐까?

 

그런데, 사실 예민한 문제가 있다. 조금만 오차가 생겨도 그 결과가 엄청 달라지기 때문이다. 병사들이 숫자를 외칠 때 누군가가 집중력이 떨어져 하나를 더 많이 센다면 결과가 달라지고 만다. 예를 들어, 전투 후 잔류병사의 수는 29,206명이었을 때 병사들이 26까지 세고 "나머지가 8입니다", 33까지 세고는 "나머지가 1입니다", 35까지 세고는 "나머지가 16입니다"라고 외쳐야 하는데 부주의로 "17"이라고 했다면 장군은 잘못된 정보의 결과로 퇴군을 명령하게 된다. 왜냐하면 나머지가 8,1, 17인 숫자는 892이기 때문이다. 알고리즘은 여전히 눈 먼 장군과 비슷하다. 알고리즘은 올바른 데이터가 입력될 때에만 제대로 기능한다. 그렇기 때문에 그 결과에 대한 책임은 우리에게 있다.

 

 

구글의 페이지랭크

 

구글은 웹사이트의 링크를 추천서로 이해한다. 가능한 한 많은 추천서를 받은 사람은 평판이 훌륭해 보이고, 그의 추천서는 더욱 큰 가치를 지니게 된다. 반대로 많은 추천서를 써주는 사람의 추천서는 상대적으로 그 가치가 적다. 구글은 우리가 기업 내 직원의 영향력을 평가하는 것과 똑같은 방식으로 웹사이트들을 평가한다. 이것이 바로 구글의 핵심인 '페이지랭크Page Rank'다. 오늘날 검색엔진들은 대부분 페이지 랭크에 그 기반을 두고 잇다. 기술적으로 구글의 검색엔진과 견줄만 한 것이 없기 때문이다.

 

 

 

다 빈치의 시각

 

불세출의 화가 레오나르도 다 빈치는 그림 말고 다른 일도 능숙하게 처리했던 찬재이다. 그는 자동차를 설계햇고, 드론의 원조격인 비행체를 구상했으며, 프레스코 벽화를 위한 새로운 니스를 발명해냈다. 물론 이 때문에 프레스코 벽화가 별로 남아 있지 않다. 여기에다 그의 업적을 덧붙여 설명하자면 그가 '알고리즘'을 찾아냈다는 사실이다.

 

그에겐 자연 탐구와 예술이 똑같았다. 그는 토스카니의 언덕이 멀리 떨어져서 볼수록 더 푸르게 보인다는 사실을 관찰해냈고, 이를 토대로 공기 중에 푸른 빛을 내는 성분이 틀림없이 있다고 결론을 도출해냈다. 그에게 그림을 그린다는 것은 바로 이해한다는 것을 의미했다. 그는 우리의 눈에 보이는 것이 생성된 그 원리를 이해하고 싶어 했다. 그 원리를 이해하면, 그림도 가장 잘 그맇 수 있다고 믿었던 것이다. 

 

뭔가를 제대로 바라보기 위해 다 빈치는 거기에 어떤 규칙이 있는지 이해하려고 노력했다. 코덱스에는 물의 흐름에 관한 연구 내용이 많이 실려 있다(다 빈치에게는 놀라울 만큼 어색한 경우가 많이 보였던 것 같다). 다 빈치가 물의 흐름에 대한 알고리즘을 어떻게 찾았는지 형식적으로 바라보는 탓에 간과하디 쉬운데, 그가 추구한 원칙은 '현상을 이해하려면 모든 것을 가능한 한 단순화해야 한다'는 것이었다.


댓글(0) 먼댓글(0) 좋아요(6)
좋아요
북마크하기찜하기 thankstoThanksTo