달력

32024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

#5. 지능의 가진 기계와의 시작 : 체스와 체커 게임

지난번 글에서 클로드 새넌(Claude Elwood Shannon) 체스 프로그램에 관련된 논문에 대해서까지 알아보았습니다. 오늘을 그 뒤를 이어서 어떤 일이 있었는지를 알아보겠습니다. 체스와 체커 게임이 오늘의 이야기 주제가 될 것 같습니다. 우선 일단 이 두 게임간의 차이점을 알아보도록 하겠습니다. 이번에는 제 주특기인 한마디가 아닌 한 장으로 표현합니다. 

체스와 체커의 비교

가끔 혼동하시는 분들도 있는데 체스(Chess)와 체커(Checkers, Draughts)는 서로 다른 게임입니다. 체스가 좀 더 복잡한 게임입니다. 체커는 체스판에 모양이 같은 말을 놓고 움직여, 상대방의 말을 모두 따먹으면 이기는 게임입니다. 체스의 가장 오래된 증거는 약 600년경에 발견되었으며, 체커는 BC 3000년 전부터 유사한 체커판이 발견되었다고 하니 이 둘의 게임 역사는 꽤 오래되었다고 봅니다.

영미식 체커  [출처 : 위키백과]

 

체커는 10x10 판에서 하는 국제 룰과 8x8 판에서 하는 영/미식 룰이 가장 보편적이며, 지역에 따라 다양한 규칙이 존재합니다. 국제 룰을 기준으로 보면 게임은 상기 이미지에서와 같이 체커판에 말을 배치함으로써 시작되며백이 선수를 잡습니다. 각 말은 대각선 앞으로만 한 칸을 전진할 수 있다. 후진은 불가능합니다. 자신의 말이 시작한 쪽의 반대편 끝까지 도달했을 때, 그 말은 왕이 된다. 왕은 말 두개를 겹쳐서 표시하고, 이때부터는 체스의 비숍과 같이 대각선 방향으로(앞·뒤 상관없이) 원하는 만큼 이동할 수 있고 그 사이에 있는 말을 따먹을 수 있습니다. 즉, 자기 말의 대각선 방향으로 상대를 넘어가면 따먹는 게임입니다. 행마, 따먹기, 왕이 되는 법만 알면 경기를 할 수 있는 비교적 간단한 규칙입니다. 

 

국제식 룰에 의한 체커 게임 진행  [출처 : 위키백과]

 

우리가 어렸을 적에 아래 그림의 변형된 형태의 별모양을 가진 체커놀이를 친구들이나 가족들과 함께 해보신 분들도 있으리라고 생각합니다

독일을 비롯한 유럽 및 일본과 대한민국에서 주로 사용되는 차이니스 체커 놀이판 [출처 : 위키백과]


체스는 일종의 서양식 장기입니다. 장기처럼 각 말의 움직임과 갯수가 서로 다릅니다. 가로와 세로가 각각 8줄씩 64칸으로 격자로 배열 된 체스보드(체스판)에서 두 명의 플레이어가 피스들을 규칙에 따라 움직여 싸우는 보드 게임입니다. 세계에서 가장 대중적인 게임 중 하나입니다. 플레이어는 킹[♚] 1개, 퀸[♛]1개, 룩[♜] 2개, 나이트[♞]2개 비숍[♝]2개 그리고 폰[♟] 8개로 총 16개의 피스를 가지고 시작하고 피스 6종류는 각각 다르게 이동합니다. 피스는 상대의 피스를 공격하는데 사용되고 게임의 목적은 상대의 킹을 체크메이트하는 것이다.(체크메이트 이외에 다른 방법도 있으나 편의상 생략합니다.)

피스(piece)를 배치한 모습 [출처 : 위키백과]

 

 

컴퓨팅 기능의 발달과 더불어 많은 초기 연구자들이 목표 중 하나는 지능형 체스, 체커 게임 기계를 만들어 사람을 이기는 것이 었습니다. 

1951년에 드디어 컴퓨터에서 실행되는 지능형 프로그램이 맨체스터 대학의 페란티 마크 1(Ferranti Mark 1) 머신에서 실행되도록 작성되었습니다.  페란티 마크 1(맨체스터 페란티, 혹은 맨체스터 일렉트로닉 컴퓨터: Ferranti Mark 1, Manchester Electronic Computer, Manchester Ferranti)은  상용으로는 세계 최초인 범용 전자 컴퓨터였습니다. 

