Binary Cross Entropy
$y$를 ground truth값, $\hat{y}$를 estimation값, $p=P(y=1)$, $\hat{p}_\theta$는 $p$를 parameterized한 함수라고 하자.
그다음 $y=0$일때와 $y=1$일때 각각의 likelihood 함수를 구해보자.
1) $y=0$일때는 $y=0$인 샘플들만 있을 것이고 likelihood 함수는 다음과 같다.
$$L^{<0>}_{\theta} = 1 - \hat{p}_\theta$$
2) $y=1$일때 $L^{<1>}_\theta$는 다음과 같다.
$$L^{<1>}_\theta = \hat{p}_\theta$$
$L^{<0>}_\theta$과 $L^{<1>}_\theta$를 합치고 log-likelihood를 구하면 다음과 같다.
$$L_\theta = (1-p) \log L^{<0>}_\theta + p \log L^{<1>}_\theta = (1-p) \log (1-\hat{p}_\theta) + p \log (\hat{p}_\theta)$$
이제 $L_\theta$에 $-$를 붙여서 minimization 문제로 바꿔주면 binary cross entropy와 같아진다.
Multi Class Cross Entropy
$p_i$는 클래스에 대한 ground truth 확률분포, $\hat{p}_i$는 이를 parameterize한 함수라고 하자.
$i$번째 클래스의 샘플 수는 $p_i$에 비례할 것이다.
$i$번째 클래스에 대한 likelihood 함수를 생각해 보자.
샘플 수가 $p_i$에 비례하므로 $L_i = \hat{p}_i \times \hat{p}_i \times \cdot \cdot \cdot \times \hat{p}_i \; \{ p_i \; \text{times} \} = {\hat{p}_i} ^ {p_i}$로 계산할수 있다.
$L_i$들을 다 합치고 하나의 log-likelihood로 나타내면 다음과 같다.
$$ L = \log \left[ \prod^n_{i=1} L_i \right] = \sum^n_{i=1} \log{{\hat{p}_i} ^ {p_i}} = \sum^n_{i=1} {p_i}\log{\hat{p}_i} $$
아까와 똑같이 $L$에 $-$를 붙여서 minimization 문제로 바꾸면 Cross Entropy가 된다.
'인공지능' 카테고리의 다른 글
ML-Agents Crawler 환경을 stable-baselines3로 학습하기 (1) | 2024.09.10 |
---|---|
Backpropagation Vectorization (1) | 2024.03.23 |
CS234 Notes - Lecture 2 번역본 (0) | 2023.11.17 |
RNN - Recurrent neural network (0) | 2023.09.11 |
머신러닝에 쓰이는 정보이론 (0) | 2023.09.04 |