Skip to content
CatBus
Go back

Entropy(엔트로피)란?

Related Post

  1. Entropy
  2. KL Divergence
  3. Cross Entropy

오토인코더에 대한 공부를 하다가 entropy, cross entropy, KL divergence 등 모르는 용어들이 있어서 더 이상 미루지 않고 공부를 해 보기로 했다.


Entropy

엔트로피의 정의는 일반적인 용어냐, 과학 용어냐 등에 따라 달라질 수 있지만 이번에 다뤄 볼 엔트로피는 정보 엔트로피이다.

정보이론에서의 엔트로피란 각 정보에 포함된 기댓값(평균 정보량), 정보의 불확실량등으로 설명할 수 있지만 내가 여러 자료들을 찾아보면서 머신러닝의 관점에서 가장 와닿았던 의미는 예측하기 어려운 정도였다.

그럼 엔트로피가 무엇이길래 이렇게 다양한 의미로 해석될 수 있는지, 그리고 내가 왜 예측하기 어려운 정도를 가장 와닿게 느낀 것인지 한번 알아보자.

먼저 정보량이라는 것을 알아야 한다. 정보량은 정보를 정량화 한 것으로 그 정보에 대한 가치를 나타낸다고 볼 수 있다.

예를 들어 여기 두가지의 정보가 있다.

다이아몬드는 딱딱하다.

다이아몬드가 가장 많이 묻혀 있는 광산은 러시아에 있다.

위 두 정보 중 어느 것이 더 가치가 높은 정보일까 한번 생각해보자. 다이아몬드가 딱딱하다는 것은 대부분의 사람이 알고 있는 사실이므로 정보로서의 가치가 낮다고 할 수 있다. 하지만 다이아몬드가 가장 많이 묻혀 있는 광산이 어디에 있는지는 대부분의 사람이 아는 정보가 아니므로 상대적으로 가치가 높다고 할 수 있다.

즉, 정보량은

결국, 발생 확률이 적을수록 정보의 가치는 올라가게 된다. 그러므로 정보량을 정의할 때에는 확률과 반비례의 관계를 가지도록 하는 것이 좋을 것이다. 이러한 이유로 정보량은 다음과 같이 정의된다.

I(x)=−log⁡bP(x)I\left(x\right) = -\log_b{ P\left( x\right ) }

어떤 사건이 일어난 확률의 역수에 로그를 취한 형태이다. 여기서 로그를 취한 이유는 두 사건의 정보량을 합친 것이 각 사건의 정보량을 더한 것과 같아야 하기 때문이다 (로그는 곱을 합으로 바꿀 수 있다). 이 때 밑 bb는 사용처에 따라 2, 10, ee를 많이 사용한다.

정보량까지 정의를 했으니 엔트로피를 정의할 차례이다. 앞서 엔트로피는 정보량의 기댓값이라고 하였다. 즉 각 사건에 대한 확률과 정보량의 곱을 모두 합한 것으로 정의할 수 있다.

H(x)=E(I(x))=−∑i=1np(xi)log⁡bp(xi)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에 대해 먼저 알아보려 한다.


Share this post:

비슷한 글

Entropy이 글—

본문을 Xenova/multilingual-e5-small 로 임베딩하고, 그 벡터를 PCA 로 32축에 눌러 왼쪽 막대로 그렸습니다. 비슷한 글은 지문도 닮습니다 — 위아래를 견줘 보세요. 계산은 빌드 때 끝나고 벡터는 브라우저로 오지 않습니다.

Previous Post
모두를 위한 딥러닝 2 - Lab3: Minimizing Cost
Next Post
KL divergence(쿨백-라이블러 발산)