1951년경 Ferranti Mark 1 [출처 : 영어 위키백과]

이 머신에서는 각각 시기는 약간 다르지만 지능적인 체커와 체스 프로그램이 모두 수행되었습니다. 1952년에 앨런 튜링도 이 머신에서 자신의 튜로 챔프(Turochamp)를 구현하려했지만 못했습니다.("#2. 새로 나오는 50파운드 영국 지폐 (2)" 참조)

페란티 마크 1위에서 수행된 지능형 게임 프로그램은 크리스토퍼 스트레이치(Christopher S. Strachey :1916년~1975년)가 작성한 체커 플레이 프로그램과 디트리히 프린츠(Dietrich Prinz : 1903년 ~ 1989년)가 작성한 체스 플레이 프로그램입니다.

 

우선 크리스토퍼 스트레이치는 영국의 컴퓨터 과학자였습니다. 그는 표시 의미론의 창시자이자 프로그래밍 언어 디자인 및 컴퓨터 시간 공유의 선구자 중 한 명입니다. 그는 통합 프로그래밍 언어(CPL, Combined Programming Language)를 개발한 사람으로도 유명합니다.

1951년 1월 한 친구가 그를 NPL(National Physical Laboratory, 앨런 튜링도 전쟁이 끝나고 이곳에서 잠시 몸을 담음)의 마이클 우드거(Mike Woodger : 앨런 튜링과 함께 자동 컴퓨팅 엔진(ACE)을 설계하고, 앨런 튜링이 떠난후 Pilot ACE을 이끌었음)에게 소개했습니다. 참고로 NPL 연구실은 1945년부터 시작된 개념인 앨런 튜링의 자동 컴퓨팅 엔진(ACE)의 축소 버전 Pilot ACE를 성공적으로 구축했습니다. 여기서 여가 시간에 크리스토퍼 스트레이치는 체커 게임을 위한 프로그램을 개발했습니다. 그는 1951년 5월에 예비 버전을 마쳤습니다. 이 게임은 Pilot ACE의 메모리를 완전히 소진 시켰습니다. 크리스토퍼 스트레이치의 체커(draughts) 프로그램은 1951년 7월 30일 NPL에서 처음으로 실행되었습니다. 그러나 프로그램 오류로 인해 실패했습니다. 크리스토퍼 스트레이치가 훨씬 더 큰 메모리를 가진 맨체스터 마크 1(Manchester Mark 1, 페란티 마크 1이전 모델)에 대해 들었을 때, 그는 전 동료 학생인 앨런 튜링에게 매뉴얼을 요청하고 1951년 10월경에 그의 프로그램을 그 기계의 작동 코드에 기록했습니다. 1952년 여름에 맨체스터 마크 1의 후속 모델인 페란티 마크 1에서 이 프로그램은 적당한 속도로 완전한 체커 게임을 할 수 있게 되었습니다. 

 

같은해에 또 한명의 컴퓨터 과학 선구자가 있었습니다. 디트리히 프린츠(Dietrich Gunther Prinz : 1903년 ~ 1989년)는 체커가 아닌 체스 프로그램에 대한 선구자였습니다. 디트리히 프린츠가 만든 Mate-in-two(디트리히 프린츠의 프로그램, Robot Chess)는 제한된 체스 문제 를 해결하기 위해 1951년에 개발 한 범용 컴퓨터에서 실행되는 최초의 체스 게임입니다.

디트리히 프린츠는 앨런 튜링과 시슬리 메리 윌리엄스(Cicely Mary Williams , 결혼전 성은 포플웰(Popplewell) : 1920년 ~ 1995년)이 이끄는 세미나에서 마크 1(Mark I)에 대한 프로그래밍을 배웠습니다. 그는 체스 프로그래밍을 "전자 컴퓨터를 통해 다른 영역의 구조적 또는 물류 문제를 처리하는 데 사용할 수있는 방법에 대한 단서"로 간주했습니다. 결국 1951년 11월, 페란티 마크 1 머신 위에서 그의 프로그램은 처음으로 Mate-in-two 문제(mate in 2, mate in 3, mate in 4 등의 용어가 있는데, 이는 2수안에 체크메이트하는 것, 3수 안에, 4수 안에 체크메이트하는 것 등을 말하는 것입니다.)를 해결했습니다.

