섀넌 엔트로피 계산
입력
| 텍스트 | hello |
|---|---|
| 로그 밑 | 비트 (밑 2) |
섀넌 엔트로피 계산
문자열의 섀넌 엔트로피를 계산합니다. 각 기호가 평균적으로 담고 있는 정보량을 비트, 냇, 하틀리 단위로 확인할 수 있습니다.
입력
입력
결과
값을 입력하면 계산 결과가 표시됩니다.
엔트로피
통계
섀넌 엔트로피
섀넌 엔트로피(Shannon entropy)는 기호열의 평균 정보량, 즉 불확실성을 수치로 나타낸 지표입니다. 클로드 섀넌이 1948년 논문 「통신의 수학적 이론」에서 제안한 이 개념은 정보 이론의 출발점으로, 데이터 압축, 암호학, 기계학습 전반에 걸쳐 핵심 역할을 합니다.
섀넌 엔트로피 공식
크기 인 알파벳에서 기호를 내보내는 정보원이 있고, 번째 기호가 확률 로 등장할 때, 섀넌 엔트로피는 다음과 같이 정의됩니다.
로그의 밑 가 측정 단위를 결정합니다. 이면 비트, 이면 냇, 이면 하틀리(밴 또는 딧이라고도 함)입니다.
계산 예시 — "hello"
"hello"는 다섯 개의 문자로 이루어져 있습니다: h, e, l, l, o. 문자별 빈도를 정리하면 다음과 같습니다.
| 문자 | 등장 횟수 | 확률 |
|---|---|---|
| h | 1 | 1/5 = 0.2 |
| e | 1 | 1/5 = 0.2 |
| l | 2 | 2/5 = 0.4 |
| o | 1 | 1/5 = 0.2 |
밑 2(비트)를 사용하여 공식을 적용합니다.
H=−(3×0.2×log20.2+0.4×log20.4)=−(3×0.2×(−2.3219)+0.4×(−1.3219))≈1.9219 bits per symbol문자열 전체의 엔트로피는 비트입니다. 이 값은 이 특정 빈도 분포에 최적화된 부호를 사용할 때 "hello"를 무손실로 인코딩하는 데 필요한 이론적 최소 비트 수입니다.
공식의 의미
각 항 는 번째 기호가 전체 불확실성에 기여하는 정도를 나타냅니다. 드물게 등장하는 기호(작은 )는 등장할 때마다 많은 정보를 전달합니다. 즉, 예상 밖의 사건이기 때문에 놀라움의 크기가 큽니다. 반면 거의 항상 등장하는 기호(큰 )는 이미 예측 가능하므로 추가 정보를 거의 담지 않습니다.
섀넌은 엔트로피가 세 가지 직관적인 공리를 만족하는 유일한 함수임을 보였습니다. 확률에 대해 연속이어야 하고, 균등 분포일 때 최대가 되어야 하며, 확률 1로 등장하는 기호를 추가해도 변하지 않아야 한다는 조건입니다. 이 세 공리를 동시에 만족하는 함수는 뿐입니다.
최대 엔트로피와 최소 엔트로피
개의 서로 다른 기호를 가진 정보원의 경우:
- 최대 엔트로피: 모든 기호가 동일한 확률로 등장할 때 비트입니다.
- 최소 엔트로피: 하나의 기호가 확률 1로 등장할 때(불확실성이 없을 때) 입니다.
실제 영어 텍스트의 엔트로피는 문자당 약 1~1.5비트로, 이론적 최댓값 비트보다 훨씬 낮습니다. 영어의 문자 빈도가 매우 불균등하고, 인접 문자 간에 강한 통계적 의존성이 있기 때문입니다(예: q 다음에는 거의 항상 u가 옵니다).
엔트로피와 데이터 압축
섀넌의 원천 부호화 정리는 어떤 무손실 압축 알고리즘도 메시지를 기호당 엔트로피보다 적은 비트로 압축할 수 없음을 증명합니다. 엔트로피는 압축 파일 크기의 이론적 하한선입니다.
이 관계는 다음과 같은 사실들을 설명합니다.
- 반복적인 내용을 담은 파일(비슷한 줄이 가득한 로그 파일 등)은 엔트로피가 낮아 압축률이 높습니다.
- 진정으로 무작위하거나 이미 암호화된 데이터는 이미 엔트로피 한계에 도달해 있어 의미 있는 압축이 불가능합니다.
- 허프만 부호화와 산술 부호화 같은 압축 알고리즘은 엔트로피 한계에 근접합니다. 허프만 부호화는 이론적 한계보다 기호당 최대 1비트를 더 사용함이 보장되어 있습니다.
비밀번호 강도와의 관계
보안 분석에서 사용하는 비밀번호 엔트로피는 관련은 있지만 별개의 개념입니다. 공격자의 관점에서 불확실성을 측정하며, 비밀번호가 가능한 문자열 풀에서 균등하게 무작위로 선택된다고 가정합니다. 공식은 으로, 은 비밀번호 길이, 은 문자 풀의 크기입니다.
이 계산기가 계산하는 특정 문자열의 섀넌 엔트로피는 해당 문자열 내 문자의 빈도 분포를 측정합니다. "aaaa"는 섀넌 엔트로피가 0이지만 길이는 4자입니다. 비밀번호 보안을 평가할 때는 공격자의 탐색 공간을 기준으로 하는 비밀번호 엔트로피 계산기를 활용하십시오.
자주 묻는 질문 (FAQ)
엔트로피가 높다는 것은 무엇을 의미합니까?
엔트로피가 높다는 것은 기호 빈도가 균등 분포에 가깝다는 것을 의미합니다. 각 문자가 비슷한 확률로 등장하면 하나하나가 더 많은 정보를 담게 됩니다. 256개의 서로 다른 ASCII 문자로 이루어진 완전히 무작위한 문자열은 최대 엔트로피(문자당 8비트)를 가집니다. 이전 문자가 다음 문자에 대한 어떠한 정보도 주지 않기 때문입니다.
반면 엔트로피가 낮다는 것은 분포가 치우쳐 있다는 뜻입니다. 특정 문자가 압도적으로 많이 등장할수록 문자열은 예측 가능해집니다. 예를 들어 "aaaa"는 엔트로피가 0입니다. 모든 문자가 확정적으로 정해져 있기 때문입니다.
N개의 서로 다른 기호로 이루어진 문자열의 최대 엔트로피는 얼마입니까?
N개의 기호를 가진 정보원의 최대 섀넌 엔트로피는 기호당 log₂(N) 비트입니다. 이 최댓값은 N개의 기호가 모두 동일한 확률로 등장하는 균등 분포일 때만 달성됩니다.
예를 들어 이진 문자열(N = 2)의 최대 엔트로피는 기호당 1비트이며, 26개 영문자 알파벳(N = 26)에서 추출된 문자열은 기호당 최대 log₂(26) ≈ 4.7비트를 담을 수 있습니다. 실제 영어 텍스트는 문자와 단어 빈도의 불균형이 크기 때문에 문자당 약 1~1.5비트에 불과합니다.
엔트로피와 데이터 압축은 어떤 관계가 있습니까?
섀넌의 원천 부호화 정리에 따르면, 어떤 무손실 압축 방식도 기호열을 엔트로피보다 적은 비트로 압축할 수 없습니다. 엔트로피는 이론적인 하한선입니다.
기호당 엔트로피가 H 비트인 문자열은 원칙적으로 기호당 H 비트까지 압축할 수 있지만, 그 이하로는 불가능합니다. 이 때문에 반복적인 내용으로 구성된 파일(예: 비슷한 줄이 가득한 로그 파일)은 엔트로피가 낮아 압축이 잘 됩니다. 반면 진정으로 무작위하거나 이미 암호화된 데이터는 이미 엔트로피 한계에 도달해 있어 의미 있는 압축이 불가능합니다.
비트, 냇, 하틀리의 차이는 무엇입니까?
세 단위 모두 동일한 물리량(정보량)을 서로 다른 로그 밑으로 측정합니다.
- 비트 (밑 2): 이진 컴퓨팅의 자연스러운 단위입니다. 1비트는 공정한 동전 던지기에서 얻는 정보량에 해당합니다.
- 냇 (밑 e ≈ 2.718): 자연로그가 많은 수식을 단순화하기 때문에 정보 이론 수학과 통계역학에서 사용됩니다.
- 하틀리 (밑 10): 밴 또는 딧이라고도 합니다. 1하틀리는 10가지 동일 확률의 결과 중 하나를 선택할 때 얻는 정보량입니다.
단위 간 환산: 1 하틀리 ≈ 3.322 비트 ≈ 2.303 냇.