신경망을 이용하여 이진분류기 하나를 만들려고 합니다. 고양이와 개를 분류하는 이진분류기를 만들 것입니다. 개와 고양이 사진을 모으고 개는 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 라고 부릅니다.
'Tips' 카테고리의 다른 글
오토인코더는 어디에 사용되나 (0) | 2023.11.16 |
---|---|
대표적인 5가지 생성형 모델 요약 (GAN, VAE, Flow-based Model, Diffusion Model, Autogressive model) (0) | 2023.11.15 |
MLE 와 MAP 가 뭔가요? (최대우도추정과 최대사후확률추정) (0) | 2023.10.25 |
베이즈 추론이란 무엇인가 (1) | 2023.10.20 |
시그모이드 함수의 미분 역전파알고리즘으로 풀어보기 (0) | 2023.10.14 |
댓글