디트리히 프린츠가 체스 프로그램을 페란티 마크 1에 로딩하는 모습 [출처 : chessprogramming.org ]

 

참고로 디트리히 프린츠는 앨런 튜링이 쓴 악명 높은 불투명한 첫 번째 매뉴얼보다 훨씬 더 명확한 페란티 마크 1의 매뉴얼을 썼습니다그는 30년 동안 프로그래밍 부서에서 일했습니다.

 

이 두 프로그램은 최초의 AI 프로그램이라고도 하는데, 여기에 대해서는 논란이 있을 수 있습니다. 후에 설명할 아서 사무엘(Arthur Lee Samuel : 1901년 ~ 1990년)의 체커 프로그램과 앨런 뉴얼(Allen Newell : 1927년 ~ 1992년)의 논리 이론가(Logic Theorist : 논리 증명을 하는 초기 정보 처리 프로그램)도 종종 첫 번째 AI 프로그램이라고 불립니다.

 

어찌되었건 1951년도부터 컴퓨터 머신위에 게임 프로그램을 돌리고, 인간과 대결할 수 있었다는 것은 대단히 놀라운 일이였습니다.

 

그후 세월이 한참지나서 1997년 IBM의 컴퓨터 딥 블루가 세계 체스 챔피언 가리 카스파로프를 이긴 최초의 기계되었고, 2016년 구글의 알파고는 이세돌 9단을 이기는 세상이 되었습니다. 이에 대한 설명 지난번 글을 참조하시길 바랍니다.


Copyright 2021. 『오드리공주될뻔 블로거』  All rights reserved.


오늘의 만평

체스와 체커 대결 만평 이미지

 

Posted by 오드리공주될뻔
|

#4. 지능의 가진 기계와의 시작 : 알고리즘의 등장

이전 글에서 다루었던, 엘 아제드레시스타(El Ajedrecista)와 같은 자동화 장치는 이동을 계산하는 간단한 알고리즘 때문에 인간을 상대로 하기는 역부족 이였습니다. 최소한의 이동 횟수로 체크 메이트를 제공하지도 않았고, 체스의 50번 이동 규칙을 따르지도 않았습니다. 즉, 만족스러운 인공지능 자동기계가 되기에는 너무나도 부족함이 많은 초보자 수준의 자동 장치였습니다.

이런 제한적인 기계식 체스 연구는 40년대 이후부터 조금씩 바뀌어갑니다. 콘라트 추제(혹은 콘라드 주세, Konrad Zuse: 1910년~1995년, 독일 토목 공학자, 컴퓨터 과학자, 발명가, 사업가)는 1941년에 세계 최초의 프로그래밍 가능한 공정 제어 컴퓨터 S2 를 만든 사람입니다.

콘라트 추제는 1941년에 Plankalkül(플란칼쿠일, 영어로는 "Plan Calculus", Konrad Zuse 가 엔지니어링 목적으로 디자인 한 프로그래밍 언어) 프로그래밍 형식으로 컴퓨터 체스 알고리즘(최초의 컴퓨터 체스 엔진)을 개발합니다. 그러나 제 2차 세계대전의 상황으로 인해 1970 년대까지 출판되지 않았고 밝혀지지 않았습니다.

한가지 재미있는 것은 제2차 세계대전이 끝나고, 선구자적 컴퓨터 과학자인 콘라트 추제와 앨런 튜링이 학회에서 서로 만났다는 것입니다. 막스 플랑크 물리학 연구소(Max Planck Institute for Physics)의 독일 컴퓨터 선구자 하인츠 빌링(혹은 하인즈 빌링, Heinz Billing)의 회고록에 따르면 독일 중부의 도시 괴팅겐에서 앨런 튜링(Alan Turing)과 콘라트 추제(Konrad Zuse) 사이에 학술 회의가 있었고, 여기에는 영국의 Womersley, Turing, Porter와 독일의 Zuse, Walther, Billing과 같은 몇몇 연구자들이 있었다고 합니다. 

※ 참고로 그가 만든 세계 최초의 프로그래밍 가능한 컴퓨터인 Z3[Konrad Zuse가 1935년에 설계하여 1941년에 완성한 독일 전자 기계 컴퓨터. 기능적 프로그램이 제어된 Turing-complete(튜링 기계와 동일한 계산능력을 가진) 컴퓨터]는 1941년 5월에 작동되었습니다.

