티스토리 뷰

Study/Architecture

[Data] Entropy

생각많은 소심남 2015. 9. 3. 21:00

이전 포스트에서 다뤘던 것처럼 Information을 전달하는데 있어서는 그만큼 적절한 정보량으로도 전달하는게 중요하다. 이게 잘못되면 원하는 정보를 정확히 전달할 수 없을 수도 있고, 혹은 너무 비효율적으로 전달할 수도 있는 것이다. 이런 걸 수치적으로 평가하는 척도를 Entropy라고 한다. 

 보통 Entropy라는 말자체는 이런 컴퓨터 용어보다는 화학쪽에서 엔트로피의 법칙이라고 하면서 많이 들어봤던거 같은데.. 아무튼 사전적인 정의는 다음과 같다.



간단히 요약하자면 주어진 정보의 평균량 정도가 되겠다. 지난번에 제시한 예시처럼 카드뽑기를 하는 경우에는 물론 카드 하나만 뽑는 케이스도 있겠지만, 혹은 여러개를 뽑는 조건도 있을 것이고, 그 하나하나를 뽑는 조건이 다 다를 수도 있다. 이 모든 것을 전에도 말한 정보의 표현량으로 표현하기 위해서 그 모든 값을 합친 후 평균을 낸 값이 바로 Entropy인 것이다. 예를 들어서 X={A, B, C, D} 라는 케이스가 있고, A가 나올 수 있는 확률은 1/3, B는 1/2, C와 D는 1/12이라고 가정을 해보자.

 그러면 A를 표현할 수 있는 정보의 표현량은 log2(1/3)이므로 1.58 bit이 나올 것이고, 다른 케이스에 대한 표현량도 비슷하게 구할 수 있을 것이다. 그런데 우리가 궁금한 건 이런 각각의 표현량이 아닌, X라는 케이스군의 정보 표현량을 구하길 원하는 것이다. 이때 각각이 나올 확률에 정보 표현량을 곱해서 합해보면 어느정도의 정보량으로 표현할 수 있을지를 계산할 수 있다. 



사실 이걸 구하는 이유는 전에도 잠깐 말했던 내용이지만 효율성 때문이다.


빨간색으로 표현한 것처럼 구한 Entropy에 비해서 적은 bit으로 정보를 표현하게 되면 손실되는 정보가 발생한다. 통신쪽으로 이야기하면 중간에 데이터를 전송하다가 패킷이 중간에 샌다던지의 문제가 발생할 수 있다. 혹은 노란색처럼 Entropy에 비해서 많은 bit으로 전송하게 되면 원하는 정보를 그대로 표현할 수 있겠지만, 이에 따른 에너지 소비도 커질 수 있고, 비효율적으로 전송하게 된다. 


출처 : MITx: 6.004.1x Computation Structures - Part 1: Digital Circuits


'Study > Architecture' 카테고리의 다른 글

[Data] 2`s complement encoding  (0) 2015.09.06
[Data] Fixed Length Encoding  (0) 2015.09.06
[Data] Encoding  (0) 2015.09.03
[Data] Quantifying Information  (0) 2015.09.03
[Distributed System] TestAndSet Lock  (0) 2014.06.03
[Distributed System] lock  (0) 2014.04.05
[Computer Architecture] SuperScalar Processor  (0) 2013.11.25
댓글