- toc {:toc}
이 글은 유튜브 혁펜하임님의 [딥러닝] 4강. 정보 이론 기초 15분 컷!을 정리했음을 밝힙니다.
정보 엔트로피
다음의 정보 엔트로피의 개념은 정보 이론의 아버지라 불리는 Claude Elwood Shannon에 의해 창안됐다.
- Shannon Entropy : 정보에 대한 기댓값(평균), 정보를 표현하는데 필요한 최소 평균 자원량
정보 엔트로피의 정의는 위와 같다. 그렇다면 정보는 어떻게 표현하는 것일까? 정보를 표현하기 위해서는 정보량의 개념이 필요하다.
정보량
정보량을 간단하게 하나로 표현하면 ‘놀라움의 정도’라고 표현할 수 있다.
정보의 가치는 당연할수록 낮고, 이는 예측 가능할수록 낮다는 것을 의미한다. 반대로, 예측이 가능하지 않을 수록 정보량의 가치는 높다. 조금 더 생각해보면 발생확률이 낮을 수록 정보의 가치는 높다는 것을 알 수 있다.
한 가지 예를 들어보자.
2022년 카타르 월드컵에서 우리나라는 조별 예선 마지막 포르투갈을 상대로 이겨야 16강에 진출할 수 있는 상황이었다. 16강 진출 확률은 9%로 수치상으로는 발생확률이 상당히 낮았다. 이 때, 경기를 보지 않은 한국인이 경기가 끝난 후 뉴스를 통해 다음 정보를 얻었다.
- 한국이 포르투갈을 상대로 2 : 1로 패배해 16강 진출에 실패했다.
- 한국이 포르투갈을 상대로 2 : 1로 승리해 16강에 진출했다.
1번의 정보의 경우 발생확률이 높고 예측 가능성이 높은 정보였기 때문에 정보량이 낮다고 볼 수 있고, 2번 정보의 경우 예측 가능성이 낮은 경기였기 때문에 많이 놀라고 그만큼 정보의 가치, 정보량이 높다고 생각할 수 있다.
이와 같은 정보량의 표현은 bits, 0과 1의 조합으로 표현된다.
엔트로피와 정보량
엔트로피의 정의를 다시 살펴보면 결국 0, 1로 표현되는 평균 자원량의 최소가 엔트로피를 뜻한다는 것을 알 수 있고, 최소가 되기 위해서는 0, 1로의 표현이 가능한 한 짧아야 한다는 것을 의미한다. 여기서 평균이 의미가 잘 와닿지 않을 수 있는데 이는 전체 정보, 위 뉴스라고 예시를 들면 뉴스 기사 전체 정보량에 대한 평균을 의미한다고 생각할 수 있다.
이 때, 평균이 최소가 되게 하려면 어떻게 해야할까?
뉴스 기사에서 ‘승리’라는 단어가 15번 나오고, ‘패배’라는 단어가 2번 나오며, 이 두 단어를 정보량으로 표현할 때 0, 111, 이 두 표현으로만 할 수 있다고 가정해보자. 최소가 되기 위해서는 표현의 길이가 짧아야 하고, 나올 확률이 높은 ‘승리’가 0으로 표현되야 전체적인 길이가 더 짧아진다는 것을 이해할 수 있다.
이 관계를 그래프로 표현하면 아래와 같다.
출처: https://ko.wikipedia.org/wiki/%EC%A0%95%EB%B3%B4_%EC%97%94%ED%8A%B8%EB%A1%9C%ED%94%BC
확률이 높을 수록 정보의 양은 적고, 발생 확률이 적을 수록 정보의 양은 크다. 그래프의 함수는 -log로 표현되고, bits로 표현하기 때문에 밑은 2로 설정되어 아래와 같이 표현된다.
이를 이용해서 섀넌 엔트로피를 수식으로 나타내보자.
위의 정의와 같이 엔트로피는 정보에 대한 기댓값이고, 이산 확률 변수일 때는 1번, 연속 확률 변수일 때는 2번 수식으로 나타낼 수 있다.
이렇게 표현된 기댓값이 최소 평균 길이가 된다는 것을 섀넌이 밝혔다고 한다. 섀넌 엔트로피는 코딩을 했을 때 가장 최선의, 최적이 될 수 있는 절대적 한계치를 생성했다는 것을 알 수 있다.
그렇다면, 엔트로피도 가장 최소로 만들고 싶다면 어떻게 해야할까?
위 1번과 2번의 경우가 있다. 둘의 엔트로피 중 더 작은 것은 어떤 것일까?
2번이 더 작다.
1번과 같은 경우는 어떤 것을 더 짧게 코딩할 수 없다. 하지만 2번의 경우 확률에 따라 b를 짧게 코딩하고 a를 길게 코딩함으로써 1번보다 더 짧게 만들 수 있다.
따라서 엔트로피는 확률이 모두 동일할 때 최대가 된다. 연속 확률 변수일 경우 가우시안일 때 최대가 된다고 한다.
Cross Entropy(크로스 엔트로피)
크로스 엔트로피의 수식은 아래와 같다.
여기서의 q(x)는 내가 예측한 확률을 의미한다. 크로스 엔트로피에서는 내가 예측한 확률을 사용하고 내가 예측한 확률이 p(x)와 동일해지는 방향으로 학습한다.
추후 포스팅 예정