인공 지능과 압축 기술

머리아픈 이야기 2007/05/10 03:08 by lifthrasiir

비단 저한테만 해당하는 얘기는 아닌데, 저는 어떤 일을 할 때 그 일과 전혀 상관 없는 딴 짓을 많이 하곤 합니다. 인터넷을 모를 적에는 책을 보거나 졸았고, 인터넷을 알게 된 이후로는 인터넷에 여기 저기 널려 있는 다양한 정보를 보고 다니곤 했습니다. 어떻게 보면 비생산적인 일일 수도 있겠지만, 종종 이런 과정에서 새로운 것들이 튀어 나온다는 걸 생각하면 나쁘지만은 않은 것 같습니다. 이번 머리 아픈 이야기도 이런 딴 짓을 하다가 — 정확하게 말하자면 시험 기간에 놀다가 — 찾아 낸 것입니다.


인공 지능(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)이 있는 것처럼 보입니다. 과학자들이 (얼핏 보기엔 현실과 관계 없어 보이는) 우주-_-나 양자역학-_-이나 정수론-_-이나 집합론-_-이나 뭐 그런 걸 연구하는 것도 그런 보편성에 이끌리고, 그런 보편성을 찾으려는 것 때문일 지도 모르겠습니다. 게다가 그런 것들이 보너스로 현실에도 적용되는 걸 보면 이 분야는 충분히 연구할 가치가 있다는 생각이 드네요.

(덤: 다른 사람 다 쓰고 마지막 차례에 쓰는 글인데 뭐 이런 긴 글을... -_-;)
필자
author image
먹고 자고 놀고 하면서 종종 코딩도 하는 이상한 사람.
http://tokigun.net/

2007/05/10 03:08 2007/05/10 03:08

트랙백 주소 : http://blog.needlworks.org/ko/trackback/2460735