많이 나오는 개념, entropy, cross-entropy, KL-divergence, Mutual Information에 대해 알아보자.
Entropy란 무엇인가?
철수가 영희에게 정보를 전달하고 있는 상황을 가정하자,
철수가 영희에게 전달하는 정보는 “해가 동쪽에서 뜨는지, 서쪽에서 뜨는지” 라고 하자.
상식적으로 생각해 보았을 때, 해는 당연히 동쪽에서 뜨기 마련이다.
그리고 우리는 마음속으로 “저런 당연한 걸 왜 알려주는 거야?” 라고 생각하고 철수에게 관심을 주지 않을 것이다.
이렇게 뻔한 이야기는 정보량이 거의 없다.
하지만, 만약 오늘은 진짜로 해가 서쪽에서 떴다면 어떤 반응을 보일까?
영희는 눈이 휘둥그레지며 “진짜로?”를 되뇌일 것이며, 엄청나게 놀란 반응을 보일 것이다.
진짜 도저히 말이 안된다고 생각할 정도로 뻔하지 않은 이야기는 정보량이 크다.
위 예제를 정보량 에 관련해 수식적으로 제시해 보겠다.
먼저 정보량 가 만족해야할 조건이 있다.
•
해가 뜨는 방향에 대한 확률 변수(Random Variable) 는 두가지 값을 가진다.
•
의 정보량 는 확률 에 대한 함수이다,
•
를 만족한다.
•
를 만족해야 한다. (해가 서쪽에서 뜬다는 사실이 정보량이 많다)
•
와 는 monotonic한 관계를 가진다. 는 단조 감소함수이다.
철수가 해가 뜨는 위치와 더불어 부산에 비가 오는지 안오는지도 알려준다고 가정하자,
그렇게 되면 정보량 가 만족해야할 조건이 늘어나게 된다.
•
확률 변수 는 아래 조건을 만족한다.
◦
는 두 가지 값을 가진다.
◦
는 두 가지 값을 가진다.
◦
는 독립이다.
•
각 확률변수가 jointly하게 일어날 때 얻는 정보량은, 개별적인 확률 변수의 정보량의 합과 같다.
•
각 확률변수 는 독립이므로 를 만족한다.
위 조건에 의해 아래 식이 성립함을 알 수 있으며,
이를 만족하기 위해서는 함수 가 의 형태를 띄어야 한다.
그리고 앞서 제시한 첫번째 조건을 결합하면, 정보량 에 대한 식을 만들 수 있다.
이 때 밑이 2인 이유는 정보량의 단위가 bits이기 때문이다.
이제 각 경우에 대해, 정보량을 구해보면 아래와 같다.
철수가 영희에게 하루만 정보를 보내는 것이 아니라, 매일매일 보낸다고 가정하면 평균적으로 얼마만큼의 정보량을 보내는지 궁금하지 않은가? 계산해보면,
0에 가까운 값이 나오며, 이는 정보량이 거의 없는 뻔한 말만 하고 있다는것을 알 수 있다.
이를 수식적으로 표현한 것이 바로.....
정보를 표현하는데 있어서 필요한 최소 평균 자원량을 Entropy라고 한다.
확률이 높으면 짧게 코딩하고, 적다면 길게 코딩하면 될 것이다. 따라서 Entropy가 의미하는 것은 가장 효율적으로 코딩하였을 최소 길이를 의미한다. 수학적으로는 아래와 같이 정의한다.
이러한 Entropy의 특징을 정리하면 아래와 같다.
•
Continuous Variable인 경우 아래 식을 만족한다.
•
Entropy는 Average Coding Length의 Lower bound이다.
(엔트로피보다 적은 비트수로 정보를 표현할 수 없다!)
•
Entropy값이 가장 커지는 경우는 아래의 분포를 가질 때이다.
◦
Discrete Variable : Uniform Distribution
◦
Continuous Variable : Gaussian Distribution
직관적으로 생각해 볼 때, 고만고만한 분포를 표현하기 위해서는 모든 경우에 대해 설명해야 하므로, 정보량이 더 필요하지 않을까? 라고 생각된다. 반대로 좀 극단적인 경우는 특정 경우에 대해서 집중적으로 표현하게 되니까 정보량이 좀 적게 필요하지 않나 생각 된다.
•
Entropy값이 가장 작아지는 경우는 한 점에 확률이 다 몰려있는 경우이며, 이 때 값은 이 된다.
(앞선 해 뜨는 방향 예제 생각해보면 된다.)
KL Divergence는 무엇인가?
이번에는 정사면체 모양을 가지는 주사위를 던진다고 가정하자,
재밌는 점은 이 주사위의 네 면에 대한 실제 확률분포는 를 따르지만,
철수는 아직 이 주사위에 대해 공부가 부족하여 확률분포를 라고 생각했다는 점이다.
따라서, 각각의 나올수 있는 값에 대하여 코딩을 한다고 가정하면,
•
철수는 로 코딩하였다.
•
그러나, 실제 최적 코딩은 로 코딩하는 것이다.
이 때, 각 경우에 대한 Average Coding Length를 구하면 아래와 같다.
철수의 경우 를 얻을 수 있으며,
이를 엔트로피의 관점에서 보고 계산하게 되면 동일한 값을 얻는다.
만약 주사위의 분포를 정확하게 모델링 했다면, 아래의 결과를 얻는다.
이렇게 최적의 분포가 아닌 다른 분포를 이용하여 계산하였기 때문에
추가적인 정보량이 더 필요해졌고 만큼의 추가 비용이 들었다.
이러한 모델링 오류 때문에 발생한 추가 비용은 아래처럼 정의 할 수 있으며, 이를 KL-divergence라고 한다.
Continuous한 경우에도 정의하면,
이 때, KL-divergence는 아래 성질을 만족한다.
•
•
Cross-Entropy는요?
앞서 제시한 KL-divergence식에서 term이 Cross-entropy가 된다.
결국, KL-divergence는 Cross-entropy에서 실제 분포의 엔트로피를 뺀 값이다.
그런데 흔히들 classufucation Task를 진행할 때, Loss function을 cross-entropy로 정의하곤 한다.
앞에서 제시한 정의에 따르면 KL-divergence로 loss function을 정의하는 게 맞지 않을까?
결론적으로만 말하면, 같은 값을 구하는 것이다.왜나하면 실제 분포 를 근사하기 위해 를 만들고, 우리가 조절하고 싶은 것은 의 분포이다. 뒤쪽에 제시된 는 에 대한 식이 아니므로, 의 파라미터를 구하기 위해 미분을 진행하면 사라지게 되는 term이다. 그래서 를 loss function으로 삼아 학습을 진행시켜도 아무런 문제가 없다.
Mutual Information
각각 다른 분포 에 대해 유사도를 측정하기 위한 도구로써 KL-divergence를 이용해왔다.
이를 응용하여 두 사건 가 독립인지 아닌지를 측정할 수 있다.
기본적으로 가 독립이라면 를 만족하게 된다.
만일 독립이 아니라면, KL-Divergence를 이용하여 가 p(x,y)에 얼마나 가까운지에 대해 알 수 있다. (독립이면 의 값을 얻는다.)