Entropy(엔트로피)란?
Related Post
- Entropy
- KL Divergence
- Cross Entropy
오토인코더에 대한 공부를 하다가 entropy, cross entropy, KL divergence 등 모르는 용어들이 있어서 더 이상 미루지 않고 공부를 해 보기로 했다.
Entropy
엔트로피의 정의는 일반적인 용어냐, 과학 용어냐 등에 따라 달라질 수 있지만 이번에 다뤄 볼 엔트로피는 정보 엔트로피이다.
정보이론에서의 엔트로피란 각 정보에 포함된 기댓값(평균 정보량), 정보의 불확실량등으로 설명할 수 있지만 내가 여러 자료들을 찾아보면서 머신러닝의 관점에서 가장 와닿았던 의미는 예측하기 어려운 정도였다.
그럼 엔트로피가 무엇이길래 이렇게 다양한 의미로 해석될 수 있는지, 그리고 내가 왜 예측하기 어려운 정도를 가장 와닿게 느낀 것인지 한번 알아보자.
먼저 정보량이라는 것을 알아야 한다. 정보량은 정보를 정량화 한 것으로 그 정보에 대한 가치를 나타낸다고 볼 수 있다.
예를 들어 여기 두가지의 정보가 있다.
다이아몬드는 딱딱하다.
다이아몬드가 가장 많이 묻혀 있는 광산은 러시아에 있다.
위 두 정보 중 어느 것이 더 가치가 높은 정보일까 한번 생각해보자. 다이아몬드가 딱딱하다는 것은 대부분의 사람이 알고 있는 사실이므로 정보로서의 가치가 낮다고 할 수 있다. 하지만 다이아몬드가 가장 많이 묻혀 있는 광산이 어디에 있는지는 대부분의 사람이 아는 정보가 아니므로 상대적으로 가치가 높다고 할 수 있다.
즉, 정보량은
- 당연한 사실일수록 낮다.
- 그 정보가 불확실할수록 높다.
- 완전히 예측 가능하면 가치가 없다.
결국, 발생 확률이 적을수록 정보의 가치는 올라가게 된다. 그러므로 정보량을 정의할 때에는 확률과 반비례의 관계를 가지도록 하는 것이 좋을 것이다. 이러한 이유로 정보량은 다음과 같이 정의된다.
\[ I\left(x\right) = -\log_b{ P\left( x\right ) } \]
어떤 사건이 일어난 확률의 역수에 로그를 취한 형태이다. 여기서 로그를 취한 이유는 두 사건의 정보량을 합친 것이 각 사건의 정보량을 더한 것과 같아야 하기 때문이다 (로그는 곱을 합으로 바꿀 수 있다). 이 때 밑 $b$는 사용처에 따라 2, 10, $e$를 많이 사용한다.
정보량까지 정의를 했으니 엔트로피를 정의할 차례이다. 앞서 엔트로피는 정보량의 기댓값이라고 하였다. 즉 각 사건에 대한 확률과 정보량의 곱을 모두 합한 것으로 정의할 수 있다.
\[ H\left(x\right) = E\left( I\left ( x\right ) \right) = -\sum^n_{i=1} p\left( x_i \right) \log_b{ p\left( x_i\right ) } \]
엔트로피는 정보량이 클수록 커지는 성질을 가진다. 다른 정보이론에서는 모르겠지만 머신러닝 분야에서는 예측을 하는 것이 목적이므로 예측에 맞춰 다시 말을 정리하면, 예측이 힘들수록 더 크다는 것이 된다.
이것이 앞서 예측하기 어려운 정도가 가장 와닿았다고 하는 이유였다.
다음 포스팅에서는 이 엔트로피를 이용한 대표적인 loss인 cross entropy를 알아보기 위해 KL divergence에 대해 먼저 알아보려 한다.