
Classification Model 과 Probability Distribution
Classification(분류) Task에서 Model을 성공적으로 학습시킨다는 것은
- Model의 predict(예측 결과)가
- 실제 Label(정답)에 근접해야 함을 의미함.
이때
- Model 의 출력은 단순한 class label(클래스 라벨)이 아니라,
- 각 class 에 대한 probability distribution(확률 분포)로 해석됨.
예를 들어
- 어떤 입력 $x$에 대해 실제 정답 분포를 $p(y \mid x)$,
- Model 이 예측한 분포를 $q(y \mid x)$라고 하면
- 학습의 목표는 $q(y \mid x)$ 가 $p(y \mid x)$에 비슷해지도록 만드는 것임.
따라서 Classification Model 을 학습시키려면
두 Probability Distriibution 이
얼마나 다른지를 수치화할 수 있어야 함!
Discrepancy of Probability
Classification은 확률분포의 차이를 정량화하는 loss function이 필요함
- 단순히 “정답을 맞혔다/틀렸다”만으로는 모델이 얼마나 확신을 가지고 예측했는지 알 수 없음.
- 예를 들어 정답 class(클래스)에 속할 확률을 모델이 0.9로 부여한 경우와 0.51로 부여한 경우는
둘 다 같은 class를 예측했더라도 training 단계에선 다르게 평가되어야 함. - 정답 class에
- 모델이 낮은 확률을 부여한 경우에는 그 정도에 비례하여 더 큰 penalty(벌점)를 주고,
- 모델이 높은 확률을 부여한 경우에는 더 높은 reward를 주어야 함.
- 이를 위해 모델의 예측 분포와 실제 정답 분포 사이의 discrepancy(불일치성)를 정량적으로 측정하는 loss function(손실 함수)이 필요함.
이를 위해서 정보이론(Information Theory)의 주요 개념인
Entropy(엔트로피), KL-Divergence(KL 발산), Cross-entropy(교차 엔트로피)가 단계적으로 사용됨.
Entropy (평균정보량)
첫째로, 확률 분포 자체의 불확실성 을 수치화하기 위해 Entropy(엔트로피)가 정의된다.
Entropy(엔트로피)는
- 어떤 random variable(확률 변수) $X$가 가질 수 있는 값들에 대해
- 기대되는 평균 information content(정보량),
- 즉, information content(정보량)의 expectation(기댓값)을 의미 .
$$H(p) = - \sum_x p(x) \log p(x)$$
여기서 $p(x)$는 실제 probability distribution이며, $-\log p(x)$는 event(사건) $x$가 발생했을 때의 정보량임.
- Entropy는 distribution $p$ 로부터 sample(표본)이 생성될 때, 그 값을 표현하는 데 평균적으로 필요한 정보량 임.
- 로그의 밑을 2로 사용하면 단위는 bit 임.
- 또한 optimal coding(최적 부호화)을 가정할 때, Entropy 는 해당 random variable 을 인코딩하는 데 필요한 average code length의 이론적 lower bound(하한)으로 해석할 수 있음.
2022.05.12 - [.../Math] - [Math] Entropy 란 (평균정보량, 정보량의 기댓값)
[Math] Entropy 란 (평균정보량, 정보량의 기댓값)
Entropy란?Random variable에서 기대되는 정보량 (or 정보량의 기댓값, 평균 정보량).해당 random variable을 encoding하는데 필요한 평균정보량(단위 bit)의 lower bound.Claude Shannon 이 1948년 증명한 Noiseless Coding The
dsaint31.tistory.com
KL-Divergence
둘째로, 두 probability distribution(확률 분포)이 얼마나 다른지를 측정하기 위해 KL-Divergence(KL 발산)가 사용됨.
- 실제 distribution을 $p(x)$,
- 모델이 예측하거나 근사한 distribution을 $q(x)$라고 하면,
- 이들간의 discrepancy 에 해당하는 KL-Divergence(KL 발산)는 다음과 같음
$$D_{\mathrm{KL}}(p \Vert q) = \sum_x p(x) \log \frac{p(x)}{q(x)}$$
실제로 KL-Divergence는 $p(x)$를 따르는 data를 $q(x)$를 기준으로 설명할 때 추가로 필요한 평균 정보량 을 의미함.
- $q(x)$가 $p(x)$와 다를수록 KL-Divergence는 큰 값을 가짐.
- 다만 KL-Divergence는 단순히 "두 Entropy(엔트로피)의 distance function" 이라고 말할 수는 없음.
- 정확하게는 실제 distribution $p$를 기준으로 보았을 때, 예측 distribution $q$가 얼마나 비효율적인지를 나타내는 Relative Entropy(상대 엔트로피)로 이해해야 함.
2022.05.12 - [.../Math] - [Math] Kullback-Leibler Divergence
[Math] Kullback-Leibler Divergence
어떤 random variable $x$ (확률변수 $x$)에 대해 원래의 Probability Distribution $p(x)$와 Predicted Probability Distribution $q(x)$ (or Approximated Probability Distribution)가 있을 때, 각 경우의 entropy에 대한 difference가 바로 KL
dsaint31.tistory.com
Cross-Entropy
실제 분류 모델의 loss function으로는 Cross-entropy(교차 엔트로피)가 널리 사용됨.
Cross-entropy는 "실제 distribution $p(x)$를 따르는 data를 모델의 예측 distribution $q(x)$를 사용하여 encoding할 때 필요한 평균 정보량 (추가가 아님)" 임.
$$H(p, q) = - \sum_x p(x) \log q(x)$$
Cross-entropy는 다음과 같이 Entropy와 KL-Divergence로 분해됨:
$$H(p, q) = H(p) + D_{\mathrm{KL}}(p \Vert q)$$
주의할 점은 $H(p)$는 실제 data distribution 자체가 가지는 Entropy이므로, 모델 학습 과정에서 model parameter에 의해 변하지 않는 constant term(상수항)임.
- 따라서 Cross-entropy $H(p, q)$를 최소화하는 것은
- KL-Divergence $D_{\mathrm{KL}}(p \Vert q)$를 최소화하는 것과 같은 방향의 optimization(최적화)이 성립함.
이 때문에 분류 문제에서는 KL-Divergence 가 아닌 Cross-entropy loss를 사용함.
특히 정답이 one-hot label(원-핫 라벨)로 주어지는 multi-class classification에서는
- 실제 distribution $p(y \mid x)$가 정답 class(클래스)에만 확률 1을 부여하고, 나머지 class에는 확률 0을 부여함.
- 이 경우 Cross-entropy loss 는 정답 class에 대해 모델이 예측한 probability의 negative log likelihood(음의 로그 가능도)로 단순화됨.
$$L = - \log q(y \mid x)$$
- Model이 정답 class에 높은 probability를 부여할수록 loss는 작아지고 낮은 probability를 부여할수록 loss는 증가함.
- Cross-entropy loss 는 분류 모델이 정답 class에 더 높은 확률을 부여하도록 학습시키는 핵심적인 objective function(목적 함수)으로 사용됨.
2022.05.12 - [.../Math] - [Math] Cross Entropy
[Math] Cross Entropy
Cross Entropy란두 probability distribution $p$, $q$ 사이의 dissimilarity(차이)를 정량화하는 지표 로 사용됨.엄밀하게는 dissimilarity는 KL-Divergence로 구해야 하나, Cross entropy로 해도 큰 문제없기 때문임.다음 참
dsaint31.tistory.com
요약
- Classification Model의 출력은 보통 각 class에 대한 probability distribution 임.
- Label distribution $p$와 모델의 predicted distribution $q$ 사이의 차이(discrepancy)를 줄이는 것이 training 의 핵심임.
- Entropy는 하나의 distribution이 가진 불확실성(=평균 정보량)을 측정함.
- KL-Divergence는 label distribution $p$를 기준으로 predicted distribution $q$가 얼마나 다른지를 Entropy를 기반으로 정량화.
- Cross-entropy는 실제 학습에서 손실 함수로 사용되며, 이를 최소화하는 것은 KL-Divergence를 최소화하는 것과 같은 최적화 결과를 얻음.
같이 보면 좋은 자료
http://colah.github.io/posts/2015-09-Visual-Information/
Visual Information Theory -- colah's blog
Posted on October 14, 2015 <!-- by colah --> I love the feeling of having a new way to think about the world. I especially love when there’s some vague idea that gets formalized into a concrete concept. Information theory is a prime example of this. Info
colah.github.io
2024.04.18 - [.../Math] - [Math] Probability Distribution
[Math] Probability Distribution
Probability Distribution : Probability Distribution은 특정 random variable(확률 변수)이 취할 수 있는 각각의 값에 대한 확률을 나타내는 분포임.Probability Distribution Function (PDF)으로 기술되며,random variable이 어떤
dsaint31.tistory.com
https://dsaint31.me/mkdocs_site/ML/ch03/logistic_regression/
BME
Classification Logistic MLEM Regression Logistic Regression Logistic Regression은 이름과 달리, binary classification task를 위한 모델로서 특정 class에 속할 확률을 결과값으로 가짐.(output이 하나의 확률값임). Label은 일
dsaint31.me
'Programming' 카테고리의 다른 글
| Paradigm (패러다임) (0) | 2022.07.21 |
|---|---|
| [Python] 현재 사용 중인 Python 및 패키지의 실제 경로 확인하기. (2) | 2022.07.18 |
| [Error: Tensorboard] ImportError: cannot import name 'Mapping' from 'collections' (1) | 2022.05.18 |
| [Conda] miniconda의 기본 채널 변경 : conda-forge (3) | 2022.04.05 |
| sh파일(non-interactive shell script)에서 conda 가상환경 activation! (2) | 2021.12.05 |