안녕하세요~ 이번장에서는 다클래스분류에서 쓰이는 Cross Entropy가 지니는 본질적인 의미에 대해서 설명해 볼거에요. 사실 Cross Entropy는 정보이론(Information Theory)분야 뿐만아니라 열역학 분야에서도 쓰여요. 하지만 이번장에서는 딥러닝과 관련이 깊은 정보이론분야의 Cross entropy 개념에 대해서 알아볼거에요.


먼저 정보이론에 대한 기초개념을 간단히 살펴본후, Entropy라는 개념을 살피고, Cross Entropy에 대해서 설명해보도록 할께요!




<1.Information Theory; 섀넌의 정보이론>


처음으로 소개해드릴 개념은 '정보량'이라는 개념이에요. 두 개의 메시지를 받았을 때, 어떤 메시지가 정보량이 더 많다고 할 수 있을까요? 아래의 예시를 통해 알아보도록 할께요.


우리가 예(1), 아니오(0)로만 대답할 수 있는 스무고개를 한다고 해봅시다. A커튼 뒤에는 강아지가 있고, B커튼에는 알파카가 있다고 할께요. A커튼 뒤에 있는 강아지는 4번만에 맞췄고, B커튼 뒤에있는 질문은 16번만에 맞췄습니다. 우리가 강아지를 알아내기 위해서는 4비트의 정보가 필요해요. 왜냐하면 예, 아니오라는 질문을 한 번 할때마다 1bit(={0,1})가 필요하다고 보면되니까요. 그렇다면, 알파카를 알기 위해서는 16개의 비트가 필요하겠죠? 이때, 알파카의 정보량이 더 많다고 할 수 있겠어요.


그런데, 이것을 좀 더 다른관점에서 보도록 해볼게요. 질문이 많다는건 다른말로 표현하면 상대적으로 불확실성이 높다는 말로 표현할 수 있어요. 커튼뒤에 강아지가 있을 때보다 알파카가 있을때 답을 맞출 확실성이 떨어져요(=불확실성이 높아져요).


섀넌은 이러한 관계성을 통해서 '정보량=불확실성'이라는 개념을 소개하게 되요. 즉, 불확실성이 높을 수록 또 불확실성이 높아진다는 이야기에요.


일반적으로 정보량을 메시지의 정보량에 빗대어 설명해요. 예를 들어, 전체 메시지 중에서 "했"일아는 단어가 나오면 "습니다"라는 단어가 나온다는 것을 쉽게 알 수 있어요. 그러므로, '했' 다음에 오는 '습니다'라는 부분이 메시지에서 지워졌다고 해도 전체 메시지 내용을 파악하는데 큰 어려움은 없을거에요.


다른 관점에서보면 전체 메시지에서 명사와 동사만 알고 있어도 전체 메시지 내용을 파악하는데 어려움이 없다는 결론을 도출할 수 있게 됩니다. 왜냐하면 우리는 명사, 동사 뒤에 어떤 '조사'가 나오는지 쉽게 알 수 있기 때문이죠. 그리고 이렇게 판단하는 이유는 명사, 동사 뒤에 오는 '조사'가 빈번하게 우리눈에 목격됐기 때문이에요. 우리는 이런경우 '조사'를 redundant한 정보라고 불러요. 


즉, 전체 메시지에서 잦은 단어는 정보량이 적고, 드문 단어는 정보량이 많다는 관계를 만들어 낼 수 있어요. 그리고, 이전에 설명했던 불확실성과 연결지으면 아래와 같은 관계를 성립시킬 수 있겠네요.


정보량↑ = 빈번하지 않은 정보 = 불확실성 


그렇다면 정보량은 수식으로 어떻게 표현할까요? 먼저 이전에 설명했던 강아지와 알파카의 예를 들어 봅시다. 우리가 강아지를 맞추기 위해서 총 4번의 질문을 했어요. 그런데 사실 4번의 질문으로 얻을 수 있는 대답의 경우의수는 N=2^4 이에요. 그럼 아래사진과 같이 그림을 그려볼 수 있고, log2N=k bit 라는 수식을 만들 수 있어요. (질문의 수=k, 질문을 통해 얻을 수 있는 대답의 경우의 수=N)