독일 뮌헨 독일 박물관에있는 Z3 복제품 [출처 : 영어 위키백과]


1948년 노버트 위너(Norbert Wiener:미국의 수학자, 전기공학자. 1894년 ~ 1964년)는 "사이버네틱스, 또는 동물과 기계에서 제어와 통신. Cybernetics: Or Control and Communication in the Animal and the Machine"이란 책을 발간했습니다. MIT 교수였던 노버트 위너는 사이버네틱스의 창시자로 유명합니다사이버네틱스(cybernetics, 현재는 인공두뇌학으로 불림)라는 용어는 최초로 노버트 위너가 "자기 규제 메커니즘(self-regulating mechanisms)"을 지칭하기 위해 만들었습니다. 

사이버네틱스 책의 초판(First edition) [출처 : 영어 위키백과]

 

이 책에서 그는 체스 게임 머신을 만들 가능성에 대해 언급합니다. 대부분의 인간 플레이어보다 더 나은 수준의 플레이를 할 수 있지만 전문가 수준이 아닌 머신을 만드는 것이 가능하다고 결론지었습니다. (지금은 체스를 넘어 더 복잡한 바둑도 인공지능이 사람의 지능을 추월했습니다.)

1판을 조금 보강한 2판(Second Edition 1961년 출판)에서는 내용을 추가하여, 노버트 위너는 존 폰 노이만의 게임 이론과 군사 상황에 대한 적용에 대한 논의로 확장합니다. 그런 다음 그는 체스를 두는 컴퓨터가 과거의 성능을 분석하고 성능을 향상시키기 위해 프로그래밍 될 수있는 방식에 대해 설명합니다. 결국 체스를 두는 것은 기계에 의해 시뮬레이션 될 수 있다는 것이며, 이것은 현대 인공 지능 개발을 향한 중요한 초기 단계입니다. 


체스 프로그램을 개발할 수 있는 방법을 설명한 사이버네틱스 책의 내용 (Second Edtion 책 본문 발췌)

 

노버트 위너가 사이버네틱스 책의 일부에서 체스 프로그램에 대한 지능적 구현을 다뤘다면, 클로드 엘우드 새넌(줄여서 클로드 새넌. Claude Elwood Shannon: 1916년~ 2001년. 미국의 수학자이자 전기공학자. 정보 이론의 아버지라고 불리움)은 아예 논문을 출판합니다. 그 논문이 "체스를 하기 위한 컴퓨터 프로그래밍(Programming a Computer for playing Chess : 1949년 완성, 1950년 출판)"입니다.  이 논문은 뉴욕에서 열린 국립 라디오 엔지니어 컨벤션에서 발표되었습니다. 그는 위치 득점(position scoring)과 이동 선택을 기반으로 체스를 두도록하는 컴퓨터를 프로그래밍하는 방법을 설명했습니다. 그는 체스 게임에서 고려할 가능성의 수를 제한하기위한 기본 전략을 제안했습니다. 이 논문은 1950년 3월에 철학 잡지(Philosophical Magazine : 영어로 출판 된 가장 오래된 과학 저널 중 하나)에 실렸으며, 이것은 체스를 하기 위한 컴퓨터 프로그래밍과 게임 해결을 위해 컴퓨터를 사용하는 주제에 관한 최초의 기사 중 하나로 간주됩니다.

※ 참고로 클로드 새넌은 훗날 다트머스 학회(Dartmouth Conference: 인공지능이라는 분야를 확립한 학술회의. 인공지능의 용어가 처음 사용됨) 제안멤버가 됩니다.  

 

클로드 새넌는 체스 게임의 트리의 복잡성을  약 10의 120승으로 추정하고, 컴퓨터가 어떤 움직임을할지 결정하게하는 과정은 주어진 체스 위치의 평가 함수를 기반으로하는 최소극대화 절차로 설명하였습니다. 클로드 새넌은 체스판의 흰색 위치의 값에서 검은 색 위치의 값을 뺀 평가 함수의 대략적인 예도 제공했습니다.

 

