-
Information Theory딥러닝 개념 정리 2024. 5. 5. 12:27
Information Theory에 대해서 정리를 해보자!!
Information Theory은 통신, 암호학, 데이터 압축, 머신 러닝 등 여러 분야에서 중요한 역할을 하는 수학적인 이론
정보의 양을 정량화하고, 정보의 전송, 저장 및 처리에 관한 문제들을 해결하는 데 사용
1948년 클로드 섀넌에 의해 "통신의 수학적 이론"이라는 논문에서 처음 제시
1. 엔트로피 (Entropy)
엔트로피는 시스템의 불확실성 또는 무질서도를 수치적으로 표현한 것
확률 분포를 통해 각 사건의 발생 확률을 알고 있을 때, 이 사건들의 엔트로피를 계산하면 전체 시스템의 불확실성을 측정할 수 있음
엔트로피가 높을수록 시스템의 불확실성이 크고, 정보의 양이 많다고 할 수 있음
$ H(X) = -\sum_{x \in X} P(x) \log P(x) $
여기서:
- $ X $는 모든 가능한 사건들의 집합
- $ P(x) $는 사건 $ x $가 발생할 확률
- $ \log $는 보통 밑이 2인 로그를 사용하여, 결과의 단위를 비트(bit)로 나타내고, 때로는 자연 로그를 사용하기도 하는데, 이 경우 엔트로피의 단위는 '네트(nat)'
엔트로피 수식의 의미
이 수식은 각 사건 $ x $가 발생할 확률 $ P(x) $와 이 확률의 로그값의 곱을 모두 더한 값의 음수로 계산됨이 과정에서 다음과 같은 중요한 정보 이론의 원칙들이 나타남:
1. 확률이 높은 사건: $ P(x) $가 높으면, $ \log P(x) $는 0에 가까워지거나 음수가 덜 음수적이 되고, 이는 해당 사건이 자주 발생하므로 불확실성이 낮고, 정보량도 적다는 것을 의미
2. 확률이 낮은 사건: $ P(x) $가 낮으면, $ \log P(x) $는 매우 큰 음수가 되고, 낮은 확률로 발생하는 사건은 높은 불확실성을 가져 정보량이 많다고 할 수 있음
엔트로피의 속성
- Non-negativity : 엔트로피는 0 또는 양수, 엔트로피가 0인 경우는 모든 사건의 발생 확률이 결정적일 때 (즉, 어떤 사건의 확률이 1이고 나머지는 0일 때)입니다. 이는 시스템에 불확실성이 없음을 의미
- Maximal entropy : 엔트로피는 모든 사건의 확률이 동일할 때 (균등 분포) 최대가 됨. 이 상태는 시스템의 불확실성이 최대이며, 예측이 가장 어려움엔트로피는 시스템 내의 불확실성이나 무질서도를 나타내는 정보 이론의 기본적인 개념 중 하나
시스템의 엔트로피가 높다는 것은 시스템이 가지고 있는 가능한 상태들이 많고, 각 상태가 발생할 확률이 균등하게 분포되어 있음을 의미
이는 예측하기 어려운 상황을 나타내며, 따라서 정보의 양도 많다고 할 수 있음
날씨 시스템
날씨 시스템의 엔트로피도 흥미로운 예
만약 어떤 지역에서 날씨가 극단적으로 변덕스럽다면, 즉 언제든지 비가 오거나 맑아질 수 있는 상태라면, 그 지역의 날씨 시스템의 엔트로피는 매우 높다고 할 수 있음
이는 날씨 예측의 불확실성이 높음을 의미하며, 실제로 예측을 수행하기 위해서는 더 많은 정보가 필요
반면에, 항상 맑거나 항상 비가 오는 지역은 날씨 시스템의 엔트로피가 낮아 예측이 더 쉬움
라이브러리의 책 배열
라이브러리에 책들이 완전히 무작위로 배열되어 있다고 가정
이 경우, 특정 책을 찾기 위해서는 많은 불확실성을 해결해야 하므로 엔트로피가 높음, 각 책의 위치를 예측하기 어렵기 때문에, 찾고자 하는 책을 찾기 위해 많은 시간과 노력이 필요
반면, 책들이 잘 정리된 라이브러리에서는 엔트로피가 낮아, 책을 찾는 과정이 훨씬 간단하고 예측 가능
이러한 예들을 통해 엔트로피가 높은 상태는 불확실성과 정보량이 많음을 나타내며, 예측이 어렵고 정보 처리가 복잡함을 알 수 있음
반면, 엔트로피가 낮은 상태는 상황이 더 예측 가능하고 관리하기 쉬움을 의미
자주 발생하는 사건은 적은 bit로 표현, 흔하지 않게 발생하는 사건은 많은 bit수로 표현2. 상호 정보량 (Mutual Information)
두 확률 변수 간의 상호 정보량은 한 변수가 다른 변수에 대해 제공하는 정보의 양을 측정
이는 두 변수가 얼마나 많은 정보를 공유하고 있는지를 나타내며, 변수들 사이의 의존성을 수량화하는 데 사용
한 변수를 알 때 다른 변수에 대한 추가적인 정보나 예측의 정확성을 얼마나 개선할 수 있는지를 나타냄
상호 정보량은 두 변수 사이의 의존성을 정량화하고, 변수들 간의 정보 교환 정도를 수치로 표현
예시: 질병과 증상 간의 상호 정보량을 생각해 볼 수 있음
특정 질병이 있을 때 나타나는 증상이 있다면, 그 증상을 통해 질병의 존재 여부를 추론할 수 있음
예를 들어, 감기에 걸렸을 때의 증상인 기침이 있다면, 이 증상은 감기의 진단에 대한 정보를 제공, 이 때의 상호 정보량은 기침과 감기 사이의 정보 공유 정도를 나타내며, 높은 상호 정보량은 두 변수가 서로 강한 관계를 가지고 있음을 의미3. 조건부 엔트로피 (Conditional Entropy)
조건부 엔트로피는 한 확률 변수의 엔트로피를 다른 변수의 값이 주어졌을 때 계산한 것
이는 두 변수 간의 관계를 더 깊이 이해할 수 있게 해 주며, 예측 또는 정보 전달 과정에서의 불확실성을 측정
조건부 엔트로피는 두 변수 간의 관계를 이해하는 데 유용, 특정 상태의 지식이 다른 상태의 불확실성을 얼마나 감소시키는지를 보여줍
예시: 날씨 예보에서, 하늘이 흐리다는 사실이 주어졌을 때 비가 올 확률을 평가하는 것을 생각해 볼 수 있음
하늘이 흐린 상태에서 비가 올 조건부 엔트로피는 하늘이 흐리지 않을 때보다 낮을 수 있음, 이는 하늘이 흐린 조건이 비가 올 가능성에 대한 불확실성을 감소시키기 때문KL Divergence
KL Divergence는 두 확률 분포 $P$와 $Q$ 사이의 차이를 수치적으로 측정하는 방법
이는 특히 두 분포가 얼마나 다른지를 정량화하는 데 사용되며, 정보 이론, 머신 러닝, 통계학 등 다양한 분야에서 응용됨
KL Divergence의 정의와 계산
KL Divergence는 한 확률 분포 $P$에서 다른 확률 분포 $Q$로 얼마나 많은 정보가 손실되는지 측정KL Divergence는 이 두 분포 $P(x)$와 $Q(x)$ 사이의 각 사건 $x$에 대한 확률 값의 차이를 로그 스케일로 측정하고, $P$의 기대값을 취함으로써 이 차이의 평균을 계산합니다. 수식적으로 표현하면 다음과 같습니다:
$ D_{KL}(P \parallel Q) = \sum_{x} P(x) \log \frac{P(x)}{Q(x)} $
여기서:
- $ P(x) $는 사건 $ x $가 발생할 확률 분포 $ P $의 확률, 이는 보통 실제 데이터 분포나 원하는 목표 분포를 나타냄
- $ Q(x) $는 같은 사건 $ x $에 대한 확률 분포 $ Q $의 확률, 이는 모델이나 근사화 기법을 통해 추정된 분포, 이 분포는 \(P\)를 얼마나 잘 모사하는지 평가의 대상이 됨
- 로그는 보통 자연 로그를 사용하며, 결과는 정보의 "손실"을 나타냄
- $ \log \frac{P(x)}{Q(x)} $는 $P$에서 본 사건 $x$의 확률이 $Q$에서 본 사건 $x$의 확률에 비해 얼마나 다른지를 로그 스케일로 나타낸 것
- 이 값이 크다면, $Q$는 $P$를 잘 표현하지 못하고 있다고 볼 수 있음
- 반대로 이 값이 0에 가까우면, $Q$는 $P$를 잘 근사하고 있다고 할 수 있음
KL Divergence의 특성
- 비대칭성: $ D_{KL}(P \parallel Q) \neq D_{KL}(Q \parallel P) $ 즉, $P$에서 $Q$로의 정보 손실과 $Q$에서 $P$로의 정보 손실은 다를 수 있음
- 분포 간의 거리 측정: $P$와 $Q$가 동일할 때 $D_{KL}$은 0. 분포가 서로 다를수록 $D_{KL}$ 값은 더 커짐
1. 기대값 표현:
$ D_{KL}(P \parallel Q) = \mathbb{E}_{x \sim P} [\log P(x) - \log Q(x)] $2. 확률의 로그 비율로 분해:
$ = \sum_x P(x) \log \frac{P(x)}{Q(x)} $
3. 로그의 성질을 사용하여 분리:
$ = \sum_x P(x) \log P(x) - P(x) \log Q(x) $
4. 엔트로피와 관련된 표현으로 재구성:
$ = -H(P) + \sum_x P(x) \log Q(x) $
여기서 $H(P)$는 분포 $P$의 엔트로피입니다.
이렇게 KL Divergence는 두 확률 분포 간의 차이를 나타내는 강력한 도구로, 한 분포를 사용해 다른 분포를 얼마나 잘 근사할 수 있는지를 보여줌, 이는 불확실성의 변화를 통해 얻는 정보의 양을 정량화로스 함수로서의 KL Divergence의 사용 예
1. 생성 모델
생성적 적대 신경망(GAN)이나 변분 오토인코더(VAE)와 같은 생성 모델에서는 KL Divergence를 사용하여 생성된 데이터의 분포가 실제 데이터 분포와 얼마나 가까운지를 측정
예를 들어, VAE에서는 인코더가 생성한 잠재 변수의 분포와 사전 정의된 분포(예: 정규 분포) 사이의 KL Divergence를 최소화하는 것이 중요한 목표
2. 강화 학습
강화 학습에서는 에이전트의 정책 업데이트 시 KL Divergence를 활용하여 새로운 정책과 이전 정책 간의 차이를 제한
이를 통해 에이전트가 학습 과정에서 너무 급격한 행동 변경을 하지 않도록 제어할 수 있음
3. 분류 및 회귀 모델
일부 분류 및 회귀 모델에서는 예측된 확률 분포(예: 멀티 클래스 분류에서 각 클래스에 대한 확률)와 실제 데이터의 레이블 분포 간의 KL Divergence를 계산하여 모델의 예측 성능을 향상시킬 수 있음
장점
KL Divergence를 로스 함수로 사용하는 것은 모델이 데이터의 복잡성과 다양성을 더 잘 이해하고, 보다 정확한 예측을 할 수 있도록 도와줌, 이는 모델이 과적합(overfitting)을 피하면서도 실제 분포를 효과적으로 학습하도록 유도'딥러닝 개념 정리' 카테고리의 다른 글
Siamese network (0) 2024.04.21 Inductive bias (1) 2024.03.31 Big conv layer to Small conv layer로 변경하는 이유는? (0) 2024.03.30 Handcrafted pretext tasks (0) 2024.03.24 생성적 접근법과 판별적 접근법 (0) 2024.03.19