콜모고로프 복잡도(Kolmogorov complexity)
어떤 문자열을 출력하고 멈추는 가장 짧은 프로그램의 길이. '무작위'를 '더 줄일 수 없음'으로 정의하지만, 정지 문제(halting problem) 때문에 계산할 수 없다.
0과 1을 번갈아 백만 번 적은 문자열은 '01을 50만 번 출력하라'는 짧은 프로그램으로 줄일 수 있습니다. 동전을 백만 번 던져 적은 문자열은 거의 틀림없이 그 문자열을 통째로 출력하는 것보다 크게 짧게 쓸 방법이 없습니다(얼마나 확실한지는 아래에서 셉니다). 1960년대 중반 미국의 레이 솔로모노프, 소련의 콜모고로프, 아르헨티나계 미국 수학자 그레고리 차이틴은 각자 이 차이를 수로 만들었습니다. 문자열 x의 콜모고로프 복잡도
진짜 K는 계산할 수 없으니(아래에서 봅니다) 아주 작은 언어로 흉내 내 봅시다. 이 언어의 프로그램은 0과 1, 그리고 괄호 안의 것을 k번 되풀이하라는
가장 짧은 프로그램:
대부분의 문자열은 줄어들지 않습니다. 길이가 n − c보다 짧은 이진 프로그램은 길이 0부터 n − c − 1까지 모두 합쳐
그래서 콜모고로프 복잡도는 '무작위'의 정의가 됩니다. 상수 c를 하나 정해 두고
그런데 K는 계산할 수 없습니다. 복잡도가 백만보다 큰 문자열은 위의 셈에 따라 반드시 있습니다. 만약 K를 계산하는 프로그램이 있다면, '문자열을 짧은 것부터 차례로 훑으며 K를 계산해, 복잡도가 백만보다 큰 첫 문자열을 출력하라'는 프로그램을 만들 수 있습니다. 이 프로그램의 길이는 K를 계산하는 부분에 백만이라는 수를 적는 몇십 비트를 더한 것이라 백만보다 훨씬 짧으니, 복잡도가 백만보다 큰 문자열을 그보다 짧은 프로그램이 출력한 셈이 되어 모순입니다('백 글자 안으로 정의할 수 없는 가장 작은 자연수(natural number)'는 방금 백 글자 안으로 정의되었다는 베리 역설(Berry paradox)과 같은 모양입니다. 러셀이 옥스퍼드 도서관 사서 G. G. 베리에게서 들었다며 소개한 역설입니다). 이것은 정지 문제와 이어져 있습니다. 짧은 프로그램들을 모두 돌려 보면 되지 않느냐고 할 수 있지만, 어떤 프로그램이 끝내 멈출지 알 수 없습니다. 차이틴은 같은 논증으로 불완전성 정리(incompleteness theorem)의 한 판을 얻었습니다. 산수를 담을 만큼 강하고, 증명을 기계가 검사할 수 있는 무모순(consistent) 형식 체계(formal system)에는 저마다 한계 L이 있습니다. 길이가 L보다 긴 문자열은 거의 전부 'K(x) > L'인데도, 그 체계는 어느 특정한 x에 대해서도 'K(x) > L'을 증명하지 못합니다. 그런 증명을 찾아 x를 출력하는 프로그램이 L보다 짧아질 수 있기 때문입니다. 이 모든 논증의 바탕은 짧은 프로그램이 몇 개 안 된다는 셈입니다. 같은 까닭으로 프로그램은 모두 합쳐 가산 개뿐이어서, 대부분의 실수(real number)는 어떤 프로그램으로도 적을 수 없습니다.
이어지는 곳. π의 이진 전개(binary expansion)나 망델브로 집합(Mandelbrot set)은 복잡해 보이지만 짧은 프로그램이 만들어 내니 K는 작습니다. 위의 'π의 이진 전개'는 장난감 언어로는 거의 줄지 않지만, 제대로 된 언어라면 앞 n자리를 출력하는 데 π를 계산하는 짧은 프로그램과 n을 적는 약
이 개념이 나오는 긴 글
이 개념 위에 세워진 것
이 개념을 언급하는 페이지
- 튜링 기계
… 하나를 정해 두고, 그 기계에 넣어 어떤 문자열을 출력하게 하는 가장 짧은 프로그램의 길이가 그 문자열의콜모고로프 복잡도입니다.
- 정지 문제
… 수 있는지를 묻는 것이 P 대 NP 문제입니다. 어떤 문자열을 출력하는 가장 짧은 프로그램의 길이, 곧콜모고로프 복잡도도 계산할 수 없습니다. 짧은 프로그램부터 차례로 돌려 보는 방법은 영원히 도는 프로그램에서 막히고, 다른 …
- 정보 엔트로피
… 렘펠–지브 압축이 zip과 PNG의 바탕이고, 확률 모형 없이 문자열 하나의 정보량을 재려는 시도가콜모고로프 복잡도입니다. 물리학의 엔트로피와 같은 이름인 것도 우연이 아니어서, 1비트를 지우는 데에는 최소한의 열이 …
- 과적합
… 고르라'는 원칙을 14세기 영국의 철학자 오컴의 윌리엄의 이름을 따 오컴의 면도날이라 합니다. 이 원칙은콜모고로프 복잡도(데이터를 출력하는 가장 짧은 프로그램의 길이)와 최소 기술 길이 원리로 수학이 됩니다. 최소 기술 길이 …
- 확률적 방법
… 부호를 만들기까지 수십 년이 걸렸습니다. 비트열 하나를 출력하는 가장 짧은 프로그램의 길이를 그 비트열의콜모고로프 복잡도라 합니다. 길이 n인 비트열은 2^n 개인데, 길이가 n보다 짧은 비트열(프로그램)은 모두 합쳐 1 + …
- 알고리즘
… 프로그래밍 언어를 하나 정해 두면, 어떤 문자열을 출력하는 가장 짧은 프로그램의 길이가 그 문자열의콜모고로프 복잡도이고, 언어를 바꿔도 이 길이는 문자열과 상관없는 상수만큼만 달라집니다.
- 허프만 부호
… 그 치우침이 압축의 여지입니다. 빈도가 아니라 문자열 하나만 놓고 얼마나 줄일 수 있는지를 묻는 것은콜모고로프 복잡도입니다. 빈도를 잘못 알면 손해를 봅니다. 빈도 q에 맞춘 이상적인 길이 -\log_2 q_i 를 실제 …
- 원천 부호화 정리
… 쓰는 퍼플렉시티는 2^H 입니다. 렘펠–지브 압축은 분포를 모르고도 이 한계에 다가가는 방법입니다.콜모고로프 복잡도는 분포 없이 문자열 하나의 정보량을 묻습니다. 섀넌의 같은 논문에는 짝이 되는 정리도 있습니다. 잡음이 …
- 렘펠–지브 압축
… 재는 실용적인 잣대입니다. 압축된 길이에 풀기 프로그램의 길이(글과 상관없는 상수)를 더한 값은콜모고로프 복잡도보다 작을 수 없습니다. 거꾸로 말하면 콜모고로프 복잡도는, 그 상수를 빼면, 어떤 압축기도 밑돌 수 없는 …
- 산술 부호화
… 다루고, 거기서도 양자화한 값을 마지막에 산술 부호화로 적습니다. 모형이 없는 문자열 하나의 정보량은콜모고로프 복잡도이고, 적어 둔 비트를 지우는 데 드는 물리적 비용은 란다우어 원리가 말해 줍니다. 적응 모형이 글자를 …
- 맥스웰의 악마와 란다우어 원리
… 전에 압축해서(산술 부호화) 비용을 엔트로피만큼으로 줄일 수 있고, 기록 하나의 궁극적인 크기는콜모고로프 복잡도입니다. 실라르드 기관의 1비트는 일반화할 수 있습니다. 측정으로 얻는 일의 상한은 악마의 기록과 분자의 …
- 기계 학습
… 발산⟧). 베이즈 정리로 믿음을 고쳐 가는 방법, 거리로 이웃을 찾는 방법, 짧은 설명을 고르는 방법(콜모고로프 복잡도)도 모두 같은 질문, 곧 본 것에서 보지 못한 것으로 어떻게 넓혀 갈지에 대한 서로 다른 답입니다. 이 …
- 특잇값 분해
… k = 16이어도 RMS가 0.1 가까이 남습니다. 줄일 수 있는 것은 구조이지 무작위가 아닙니다(콜모고로프 복잡도). 실제 사진 압축은 이렇게 하지 않습니다. 특잇벡터는 그림마다 달라서 u와 v까지 함께 적어야 하니, …
- 최소 기술 길이
… 이것은 뒤에 '최소 메시지 길이(MML)'라는 이름으로 불리게 됩니다. 두 흐름의 뿌리는 1960년대의콜모고로프 복잡도와 레이 솔로모노프의 귀납 이론에 있습니다. 던진 횟수 n = , 앞면의 수 로 바꾸어 가며 두 설명의 …