달력

52024  이전 다음

  • 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

#6. 자동화된 추론 논리 이론가 (Logic Theorist)

아서 사무엘(혹은 아서 새뮤얼, Arthur Lee Samuel)이 체커 프로그램을 시연하던 시기에 또 하나의 첫 번째 인공지능 프로그램이 탄생하고 있었습니다. 바로 게임분야가 아닌, 수학 원리의 증명을 인간과 같이 할 수 있을지를 검토한  "논리이론가 (LT, Logic Theorist 혹은 Logic Theory Machine) "입니다. 이 프로그램은 1956년도에 첫 
 시연을 가졌습니다.

 

논리 이론가는 앨런 뉴얼(혹은 앨런 뉴웰, Allen Newell : 1927년 ~ 1992년), 허버트 알렉산더 사이먼(Herbert A. SimonHerbert Alexander Simon : 1916년 ~ 2001년) 및 클리프 쇼(John Clifford Shaw or Cliff Shaw  : 1922년~1991년)가 1956년에 작성한 컴퓨터 프로그램입니다 . 자동화된 추론(automated reasoning)을 수행하기 위해 의도적으로 설계된 최초의 프로그램으로 "최초의 인공 지능 프로그램"이라고도 합니다. 

최초의 인공지능 프로그램

 

이 프로그램은 수학원리(Principia Mathematica : Alfred North Whitehead과 Bertrand Russell의 저서)에서 처음 52개의 정리 중에서 38개를 증명하고 일부에서는 수작업으로 사람이 만든 증명보다 좀 더 멋진 증명을 찾아냈습니다. 사람처럼 수학 원리를 증명할 수 있다는 부분이 획기적입니다.

 

앨런 뉴얼과 허버트 알렉산더 사이먼(이하 '허버트 사이먼')은 지난번 소개드린 인공지능의 용어가 탄생하게 된 존 메카시(John McCarthy)가 주도했던 다트머스 워크숍에 참석했던 인물들입니다. 여기에 RAND Corporation(랜드 연구소, 미국의 대표적인 싱크 탱크 비영리 법인)의 시스템 프로그래머였던 클리프 쇼가 개발에 공동으로 참여하여 논리 이론가 프로그램을 탄생시킨 것입니다.

 

1955년 앨런 뉴얼과 허버트  사이먼이 논리 이론가에 대한 작업을 하기 시작했을 때 인공지능 분야는 아직 본격적으로 태동하지 않았습니다. 이들은 1956년 6월 15일 발행된 Rand Corporation 보고서 P-868에서 "논리 이론 기계(The Logic Theory Machine. A Complex Information Processing System)"라는 제목으로 논리 이론가를 처음으로 설명했습니다.

앨런 뉴얼과 허버트 사이먼의 Logic Theory Machine 보고서 

 

 

논리 이론가는 인공지능 연구의 핵심이 될 몇 가지 개념을 도입했습니다.

첫 번째는 추론을 통한 탐색입니다. 검색 트리(search tree)를 기반으로 탐색을 구현했는데, 검색 트리에서 Root는 초기 가설이었고 각 분기(Branch)는 논리 규칙에 기반한 추론이었습니다. 트리 어딘가에는 프로그램이 증명하고자하는 명제(proposition)가 있는 형태였습니다. 목표를 따라가는 경로가 수학에서의 증명(Proof)이 였습니다. 이는 각각의 논리 규칙을 사용해서 추론되는 증명할 명제에 대한 가설에 대한 표현들입니다.

두 번째는 경험적 방법론(휴리스틱, Heuristics)을 도입한 것입니다. 이들은 경험법(Rule of Thumb)으로 트리가 기하급수적인 탐색공간을 마련하므로, 일부 분기(Branch)를 자르기(Trim)를 해야한다는 것을 알고 적용했습니다. 이러한 규칙을 "휴리스틱(heuristics)"이라고 불렀습니다. 휴리스틱은 인공지능 연구의 중요한 영역이며, 기하급수적으로 증가하는 검색의 조합폭발(혹은 조합 확산 : 문제 복장성이 급격한 증가하는 것. Combinatorial explosion)을 극복하는 중요한 방법으로 남아 있습니다.

세 번째는 목록 형식의 데이터 처리방법인 리스트 프로세싱입니다.  클리프 쇼를 포함하여 이들 세 명의 연구원은 컴퓨터에서 논리 이론가를 구현하기 위해 프로그래밍 언어인 IPL(어셈블리 언어 스타일의 프로그래밍 언어, Information Processing Language)을 개발했습니다. 이 프로그래밍 언어는 나중에 AI 연구원들에 의해 종종 사용하는 중요한 언어인 존 메카시(John McCarthy)의 Lisp 프로그래밍 언어의 기반이 될 동일한 형태의 기호 목록 처리를 사용했습니다.

 

허버트 사이먼은  1956년 1월 대학원 수업에서, 자신이 앨런 뉴얼과 함께 사고하는 머신(Thinking Machine)을  발명했다고 말했습니다. 이는 철학적 관점에서 논리 이론가를 시스템이 기호와 휴리스틱으로 인간 사고의 모델을 흉내 내는 것으로 볼 수 있다는 측면을 강조한 것입니다.

해당 논문에서의 추론의 특성과 학습 프로세스의 설명 


이 논리 이론가가 좀 더 발전하여, 나중에는 인간의 문제해결 과정을 모형화한 프로그램인  '일반문제해결자 (General Problem Solver, 1958)'로 나옵니다.

앨런 뉴얼은 인공지능과 인지심리학의 기초를 쌓은 공헌을 인정받아 허버트 사이먼과 함께 1975년에 튜링상을 받았습니다. 앨런 뉴얼과 허버트 사이먼은 지속적인 파트너십을 맺었습니다. 그들은 Carnegie Mellon University에 인공 지능 실험실을 설립하고 50년대 후반과 60년대에 걸쳐 일련의 중요한 프로그램과 이론적 통찰력을 제공했습니다.

문제를 해결하기 위해 기호와 휴리스틱을 이용했고, 이를 통해 기계가 마음을 반영하는 인간 사고의 모델이라는 것을 증명하고자 했던 분들이 바로 앨런 뉴얼과 허버트 사이먼이였습니다.

 

"물리적 심볼 시스템은 일반적인 지능적 행동에 필요하고 충분한 수단을 가지고 있습니다.(A physical symbol system has the necessary and sufficient means for general intelligent action.)"
- Allen Newell and Herbert A. Simon -

논리 이론가 만평

 

Posted by 오드리공주될뻔
|

#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 오드리공주될뻔
|

#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 오드리공주될뻔
|