재미있는 인공지능(AI) 이야기(#1,2,3)
KLDP Blog에서 연재합니다.
블로그에 쓰기권한을 부여해주신 권순선님께 감사드립니다.
안녕하세요?
제가 드디어 늦게나마 저의 열정과 역량을 집중해 볼 수 있는 주제를 찾았습니다.
바로 인공지능(AI: Artificial Intelligence) 입니다.
학창시절에 AI라는 주제를 듣기는 했는데,
그때는 너무 막연한 실현 불가능한 주제로 어렵게만 생각했었습니다.
그런데, 요즘 저는 AI라는 주제를 다시 바라보고 있습니다.
수년전 스티븐스필버그 감독의 AI라는 영화가 있었습니다.
주인공으로 등장하는 소년은 지능형 로봇이었지만 자신이 로봇임을 부정하며
피노키오가 세상 여행을 하듯이 여러가지 AI 세상을 경험하면서
결국에는 바다속으로 침몰해 버린 맨하탄에서 그를 제작한 아버지를 만납니다.
아버지는 맨하탄까지 찾아온 그의 AI를 경이로운 눈으로 바라보는 장면이 아직도 생생한데요...
물론 영화는 픽션이므로 현실과는 거리가 먼 상상의 세계입니다만,
그속에 담겨있는 이야기들을 통해서 배울것이 많은듯 합니다.
그래서, 저는 조만간 스필버그의 AI영화를 DVD로 구매해서 다시 보려고 합니다.
서두에 잡담이 좀 길었습니다.
이글의 제목처럼 인공지능(AI)을 재미있는 이야기 형태로 연재하는 글을 올리려 합니다.
연재의 시작은 오늘부터 하지만 연재의 내용, 주기, 분량등은 제가 자유롭게 결정하도록 하겠습니다.
다만, 참고서적이 하나 있습니다.
Artificial Intelligence: A Modern Approach (3rd Edition)
by Stuart Russell, Peter Norvig
아마존에서 Artificial Intelligence로 검색하면 첫번째로 나오는 책입니다.
가격이 13만원 정도로 좀 비쌉니다.(어제 질렀습니다)
3rd Edition이라 비교적 최근것이라 좀 그런듯 하며 책 평가를 보니
2nd Edition과 많은 차이는 나지 않지만 여전히 좋은 책이라는...
첫번째 저자인 Stuart Russell은 영국 태생이고 옥스퍼드 대학교에서 물리학을 전공한 이후,
스탠포드 대학교에서 컴퓨터 과학을 연구한 학자입니다.
두번째 저자인 Peter Norvig는 현재 Google 연구소 이사입니다.
핵심적인 웹 검색 알고리즘을 고안했고 NASA에서 인공지능 로봇을 연구했다는군요.
최근에는 스탠포드대학교의 인공지능 온라인 강의(www.ai-class.com)를 하고 있고,
커널연구회(www.kernel.bz)에서 이것을 주제로 매주 목요일 공부 모임도 하고 있습니다.
책에서 대주제(Part)들만 나열해 보면,
Part 1. Artificial Intelligence (인공지능 소개)
Part 2. Problem Solving (문제 해결방식)
Part 3. Knowledge and Reasoning (지식과 추론)
Part 4. Uncertain Knowledge and Reasoning (불확정적인 지식과 추론)
Part 5. Learning (학습)
Part 6. Communicating, Perceiving, and Acting (소통, 인지 그리고 행동)
Part 7. Conclusions (결론들)
이책을 아직 정독해 보지 못하고 제목별 전체 흐름만 보았는데,
한가지 다행 스러운 것은 공학 서적들에서 감초처럼 등장하는 수학 수식이 별로 없고
이야기 형태로 풀이하고 있다는 것입니다.
현재 1장 정도 봤는데 이부분은 다소 철학적이기도 합니다(^^).
아무튼, 저는 이책을 참고로 하여 인공지능(AI) 이야기를 재미있게 풀어갈까 합니다.
책의 영문을 그대로 직역하지는 않습니다.
왜냐하면 그냥 직역하면 영문과 한글 문장의 구조적인 이질감 때문에 이상한 문장들이 되어
이해하기 어려워지기 때문입니다.
되도록이면 재미있게 풀어서 의역하고 여기에,
저의 알고리즘 지식들과 데이터베이스 이론, C언어 코딩, 제가 개인적으로 연구하고 있는
지능형 로봇(마루치 프로젝트)등과 논리적으로 연관시켜 재미있게 풀어 쓸 예정입니다.
앞으로 제가 쓰게 될 내용들이 어떻게 전개 될지 저도 궁금하고 살짝 걱정 되기도 합니다.
여러분들이 읽고 어떻게 평가해 주실지...는 잠시 뒤로 하고
일단, 자신감을 가지고 이분야에서 나름대로 쌓아온 지식들을 총동원하여
소신있게 쓰내려가려 합니다.
1. 인공지능(AI) 소개
우리는 우리들을 호모 사피엔스(현명한 인간)라고 부른다.
왜냐하면 우리의 지능은 우리에게 아주 중요하기 때문이다.
수천년동안, 우리는 우리가 생각하는 방식을 이해하기 위해 노력했으나
극히 일부분만 인식, 이해, 예측할뿐, 여전히 복잡한 문제로 남아있다.
이러한 우리의 생각 방식을 인공지능(AI) 분야에 도입하여 이해하려고 시도는 하고 있으나
여전히 멀고도 요원하다.
인공지능(AI)은 과학과 공학에 있어서 새로운 분야라 할 수 있다.
AI는 세계 2차대전 이후 1956년에 신조어로 등장한 이래로 분자 생물학 분야와 함께
과학자들이 누구나 연구하고자 하는 분야로 자리잡아왔다.
물리학도들은 모든 새로운 아이디어들은 이미 갈릴레오, 뉴튼, 아인슈타인에 의해서 출현되었다라고 말하기도 한다.
반면에, AI는 여전히 새로운 아인슈타인과 에디슨들을 위해 열려져 있는 분야이다.
현재 AI는 체스게임이나 수학이론 증명, 시쓰기, 복잡한 거리에서 자동차 운전, 질병 분석등과 같은
다양한 분야들로 파생되고 있다.
AI는 지능적인 작업이 필요한 분야에 적절하며, 실제적으로 대부분의 분야에 필요한 것이라 할 수 있다.
1.1 AI란 무엇인가?
우리는 AI에 대해서 흥미는 가지고 있지만 아직 그것이 무엇인지 정확히 말하는 것을 힘들어 한다.
우선 AI에 대한 정의를 아래와 같이 분류해 보자.
(1)사람처럼 생각하는 것
(2)사람처럼 행동하는 것
(3)합리적으로 생각하는 것
(4)합리적으로 행동하는 것
(1)번과 (2)번은 "사람처럼" 이라는 핵심어가 들어가 있다.
(3)번과 (4)번은 "합리적으로" 라는 핵심어가 들어가 있다.
(1)번과 (3)번은 "생각하는" 이라는 핵심어가 들어가 있다.
(2)번과 (4)번은 "행동하는" 이라는 핵심어가 들어가 있다.
AI의 정의는 위에 나열한 핵심어를 기준으로 접근해볼 수 있다.
AI에 대한 이러한 접근방식은 역사적으로 많은 사람들에 의해서 시도되어 왔다.
이것들에 대해서 좀더 자세히 알아 보자.
(1)사람처럼 생각하는 것: 인지학적인 접근방식.
사람처럼 생각하는 프로그램을 논하기 전에, 우리는 먼저 사람이 생각하는 방식을 알고 있어야 한다.
즉, 사람의 마음속에서 실제적으로 일어나는 일들을 이해할 필요가 있는데, 3가지 방식이 있다.
* 자기성찰: 지나간 일들을 다시 생각함
* 심리학적인 실험: 사람의 행동을 관찰함
* 두뇌 영상: 행동할때 두뇌를 관찰함
이러한 이론들은 컴퓨터 프로그램으로 표현가능하게 되었다.
만일 컴퓨터 프로그램의 입력과 출력이 사람의 행동과 연관시켜 일치한다면
컴퓨터가 사람처럼 동작한다고 할 수 있다.
예를들면, 1961년에 GPS(General Problem Solver)을 개발한 Allen Newell과 Herbert Simon는
그들의 프로그램이 문제를 정확하게 풀지는 못했지만, 사람을 주제로 하여 사람의 행동을
이성적인 접근법으로 추적하였다는 것에 의미가 있다.
이처럼 인지과학과 AI는 서로 상호 보완적으로 빠르게 발전하고 있으며
신경생리학적인 접근과 함께 컴퓨팅 분야에서 서로 협동하고 있다.
(2)사람처럼 행동하는 것: Turing Test 접근방식.
1950년에 Alan Turing에 의해서 제안된 Turing Test는
"적절히 동작하는가"에 대한 관점으로 지능을 정의하고자 했다.
즉, 사람이 컴퓨터에게 질문을 하면 컴퓨터가 대답을 적절히 하는가에 대한 테스트였다.
지능을 갖추기 위해 현대의 컴퓨터에는 다음과 같은 능력이 요구된다:
* 자연어로 소통 가능한 자연어 처리 능력
* 듣고 이해한 지식을 저장하는 능력
* 저장된 정보를 사용하고 질문에 대답하고 새로운 결론을 추론하는 능력
* 패턴들을 검출하여 새로운 환경을 이해하고 학습하는 능력
위의 능력들은 AI에 필요한 원론적인 내용들이며
이러한 능력들은 Turing Test 관점하에 잘 동작될 수 있도록 설계해야 한다.
(3)합리적으로 생각하는 것: 생각의 법칙에 대한 접근.
그리스의 철학자 아리스토텔레스는 "올바른 생각"에 대한 개념을 정리하기 위해서 최초로 시도한 사람이었다.
그의 삼단 논법은 올바른 결론을 이끌어내는 구조를 가지고 있었다.
예를들면, "소크라테스는 사람이다; 모든 사람은 죽는다; 따라서 소크라테스도 죽는다."
이러한 생각에 대한 법칙은 마음을 조절하게 되었고, 이렇게 개척된 분야를 논리(logic)라 한다.
19세기 논리학자들은 세상의 모든 물체(객체)들과 그들의 연관성들을 표현하기 위한 정확한 표기법을 개발했다.
1965년경에는 논리적인 표기법으로 기술한 문제들을 풀어낼 수 있는 프로그램이 나타났다.
비록, 해결책이 존재하지 않는다면 프로그램이 무한루프에 빠지더라도...
인공지능에서는 논리적인 기법을 통하여 지능적인 시스템을 프로그래밍하고자 한다.
이러한 접근방식에는 두가지 장애물이 있다.
첫째는, 비정형적인 지식을 표현하기가 쉽지않고,
논리적인 표기법으로 요구된 사항들을 정형적으로 표현하기가 어렵다는 것이다.
특히 지식이 100% 명확하지 않다면 더더욱 어렵다.
둘때는, 원론적으로 문제를 해결하는 것과 실제적으로 해결하는 것 사이에는 많은 차이가 있다는 것이다.
(4)합리적으로 행동하는 것: 합리적인 agent 접근.
agent는 행동하는 것(to do)을 의미한다.
모든 컴퓨터 프로그램들은 무언가를 하지만, 컴퓨터 에이전트들은 더 많은 것을 기대한다.
예를들면, 자동적으로 동작, 주변환경 감지, 장기적으로 안정적인 동작, 변화에 대한 적응력등을 요구한다.
합리적인 에이전트는 최적의 결과를 달성하고자 하며, 이것이 확실하지 않다면 최적의 기대물을 요구한다.
Turing Test가 요구되는 모든 기술들은 에이전트가 합리적으로 행동하도록 유도해야 하고,
이성적인 지식 표현은 에이전트가 좋은 결론에 도달할 수 있도록 해야 한다.
우리는 복잡한 사회생활속에서 사용하는 자연어들을 이해하기 쉬운 문장들로 표현할 수 있어야 한다.
우리는 교육을 통해서 좀더 효율적으로 행동하는 능력을 배울 필요가 있다.
합리적인-에이전트 접근은 다른 방식들에 비해서 두가지 장점을 가지고 있다.
첫째는, 생각의 법칙으로 접근하는 것보다 더 일반적이라는 것이다.
왜냐하면 올바른 추론은 여러가지 가능성 있는 것들에서 합리적인 것을 하나 선택하는 것이기 때문이다.
둘째는, 사람의 행동 혹은 사람의 생각을 기반으로 접근하는 것에 비해서 좀더 과학적 개발을 할 수 있다는 것이다.
합리적인 것은 수학적으로 잘 정의하여 일반적인 완성도를 높여 나가는 방향으로 표준화할 수 있다.
반면에, 사람의 행동은 특정한 환경에 맞도록 적용할 수 있는데, 이것은 사람의 행동들을 모두 합하여 정의한다.
우리는 앞으로 합리적인 에이전트의 원리를 일반화 시키고 설계해 가는 요소들에 집중할 것이다.
많은 노력을 통해서 우리의 문제들을 해결하는 동안 다양한 논점들을 만나게 될것이다.
앞으로 이러한 논점들을 좀더 자세히 알아보도록 하자.
마음속에 새겨야할 중요한 핵심은, 합리성은 훌륭한 분석적 관점의 시작 지점이라는 것이다.
합리성은 문제를 단순화시킬 뿐만 아니라 현장의 문제들을 적절히 해결하기 위한 기본적인 재료를 제공해 준다.
자, 앞으로 "합리성"을 기반으로 하여 다양한 문제들을 해결해 보도록 하자.
PS. 지금까지 제가 밥먹고 살 수 있는 재료를 제공해 주신,
Dennis MacAlistair Ritchie(1941-09-09, 2011-10-08) 할아버지의 부고 소식을 접했습니다.
너무 슬픕니다. 그분의 과업에 감사드리고, 고인의 명복을 빕니다.
1.2 AI의 기본(기초)
AI로 본격적인 여행을 떠나기 전에,
AI의 지난 역사를 통하여 AI의 관점들 및 기술들의 원리에 대해서 알아보도록 하자.
모든 역사가 그러하듯이, 대부분의 사람들이 중요하게 생각하지 않던 것들을
소수의 사람의 생각이나 사건에 의해서 새롭게 조명되어 창조적인 결과물이 나타난다.
철학
* 정형적인 규칙들로 타당한 결론들을 이끌어낼 수 있는가?
* 마음(생각)은 우리의 두뇌에서 어떻게 형성되는가?
* 지식은 어디에서 오는가?
* 지식은 어떻게 행동을 유발시키는가?
아리스토텔레스(384-322 B.C.)는 마음을 제어하는 이성적인 부분의 법칙들을
정확한 집합으로 표현한 최초의 사람이었다.
그는 삼단논법을 개발하여 이성에 적절하게 접근하고자 했으며,
이것은 기계적으로도 결론을 유추해 낼 수 있는 원리가 되었다.
그이후, Ramon Lull(d. 1315)는 기계적인 장치를 통하여 이성에 접근가능할 수도 있다는 생각을 한 사람이었다.
Thomas Hobbes(1588-1679)는 이성은 수치적인 계산으로 표현(생각을 더하고 빼는 것)하는 것과 유사하다라고 했다.
1500년경, 레오나르도 다빈치(1452-1519)는 기계적인 계산기를 설계는 했지만 제작하지는 못했다.
최근에 이것을 재구축하여 기능적으로 가능한 설계였다라는 것을 보여주었다.
최초의 계산 기계는 1623년 독일의 과학자인 Wilhelm Schickard(1592-1635)에 의해서 만들어졌다.
그이후 1642년에 Blaise Pascal(1623-1662)이 만든 기계식 계산기가 더 유명하다.
파스칼은 "나의 산술 기계는 동물들의 행동보다 생각에 더 근접한 효과를 낸다"라고 언급했다.
Gottfried Wilhelm Lcibniz(1646-1716)는 숫자보다는 개념을 동작시키는 기계적인 장치를 만들었으나,
이것의 능력에는 한계가 있었다.
Letniz는 덧셈, 뺄셈, 곱셈 및 근을 구할 수 있는 계산기를 만들어서
덧셈과 뺄셈만 할 수 있었던 파스칼 계산기의 기능을 능가하게 되었다.
또한, 어떤 사람들은 다음과 같이 추측하기도 했다.
"기계는 계산만 하는 것이 아니라 그들만의 생각으로 행동하는 것도 가능할거야".
1651년에 Thomas Hobbes는 그의 책 Leviathan에서 아래와 같은 내용을 제안했다.
"인공적인 동물"에 대한 생각으로,
"심장은 스프링이고; 신경은 더많은 스프링이고; 관절은 많은 바퀴들..."이라고 언급했다.
이것은 비록 제한적인 내용이지만 마음의 동작에 대해서 언급한 것이고,
논리적인 규칙들로 물리적인 시스템을 만들기 위해서 모방해 보는 정도였다.
또 어떤 사람들은 "마음은 그 자체가 어떤 물리적인 시스템이다"라고 말하기도 했다.
Rene Descartes(1596-1650)는 마음과 문제를 명확하게 구분하는 논평을 최초로 낸 사람이었다.
마음을 순전히 물리적인 개념으로 접근하는 것은 문제가 있다.
마음이 물리적인 법칙에 의해서 통제된다면, 바위가 지구의 중심으로 떨어지기 위한 결정을 하는 것보다도
더 자유가 없어져 버린다. 즉, 마음에는 수 많은 자유가 있다.
데카르트는 세상을 이성의 힘으로 이해하고자 했다.
철학은 이제 이성주의(합리)로 불려지게 된다. 그러나 데카르트도 이원론을 지지한 사람이었다.
데카르트는 인간의 마음(영혼, 정신)은 물리적인 법칙들에 지배되는 자연현상과는 다른 부분이라 생각했다.
반면에, 동물들은 이러한 양면성을 소유하고 있지 않아서 기계적으로 다룰 수 있다.
이원론은 유물론(물질주의)으로 대체되는데, 이것은 마음을 물리적인 법칙으로 동작하는 두뇌라고 봤다.
그리고 자유의지는 무엇인가를 선택하고자 할때 나타나는 자각력이라고 단순히 생각했다.
지식을 다루는 물리적 마음이 주어 졌을때, 그 다음의 문제는 지식의 원천을 확립하는 것이다.
경험론(실증주의) 운동이 Francis Bacon(1561-1626)에 의해서 시작되어
John Locke(1632-1704)의 아래와 같은 격언으로 확립된다.
"모든것은 이해로 통하는 것이 아니라, 오감으로 느끼는 것이다."
David Hume(1711-1776)의 인간의 본질에 대한 논문은 유도의 원리(귀납법)으로 알려진 것이다.
이것은 각각의 요소들을 반복적으로 연관시켜 일반적인 규칙을 얻어내는 것이다.
Ludwig Wittgenstein(1889-1951)과 Bertrand Russell(1872-1970)의 작업이 전개되면서,
Rudolf Carnap(1891-1970)에 의해서 유도된 유명한 Vienna Circle은 논리적인 실증주의 철학을 개발해낸 것이다.
이 논리적인 실증주의 철학은 모든 지식을 논리적인 이론들이 연결되어 특성화된 것으로 표현하면서
이성론(합리성)과 경험론(실증)을 결합한다.
Catnap과 Carl Hempel(1905-1997)의 확립 이론은 경험에 의한 지식 습득을 분석하려고 시도한 것이다.
Camap의 책 논리적인 구조체 세상(원제:The Logical Structure of the World(1928))는
경험적인 요소들에서 지식을 발췌해 내기 위한 명시적인 계산 절차를 정의한 것이다.
이것은 아마도 계산적인 처리로 마음을 표현한 최초의 이론이었다.
마음에 대한 철학적 그림의 마지막 요소는 지식과 행동간의 연결이다.
이것은 인공지능(AI)에 필수적이다.
왜냐하면 지능은 행동과 이성을 요구하기 때문이다.
더 나아가, 행동에 대한 이해는 합리적인 에이전트를 만들어 내는 방법이 될 수 있다.
아리스토텔레스는 다음과 같이 논평했다.
"행동(action)은 목표(goal)와 지식(knowledge) 간의 논리적 연결을 통해서 정당화 된다."
그러나, 생각이 행동으로 동반되기도 하고 그렇지 않은 경우도 있을때는 어떻게 할 것인가?
이경우는 결국 추론적 접근을 해보자...
"나는 덮을것이 필요하다; 망토는 덮는 것이다. 나는 망토가 필요하다. 내게 필요한 것은 내가 만들어야 한다;"
"나는 망토가 필요하다. 나는 망토를 만들어야 한다." 결론은 "나는 망토를 만들어야 한다."가 행동(action)이다.
아리스토텔레스의 알고리즘은 2300년 후에 Newell과 Simon의 GPS 프로그램에 의해서 구현되었다.
우리는 이제 이것을 회귀 계획 시스템(regression planning system)으로 부를 것이다.
목표(goal) 기반 분석은 유용하다.
그러나, 여러가지 행동들이 목표에 접근하려 할때나, 행동들을 완료할 수 없을때 무엇을 해야 하는가?
Antoine Arnauld(1612-1694)는 위와 같은 경우에 어떤 행동을 취해야 하는지 정량적인 공식을 정확하게 기술했다.
John Stuart Mill(1806-1873)은 그의 책 Utilitarianism(Mill, 1863)에서 모든 인간의 행동은
합리적인 판단 기준으로 접근해야 한다고 제안했다.
합리적인 판단 이론에 대한 공식적인 접근은 수학적으로 표현되는데.... To be continue next(^^)
PS. 지금까지 기술된 내용들은 너무 철학적이지 않나요?(다음편은 수학적 접근...)
인공지능(AI)에 철학적인 내용들이 많이 녹아 있는듯 합니다.
저는 철학지식이 많이 부족해서 위에서 제가 아래의 참고서적을
의역한 내용들이 철학을 전공한 분들에게 어떻게 비쳐질지 궁금합니다.
많은 조언 마구마구 주시길...
참고서적:
Artificial Intelligence: A Modern Approach (3rd Edition)
by Stuart Russell, Peter Norvig
의역:
Jung,JaeJoon(rgbi3307(at)nate.com) on the www.kernel.bz
게시일:
2011년 10월 16일
댓글
해보면 알겠지?
우리는 최선(가장 좋은 결과)을 위하여 최선(가장 좋은 시도)을 다해야한다.
결과라는 것은 행동을 해야만 얻을 수 있다. (결과 = 경험적이다)
그러므로 우리가 여러 경우에서 다양하게 행동하여 수많은 결과를 축적하다보면,
우리는 그 축적된 지식을 바탕으로 최선의 결과를 이끌어낼 수 있는 최선의 행동을 할 "가능성"이 높아질 것이다.
그런데 만약, 오로지 한 번 행동할 수 있는 행위가 있을 경우 (예: 자살? -_-;;)
그리고 내가 그 행위를 하려는 때에 (가끔은 정말...)
그것이 최선일거라고 판단을 내릴 수 있을까?
내가 사람이라면, 이성(혹은 좌절감)과 본능 중에서 택할 것이다.
내가 기계라면, 나는 이성을 따를 것이다.
그러므로 나는 죽는다!!!?
...
그냥 해보고 싶었습니다... 퍽!,,,,,
내가 기계라면, 나는 이성을 따를 것이다.
기계는 본능이 없으니까... 아냐, 있을지도 몰라... 이건 정말 아무도 몰라. 왜냐하면 난 기계가 아니니까.
저도 대학 강의에서 AI를들엇는데 그때부터 관심이 생기더군요
저도 대학 강의에서 AI를들엇는데 그때부터 관심이 생기더군요
제겐 상당히 흥미를 유발시켜주는 주제였습니다 학기중엔 볼 시간이 시간이없을거같고 방학하면 읽어볼만한 글이될거같습니다ㅎ
저도 같은 책으로 공부 시작해요
Artificial Intelligence: A Modern Approach (3rd Edition)
이 책으로 공부해야 될 일이 생겨서 검색하다가 들어왔어요
영문판이라 막막했는데, 여기 있는 글을 먼저 읽고 책을 보면 한결 쉽게 이해 할 수 있을 것 같아요
이책은 왜 번역판이 없는 걸까요,,?ㅠ
댓글 달기