달력

42024  이전 다음

  • 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

신경망은 갈수록 깊어지고, 정교화 되고, 복잡해지고, 자동화 되고 있습니다. 때론 과거에는 어떤 기초적인 논리가 있었는지 궁금할 때가 있습니다. 그래서 인공지능의 초기 연구에 인기가 있었던 논문들을 볼 수 있는 URL을 소개하겠습니다. 참고하시고 많은 발전을 이루시기 바랍니다. 저는 다행히 모든 다운로드를 받았지만, 종종 해당 사이트의 접근이 막힐 때도 있으니 참고하시길 바랍니다.

● Some Studies in Machine Learning Using the Game of Checkers.  스탠포드대의 아서 사무엘 교수가 1959년 발표한 논문 "체커 게임을 활용한 머신러닝에 관한 연구"가 머시러닝의 시초입니다.
http://www2.stat.duke.edu/~sayan/R_stuff/Datamatters.key/Data/samuel_1959_B-95.pdf
https://ieeexplore.ieee.org/document/5392560/authors#authors

논문 이미지


● COMPUTING MACHINERY AND INTELLIGENCE. 앨런 튜링의 유명한 튜링 테스트에 대한 논문입니다.
https://www.csee.umbc.edu/courses/471/papers/turing.pdf

논문 이미지

● The General and Logical Theory of Automata. 폰 노이만의 인공지능과 인공생명에 관한 초기연구에 관한 논문입니다.
https://www.vordenker.de/ggphilosophy/jvn_the-general-and-logical-theory-of-automata.pdf

논문 이미지

●Theory of Games and Economic Behavior. 1944년에는 오스카 모르겐슈테른(독일어: Oskar Morgenstern)과 함께 쓴 책 《게임 이론과 경제적 행동》입니다.
http://jmvidal.cse.sc.edu/library/neumann44a.pdf

책 이미지


  ● On computable numbers, with an application to the Entscheidungsproblem. 튜링의 계산가능한 수와 그것의 결정문제에 대한 적용에 관한 논문입니다. 계산 기계를 대표하는 가상의 장치를 만들고 automatic의 앞 글자 a를 따서 "a-기계"라는 이름을 제안합니다. 이것이 훗날 튜링 기계(튜링 머신)라고 불리게 됩니다.
https://www.cs.virginia.edu/~robins/Turing_Paper_1936.pdf

논문 이미지

● A PROPOSAL FOR THE DARTMOUTH SUMMER RESEARCH PROJECT ON ARTIFICIAL INTELLIGENCE. 논문이라기 보다는 다트머스 학회 제안서입니다. 
http://www-formal.stanford.edu/jmc/history/dartmouth/dartmouth.html

http://jmc.stanford.edu/articles/dartmouth/dartmouth.pdf

제안서 이미지

● A Logical calculus of ideas immanent in nervous activity. 초기 신경망 모델 중에서 잘 알려진 맥컬럭과 피츠가 제안한 뉴런 모델에 대한 논문입니다.
https://www.cs.cmu.edu/~./epxing/Class/10715/reading/McCulloch.and.Pitts.pdf

 

논문 이미지

● SINGLE UNIT ACTIVITY IN STRIATE CORTEX OF UNRESTRAINED CATS. 데이비드 헌터 후벨의 제한되지 않은 고양이의 선조피질에서의 단일 단위 활동에 관한 논문입니다. 
https://physoc.onlinelibrary.wiley.com/doi/pdf/10.1113/jphysiol.1959.sp006238

논문 이미지

●The Perceptron : A Perceiving and Recognizing Automation. 신경생물학자인 프랑크 로젠블랫의 퍼셉트론에 관한 논문입니다.
https://www.import.io/wp-content/uploads/2017/06/rosenblatt-1957.pdf

논문 이미지

Posted by 오드리공주될뻔
|

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

체스와 체커는 인공지능 선구자들에게는 인간의 지능을 구현하기 위한 아주 좋은 도전이자 테스트 베드이었습니다.

1951년 페란티 마크 1(Ferranti Mark 1) 컴퓨터에서 실행된 체스와 체커 게임 프로그램에 이어서, 1952년에 또 다른 체커 프로그램이 개발되고 있었습니다. 바로 알파베타 가지치기(Alpha–beta pruning)의 초기버전을 수행한 아서 사무엘(혹은 아서 새뮤얼, Arthur Lee Samuel : 1901년~1990년)입니다.


지금으로 그 시절의 인공지능 수준을 생각하면, 누군가는 호랑이 담배 피던 시절부터 이야기라고 할 수 있습니다.

호랑이 담배 피던 시절 풍자 이미지

 

