재미있는 인공지능(AI) 이야기(#2)
1. 인공지능(AI) 소개
우리는 우리들을 호모 사피엔스(현명한 인간)라고 부른다.
왜냐하면 우리의 지능은 우리에게 아주 중요하기 때문이다.
수천년동안, 우리는 우리가 생각하는 방식을 이해하기 위해 노력했으나
극히 일부분만 인식, 이해, 예측할뿐, 여전히 복잡한 문제로 남아있다.
이러한 우리의 생각 방식을 인공지능(AI) 분야에 도입하여 이해하려고 시도는 하고 있으나
여전히 멀고도 요원하다.
인공지능(AI)은 과학과 공학에 있어서 새로운 분야라 할 수 있다.
AI는 세계 2차대전 이후 1956년에 신조어로 등장한 이래로 분자 생물학 분야와 함께
과학자들이 누구나 연구하고자 하는 분야로 자리잡아왔다.
물리학도들은 모든 새로운 아이디어들은 이미 갈릴레오, 뉴튼, 아인슈타인에 의해서 출현되었다라고 말하기도 한다.
반면에, AI는 여전히 새로운 아인슈타인과 에디슨들을 위해 열려져 있는 분야이다.
현재 AI는 체스게임이나 수학이론 증명, 시쓰기, 복잡한 거리에서 자동차 운전, 질병 분석등과 같은
다양한 분야들로 파생되고 있다.
AI는 지능적인 작업이 필요한 분야에 적절하며, 실제적으로 대부분의 분야에 필요한 것이라 할 수 있다.
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) 할아버지의 부고 소식을 접했습니다.
너무 슬픕니다. 그분의 과업에 감사드리고, 고인의 명복을 빕니다.
from rgbi3307(at)nate.com on the www.kernel.bz