정보량(Information), 엔트로피, Cross-Entropy
분류(Classification) 모델에서 Croos-Entropy를 줄여야하는 에러로 사용한다. 이것을 이해하기 위해서 정보량, 엔트로피에 대해서 알아야한다.
정보량은 놀람의 정도라고 생각할 수 있다. 확률이 높은(일어나기 쉬운) 사건일수록 그 사건이 발생했을 때 덜 놀란다, 반대로 확률이 낮은(일어나기 어려운) 사건일수록 그 사건이 발생했을 때 많이 놀란다. 이것의 양을 나타내는 것이 정보량이고 확률이 낮은 사건일수록 정보량은 더 높다.
정보량 I를 계산하면 위의 식과 같다.
맑음, 흐린 두 날씨가 있을 때 확률이 50%로 같으면 정보량은 1, 1 이다.
확률이 다른 경우에 정보량을 계산하면 I(맑음)은 0.41, I(흐림)은 2로 차이가 난다.
여기에서 흐림 날씨에 대한 정보량이 더 높다. 즉 흐림 날씨(사건)이 발생했을 때 더 많은 정보를 얻을 수 있다.
이러한 정보량의 기댓값을 엔트로피(Entropy)라고 한다.
엔트로피를 통해 정보를 표현하는데 사용되는 최소 bits 수를 구할 수 있다.
다음은 Cross-Entropy인데 각각 다른 분포을(p,q)를 가지고 엔트로피를 계산하는 것이다. 예시를 통해 알아보면
맑음 날씨와 흐림날씨가 있을 때 일어날 확률의 정답값(True label)은 각각 75%, 25%이다. 이 정답값을 설명하는 분포를 p라고 하고, 내가 예측한 확률의 분포를 q라고 한다. 내가 예측한 확률은 각각 50%, 50%이다.
이렇게 두 개의 각자 다른 분포를 가지고 엔트로피를 계산한 것이 cross-entropy이다.
이것을 분류 모델에서 최소화해야하는 에러로 사용할 수 있는 이유는 다음과 같다.
True label(정답)이 원은 100%, 사각형은 0%일떄
왼쪽에서는 모델이 원 75%로 예측을 했다. 그러면 cross-entropy는 log4/3이 된다.
오른쪽에서는 모델이 원 90%로 예측을 했다. 그리고 cross-entropy는 log10/9가 된다.
여기에서 모델이 예측한 확률이 True label(100%)에 가까워질수록(75%->90%) cross-entropy가 감소(log4/3-> log10/9)하는 것을 알 수 있다.
마지막으로 모델이 예측한 확률이 100%, 즉 정답으로 예측하면 cross-entropy는 log1이 되어서 0이된다.
결론적으로 cross-entropy가 작아질수록(0에 가까워질수록) 모델이 예측한 것이 정답과 가깝다는 것을 뜻하게 된다.
따라서 우리는 cross-entropy를 분류(classification)의 에러로 사용해서 최소화하는 방향으로서 사용할 수 있는 것이다.
로지스틱 회귀에서 사용하면 아래의 식처럼 사용할 수 있다.