산술 부호화(Arithmetic coding)
메시지 전체를 [0, 1) 안의 수 하나로 적는 무손실 압축(lossless compression). 기호마다 구간을 그 확률(probability)만큼 좁혀 가므로 기호 하나에 분수 비트를 쓸 수 있고, 메시지 길이가 −log₂ P + 2비트 안쪽이다.
허프만 부호(Huffman coding)는 기호 하나마다 정수(integer) 개의 비트를 줍니다. 확률이 0.95인 기호의 이상적인 길이는
a, b, c 세 글자가 확률 0.6, 0.3, 0.1로 나온다고 합시다. [0, 1)을 확률에 비례해 a는 [0, 0.6), b는 [0.6, 0.9), c는 [0.9, 1)로 나눕니다. 첫 글자가 b이면 [0.6, 0.9)로 들어가 이 구간을 다시 같은 비율로 나누고, 둘째 글자에 해당하는 칸으로 또 들어갑니다. 글자를 넣어 보세요:
구간의 폭은 글자마다 그 확률을 곱한 것이니, 끝에 남는 폭 W는 메시지 전체의 확률입니다. 폭이 W인 구간 안에는 길이
부호기는 끝까지 기다릴 필요도 없습니다. 지금 구간의 두 끝을 이진 소수로 적으면
이득은 치우친 원천에서 두드러집니다. 두 글자 가운데 흔한 쪽의 확률이
산술 부호화는 네 글자씩 묶은 허프만 부호표 같은 것을 미리 만들어 두지 않습니다. 구간을 나누는 데 필요한 것은 다음 글자의 확률뿐이고, 그 확률이 글자마다 달라져도 됩니다. 위 그림의 모형을 '적응'으로 바꾸면 지금까지 나온 횟수에 1씩 더한 값에 비례하게 확률을 매깁니다. 두 결과 가운데 한쪽이 n번 중 s번 나왔을 때 다음 확률을
그래서 압축을 잘하는 일은 다음 글자를 잘 예측하는 일과 같아집니다. 모형이 글자
JPEG(1992)은 산술 부호화를 선택 사항으로 넣었지만 특허 문제 등으로 거의 쓰이지 않고 대부분 허프만 부호를 씁니다. 반면 H.264와 H.265 동영상 표준의 CABAC(문맥 적응 이진 산술 부호화)은 비트 하나하나의 확률을 문맥에 따라 적응시키는 이진 산술 부호기이고, 구간을 큰 정수 범위로 다루며 바이트 단위로 내보내는 범위 부호화(range coding)도 같은 계열입니다. xz가 쓰는 LZMA는 렘펠–지브 참조를 범위 부호기로 적습니다. 2009년 무렵부터 폴란드의 컴퓨터 과학자 야레크 두다가 발표한 비대칭 숫자 체계(ANS)는 산술 부호화와 거의 같은 만큼 압축하면서 더 빨리 돌아, Zstandard 같은 최신 압축기에 들어갔습니다.
이어지는 곳. 문맥에 기대는 원천에서 산술 부호화가 닿는 한계는 엔트로피율, 곧 앞의 글자들을 다 알 때 다음 글자에 남는 불확실성(조건부 엔트로피, conditional entropy)이며, 마르코프 연쇄(Markov chain)가 가장 단순한 예입니다. 되살릴 때 조금 달라져도 되는 손실 압축(lossy compression)의 한계는 율–왜곡 이론(rate–distortion theory)이 다루고, 거기서도 양자화(quantization)한 값을 마지막에 산술 부호화로 적습니다. 모형이 없는 문자열 하나의 정보량은 콜모고로프 복잡도(Kolmogorov complexity)이고, 적어 둔 비트를 지우는 데 드는 물리적 비용은 란다우어 원리(Landauer's principle)가 말해 줍니다. 적응 모형이 글자를 볼 때마다 확률을 고쳐 가는 과정은 새 증거를 볼 때마다 베이즈 정리(Bayes' theorem)로 믿음을 갱신하는 것과 같은 모양입니다. 실제로 '나온 횟수 + 1' 규칙은, 세 글자의 확률에 대해 아무 쪽도 편들지 않는(균등한) 사전 분포(prior distribution)를 두고 베이즈 정리로 갱신한 예측과 정확히 같습니다.
이 개념이 나오는 긴 글
이 개념을 언급하는 페이지
- n-그램 언어 모델
… 모델입니다. 다음 글자를 잘 맞히는 모델은 좋은 압축기이기도 합니다. 모델이 매기는 확률로 부호를 만들면(산술 부호화) 글자당 비트 수가 교차 엔트로피에 가까워지고, 참 엔트로피보다 짧게 할 수는 없다는 것이 ⟦원천 부호화 …
- 허프만 부호
… 1비트보다 짧아질 수 없습니다. 여러 글자를 묶어 한 기호로 부호화하거나, 글 전체를 수 하나로 적는산술 부호화를 쓰면 이 손해가 줄어듭니다. 또 허프만 부호는 글자의 빈도를 미리 알아야 합니다. 앞에 나온 문자열을 …
- 원천 부호화 정리
… 보낼 수 있는지를 말하는 통로 부호화 정리이고, 이를 실제로 해내는 방법이 오류 정정 부호입니다.산술 부호화는 기호를 묶는 대신 글 전체를 수 하나로 적어 올림 손해를 거의 없앱니다. 조금 틀려도 되는 손실 압축의 …
- 렘펠–지브 압축
… 글이 잘 줄어드는 한 가지 이유입니다. LZMA(xz, 7-Zip)처럼 참조를 찾은 뒤 그 결과를 다시산술 부호화의 한 갈래인 범위 부호로 적는 압축기도 많습니다.
- 결합 엔트로피와 조건부 엔트로피
… 엔트로피율입니다. 엔트로피율은 원천 부호화 정리에서 압축의 한계가 되고, 앞 기호를 문맥으로 쓰는산술 부호화나 렘펠–지브 압축이 그 한계에 다가갑니다. X를 알아서 줄어든 불확실성 H(Y) − H(Y|X)가 …
- 쿨백–라이블러 발산
… 것을 고르는 일이 곧 엔트로피가 가장 큰 것을 고르는 최대 엔트로피 원리입니다. 확률 모형 q로산술 부호화를 하면 기호당 거의 정확히 -\log_2 q_i 비트가 들어서, 모형이 틀린 값이 그대로 …
- 율–왜곡 이론
… 모자랍니다. 대표값의 번호를 고정 길이로 적는 대신 흔한 칸의 번호에 짧은 부호를 주면(허프만 부호,산술 부호화) 비트 수가 번호의 엔트로피 H(\hat X) 로 줄어듭니다. 이때는 오히려 촘촘한 균일 칸이 거의 가장 …
- 맥스웰의 악마와 란다우어 원리
… k_B \ln 2 라는 환산 계수만 다릅니다. 악마의 기록이 치우쳐 있으면 지우기 전에 압축해서(산술 부호화) 비용을 엔트로피만큼으로 줄일 수 있고, 기록 하나의 궁극적인 크기는 콜모고로프 복잡도입니다. …
- 토큰화와 BPE
… 어디까지 줄일 수 있는지는 원천 부호화 정리가 엔트로피로 정해 줍니다. 토큰마다 확률을 주는 모델에산술 부호화를 붙이면 그 한계에 다가가는, BPE보다 훨씬 강한 압축기가 됩니다. 앞의 토큰 몇 개가 이어 나온 …
- 언어 모델과 다음 토큰 예측
… 이 희소성 문제를 누그러뜨렸습니다. 예측은 곧 압축입니다. 다음 토큰에 확률 q를 주는 모델이 있으면산술 부호화로 글 전체를 -\log_2 q(x_1, \dots, x_n) 비트보다 많아야 2비트 긴 길이로 적을 수 …
- 최소 기술 길이
… q를 주면 길이가 -\log_2 q 보다 1비트 이내로 긴 부호를 만들 수 있습니다(원천 부호화 정리,산술 부호화). 둘째, 그렇게 읽으면 두 부분 부호는 베이즈 추론이 됩니다. L(H) = -\log_2 P(H) 로 …