※ 최소극대화(최소최대 또는 미니맥스, Minimax, MinMax, Saddle point or 한국어 위키는 "Maxmin") : 게임이론과 의사결정 이론에서 많이 사용됨. 최대의 손실(maximum loss)를 최소화시키기 (minimize)위해 사용되는 규칙.  바둑이나 체스에서 상대방 수를 고려해서 인공지능이 대응할때 많이 사용되는 구현 알고리즘이 최소극대화 알고리즘임.

해당 논문의 첫 페이지는 아래 이미지를 참고하시면 됩니다.

"체스를하기위한 컴퓨터 프로그래밍" 논문의 첫 페이지 (해당 논문 직접 발췌)

비슷한 시기에 앨런 튜링도 구현되지 못한 체스 프로그램인 튜로챔프(Turochamp : 1948년 작성해서 1950년 프로그램 로직 완성. 종이에 쓰여진 로직으로 실행되는 지능적 체스 프로그램)를 발표했는데, 그에 대한 이야기는 이미 이전 글에서 다뤘습니다.

『 』 Copyright 2021. 『오드리공주될뻔 블로거』  All rights reserved.


해리퐅터와 대결하는 체스 인공지능 로봇 이미지

 

Posted by 오드리공주될뻔
|

#1. 게임의 역사

인공지능과 인간의 대결은 대중의 관심을 갖게 하는 좋은 흥밋거리 중의 하나입니다.  게임은 모든 문화의 필수적인 부분이며 인간의 사회적 상호 작용에서 가장 오래된 형태 중 하나입니다.

우선 인류에게서 게임의 역사는 우리가 생각하는 것 이상으로 오래되었습니다. 고대 인류의 과거로 거슬러 올라가는데, 터키 남동부의 시이르트(혹은 시르, Siirt : 터키의 주 또는 시이르트 주의 주도) 지방에 있는 바슈르 회유크(Başur Höyük)라는 5,000년 된 청동기 시대 매장지가 있는 곳에서 출발합니다.  티그리스 강 상류 계곡에 위치해 있는 이 지역의 고분에서 발견된 유적은 기원전 3100년에서 2800년 사이에 탄소 연대가 기록되어있습니다. 발굴 과정에서 다양한 모양으로 정교하게 조각되고 녹색, 빨간색, 파란색, 검은 색, 흰색으로 칠해진 작은 돌 49개도 발견되었습니다. 이 돌의 모양은 일부는 돼지, 개 및 피라미드를 묘사하고, 다른 일부는 둥근 및 총알 모양을 특징으로 합니다. 또한 주사위와 흰색 껍질로 만든 3 개의 원형 토큰과 검은 색 둥근 돌을 얹은 것을 발견했습니다. 따라서 돌 조각은 일련의 게임 조각으로 여겨져 보드 게임이 아마도 5,000 년 전에 비옥한 초승달 지역과 이집트에서 시작되었음을 확인시켜줍니다. 49개의 작은 조각 된 채색 돌은 지금까지 발견 된 가장 오래된 게임 조각으로 볼 수 있습니다.

터키의 청동기 시대 초기 무덤에서 발굴된 가장 오랜 된 게임용 돌 조각들

또한 기원전 1342년 ~1325년까지 살았던 고대 이집트 왕 투탕카멘(Tutankhamun)의 무덤에서도 주사위와 보드게임이 발견되었습니다.

투탕카멘 왕의 온전한 KV62무덤에서 발견 된 우르 왕실 게임 게임을위한 게임 상자와 조각[출처 : 영어 위키백과]

중국에서도 고대 중국 보드 게임인 Liubo(육박. 일종의 경주 게임으로 추정) 기원전 1천년 중반 이전에 발명되었으며 한나라 왕조시대(기원전 202년 ~ 220 년)에 인기를 끌었습니다. 그 외에도 지중해, 중동, 인도, 아프리카, 미주 등의 지역에서 오래된 게임에 대한 고고학적 증거가 발견되었습니다. 

중국 한나라 시대((25–220 CE))의 Liubo 도기 무덤 인형 [출처 : 영어 위키백과]

 


#2. 지능의 가진 기계와의 게임 시작