<사진1>


위의 그림을 보면 강아지를 맞출 확률은 'p(x)=1/16'이겠네요.  그럼, -log2p(x) 라고 표현하면 4라는 수가 나오겠죠? 그래서 정보량의 수식을 아래와 같이 표현해요.





<2. Entropy>


정보량에 대한 개념을 알아보았으니 Entropy라는 개념에 대해서 알아보도록 할께요. 결론부터 이야기하자면 엔트로피는 정보량의 기대값(평균)을 의미해요. 


섀넌이은 이러한 Entropy를 통해 distribution을 표현했는데요. 섀넌 엔트로피 distribution은 아래와 같이 설명될 수 있겠어요.


"사건의 분포가 결정적(사건에 대한 확률이 어느 한쪽으로 치우친 정도->ex: 동전 4번 던졌을 때, 앞이3번 나오면 다음에도 앞이 나올 확률이 크기 때문에 치우친 정도가 큼)이라면 해당 확률분포의 불확실성 정도 (정보량)을 나타내는 엔트로피는 낮아진다. 반대로 사건의 분포가 균등적(ex: 동전 4번 던졌을 때 앞2번, 뒤2번으로 확률이 어느 한쪽으로 취우쳐지지 않음)일 수록 엔트로피는 높아진다"


<사진2>


정리하는 차원에서 하나의 예시로 연결지어 설명해볼께요. 아래 '사진3', '사진4'가 있습니다. '사진3'에서는 다음날 해가 뜨거나 비가 올 확률을 동일하게 봤네요. '사진4'에서는 해가 뜰 확률을 더 높게 봤습니다. 그렇다면, 여기에서는 사건이 비가오거나 해가오는 경우인데, 각각의 사건에 대한 확률이 '사진3'과 '사진4'처럼 설정되면 엔트로피는 어떻게 될까요? 당연히 각 사건에 대한 불확실성이 높은 '사진3'의 경우가 불확실성의 평균(기댓값)도 높게 나오겠죠? 이 말을 다르게 말하자면 '사진3'의 경우가 엔트로피가 더 높을거라는 말과 같네요. 그럼 한번 정말 그런지 살펴볼까요?


수식을 대입해보면 '사진3'의 기댓값은 1bit, '사진4'의 기댓값은 0.81bit가 나와요. 요약하자면, '사진4'의 경우가 정보량이 적다는 말인데, 그 이유는 당연히 다음날 해가뜰 확률이 더 높아져서 정보의 불확실성이 낮아졌기 때문이라고 할 수 있겠네요.



            

<사진3>                                                                    <사진4>

 



<3. Cross Entropy>


엔트로피에 대한 개념을 이해했으니 이제는 Cross Entropy에 대한 개념을 살펴볼께요. Cross Entropy에 대한 개념은 아래영상으로 대체하려고해요. 정말 설명을 잘 해 놓으셨더라구요~

중간에 구체적으로 이해가 안되시는 부분이 있으실 수 있는데, 한번 영상을 끝까지 보시면 그래도 Cross Entropy에 대한 개념을 명확히 잡으실 수 있으실 거에요.


아래영상을 요약하자면 아래와 같습니다.


 "Cross Entropy는 Estimated value (from Deep Learning Model)와 실제 정답이 되는 값 (딥러닝관점에서 학습데이터가 되겠네요) 이 서로 얼마나 근사한지를 보는것!" 





나중에는 Cross Entropy를 KL-Divergence라는 개념과 비교하여 설명하긴 하는데, 추후에 KL-Divergence를 다루게 되면 그때 비교해서 설명해드릴께요!


지금까지 설명한 내용들은 아래영상을 차례대로 보시면 더 자세히 이해하실 수 있으실거에요. 그럼 이번장은 여기서 마칠게요~!






영어가 수월하신 분들은 아래 영상을 보시는걸 추천드려요. (영어를 잘 못하시더라도 자막보고 번역해가면 충분히 이해하실 수 있으 실 거에요!)






+ Recent posts