Information Entropy
볼 때마다 헷갈린다.
Entropy : 그 정보를 전달하는데 필요한 최소 비트 수
정보를 알기 위해 얼마나 많은 데이터가 필요한가
우리가 가지고 있지 않은 정보 양
우리가 얼마나 모르고 있나
- log p(x) : p(x)가 1 이하의 확률값이기 때문에, 음수가 나와서 -를 붙여준다.
log 그래프를 생각하면 이해가 쉽다.
즉, 어떤 기호가 나올 확률이 작으면 그 기호가 나오는 것을 알기 위해서 많은 정보가 필요하다. (Entropy가 크다)
반면에 기호의 확률이 높을 경우 우리는 적은 정보로 유추가 가능하다. (Entropy가 작다)
cross entropy를 많이 사용한다.
1이나 0으로 분류하는 경우에는 다음과 같다.
- target log predict- (1 - target)log(1 - predict)
target이 1인 경우에는 우측 식은 0으로 사라진다. 예측값이 0과 가까울 수록 entropy는 증가한다.
0인 경우에는 이와 반대.
조금 어려운 것은 여러 class로 구분할 경우이다.
*는 곱하기다 실수ㅎ...
어쨌든 예측값과 목표값의 분포가 같을 때 entropy가 가장 작다.
그 이유에서 막혔다.
Kullback-Leibler (KL) divergence
는 두 분포를 비교해준다.
물론 이렇게 만들어진 코드는 엔트로피가 이야기하는 것보다 평균적으로 더 긴 코드 길이를 갖게 될 것이다. 즉, 일 것이다.
엔트로피에 KL을 더한 것이 크로스 엔트로피이기 때문에
크로스엔트로피의 최소는 target과 predict이 같을 경우이다.
저 식만 보고 이해하려고 하면 안됐었다. good.