이와 같이 오래 역사를 가진 인간과 인간의 게임은 이제 지능화된 기계나 자동화된 기계와도 대결하는 시대로 흘러갑니다. 18세기의 많은 흥행을 끌었던 체스 기계와 사람의 대결이 있었습니다. 바로 Mechanical Turk (터크, 튀르크, 투르크, 기계 터크, The Turk or Automaton Chess Player)라는 체스 자동기계입니다. 이 기계는 헝가리의 Wolfgang von Kempelen(Johann Wolfgang Ritter von Kempelen de Pázmánd, 헝가리어 Kempelen Farkas, 볼프강 폰 켐펠렌)가 1769년에 제작한 것입니다. 숙련된 운영자와 함께 이 터크는 거의 84년 동안 유럽과 미주 전역에서 시연 된 대부분의 게임에서 승리하여 나폴레옹 보나파르트(Napoleon Bonaparte)와 벤자민 프랭클린(Benjamin Franklin)과 같은 정치가를 포함한 많은 도전자들과 경기해서 그들을 패배 시켰습니다.

열린 캐비닛과 작동 부품을 보여주는 터크의 구리 판화 [출처 : 영어 위키백과]

 

그러나 이것은 가짜 게임 기기였습니다. 실제로는 내부에 숨은 사람이 작동하는 사기 게임이였습니다.

기계는 인간의 머리와 몸통의 실물 크기 모델로 구성되었으며, 터키식 가운과 터번을 입고 그 위에 체스판이 놓인 큰 캐비닛 뒤에 앉아 있었습니다. 이 기계는 인간 상대를 상대로 강력한 체스 게임을 할 수 있는 것처럼 보였지만 실제로는 기계 자동화의 정교한 시뮬레이션에 불과했습니다. 캐비닛 내부에 숨겨져 있는 인간 체스 마스터가 일련의 레버를 사용하여 아래에서 터크를 조종했습니다. 기계의 내부는 매우 복잡하고 그것을 관찰한 사람들을 오도하도록 설계되었습니다. 일부 사람들은 상자가 초자연적인 힘을 가지고 있다고까지 믿었습니다.

터트의 단면 추정 이미지(by Racknitz) : 그러나 작업자 위치와 자동화 장치 크기는 틀렸다고 함. [출처 : 위키백과]

 

