데이터 반출 없는 다 기관 협업 인공지능 학습 인프라

정보 이론/정보량과 엔트로피

ENT-04. 정보량과 엔트로피: 동전 던지기와 데이터 압축으로 이해하기

FedTensor 2026. 2. 3. 12:15

시작하며: 정보란 무엇일까?

정보 이론에서 '정보량'은 어떤 사건이 발생했다는 소식을 들었을 때 얻게 되는 '놀라움의 정도'를 숫자로 나타낸 것입니다. 아주 드문 일이 벌어졌다면 놀라움이 크고, 따라서 정보량도 큽니다. 반면, 늘상 일어나는 일이라면 놀라움이 적고 정보량도 작습니다.

 

'엔트로피'는 어떤 정보원(예: 동전)이 발생시킬 수 있는 모든 사건들의 정보량을 '평균'낸 값입니다. 즉, 그 정보원에서 사건이 하나 발생할 때마다 평균적으로 어느 정도의 정보량을 기대할 수 있는지를 나타냅니다.

 

이 글에서는 가장 단순한 예시인 '동전 던지기'를 통해 정보량과 엔트로피의 개념을 명확히 이해하고, "왜 정보량이 1비트보다 작을 수 있는지"에 대한 질문에 답을 찾아봅니다.

핵심 개념 정리:

  • 정보량 (Information Content): 개별 사건의 놀라움의 정도.
  • 엔트로피 (Entropy): 정보원에서 얻을 수 있는 정보량의 기댓값(평균)이자, 궁극의 압축 한계.

1. 기본 개념과 수식 정의

  • $x$: 개별 사건 (예: 동전의 앞면이 나옴)
  • $P(x)$: 사건 $x$가 발생할 확률
  • $I(x)$: 사건 $x$가 발생했다는 것을 알았을 때 얻는 정보량
  • $H(X)$: 정보원 $X$의 엔트로피 (정보량의 기댓값)

정보량 (Information Content):

사건 $x$의 정보량 $I(x)$는 다음과 같이 계산합니다. 확률이 낮을수록($P(x)→0$) 정보량은 커집니다.

$I(x)=−\log _2P(x)\quad \text{(단위: 비트)}$

엔트로피 (Entropy):

엔트로피 $H(X)$는 각 사건의 정보량에 발생 확률을 곱한 값을 모두 더하여 계산합니다. 이는 정보량의 평균, 즉 기댓값입니다.

$H(X)=\sum _i^{ }P(x_i)I(x_i)=−\sum _i^{ }P(x_i)\log _2P(x_i)$

2. 예시 1: 공정한 동전 던지기 (가장 예측하기 어려운 경우)

앞면(h)과 뒷면(t)이 나올 확률이 각각 1/2로 동일한, 가장 일반적인 동전 던지기입니다.

  • 확률: $P(h)=1/2, P(t)=1/2$
  • 정보량: $I(h)=1 \ \text{비트}, I(t)=1 \ \text{비트}$
  • 엔트로피: $H(X)=1 \ \text{비트}$

해석:

결과가 무엇이든 우리는 정확히 1비트의 정보량을 얻습니다. 이 시스템의 불확실성은 최대로, 엔트로피 역시 최댓값(1 비트)을 가집니다. 결과를 전달하려면 '0'(앞면) 또는 '1'(뒷면)처럼 1비트가 필요하다는 직관과도 일치합니다.

3. 예시 2: 편향된 동전 던지기 (예측이 조금 더 쉬운 경우)

이제 앞면이 나올 확률이 3/4으로 매우 높은 동전을 생각해 봅시다. 던지기 전부터 우리는 앞면이 나올 것이라고 강하게 예상할 수 있습니다.

  • 확률: $P(h)=3/4, P(t)=1/4$
  • 정보량:
    • 앞면(예상했던 결과)의 정보량: $I(h)=−\log_2(3/4)≈0.415 \ \text{비트}$
    • 뒷면(예상치 못한 결과)의 정보량: $I(t)=−\log_2(1/4)=2 \ \text{비트}$
  • 엔트로피: $H(X)≈0.811 \ \text{비트}$

의문점과 해석:

  • "어떻게 하나의 결과를 표현하는 데 1비트보다 작은 0.415 비트가 필요할 수 있을까요?"
  • "뒷면이 나왔다는 사실은 0 또는 1, 단 1비트로 전달 가능한데 왜 정보량은 2비트인가요?"

핵심 설명:

