저번 글에서 배웠던
J=y⋅−log(y^)+(1−y)⋅−log(1−y^)
라는 Loss function이 있었다.
이제 이 함수를 살짝 고쳐보자. 마이너스가 많으니 앞으로 뺀다!
J=−[y⋅log(y^)+(1−y)⋅log(1−y^)]
이 함수를 y^로 미분하는 방법을 배워보자.
수식이 많더라도 중요한 내용이니 하나하나 짚어보면서 외우도록 노력하자!
- 미분을 씌운다.
∂y^∂J=∂y^∂[−[y⋅log(y^)+(1−y)⋅log(1−y^)]]
- 마이너스를 앞으로 빼준다.
∂y^∂J=−∂y^∂[y⋅log(y^)+(1−y)⋅log(1−y^)]
- additivity로 인해 ∂y^∂를 모든 항으로 전개(?)해준다.
∂y^∂J=−[∂y^∂[y⋅log(y^)]+∂y^∂[(1−y)⋅log(1−y^)]]
- 2번과 같은 이유로, 우리는 y^에 대해 미분하기 때문에 y^와 관련 없는 항들은 앞으로 빠질 수 있다.
∂y^∂J=−[y⋅∂y^∂[log(y^)]+(1−y)⋅∂y^∂[log(1−y^)]]
- Chain Rule에 의해,
log(x)를 x에 대해 미분하면 x1
f(g(x))를 x에 대해 미분하면 f′(g(x))g′(x)
∂y^∂J=−[y^y+(1−y)⋅1−y^1⋅∂y^∂[1−y^]
- 마지막 ∂y^∂[1−y^]는 그냥 뒤집어 주면 되니까, 분의 1 해서 계산하면
1−y^1−y−y^y
- 통분해서 계산한다.
y^(1−y^)y^−yy^−y+yy^=y^(1−y^)y^−y
!!!! 끝났따.
정리해보자.
∂y^∂[BCE(y^,y)]=y^(1−y^)y^−y
이렇게 Binary Cross Entropy의 도함수를 구하는 방법을 알아봤다.
다음 글에서는 backpropagation에 대해서 자세히 배워보자.