그러나 그 시절의 어떤 논리를 구축해왔는지를 깊게는 몰라도, 어느 정도는 알고 있어야 더 좋은 인공지능 알고리즘을 구현할 수 있습니다. 실제로 알파고도 심층 신경망과 더불어 트리 탐색 기법(몬테카를로 트리 탐색)을 써서 구현했습니다. 이렇게 사용된 탐색 기법은 딥 러닝이 발달하기 훨씬 이전에 초기 인공지능 구현기법에서 많이 사용되던 구현기법이었습니다. 때론 옛것과의 결합을 통해 좀 더 좋은 솔루션을 구축할 수 있습니다. (이날치는 전통적인 판소리에 현대적인 팝 스타일을 조화시킨 음악으로 유튜브에서 많은 인기를 끌었습니다. 우리 것은 좋은 거여~ (:-))

 

오늘 소개해드릴 아서 사무엘도 트리 탐색기법을 사용했습니다. 

아서 사무엘은 미국의 IBMer이자 컴퓨터 게임 및 인공 지능 분야의 선구자이자, 머신 러닝의 대가입니다.  그는 1959년에 "머신 러닝"이라는 용어를 대중화(처음으로 논문에 사용) 시켰고, IBM 메인프레임 개발 및 최초의 자기학습 체커 프로그램 개발하였습니다. 1987년에는 컴퓨터 개척상(Computer Pioneer Award : IEEE Computer Society의 이사회에서 1981년 제정. 『Women of the ENIAC Computer Pioneer Award』로 이름이 변경)을 수상하기도 했습니다.