정보량은 '하나의 사건을 독립적으로 부호화(encoding)하는 데 필요한 비트 수'가 아닙니다. 정보량과 엔트로피의 진정한 의미는 수많은 시행 결과를 한꺼번에 모아서 가장 효율적으로 압축(부호화)할 때 드러납니다.

4. 정보량의 진짜 의미: 데이터 압축

이론을 현실로: 묶음(Block)으로 압축하기

위 질문에 답하기 위해, 실제 압축 알고리즘이 사용하는 '블록 코딩(Block Coding)'의 원리를 살펴보겠습니다. 이는 동전 던지기 결과를 하나씩 처리하는 대신, 두 개씩 묶어서 하나의 '블록'으로 보고 코드를 할당하는 방식입니다.

먼저, 두 번 던졌을 때 나올 수 있는 블록과 각 블록의 확률을 계산해 봅시다.

  • hh: 3/4×3/4=169≈56.25% (가장 흔함)
  • ht: 3/4×1/4=163≈18.75%
  • th: 1/4×3/4=163≈18.75%
  • tt: 1/4×1/4=161≈6.25% (가장 드묾)

이제 확률에 따라 가변 길이 코드를 할당합니다. 확률이 높은 블록에는 짧은 코드를, 낮은 블록에는 긴 코드를 부여합니다.

  • hh: 0
  • ht: 10
  • th: 110
  • tt: 111

이제 동전을 8번 던져 h, h, h, t, h, h, t, t 결과가 나왔다고 가정하고, 두 가지 방식으로 인코딩해 봅시다.

  • 고정 길이 코딩 (압축 전): h는 0, t는 1로 인코딩합니다.
    • 00010011 -> 총 8비트
  • 블록 코딩 (압축 후): 결과를 두 개씩 묶어 hh, ht, hh, tt 블록으로 만들고, 위 표의 코드로 변환합니다.
    • hh -> 0
    • ht -> 10
    • hh -> 0
    • tt -> 111
    • 결합된 코드: 0100111 -> 총 7비트

결과적으로, 블록 코딩을 통해 데이터 크기가 8비트에서 7비트로 줄어들어 압축되었음을 확인할 수 있습니다.

이 방식의 평균 비트 수를 계산해 보면, (9/16 * 1) + (3/16 * 2) + (3/16 * 3) + (1/16 * 3) = 27/16 = 1.6875 비트/블록이 됩니다. 이는 동전 던지기 한 번당 평균 0.84비트(1.6875÷2)가 필요하다는 의미이며, 엔트로피 값(0.811)에 훨씬 더 가까운 수치입니다. 블록의 크기를 더 키울수록 이 값은 엔트로피에 수렴하게 됩니다.

엔트로피: 궁극의 압축률

결국 엔트로피가 말하는 것은 이것입니다.

  • 이 편향된 동전(H≈0.811)을 수없이 던져서 얻은 결과를 어떤 천재적인 방법으로 압축하더라도, 결과 한 개당 평균 데이터 크기를 0.811 비트 밑으로 낮추는 것은 불가능하다.

이것이 바로 클로드 섀넌이 증명한 '소스 코딩 정리'의 핵심이며, 엔트로피가 이론적으로 도달 가능한 최적의 압축률임을 의미합니다.

  • 방법 1: 단순 방식 (압축 없음)
    • 필요한 데이터 크기: 8,000,000번×1비트/번=8,000,000 비트
  • 방법 2: 엔트로피를 이용한 최적 압축 (이론적 한계)
    • 필요한 최소 데이터 크기: 8,000,000번×0.811 비트/번≈6,488,000 비트

결론

처음의 질문으로 돌아가 봅시다.

'앞면'의 정보량이 0.415비트라는 것은, 수많은 시행을 블록 단위로 묶어 효율적으로 압축할 때 '앞면' 하나가 전체 용량에 평균적으로 0.415비트만큼만 기여하게 만들 수 있다는 뜻입니다. 자주 나타나서 예측하기 쉬운 만큼, 전체 정보량에 미치는 영향이 적은 것입니다.

반대로 '뒷면'의 정보량이 2비트라는 것은, 드물게 나타나서 우리를 놀라게 하는 만큼, 전체 정보량에 더 큰 영향을 미친다는 의미입니다.

이처럼 엔트로피는 정보의 불확실성을 나타내는 동시에, 그 정보를 표현하는 데 필요한 평균 비트 수의 이론적 최솟값, 즉 '궁극의 압축률'을 알려주는 핵심 지표입니다. 단 하나의 사건을 전송할 때는 여전히 1비트(0 또는 1)가 필요하지만, 긴 관점에서 보면 훨씬 효율적인 표현이 가능한 것입니다.