컴퓨터
08/03/23 11:06(년/월/일 시:분)
컴퓨터에게 말을 가르치려면 어떻게 해야 할까?
컴퓨터는 눈이 없다. 입도 없다. 귀도 없다. 일종의 장애인이다. 글을 읽지도 못하고, 듣지도 못하고, 말하지도 못한다. 이런 장애인 컴퓨터에게 어떻게 하면 말을 가르칠 수 있을까?
비슷한 예로 헬렌 켈러를 보자. 헬렌 켈러는 보지도 못하고 듣지도 못하는 장애인이었다. 도대체 시각도 없고 청각도 없는 아이에게 어떻게 말을 가르칠 것인가? 설리번 선생은 헬렌 켈러에게 '물'이란 단어를 가르치기 위해, 놀랍게도 직접 헬렌의 손 위에 물을 뿌렸다. 그제서야 헬렌 켈러는 차가운 물을 느끼고, "이것이 물이구나" 하고 이해할 수 있었다.
http://21corea.org/lect/cnt.asp?lec=1&num=13
물을 만지기만 하거나 ‘물’글자를 알기만 해서는 물의 본질적 속성을 알 수 없다. 헬렌 켈러가 받은 커다란 충격과 깨달음은 바로 물이라는 감성적 인식과 ‘물’이라는 이성적 인식을 하나로 연결시키는 순간 생긴 것이다.
설리번 선생은 시각, 청각 대신에 촉각을 선택했다. 하지만 컴퓨터는 촉각도 없다. 촉각만 없는게 아니라 아무런 감각도 없다. 헬렌 켈러처럼 컴퓨터에게 물을 뿌려봤자 컴퓨터는 "이것이 물이구나" 하고 이해하지 못한다. 불꽃이 튀며 쇼트가 나서 고장날 뿐이다. 완전 바보 고철 덩어리다.
아, 잠시 실수했다. 컴퓨터를 바보 고철로만 생각해서는 컴퓨터를 가르칠 수 없다. 다시 처음으로 돌아가서, 설리번 선생처럼 마음을 가다듬고, 심호흡이라도 좀 하고, 이 바보 고철... 아니 지금은 바보지만 앞으로는 바보가 아닐지도 모를 컴퓨터를 가르치려고 해보자.
"엄마, 물이 뭐야?"
"물은 H2O야. 수소 원자 하나와 산소 원자 두개로 구성된 분자지."
"원자는 뭐고 왜 수소원자, 산소 원자가 다르지?"
"원자에는 원자핵과 전자가 있는데, 여기서 원자핵이 몇 개의 양성자와 중성자로 결합되어 있느냐에 따라 산소, 수소 등으로 나뉜단다."
"양성자, 중성자, 전자는 뭐야?"
"그것들은 좀 더 작은 단위인 쿼크가 강한 핵력으로 뭉친 것으로, 근본적으로는 에너지가 진동하는 우주의 최소 단위로 추측하고 있단다."
"쿼크는 뭐고 에너지는 뭔데?"
"쿼크가 뭐냐하면..."
쿼크가 뭐지? 에너지가 뭐지? 양자란 뭐지? 나는 물리적인 최소단위에 도달해버렸다. 이 이상은 더 이상 설명할 수가 없다. 나는 벽에 부딪쳤다. 물리 실험도 불가능하고, 이 다음부터는 M이론, 막우주론 등의 가설만 있을 뿐이다.
물론 다다음달부터 LHC를 가동한다고 하니까 이제 지금까지의 가설을 검증할 수 있을지도 모르겠지만, 여기서 뭐가 더 밝혀져도 더 깊이 들어가면 또 모르는 새로운 게 나타날 수도 있다. 그 안에 정말로 관측이 불가능한 또다른 차원이 있다면, 이제는 어떻게 더 실험할 방법도 없다.
마치 발을 디디면 디딜수록 깊이 빠져드는 늪처럼, 물리적인 최소 단위에는 끝이 보이지 않는다.
http://ko.wikipedia.org/wiki/LHC
거대 하드론 충돌기(Large Hadron Collider, 줄여서 LHC)는 스위스 제네바 근방의 CERN에서 건설 공사가 진행중인 입자 가속 및 충돌기이다. LHC는 2008년 5월에 목표치보다 낮은 에너지에서 가동을 시작할 예정이다.
결국 나는 의미를 최소 단위까지 잘게 분해해서, 최소 단위를 명확하게 정의한 후, 다시 환원론적으로 차근차근 조립해나가면 물의 의미가 나올 줄 알았다. 하지만 마치 손목시계를 분해했다가 다시 조립하지 못하고 끙끙대는 초등학생처럼, 컴퓨터에게 물의 의미를 설명하려고 쿼크까지 쪼갰다가 아무것도 설명하지 못하고 끙끙대고 있다.
의미의 최소단위를 정의하는 것은 가능할까? 만약 불가능하거나 쓸모가 없다면 다른 방법은 없을까?
전라도 사람이 말했다. "그거 거시기잖어."
나는 물었다. "거시기가 뭔데요?"
그는 답변했다."그, 거시기 있잖여, 거시기."
거시기라고? 거시기란 말은 말하는 상황에 따라 유동적으로 쓰이기 때문에, 어떤 상황에서 말이 나왔는가를 파악하지 못하면 무슨 뜻인지 알 수가 없다.
어떤 상황에서 쓰였나를 모르면 무슨 뜻인지 모른다... 그래, 비트겐슈타인의 언어 게임을 컴퓨터에 적용해보자.
http://en.wikipedia.org/wiki/Language-game
A language-game is a philosophical concept developed by Ludwig Wittgenstein
http://cafe.naver.com/knuphyhistory/116
구조주의 언어학(소쉬르): 단어의 의미는 랑그라는 전체적 규칙을 알아여 하며 다른 단어들을 알아야 알 수 있기 때문에 랑그를 배우려면 단어들의 의미부터 먼저 배워야 한다.
비트겐슈타인: 단어를 몰라도 규칙을 배울 수 있으며 규칙을 몰라도 단어를 배울 수 있다고 한다. 단어의 의미는 그 단어의 용법이기 때문에 그것은 언어를 사용하는 실천을 반복함으로써 배울 수 있다는 것이다.
위의 관점에서 볼때, 설리번 선생의 방법은 소쉬르의 구조주의 언어학에 기초하고 있다. 사전을 보면 단어는 다른 단어로 규정되어 있고, 그렇게 단어의 단어를 꼬리를 물고 가다보면 다른 단어로 설명할 수 없는 벽에 부딪친다. 그래서 그 막다른 골목에 몰린 단어는, 물을 손에 적시던지 하는 식으로 직접 배워야 한다.
하지만 비트겐슈타인은, 거시기란 단어도 그렇고, 언제 어떻게 왜 같은 단어가 실재하지 않는데도 버젓이 쓰이는 것처럼, 우리는 단어의 정확한 의미를 몰라도 사용하는데 지장이 없다는 입장이다.
만약 비트켄슈타인의 언어게임이 맞다면, 우리는 컴퓨터에게 각 단어의 정확한 의미를 가르쳐주지 않아도 말을 가르칠 수 있을 것이다. 희망이 생겼다!
실제로 이런 방법은 이미 자동번역기에서 쓰이고 있다. 예를 들어 한/일, 일/한 번역의 경우, 언어를 의미소로 분해한 후, 한국어의 의미소를 일본어의 의미소에 대응시키고, 이를 다시 문법에 맞게 재구성하면 되기 때문이다. 즉 컴퓨터는 의미소가 뭔지 몰라도 번역을 할 수 있다.
각 국의 언어를 분해 -> 메타 언어(언어의 언어)로 대응 -> 각 국의 언어에 맞게 재구성
http://www.mt-archive.info/LREC-2006-Rapp.pdf
Example-Based Machine Translation Using a Dictionary of Word Pairs
http://ettrends.etri.re.kr/PDFData/20-5_016_027.pdf
다국어 자동번역 기술
http://en.wikipedia.org/wiki/Metalanguage
Metalanguage
이런 연장선 상에서 시맨틱 웹(semantic web)이 이루어지고 있다. 시맨틱 웹은 의미간의 관계를 파악하여 추론이 가능하다. 암시적으로 내포하는 사실까지도 기계적으로 유추해낸다. 하지만 여전히 의미소가 무엇인지에 대해서는 다루지 않고 있다. 컴퓨터는 본질도 모르고 껍데기만으로 추론하고 유추해내는 것이다.
어떤 의미 -> 메타 의미 -> 다른 의미
http://www.blogweb.co.kr/2007/02/16/photos-semantic-web-20-conference/
Semantic Web 2.0 Conference
Universal Access to All Knowledge
문제는 아까 거시기 같은 말인데, 이를 이 공식에 대입해도
거시기 -> 메타 거시기(?) -> 거시기
여전히 거시기가 무슨 말인지 모르겠다. 그래서 거시기 같은 말을 못 쓰게 하다보니 사용하기 굉장히 불편하다. 현재 RDF/OWL 표준은 프로그램간에 의미를 교환하기 위한 프로토콜(protocol)로는 쓸모가 있으나, 문법이 너무 엄격하여 아주 한정적인 용도로만 사용이 가능하다.
이를 실제 일상회화가 가능한 정도까지 복잡도를 증가시키려면 엄청난 연산이 필요하다. RDF/OWL에서 아주 엄격한 문법을 요구하는 것도 연산량을 줄이기 위해서다. 그래서 컴퓨터에게 말을 가르치기 위해서 가장 필요한 것은, 일단 컴퓨터가 더 빨라지는 것이 아닐까 싶다. 양자컴퓨터라도 나오면 또 모를까.
개인적으로 컴퓨터에서 정말 꿈의 기술을 꼽자면 1. 양자 컴퓨터 2. 시맨틱 웹 3. MPEG-7 를 들 수 있다. 여기서 양자 컴퓨터는 연산속도가 엄청나게 빨라지니까 시맨틱 웹의 발전을 돕고, MPEG-7도 데이터를 메타데이터로 나타낸다는 점에서 시맨틱웹과 통하는 부분이 있다. 그러므로 이 세개는 결국 같은 것이 아닐까.
결론. 컴퓨터를 위한 국어사전에, 최소 의미소를 정의할 필요는 없다. 그저 단어가 쓰이는 상황만 잘 관계를 지어줘도 컴퓨터는 말을 마치 이해하는 것처럼 동작한다. 물론 컴퓨터가 본질을 이해하지 못하고 껍데기만 가지고 놀더라도, 결과만 같으면 (튜링 테스트를 따른다면) 말을 이해한다고 볼 수 있을 것이다.
의미란 그 자체로 정의되는 것이 아니라 그 의미가 쓰이는 상황에서 그때 그때 유동적으로 사용된다. 그러므로 우리가 주목해야 할 것은 관계다. 링크다.
ps. 이 글은 처음에는 소설로 쓰기 시작했는데, 쓰다보니 소설이 아니게 돼버렸다.