Machine Learning
Entropy
Entropy and its related loss Entropy 엔트로피는 확률론에 기반한 정보이론에서 매우 중요하게 쓰이는 개념이다. 확률변수 random variable $\xi$ 가(random element 참고) density $f\geq 0$ 을 가진다고 하자 (✅ density function은 Radon-Nikodym 참조). 이때 $\xi$의 엔트로피는 다음과 같이 정...
Entropy and its related loss
Entropy
엔트로피는 확률론에 기반한 정보이론에서 매우 중요하게 쓰이는 개념이다. 확률변수random variable 가(random element 참고) density 을 가진다고 하자 (✅ density function은 Radon-Nikodym 참조). 이때 의 엔트로피는 다음과 같이 정의된다.
기댓값expectation 는 확률변수 에 대해
와 같이 정의된다. (추후에 자세히 다룰 예정)
또한, 수리통계에서 어떤 확률밀도함수의 모수 에 대해 Kullback-Leibler divergence를 정의한 적이 있다. 이를 확률론에서는 더 확장하여 다음과 같이 정의한다.
KL divergence
Measurable space 에서의 두 -finite measure 가 있으며 를 만족한다고 하자. 이때 에 대한 의 Kullback-Leibler divergence는
로 정의된다. 특별히 Probability Space 에서 정의된 discrete probability distribution 에 대해서
으로 정의된다.
Cross Entropy
Cross entropy는 cross의 의미 그대로 두 random variable가 교차할 때의 엔트로피를 의미하며, random variable 에 대해 다음과 같이 정의된다.
여기서 기댓값에 붙어있는 subscript 는 기댓값을 계산하는 과정에서 의 density function이 아닌, 의 density function을 이용한다는 것을 의미한다. 이때 식 (1)로부터
이 성립하므로, cross entropy(첫째 항), entropy(둘째 항), KL divergence 사이에는 다음과 같은 관계식이 성립한다.
만일 Probability space 에서 정의되는 확률분포 가 discrete한 경우, cross entropy를
로 쓸 수 있다.
Cross-entropy loss function
Cross entropy는 머신러닝에서 주로 이진(혹은 다중) 분류의 손실함수로 사용된다. 어떤 분류 문제에서 레이블을 예측하는 경우, 실제 레이블(, true probability)와 에측 레이블(, predicted proability) 가 주어지므로 이 둘 간의 격차를 측정하는 도구로 앞서 설명한 cross entropy를 이용한다.
개 데이터를 갖는 데이터셋으로 개의 클래스를 분류하는 다항 분류문제가 주어진다고 하자. 이때 분류기는 주어진 input data()를 입력하여 이 데이터가 각 클래스에 해당할 확률 을 구하는 것이다(). 이때 임의의 모델 를 이용해 계산한 각 클래스별 출력값()은 확률이 아니므로(ex. 세 클래스에 대해 5.1, 2.7, -12의 값이 나왔다고 하자.), 우리는 이를 확률처럼 사용하기 위해 처리해주어야 한다. 이를 위해 softmax function을 사용하고, 이는 다음과 같다.
(만일 이진 분류(0 또는 1)의 경우 softmax의 특수한 케이스인 sigmoid function을 사용한다) 이렇게 처리한 값들은 이제 확률로 사용할 수 있으므로 이를 바탕으로 다음의 cross-entropy 손실함수를 계산한다( 는 번째 데이터가 번째 클래스를 가지면 1, 아니면 0으로 계산한다).
✅ 손실함수가 Sample Mean의 형태인 것은 데이터셋의 원래 확률분포를 알 수 없기 때문임을 잊지 말자!
References
- Foundations of Modern Probabiltiy, O.Kallenberg
- https://en.wikipedia.org/wiki/Cross_entropy
- Lecture note of "Deep Learning for Compuer Vision", UMich EECS
- Hands on Machine Learning, 2e.