인공 지능과 압축 기술
머리아픈 이야기 2007/05/10 03:08비단 저한테만 해당하는 얘기는 아닌데, 저는 어떤 일을 할 때 그 일과 전혀 상관 없는 딴 짓을 많이 하곤 합니다. 인터넷을 모를 적에는 책을 보거나 졸았고, 인터넷을 알게 된 이후로는 인터넷에 여기 저기 널려 있는 다양한 정보를 보고 다니곤 했습니다. 어떻게 보면 비생산적인 일일 수도 있겠지만, 종종 이런 과정에서 새로운 것들이 튀어 나온다는 걸 생각하면 나쁘지만은 않은 것 같습니다. 이번 머리 아픈 이야기도 이런 딴 짓을 하다가 — 정확하게 말하자면 시험 기간에 놀다가 — 찾아 낸 것입니다.
인공 지능(AI)과 압축 기술은 언뜻 보기에는 별 연관이 없어 보이는 분야처럼 보입니다. 둘다 전산학의 한 분야이긴 한데, 인공 지능이라고 하는 건 인간을 비롯한 동물들과 유사한 지능을 갖고 있는 체계를 만들어서 써 먹자는 것이고, 압축 기술은 어떤 정보를 분석해서 더 작게 만들어 공간도 절약하고 시간도 절약하는 것이지요.
인공 지능 하면 바로 떠올릴 수 있는 것이 공상 과학 소설에 나오는 생각하는 컴퓨터 같은 것들입니다. 어쩌면 이런 체계가 인공 지능 연구의 최종 목표일 수도 있지만 아직은 좀 요원한 일이지요. 게다가 기계가 '생각한다'는 걸 어떻게 정의해야 할 지도 문제가 됩니다. 단순히 모든 가능성을 미리 계산해서 그대로 수행하는 프로그램이 있다면 이 프로그램은 '생각'을 하는 것일까요? (작은 게임[footnote]예를 들어서 Tic-tac-toe 같은 경우 가능한 게임의 수가 100만개를 채 넘지 못 한답니다. 이 게임을 항상 이기거나 적어도 비길 수 있는 인공 지능은 이미 1950년대에 등장했습니다.[/footnote]이라면 이미 지금도 가능합니다.) 혹자는 사실 '생각'이라는 것이 그런 인지 과정과 계산 과정 등을 모두 포함하는 개념이라고 주장합니다. 다소 머리 아픈 얘기니까 여기서는 인간 같은 존재와 비슷하게 반응하고 결과를 낼 수 있으면 지능이라고 치고 넘어 가기로 합니다.
압축 기술은 인공 지능보다는 명확하게 정의할 수 있고, 실제로 우리가 매일 만나는 zip 같은 압축 파일이 압축 기술의 산물입니다. 압축 기술의 큰 특징은 어떤 정보를 압축할 것인가에 따라 접근 방법이 달라진다는 점인데, 예를 들어서 두 사람이 대화한 소리를 저장한다면 배경의 잡음보다 목소리 부분을 더 살려서 압축해야 할 것이고, 반대로 콘서트에서 녹음한 음악을 저장한다면 음악에서 사용된 악기들의 소리를 살려서 압축하는 게 좋겠지요. 어느 쪽이든 압축할 정보의 구조를 파악하고 분석하는 과정이 필요한 건 마찬가지입니다.
그래서 인공 지능과 압축 기술이 무슨 관계가 있느냐? 다음으로 요약할 수 있습니다.
어떤 정보를 압축하는 과정은 어떤 정보의 구조를 파악하고 분석하는 과정이며, 이건 궁극적으로 인공 지능이 해야 할 일이다.예를 하나 들어 봅시다. 8888888888888888888888888888888888888888라는 정보를 압축하려면 어떻게 해야 할까요? 인간은 이 내용을 보고 바로 숫자 8이 40번 반복된 거라는 걸 알아 챕니다. 기계한테도 이건 어렵지 않은 일입니다. 8이라는 숫자가 반복된다는 걸 일단 찾아 내면 몇 번 반복되었는지 세는 건 쉬운 일일테니까요.
하지만 1415926535897932384626433832795028841971라는 숫자는 어떻게 압축해야 할까요? 눈썰미가 좋은 사람은 이 숫자를 구글-_- 같은 데서 쳐 보고 원주율의 처음 40자리라는 걸 알 수 있을 것입니다. 기계가 이런 일을 따라하게 만드려면 꽤 문제가 커지는데,
- 도대체 그 눈썰미라는 걸 어떻게 흉내내야 할까?
- 설령 구글에 뭘 쳐 봐야 할 지 알더라도, 검색 결과를 보고 이게 의미하는 바를 어떻게 알 수 있을까?
- 구글에 쳐 봐서 아무 것도 안 나온다고 해서 이게 의미가 없는 내용일까?
오늘 소개할 Hutter Prize를 만든 마르쿠스 후터(Marcus Hutter)는 이런 식으로 인공 지능과 압축 기술이 서로 궁극적으로 연관되어 있으며, 심지어 압축 기술의 형식을 빌어서 인공 지능을 기술할 수 있음을 수학적으로 증명한 전산학자입니다. 이 콘테스트에서는 주어진 텍스트를 만들어 내는 최대한 작은 프로그램[footnote]압축된 파일과 그 파일을 풀어 내는 프로그램으로 구성된 것도 가능합니다.[/footnote]을 만드는 사람에게 현상금을 지급하는데, 압축 기술을 좀 더 인공 지능의 영역으로 끌어 오려는 목표가 있다고 하겠습니다.
구체적으로, 이 콘테스트에서 압축하려는 정보는 영문 위키백과에서 가져 온 100MB의 텍스트(및 다양한 마크업들)입니다. 왜 영문 위키백과냐? 하면 이 내용들은 인간의 지식을 대표할 수 있는 충분한 정보이며, 따라서 이 정보를 효과적으로 압축하려면 인간의 지식과 언어를 충분히 '이해'하여 처리할 수 있는, 따라서 인공 지능의 영역에 포함되는 기술이 필요하기 때문입니다. 이 파일에는 25%의 마크업들이 포함되지만 이 마크업들 또한 인간의 지식을 나타내는 데 필요한 도구들이며, 다른 종류의 텍스트들도 이와 유사한 내용들을 담고 있기 때문에 실질적으로는 큰 문제가 되지 않는다고 합니다.
이 콘테스트는 작년 3월에 시작해서, 2007년 5월 현재 한 사람이 현상금의 일부분[footnote]현상금은 5만 유로라고 쓰여 있긴 하지만 실제로는 이전 프로그램과 새 프로그램의 크기 비율로 현상금이 정해지기 때문에 이보다 많거나 적은 현상금이 지급될 수도 있습니다.[/footnote]을 받아 간 상태입니다. 이 프로그램은 Context mixing이라고 하는 압축 기법을 사용하는데, 이 기법은 현재 풀린 내용을 가지고 다음 글자가 어떤 글자가 될 지 적절한 모델로 예측하여 압축을 수행합니다. 다음 글자를 잘 예측할 수록 압축률이 높아질테니, 이 모델을 어떻게 하면 잘 만드느냐가 중요한 문제가 되겠지요.
전혀 관계가 없을 거라 생각할 수 있는 압축 기술이 결국 인공 지능으로 귀결된다는 걸 보면 전산학에는, 좀 더 넓게 보자면 수학과 과학에는 일종의 보편성(universality)이 있는 것처럼 보입니다. 과학자들이 (얼핏 보기엔 현실과 관계 없어 보이는) 우주-_-나 양자역학-_-이나 정수론-_-이나 집합론-_-이나 뭐 그런 걸 연구하는 것도 그런 보편성에 이끌리고, 그런 보편성을 찾으려는 것 때문일 지도 모르겠습니다. 게다가 그런 것들이 보너스로 현실에도 적용되는 걸 보면 이 분야는 충분히 연구할 가치가 있다는 생각이 드네요.
(덤: 다른 사람 다 쓰고 마지막 차례에 쓰는 글인데 뭐 이런 긴 글을... -_-;)
비밀방문자 2014
inureyes 2014
비밀방문자 2013
화사함 2012
LonnieNa 2010