참고로 여기서 영감을 받아 아마존(미국의 시애틀에 본사를 둔 다국적 기술회사)은 Amazon Mechanical Turk (MTurk)라는 "크라우드 소싱(Crowdsourcing)" 웹 사이트를 개설했습니다. (https://www.mturk.com/)

"크라우드 소싱(Crowdsourcing)"은 개인이나 조직이 비교적 개방적이며 빠르게 진화하는 대규모 참가자 그룹으로부터 아이디어, 투표, 마이크로 작업 및 재정을 포함한 상품 및 서비스를 얻는 소싱 모델입니다. 아마존은 인력의 아웃소싱의 일종인 일감을 가진 수요자와 그 일을 할 수 있는 공급자를 연결해 주는 웹 기반 서비스를  MTurk에서 제공하고 있습니다. 간단한 데이터 검증 및 연구 수행부터 설문 참여, 콘텐츠 조정 등과 같은 보다 주관적인 작업에 이르기까지 모든 것이 포함되어 진행하고 있습니다. 간단한 예로는 사진 속 여자가 미인인지 아닌지, 예술사진인지 일반 사진인지를 분류하는 일과 같은 것을 사람들의 남는 노동력을 이용해 저렴하게 연결하는 것입니다. 시간이 많이 걸리고, 때론 컴퓨터가 하지 못하고 사람이 가능한 일과 같은 것을 사람에게 시키는 것입니다. 개인들에게는 부업으로 이 사이트의 일감을 가져와 돈을 벌수 있는 기회를 제공합니다.

Amazon Mechanical Turk (MTurk)의 작동 원리 [출처 : https://www.mturk.com/]

이제 사기 게임이 아닌 인공지능을 추구한 게임에 대해서 본격적으로 알아보겠습니다.

 

Copyright 2021. 『오드리공주될뻔 블로거』  All rights reserved.

Posted by 오드리공주될뻔
|

이전 글에서 못 다한 부분이 있어, 앨런 튜링에 대한 이야기를 좀 더 해보겠습니다.

인공지능과 사람과의 게임 대결에서 가장 기념비적인 사건이 있었습니다. 바로 알파고(Alphago: 구글의 인공지능개발 자회사인 구글 딥마인드(구글이 2014년도 인수함)가 개발한 인공지능 프로그램)와 이세돌 9단과의 대결이였습니다. 아마도 너무 유명한 내용이라 대부분의 사람들이 알고 있는 내용입니다. 2016년 3월 알파고의 승리로 그 이후부터 이제 인간은 바둑으로는 컴퓨터를 이길 수 없습니다. 

이세돌 9단과 알파고의 대결

수십 년간의 연구에도 불구하고 2000년대까지는 컴퓨터의 바둑 실력은 아마급 정도에 미치는 것이 한계였으며, 컴퓨터 프로그램이 초단 수준의 사람과 호선으로 겨루어 사람을 이기는 것은 사실상 불가능하다는 평가를 받아 왔습니다. 하지만 2000년대 후반 들어 몬테카를로 트리 탐색(게임을 프로그램 구현시 많이 사용되는 의사 결정을 위한 체험적 탐색 알고리즘)이 도입되어 9줄 바둑에서는 프로기사와 대등한 수준에 이르렀으며, 구글의 알파고를 통해 딥러닝이 도입되어 바둑에서도 인간 정상급을 능가하는 인공지능이 나왔습니다. 결국 이세돌과 중국의 커제를 물리친 알파고에게 한국기원은 정상의 프로기사 실력인 '입신'(入神)의 경지에 올랐다고 인정하여 '프로 명예 단증(9단)'을 수여하였고, 중국기원도 '프로기사 9단' 칭호를 부여했습니다. 즉, 바둑으로 인공지능은 신과 같은 경지에 이르렀다는 뜻입니다.


바둑이전에도 컴퓨터와 인간과 게임 대결에서 기념비적인 사건이 있었습니다.  1997년, IBM의 Deep Blue( 딥 블루, IBM에서 개발 한 체스 게임 컴퓨터)가 처음으로 체스 세계 챔피언(Garry Kasparov)을 상대로 인간과의 경기에서 승리했습니다. (이 경기는 논란의 여지가 있기는 합니다.) Deep Blue는 GOFAI의 예인 알파-베타 검색 알고리즘을 병렬로 실행하기 위해 맞춤형 VLSI 칩을 사용했습니다.

※ GOFAI : Good Old-Fashioned Artificial Intelligence. 1950년대 중반부터 1980년대 후반까지 많이 사용되었던 Symbolic AI를 말함. 문제, 논리, 검색에 symbolic한 표현을 기반으로 함.

Deep Blue와 대결하는 세계 체스 챔피언

오늘 이야기가 바로, 앨런 튜링의 체스 프로그램 "튜로챔프(Turochamp)"입니다.  때때로 "Turbochamp"로 잘못 표기되기도 합니다. 


#4. 튜로챔프 : 구현하지 못한 인공지능 체스 프로그램

튜로 챔프의 바른 영어 표기

튜로챔프(Turochamp) 프로그램은 1948 앨런 튜링(Alan Turing)과 데이비드 가운 챔퍼나운(혹은 데이비드 챔퍼나운. David Gawen Champernowne, DG Champernowne, 영국의 경제학자이자 수학자. 19122000앨런 튜링의 오래된 대학 친구)가 같이 만들었기 때문에, 두 사람의 성을 조합 하여 "Turochamp"로 명명한 것입니다.  

Turochamp 이름의 유래

이 튜로챔프는 최초로 작성된 체스 시뮬레이션 컴퓨터 게임 프로그램으로 실제로 컴퓨터에는 구현되지는 않았습니다. 튜로챔프를 만들기 전에 앨런 튜링을 삶을 살펴보면 다음과 같습니다. 

인류 역사상 가장 많은 인명 피해와 재산 피해를 남긴 가장 파괴적이었고 큰 전쟁이었던 제2차 세계대전(1939년9월1일 ~ 1945년9월2일)이 6년1일만에 끝나고, 앨런 튜링은 런던의 Hampton에 살았습니다. 1945년 그는 National Physical Laboratory(NPL:영국의 국가 측정 표준 연구소. 세계에서 가장 오래된 표준화 실험실 중 하나)에서 수학부서 창설 추진과 ACE (Automatic Computing Engine: 자동 컴퓨팅 엔진. 앨런 튜링이 설계한 영국 초기 전자 직렬 저장 프로그램 컴퓨터) 설계 작업을 했습니다. 그리고 맨체스터 대학교 등에서 컴퓨터에 대한 연구도 계속했습니다. 이 시기의 앨런 튜링은 형태 발생과 수학적 모델화에 주력했습니다. ACE는 실현 가능한 디자인이었지만 블레칠리 파크(Bletchley Park)의 전시 작업을 둘러싼 비밀(영국의 공식 비밀 법으로 보호되었음)로 인해 프로젝트 시작이 지연되고 환멸을 느꼈습니다. 결국 1947년에 ACE를 떠납니다.

1948년에  앨런 튜링은 맨체스터 빅토리아 대학교 수학과의 리더로 임명되었습니다. 1년 후, 1949년 그는 컴퓨팅 머신 연구소의 부국장이 되었고, 그곳에서 가장 초기의 저장 프로그램 컴퓨터 중 하나 인 Manchester Mark 1의 소프트웨어 작업을 했습니다.

※ ACE관련 참고 :  1947년 Turing이 캠브리지로 떠난 후 Wilkinson이 ACE 그룹을 이끌도록 임명되었습니다. 앨런 튜링이 떠난 이후 ACE는 Pilot ACE(제작이 완료되기 전에 NPL을 떠난 앨런 튜링이 설계 한 전체 ACE 의 예비 버전) 형태로 진행되어 1950년 5월10일, 첫 프로그램을 실행했으며 1950년11월 언론에 시연되었습니다.


1948년 앨런 튜링은 그의 전 대학 동료인 데이비드 챔퍼나운과 함께 아직 존재하지 않는 컴퓨터를 위한 체스 프로그램을 작성하기 시작했습니다. 1950년 드디어 프로그램은 완성되어 “튜로챔프(Turochamp)”라고 불렸습니다. 1952년, 그는 튜로챔프를 Ferranti Mark 1(Manchester Electronic Computer 혹은 Manchester Ferranti : 세계 최초의 상용 범용 디지털 컴퓨터 중 하나) 위에 구현하기 위해 노력했습니다. 그러나 충분한 전력이 부족으로인해 컴퓨터가 프로그램을 실행 할 수 없습니다. 대신 튜링은 알고리즘의 페이지를 넘기고 체스판에서 지시를 수행하여 수동으로 프로그램을 진행했습니다. 모든 동작을 고려해야 했기에 한번 말을 놓는 데까지 약 30분이라는 긴 시간이 소요됐다고 합니다. 결론적으로 보면 튜로챔프 알고리즘은 모든 잠재적 움직임과 모든 잠재적 플레이어 움직임을 계산하고 각 게임 상태에 점수 값을 할당하고 평균이 가장 높은 움직임을 선택하는 방식으로, 낮은 수준의 인간 플레이어와 전체 체스 게임을 할 수 있었습니다. 

결국 인간과의 대결에서 이 프로그램은 튜링의 동료인 Alick Glennie에게 졌지만 데이비드 챔퍼나운의 아내 Isabel과의 경기에서 이겼다고합니다. 

1952년 튜로챔프(화이트)와 Alick Glennie(블랙)간의 게임. 29번 이동후 화이트가 패배함 [츨처: 영어 위키백과]

애석하게도 튜로챔프는 원래 구현이 종이에 알고리즘이 있었기 때문에 실행 가능한 프로그램이나 프로그램의 소스 코드를 다운로드 할 수 없습니다. 그래서 "종이 기계(paper machine"이라는 별명을 가지고 있습니다. 튜로챔프의 원본 프로그램의 가장 좋은 확인은 앨런 튜링의 작품 에세이입니다. 체스 알고리즘이 어떻게 동작하는지 기술되어있는 앨런 튜링의 에세이에서 발췌한 아래 이미지를 참조하시길 바랍니다. 

튜로챔프(Turochamp)에 대한 앨런 튜링의 에세이: 구현되지 못한 프로그램

앨런 튜링이 지금 살아 계셨다면, 2021년 기준 나이로 109세 할아버지입니다. 그랬더라면 아마도 엄청난 인공지능과 컴퓨터 분야의 발전을 이루었을 것이라고 생각하면서, 앨런 튜링의 이야기를 여기서 마무리합니다.

Copyright 2021. 『오드리공주될뻔 블로거』  All rights reserved.

 

블로그 이름의 정확한 표현

Posted by 오드리공주될뻔
|