본문 바로가기
Tips

이진분류기의 손실함수 (binary cross entropy) 쉽게 이해하기

by bigpicture 2023. 11. 1.
반응형

신경망을 이용하여 이진분류기 하나를 만들려고 합니다. 고양이와 개를 분류하는 이진분류기를 만들 것입니다. 개와 고양이 사진을 모으고 개는 1, 고양이는 0이라는 label을 설정합니다. 

신경망의 출력은 0과 1사이의 값 하나를 출력할 것입니다. 출력값을 p로 놓고, 개일 확률이라고 정의 하겠습니다. 

이제 손실함수를 정의합시다. 손실함수는 아래와 같은 두가지 조건을 만족해야 합니다. 

1) 참값 y가 1일 경우, p는 1에 가까울 수록 손실이 작고 0에 가까울 수록 손실이 커야함
2) 참값 y가 0일 경우, p는 1에 가까울 수록 손실이 크고 0에 가까울 수록 손실이 작아야함

다양한 형태의 손실함수를 정의할 수 있을겁니다. 이진분류에서 주로 사용하는 손실함수는 cross entropy 입니다. 원리를 설명하겠습니다. 

참값이 1인 경우 손실은 아래와 같이 표현할 수 있습니다. 

$-\log p$

p가 1에 가까울 수록 손실이 0이 되고, 0에 가까울 수록 손실은 무한대가 됩니다. 

참값이 0인 경우 손실함수는 아래와 같이 표현할 수 있습니다. 

$-\log(1-p)$ 

p가 0에 가까울 수록 손실이 0이 되고, 1에 가까울 수록 손실이 무한대가 됩니다. 

두 손실함수를 하나의 식으로 표현하면 아래와 같습니다. 

$loss=-\left ( y\log p + (1-y)\log (1-p) \right )$

데이터가 여러개일 경우 loss들 의 합은 아래와 같습니다. 

$loss=-\sum_{i=1}^{N}\left ( y_{i}\log p_{i} + (1-y_{i})\log (1-p_{i}) \right )$

각 항이 cross entropy 형태를 띄기 때문에, 위 식을 binary cross entropy 라고 부릅니다. 

반응형

댓글