컴퓨터, 게임, 그리고 현실 세계
타고난 지능 만들어지는 지능 : Scientific American 편집, 이한음.표정훈 옮김, 궁리 출판사, 2001 (원서 : Exploring Intelligence, A Search in the Human, Animal, Machine and Extraterrestrial Domains, 1998), page 232~245
1997 년 IBM 의 체스 컴퓨터인 딥블루가 여섯 번 게임에서 세계 챔피언인 게리 카스파로프를 이겼을 때, 전세계는 깜짝 놀랐다. 가장 지적인 이 게임에서 기계가 승리함으로써, 역사상 한 획이 그어진 셈이다. 우리 자신의 능력을 다시 평가할 계기가 되었다는 점에서 말이다.
물론 최종적으로 누가 이기고 누가 졌는지는 흑백 논리처럼 명백하지 않다. 카스파로프는 비길 수 있는 한 게임을 포기했고, 마지막 게임에서는 어처구니없는 실수를 저지르는 등 졸전을 펼쳤다. 그리고 체스 컴퓨터는 인간 상대방에게 우세를 점할 때가 가끔 있는 반면, 바둑이나 브리지 같은 다른 게임에서 컴퓨터 선수들은 비교적 열세에 놓여 있다. 컴퓨터는 체커나 오셀로 게임에서 몇 년째 세계 최고의 선수 자리를 유지하고 있다. 컴퓨터는 체스처럼 백개먼에서도 막상막하인 반면, 스크래블에서는 약간 우세에 있다.
연구자들이 짠 이런 판과 패로 이루어진 게임은 특정한 규칙과 객관적인 결과를 지닌 환경, 즉 이론을 검증할 수 있고 진행 과정을 추적할 수 있는 닫힌 시스템을 제공한다. 게임 소프트웨어는 인공 지능의 한 요소로서 기계의 막무가내 계산과 인간의 직관적인 패턴 맞추기 능력 사이의 핵심적인 차이점을 드러낸다.
사람들은 컴퓨터 코드가 쓰여질 때부터 게임 프로그램과 장치를 고안해왔다. 1946 년 영국 수학자 앨런 튜링은 제 2 차 세계 대전 동안에 영국이 사용했던 고성능 암호 해독 장치에다 체스 선수를 설계하기 시작했다. 비록 이 컴퓨터는 대단히 느리고 초보적인 수준이었지만, 체스 게임을 끝까지 하는 최초의 장치가 되었다. 튜링과 맨체스터 대학의 동료들은 나중에 틱택토와 체커 같은 더 기본적인 프로그램을 짜는 작업에 도전했다.
그 이후 많은 사람들이 수준이 각기 다른, 수많은 프로그램과 컴퓨터를 설계하였다. 가장 최근의 게임 프로그램들은 게임 수준이 매우 높아졌다. 더 흥미로운 것은 이 프로그램들이 인간이 쓰는 것과는 크게 다른 방법을 사용하여 이러한 능력을 얻었다는 점이다. 체스 같은 게임에서, 인간 선수는 말을 한 번 움직일 때 수십여 수 (또는 수백여 수) 를 생각할 것이다. 반면 기계는 하나의 행동을 선택하는 과정에서 수많은 가능한 상황을 탐색하여, 수십억 수를 생각할 것이다.
이처럼 컴퓨터의 계산 능력이 인간을 훨씬 능가하는데도, 인간이 컴퓨터를 이길 수 있는 이유는 무엇일까? 그 대답은 비록 다음 수를 약간만 봐도 인간은 올바른 수를 본다는 점에 있다. 1894 년부터 1920 년까지 세계 체스 챔피언이었던 이마 뉴얼 래스커는 체스의 수를 분석할 때 얼마나 많은 수를 생각하느냐는 물음에 이렇게 대답했다. "단지 한 수요. 하지만 그것은 언제나 최상의 수죠."
인간은 패턴 맞추기라는 과정을 통해 최상의 수를 찾아낸다. 그것은 인간이 방에 있는 다리가 네 개인 물건이 탁자이고 경찰서의 상반신 사진이 정면이나 측면에 상관없이 같은 사람의 것이라고 즉시 식별할 수 있는 방법이다. 체스 선수는 최상의 수를 분석해왔던 경험을 살려서, 자신이 지금까지 겪었던 엄청나게 많은 수들과 현재의 수를 비교한다.
패턴 맞추기는 병렬 처리이다. 만일 당신이 n 대의 컴퓨터를 갖고 있으면, 당신은 n 배 빨리 수를 찾을 수 있다. 예를 들면 당신이 현재의 수를 전에 보았던 10 만 가지 수와 비교한다고 생각해보라. 각 수의 비교는 어떤 의미에서 독립적이다. 따라서 10 만 대의 컴퓨터가 있으면, 10 만 배 빨리 전체 수를 비교할 수 있다.
반면 탐색은 본질적으로 병렬 처리가 아니다. 다음에 무엇을 할지는 지금 무엇을 했는지에 달려 있기 때문에 문제를 쪼갤 수 없다. 딥블루에는 그것이 평가할 수 있는 수의 기존 자료가 전혀 입력되어 있지 않다. 대신 그것은 상대가 말을 움직인 후에만 수를 검사할 수 있다.
패턴 맞추기가 병렬적이고 막무가내 탐색이 아니라는 말은 풀어야 할 문제가 아니라 그것을 푸는 데 사용되는 방법만을 말한다는 점을 명심하자. 나는 좋은 체스 게임을 한다는 것이 병렬 문제라거나 아니라고 말하지 않았다. 사실 어떤 의미에서 체스는 본질적으로 병렬적도 순차적도 아니라는 증거가 있다. 병렬 기법 (인간의 패턴 맞추기) 과 순차 기법 (딥블루의 막무가내 탐색) 은 그 게임에 똑같이 잘 적용될 수 있기 때문이다.
카스파로프와 다른 인간 선수들이 병렬 기법을 이용해 체스를 두는 것은 그럴 만한 이유가 있다. 인간의 뇌는 1 초에 1,000 번 작동할 수 있는 약 1,000 억 개의 뉴런으로 구성되어 있는 병렬 기계이다. 인간 뇌의 바깥층을 구성하는 회백질 ('사고' 뉴런들) 인 여섯 층의 피질에는 약 300 억 개의 뉴런이 놓여 있다. 나머지 700 억 개는 백질 ('연결' 뉴런) 을 이룬다. 이런 대규모의 병렬 배치는 패턴을 인식하는 데는 뛰어나지만, 탐색 같은 순차적 계산은 힘이 부친다.
반면 딥블루는 1초에 약 200 만 수를 조사할 수 있는 480 개의 체스용 프로세서로 이루어져 있다. 이런 구성은 아주 짧은 시간 안에 많은 수를 탐색할 수 있게 한다. 비록 이런 탐색위주의 접근 방식이 이점을 제공하긴 하지만, 그것도 한계가 있다. 상상할 수 있는 가장 강력한 컴퓨터, 말하자면 1 초당 1017 번 처리를 할 수 있는 (이것은 빛이 수소 원자 내부를 가로지르는데 걸리는 시간이다) 컴퓨터가 있다고 해도, 바둑 같은 게임을 하기는 여전히 어렵다. 바둑은 10170 가지의 가능한 수가 있기 때문이다.
오셀로처럼 엄청나게 많은 위치와 전략을 막무가내 탐색에 의존하는 게임을 할 때, 인간은 1 초에 10 억 번을 실행하는 가능성에 의존하는 방법을 쓸 수 없다. 그런 속도의 100 만 분의 1 만 해도 우리 뇌의 뉴런에서는 불이 날 것이다. 인간의 뇌가 그렇게 느리게 작동하기 때문에, 순차적 방법을 통한 문제 해결은 인간에게 그다지 효과적이지 않다.
물론 1 초당 1,000 번은 비교적 느릴지 모르지만, 인간은 위기 상황에서는 순차적 방법을 사용할 수 있다. 예를 들어 인간은 큰 숫자를 곱할 때 순차적 방법을 쓴다. 또 루빅 큐브 같은 퍼즐이나, 두 명만 탈 수 있는 보트 하나로 세 명의 선교사와 세 명의 식인종이 강을 건너야 하는데, 식인종이 잡아먹지 못하도록 강 양편에서 식인종의 수가 선교사의 수보다 많아서 안된다는 것과 같은 어려운 문제를 풀 때도 대개 순차적 방법을 사용한다 (이 문제의 최신판은 선교사의 수가 식인종의 수보다 많아서는 안 된다고 한다. 선교사가 식인종을 개종시키지 못하도록 말이다).
비록 인간은 어려운 문제를 풀기 위해 추론을 쓸 수 있지만, 추론 그 자체는 상당히 부자연스러워 보인다. 왜냐하면 병렬적 방법을 포기하고 그 대신 가능한 조합을 통해 탐색을 하기 때문이다. 인공 지능 분야에서는 이 방법을 '퍼즐식' 추론이라고 말한다. 컴퓨터는 그것에 능숙하다. 컴퓨터의 하드웨어가 그렇게 설계되어 있기 때문이다. 하지만 인간은 그렇지 않다.
그리고 고정되어 있는 인간의 뇌와 달리, 컴퓨터는 더 빠른 하드웨어와 더 효율적인 프로그램을 통해 게임 해결 능력을 개선할 수 있다. 대부분의 게임 실행 프로그램에서, 컴퓨터는 대규모의 심층 탐색을 피하기 위해, 오직 현재의 위치에 가까운 수만 분석하도록 프로그램되어 있다. 각각의 수에는 미니맥싱 (minimaxing) 이라는 기법을 사용하여 값을 할당할 수 있다. 알파 베타 가지 치기 (alpha-beta pruning) 라는 기법은 컴퓨터가 상상할 수 있는 모든 가능성을 조사하지 않고도 이 값들을 계산할 수 있게 해준다. 이 전략은 컴퓨터가 자신의 정해진 계산 자원 내에서 더 효과적인 탐색을 할 수 있도록 해준다.
더 인간적인 방식으로 게임을 하는 체스 컴퓨터를 만들려는 시도도 있어왔다. 그러나 이런 시스템의 성능은 기껏해야 중간 정도이다. 노벨상 수상자인 카네기멜런 대학의 허버트 사이먼은 근본적인 구조 차이가 컴퓨터가 효과적인 인간적 추론을 하는 것을 막는다고 믿는다 (효율적인 지능 프로그램으로 설계되어야 할 프로그램들이 구조와 처리 면에서 인간의 사고를 모사하도록 설계된 시스템과 전혀 다른 것은 전기 장치와 뇌의 근본적 차이 때문일 수도 있다). 따라서 하드웨어는 인간이 효율적인 추론이라고 생각하는 것을 실리콘 기반의 시스템에서 실행했을 때 비효율적으로 만들 수 있다.
요약하자면 어떤 문제들은 패턴 맞추기를 사용할 때 가장 잘 풀리는 반면, 어떤 문제들은 순차적 탐색을 통해 가장 잘 풀릴 수 있다. 바둑은 근본적으로 병렬적이며, 오셀로는 순차적인 것 같다. 체스 같은 게임들은 두 방법에 모두 들어맞는 듯하다.
이런 구분은 선수들이 상대방의 카드나 패를 알지 못하는, 불완전한 정보의 게임들에도 존재한다 (완전 정보의 게임은 모든 선수들에게 게임 상황에 관한 완벽한 자료를 제공한다. 백개먼, 체스, 체커, 오셀로가 그 예이다). 역사적으로 보면 불완전 정보 게임은 그다지 우수한 컴퓨터 게임이라고 할 수 없었다. 포커나 브리지 같은 게임에서, 인간은 종종 경험과 직관에 의존한다. 컴퓨터는 불리하다. 처리해야 할 정보가 너무 많기 때문이다.
그러나 최근 대용량 컴퓨터 자원들은 불완전한 정보의 게임들도 해결하는 쪽으로 가고 있다. 스탠퍼드 대학의 대프니콜러와 에이비 페퍼는 '포커를 푸는' 것이 가능할 것이라고 주장한다. 그들은 여덟 장의 카드로 완벽한 게임을 할 수 있도록 설계한 자신들의 연산법을 근거로 이런 결론을 내린다. 이제 문제는 52 장의 카드에도 같은 연산법이 적용될 수 있을 만큼 충분한 연산 능력이 있는가 하는 것이다.
브리지에서도 소모적 방법이 힘을 발휘하기 시작하고 있다. 초기 프로그램들은 인간의 사고를 모델로 했지만, 현대의 접근 방법은 다음과 같다. 상대방에게 무작위적 패를 반복해서 주고 나서 모든 카드의 위치가 알려져 있다고 가정하고 결과를 분석하는 것이다. 이런 접근법은 특정한 상황에서 가장 좋은 패가 무엇인지 식별해내고, 그 가장 좋은 패는 가능한 수많은 무작위적 상황에서 최선의 것이 된다. 이런 분석 방법은 하드웨어의 능력이 개선되어야 가능하다. 비록 최고의 인간이 아직은 최고의 프로그램을 이기고 있지만, 그 차이는 좁혀지고 있다. 체스에서처럼, 인간의 사고를 모방하려는 프로그램은 탐색에 기반을 둔 경쟁자를 좇아갈 수 없다.
이 모든 사례에서, 본질적 구조의 중요성을 강조한 시몬의 생각이 옳은 것으로 증명되어왔다. 가장 강한 기계 선수는 인간 상대와 거의 닮은 점이 없다. 예외인 듯이 보이는 유일한 게임은 백개먼이다. IBM 의 제럴드 테사로는 적어도 겉으로는 인간다운 구조를 지닌 듯한 TD-Gammon 이라는 프로그램을 만들었다. 특히 이것은 인공 신경망에 의존한다. 이 신경망은 뉴런의 구조와 기능을 모방하도록 설계된 소프트웨어이다.
가장 성공에 도움이 되는 문제 처리 방식과 게임의 특성이 인간과 기계 중 어느 쪽이 더 나을 것인지 결정하기도 한다. 기계는 가능한 조합을 평가하기 위해 심층 탐색 방법을 수반하는 체커 게임에서 뛰어나다. 현재 최고의 체커 프로그램인 치누크는 돌이 여덟 개 이하로 줄어들면, 어느 선수가 이길 것인지 즉시 안다. 그것은 엄청난 데이터 베이스를 검색하여 결과를 판단한다. 이것은 패턴 맞추기 문제가 아니다. 모든 위치를 특징 짓는 의지할 만한 패턴이 없기 때문이다. 대신 치누크는 그저 광범위한 위치 표와 값을 저장해놓고, 결과가 필요할 때 그 표를 찾는다.
또 기계는 오셀로에서도 크게 유리하다. 오셀로는 인간이 감을 잡기 어려운 게임이기 때문이다. 오셀로는 특정한 상황에서 한 번 훑어보고 누가 이기고 있는지 말한다는 것이 불가능하다. 표시가 이쪽저쪽 너무나 자주 바뀌기 때문에 게임 중간에 내 쪽 색깔의 표시가 우세하다고 해서 반드시 내가 이긴다고 볼 수 없다. 다시 말해 오셀로는 패턴 맞추기를 이용하기는 어렵고 기계의 막무가내 탐색 방법에 완벽하게 적합한 게임이다. 따라서 기계가 우세하다.
그러나 바둑은 컴퓨터의 아킬레스건이다. 그것은 인간 선수가 돌들의 배치를 보고 죽은 돌과 산 돌, 그리고 아직은 운명이 결정되지 않은 돌을 파악할 수 있는 패턴 맞추기 게임이다. 막무가내 탐색을 사용하여 바둑을 두는 것은 극히 어렵다. 하나의 주어진 상황에서 250 가지의 수가 있기 때문이다 (오셀로와 체스에서는 약 30가지의 수가 있을 뿐이다). 치누크 같은 막판 데이터 베이스를 구축하는 것은 불가능하다. 바둑에서 끝내는 돌의 위치의 수는 컴퓨터의 계산 능력을 넘어서기 때문이다.
다른 게임들은 어떨까? 백개먼은 인간과 컴퓨터가 호각지세를 이루고 있으며, 앞으로도 그럴 것 같다. 게임이 비교적 단순하기 때문에 사람과 기계 모두 거의 완벽하게 게임을 할 수 있기 때문이다. 스크래블도 막상막하 수준이지만, 앞으로는 달라질 것 같다. 기계가 전략적인 측면에서 더 나아질 것이기 때문이다 (인간과 기계 모두 특정 순간에 한 번 움직여서 최고의 점수를 내는 데는 문제가 없지만, 고차원의 스크래블은 자신의 수중에 있는 글자 패의 종류를 조절하면서 상대의 기회를 최소화하는 문제이기도 하다). 인간은 1997 년의 2 승 게임에서 이겼지만, 1998 년의 11 승 게임에서는 졌다.
브리지는 하드웨어가 빨라지고 연산법이 개선되고 있기 때문에, 5 년 내에 호각지세를 이루게 될 것이다. 지난 7 월에 있었던 두 시간에 걸친 시합에서는 인간이 가까스로 이겼다. 그리고 1998 년 8 월 프랑스 릴리에서 열린 세계 브리지 선수권 대회에서, 내가 제작한 브리지 프로그램은 34 명의 상위 인간 브리지 선수들 중에서 12 등을 차지했다.
|
컴퓨터는 어떤 방식으로 게임을 생각할까? 미니맥싱은 한 참가자가 양수를 고르면 다른 참가자는 음수를 고르는 방법이다. (이 경우에는 컴퓨터가 1 번 참가자인 최대자이고, 인간은 2 번 참가자인 최소자이다). 이렇게 정하고 나면, 각 노드에 할당된 값은 최대자 ('양수' 참가자) 에게 이익이 되는지, 아니면 최소자 ('음수' 참가자) 에게 이익이 되는지 판단하는 데 쓰인다. 각 노드는 한 번 말을 움직인 뒤에 모든 말의 위치를 나타낸다. 더 일반적으로 말하면, 어떤 순간에 게임의 상태를 나타낸다. 알파-베타 가지치기는 다른 경로에 비해 좋지 않은 선택 경로인 가지를 제거한다. 예를 들면, 컴퓨터가 c 노드까지 움직이면 이길 수 있다는 것을 알아차리면, a 노드에서 다른 노드로 이어지는 경로는 분석할 필요가 없어진다.
|
인공 지능이 발달함에 따라, 주로 좋은 순차적 연산법을 적용하는 쪽이 점점 더 많은 승리를 거두고 있다. 이런 성공은 게임에만 한정된 것이 아니다. 순차적 연산법은 보잉 747 기의 부품들을 조립하는 순서를 선택하는 데 가장 효과적인 해결책이다. 이 연산법은 인간이 할 수 있는 최상의 조립 시간보다 10 ~ 20 퍼센트 시간을 단축시켰다. 패턴 맞추기와 다른 병렬 기법은 복잡한 과업을 짜는 데는 그다지 적합하지 않다. 좋아 보이는 시간표도 사실은 그렇지 않을 수도 있기 때문이다.
최소한 가까운 미래까지는 병렬적 문제 해결에는 기계보다 인간이 나을 것이고, 기계는 순차적 문제 해결에서 더 뛰어날 것이다. 이 말에는 그다지 놀라운 것도 위협적인 것도 없다. 인간은 인간의 근육이 들어올릴 수 없는 대상을 들기 위한 지게차나 인간을 날 게 해주는 비행기처럼 인간 자신이 성취할 수 없는 것을 성취하기 위해 기계를 고안해왔다. 그리고 인간은 올림픽 역도 경기에서 지게차와 맞붙어 경쟁해야 한다고 느끼지 않는다.
반드시 알아두어야 할 점은 지적 기계는 인간의 경쟁자가 아니라 동료라는 것이다. 인간과 기계의 상보적 능력은 어느 한 쪽만으로는 이해할 수 없는 문제를 풀 수 있게 해준다. 그리고 그것은 우리 모두에게, 즉 탄소와 규소 모두에게 매우 좋은 소식이다.