아서 사무엘이 IBM 701에서 체스 경기를 하는 모습 [출처 : https://www.ibm.com/ibm/history]

 

1949년에 아서 사무엘은 IBM의 Poughkeepsie Laboratory에 입사하여 획기적인 IBM 701 컴퓨터를 설계한 팀의 일원이었습니다. 아서 사무엘은 컴퓨터가 얼마나 강력한 도구가 될 수 있는지 보여주기 위해 게임의 챔피언 플레이어를 물리 칠 수 있는 체커 프로그램을 구현하는 것을 1946년 일리노이 대학팀 합류할 때부터 생각해오다, 1952년말쯤  IBM 701에서 초기 버전을 완성하였습니다. 1952년은 크리스토퍼 스트레이치의 체커 게임 프로그램 발표로 이런 지능형 프로그램에 대중들의 관심이 있던 시기였습니다. 아서 사무엘은 향후 몇 년 동안 이 체커 프로그램을 계속 개선했으며, 1955년 아서 사무엘의 프로그램은 자신의 플레이를 분석하고 실수로부터 학습 할 수 있게 되면서 중요한 이정표를 달성했습니다. 이 프로그램이 계속해서 악명을 얻음에 따라 실제로 1956년 2월 24일 국영 TV에서 시연되었습니다. IBM 주가는 이 데모를 통해 15포인트 상승했습니다.

인공지능 기업 주가 만화

 

이 프로그램은 자기 학습능력을 가지고 대량의 게임을 분석해 놓은 수가 "좋은 수"인지 "나쁜 수"인지를 식별하는 방법으로 점차 성능을 개선했으며, 결국에는 그의 프로그램이 상급 아마추어 레벨에서 플레이할 수 있을 정도로 숙달되었습니다. 그 과정에서 아서 사무엘은 컴퓨터가 오직 시킨 일만 할 수 있다는 생각이 틀렸음을 입증했습니다.

 

결국 1959년에 그는 머신 러닝(=기계 학습)이라는 용어가 공식적으로 처음 등장한 것으로 보는 논문 ‘체커 게임을 활용한 머신 러닝에 관한 연구(Some Studies in Machine Learning Using the Game of Checkers)’를 발표합니다. 

아서 사무엘의 "체커 게임을 활용한 머신 러닝에 관한 연구"에 대한 논문 첫장(1959년) [출처 : 해당 논문 발췌]

 

머신 러닝에 대한 명확한 정의는 해당 논문에서 명확하게 기록되어있지는 않지만, "명시적으로 프로그래밍 되지 않은"과 연관된 정의로 아서 사무엘이 최초 만든 것으로 봅니다. 현재 위키백과에서는 "경험을 통해 자동으로 개선하는 컴퓨터 알고리즘의 연구"로 정의하면서, 아서 사무엘이 "기계가 일일이 코드로 명시하지 않은 동작을 데이터로부터 학습하여 실행할 수 있도록 하는 알고리즘을 개발하는 연구 분야"라고 1959년에 정의한 것으로 표기되어있습니다. (참고로 영문 위키백과의 주석을 보면 상기 체커 게임 논문에서의 직접적인 기술은 관련이 없는 것으로 나와있습니다.) 딥 러닝과 같은 인공신경망은 머신 러닝에 속해있는 한 분야이므로 지난번 설명 드렸듯이 머신 러닝이 좀 더 포괄적인 개념입니다.

 

그가 구현한 체커 프로그램은 발표한 논문에 잘 설명이 되어있습니다. 

아서 사무엘의 "체커 게임을 활용한 머신 러닝에 관한 연구"논문에서의 트리 설명 예시 [출처 : 해당 논문 발췌]

 

트리 검색기법을 이용해서 구현했고, 사용 가능한 컴퓨터 메모리의 양이 매우 제한적이기 때문에 아서 사무엘 서로간 적대적인 알파베타라는 개념을 도입했습니다. 일반적으로 게임 구현시에는 상대방이 어떤 식으로 나왔을 때 어떻게 반응해야 할지에 대해 최대한 많은 경우를 고려하는 코드를 구현해야 합니다. 이 때문에 알파베타 개념으로 적대 탐색 알고리즘들이 적용됩니다. 알고리즘의 탐색 시간을 줄이기 위해 사용되기도 하는데, 더 이상 계산할 필요가 없는 경로를 제거하여 계산량을 대폭 절감시키는 효과가 있습니다. 아서 사무엘이 도입한 이 개념은 알파베타 가지치기(Alpha–beta pruning)의 초기 버전으로 보고 있습니다.

해당 논문에서의 알파베타 개념의 도입 예시 [출처 : 해당 논문 발췌]

 

 

 

알파베타 가지치기는 탐색 트리에서 최소극대화(최소최대 또는 미니맥스, Minimax, MinMax, Saddle point or 한국어 위키는 "Maxmin") 알고리즘을 적용할 때 평가하는 노드의 수를 줄이기 위해 사용되는데, 여기서 최소극대화는 추정되는 최대의 손실을 최소화하는 알고리즘을 말합니다. 최소극대화 알고리즘은 최악의 경우에 발생할 수 있는 최대 손실을 최대한 감소하기 위한 의사결정 원칙으로, 게임이론에서 서로 적대 관계인 경기자의 이익은 최대로, 상대로부터 받는 피해는 최소로 만들기 위해 행동한다는 원리입니다.  최소극대화는 지난번 " AI와 인간의 대결 (3)"에서 클로드 새넌이 사용했던 구현 로직입니다. 

 

이 체커 프로그램은 최소 극대화 전략(논문에서는 "minimax" procedure로 기술)에 따라 이동을 선택했고, 상대방이 자신의 관점에서 동일한 기능의 값을 최적화하려한다고 가정하고 이 기능의 값을 최적화한 이동을 수행했습니다. 아서 사무엘은 다양한 메커니즘을 설계했는데, 보상 함수의 최종 가치와 함께 각 위치에서 검색 깊이를 효과적으로 확장했습니다. 아서 사무엘의 이후 프로그램은 프로 게임의 입력을 기반으로 보상 함수를 재평가하고, 또 다른 학습 방법으로 수천 개의 게임을 자체적으로 플레이하도록 했습니다. 

 

아서 사무엘 이 논문 마지막부분에는 이렇게 결론을 썼습니다.
"이 실험의 결과로 우리는 확신을 가지고 이제 학습 제도를 고안하는 것이 가능하고, 그것은 평범한 사람을 훨씬 능가할 것이고 이러한 학습 계획은 결국 실생활 문제에 적용 할 때도 경제적으로 실현 가능합니다."

참고로 그는 1956년에 열렸던 다트머스 회의(Dartmouth workshop, Dartmouth Conference  : 인공지능이라는 분야를 확립한 학술회의)에  제안서 작성자가 아닌 회의 참석자 명단에도 포함되어있습니다.

 

기계가 학습을 할 수 있다는 생각을 공식화하여 구현한 사람, 그 사람이 바로 아서 사무엘입니다. 그에 대한 경의를 표합니다.

아서 사무엘 이후,  "Machine Learning" 책을 지은 카네기 멜런 대학교의 교수 톰 미첼(Tom Mitchell)은 1986년 "컴퓨터 프로그램이 어떤 작업 T와 평가 척도 P에 대해서 경험 E로부터 학습한다는 것은, P에 의해 평가되는 작업 T에 있어서의 성능이 경험 E에 의해 개선되는 경우를 말한다."라고 이전보다 형식적인 머신 러닝의 정의를 내렸습니다. 즉, 어떠한 작업 T에 대해 꾸준한 경험 E를 통하여 그 T에 대한 성능 P를 높이는 것, 이것이 기계학습이라고 할 수 있습니다. 한마디 장표로 이번 글을 마칩니다.

머신 러닝 정의 만평

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

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

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