인공지능의 유쾌한 반란

딱딱한 코드에 웃음을 입히다. 인공지능을 재미있게 공부할 수 있는 블로그.

YouTube 자세히보기

인공지능(AI)/인공지능의 역사

#2. AI와 인간의 대결(3) : 알고리즘의 등장

오드리공주될뻔 2021. 1. 27. 17:47

#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.


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