Binary Cross Entropy 도함수 구하기

Yelim Kim·2023년 7월 12일

Machine_Learning

목록 보기
32/44
post-thumbnail

저번 글에서 배웠던

J=y⋅−log(y^)+(1−y)⋅−log(1−y^)J=y\cdot -log(\hat{y})+(1-y)\cdot-log(1-\hat{y})

라는 Loss function이 있었다.
이제 이 함수를 살짝 고쳐보자. 마이너스가 많으니 앞으로 뺀다!

J=−[y⋅log(y^)+(1−y)⋅log(1−y^)]J=-[y\cdot log(\hat{y})+(1-y)\cdot log(1-\hat{y})]

이 함수를 y^\hat{y}로 미분하는 방법을 배워보자.

수식이 많더라도 중요한 내용이니 하나하나 짚어보면서 외우도록 노력하자!

  1. 미분을 씌운다.
∂J∂y^=∂∂y^[−[y⋅log(y^)+(1−y)⋅log(1−y^)]]\frac{\partial J}{\partial\hat{y}}=\frac{\partial}{\partial\hat{y}} [-[y\cdot log(\hat{y})+(1-y)\cdot log(1-\hat{y})]]
  1. 마이너스를 앞으로 빼준다.
∂J∂y^=−∂∂y^[y⋅log(y^)+(1−y)⋅log(1−y^)]\frac{\partial J}{\partial\hat{y}}=-\frac{\partial}{\partial\hat{y}} [y\cdot log(\hat{y})+(1-y)\cdot log(1-\hat{y})]
  1. additivity로 인해 ∂∂y^\frac{\partial}{\partial\hat{y}}를 모든 항으로 전개(?)해준다.
∂J∂y^=−[∂∂y^[y⋅log(y^)]+∂∂y^[(1−y)⋅log(1−y^)]]\frac{\partial J}{\partial\hat{y}}=-[\frac{\partial}{\partial\hat{y}} [y\cdot log(\hat{y})]+\frac{\partial}{\partial\hat{y}}[(1-y)\cdot log(1-\hat{y})]]
  1. 2번과 같은 이유로, 우리는 y^\hat{y}에 대해 미분하기 때문에 y^\hat{y}와 관련 없는 항들은 앞으로 빠질 수 있다.
∂J∂y^=−[y⋅∂∂y^[log(y^)]+(1−y)⋅∂∂y^[log(1−y^)]]\frac{\partial J}{\partial\hat{y}}=-[y\cdot \frac{\partial}{\partial\hat{y}} [ log(\hat{y})]+(1-y)\cdot\frac{\partial}{\partial\hat{y}}[log(1-\hat{y})]]
  1. Chain Rule에 의해,

    log(x)log(x)를 xx에 대해 미분하면 1x\frac{1}{x}
    f(g(x))f(g(x))를 xx에 대해 미분하면 f′(g(x))g′(x)f'(g(x))g'(x)

∂J∂y^=−[yy^+(1−y)⋅11−y^⋅∂∂y^[1−y^]\frac{\partial J}{\partial\hat{y}}=-[\frac{y}{\hat{y}}+(1-y)\cdot\frac{1}{1-\hat{y}}\cdot\frac{\partial}{\partial\hat{y}} [1-\hat{y}]
  1. 마지막 ∂∂y^[1−y^]\frac{\partial}{\partial\hat{y}} [1-\hat{y}]는 그냥 뒤집어 주면 되니까, 분의 1 해서 계산하면
1−y1−y^−yy^\frac{1-y}{1-\hat{y}}-\frac{y}{\hat{y}}
  1. 통분해서 계산한다.
y^−yy^−y+yy^y^(1−y^)=y^−yy^(1−y^)\frac{\hat{y}-y\hat{y}-y+y\hat{y}}{\hat{y}(1-\hat{y})}=\frac{\hat{y}-y}{\hat{y}(1-\hat{y})}

!!!! 끝났따.
정리해보자.

∂∂y^[BCE(y^,y)]=y^−yy^(1−y^)\frac{\partial }{\partial \hat{y}}[BCE(\hat{y},y)]=\frac{\hat{y}-y}{\hat{y}(1-\hat{y})}

이렇게 Binary Cross Entropy의 도함수를 구하는 방법을 알아봤다.

다음 글에서는 backpropagation에 대해서 자세히 배워보자.

profile
뜬금없지만 세계여행이 꿈입니다.

0개의 댓글