기계학습(Machine Learning)

쉽게 설명하는 엔트로피(Entropy) 개념

재호아빠 2023. 3. 15. 15:54

엔트로피(Entropy)의 정의

엔트로피는 물질이나 시스템의 무질서함이나 혼란도를 나타내는 물리적, 그리고 정보이론적 개념이다. 열역학에서는 일반적으로 물질의 무질서함이나 에너지의 확산정도를 나타낸다. 정보 이론에서는 데이터의 불확실성을 측정하는 값이다. 엔트로피가 높다는 것은 불확실성이 높다는 것을 의미한다. 우리는 인공지능에서의 엔트로피를 말하기 위해 정보이론에서의 엔트로피를 다루도록 한다.

 

정보 이론에서 엔트로피는 샤넌 엔트로피(Shannon entropy)[1]로 불리기도한다. 샤넌 엔트로피는 확률 분포를 사용하여 불확실성의 정도를 측정하는데, 이산 확률 분포에 대한 샤넌 엔트로피는 다음과 같이 나타 낼 수 있다.

 

$$ H(X) = -\sum P(X) log_2P(X)$$

 

여기서 $H(X)$는 확률 변수 X의 엔트로피를 나타내며, $P(X)$는 각 이산 값 X에 대한 확률을 나타낸다. 엔트로피 값이 클수록 불확실성이 높아진다.

엔트로피의 해석

많은 자료들을 보면 대부분 엔트로피를 ‘정보량’이라고 말한다. 따라서 마치 정보량이 많으면 더 좋은것 처럼 느껴질 수 있다. 그래서 많은 분들이 인공지능을 공부하다 엔트로피의 개념을 정확히 이해하기 어려워한다. 사실 여기서 말하는 정보량좋은정보 + 불필요한 정보(노이즈)를 모두 포함한다. 따라서 단순히 정보량이 높은것이 좋다라고 말하기 어렵다. 위에서는 엔트로피를 확률 분포의 불확실정도를 나타낸다고 정의했다. 즉, 어떤 사건에 대해 예측하기 어렵다는 것으로 이해하면 쉽다.

 

예를 들어, 동전 앞면, 뒷면 맞추기를 한다고 생각해보자. 동전을 던졌을 때, 앞면이 나올지 뒷면이 나올지 맞춰보라고 한다면 여러분들은 혼란스러울 것이다. 왜냐면 확률이 반반이기 때문에 어떤 면을 결정(decision)해야할지 모르기 때문이다. 아래 그림1은 이산분포에서 엔트로피 변화를 나타낸다. 그림에서 보듯 0.5일때 엔트로피 값이 가장 높다.

다른 예시를 들어보면, 6면에 1~6의 숫자가 적혀있는 주사위를 던져서 어떤 숫자가 나올지 맞춰보라고 한다면 역시나 혼란스러울 것이다. 반면, 6면 중 1이 5개가 적혀있고, 2가 1개 적혀있다면 여러분들은 1이 나올 것이라고 쉽게 결정 할 수 있다. 왜냐면 1이 나올 확률이 가장 높기 때문이다. 인공지능은 이렇게 엔트로피를 낮추는 방향으로 학습을 진행한다. 즉, 총 정보에서 불필요한 정보(노이즈) 또는 불확실성을 제거하는 방향으로 학습을 진행하는 것이다.

인공지능에서 엔트로피

엔트로피에 대한 예시에서 지속적으로 결정이라는 단어를 사용했다. 그 이유는 인공지능의 메커니즘도 이와 비슷하기 때문이다. 엔트로피를 직접적으로 활용한 기계학습 방법은 Decision tree가 대표적이다. Entropy의 변화량을 바탕으로 Information Gain을 측정하여 분기를 생성하고 결정을 잘 내리는 방향으로 가지치기를 진행하기 때문이다.

 

딥러닝에서도 Cross-entropy[2]를 사용하여 모델을 학습하고 있다. Cross-entropy는 두 확률 분포 간의 차이를 측정하는 방법으로, 모델을 학습할때 loss 함수로 많이 사용하고있다. 샤넌 엔트로피와 비슷하게 크로스 엔트로피는 불확실성을 측정하는 척도지만, 두 확률 분포 사이의 차이점에 초점을 맞춘다는 점이 다르다. 크로스 엔트로피는 두 이산 확률 분포 P(X)와 Q(X) 사이에서 다음과 같이 정의된다.

 

$$ H(P,Q)=-\sum P(X) * log_2(Q(X))$$

 

위와 마찬가지로 여기서는 이산확률 분포에 대한 엔트로피를 계산하기 때문에 log의 base에 2를 취했다. 일반적으로 인공지능에서는 자연로그를 사용한다.

 

결국 크로스 엔트로피 값이 낮아지는 방향으로 학습하기 때문에 자연스럽게 딥러닝에서도 각각 layer들이 엔트로피가 낮아지는 방향으로 학습한다. 일반적으로 상위 layer보다 하위 layer가 엔트로피가 낮다. 또, CNN에서 Feature map들 중에서도 entropy가 낮은 것들과 높은 것들이 나뉜다[3]. 딥러닝에서는 feature extraction이 학습에 의해 자동으로 수행되는데, 만약 feature가 충분히 학습되어 entropy가 낮다면 어떤 문제(task)에 대한 결정을 내리기 쉽기 때문에 classifier가 깊지 않더라(파라미터가 적더라도)도 예측 성능이 좋을 수 있다.

 

다만, 앞서 언급했듯 엔트로피는 좋은 정보와 불필요한 정보를 모두 포함한다. 따라서 엔트로피가 무조건 낮은 것이 좋은 것은 아니다. 좋은 정보가 그만큼 없어졌을 수도 있기 때문이다. 엔트로피를 활용하여 모델을 평가 할 땐 이러한 점을 주의해야한다. 그래서 어려운 문제가 아닌가 싶다. 인간에게도 확실한 정보가 충분히 주어진다면 결정을 내리는 일은 쉽기 때문이다.

글을 마치며…

이번 글을 통해 엔트로피에 대한 내용을 정리했다. 인공지능을 공부하면서 엔트로피에 대한 개념을 확실하게 알지 못한다면, 한계를 보게 된다. Knowledge Distillation에서 많이 사용하고 있는 KL divergence loss, 이번 글에서 간단히 언급했지만 Cross-entropy에 대한 개념 모두 확률 분포와 entropy에 대한 개념을 잘 알고 있어야 하기 때문이다. 그 첫걸음을 쉽게 만들고자 글을 작성한다.

References

[1] Shannon, C. E. (1948). A Mathematical Theory of Communication. Bell System Technical Journal, 27(3), 379-423.

[2] Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press.

[3] Wang, Jielei, et al. "Filter pruning with a feature map entropy importance criterion for convolution neural networks compressing." Neurocomputing
461 (2021): 41-54.

'기계학습(Machine Learning)' 카테고리의 다른 글

Regularization-L1 and L2 Norm  (0) 2022.11.15