딥러닝/기본개념

손실함수(Loss Function)

배우고 성장하는 청년 블로그 2021. 1. 25. 14:04

정의:

 - 손실함수란 정답과 얼마나 차이가 있는 지 계산하는 함수이다.

 - 또한 정답으로 갈려면 얼마나 비용이 드는 지에 대한 값으로 해석할 수도 있어서 "비용함수(Cost function)" 불린다.

 

특징:

 - 손실함수가 큰 값이면 정답과의 차이가 크다는 의미이기 때문에 줄여야 한다.

 

종류:

- 평균제곱오차(Mean Squared Error, MSE), 교차엔트로피오차(Cross Entropy Error, CEE)


평균제곱오차(MSE):

 

특징:

 - 정답과 예측값의 차이를 제곱한 것들을 평균낸 값

 - 주로 예측값이나 정답이 '값'인 경우 사용 (raw value)

 

수식:

 

평균제곱오차

소스코드:

import numpy as np
import random
 
def Mean_Squared_Error(y, y_hat):
    y = np.array(y)
    y_hat = np.array(y_hat)
    error = y - y_hat
    return np.mean(error * error.T)
 
# 랜덤값 10
= np.array([random.random() for i in range(10)])
y_hat = np.array([random.random() for i in range(10)])
 
# 반올림
= np.round(y, 2)
y_hat = np.round(y_hat, 2)
 
# 출력
print('y: ', y)
print('y_hat: ', y_hat)
print('MSE: ', Mean_Squared_Error(y, y_hat))
 
# 출력값
y:  [0.52 0.05 0.22 0.14 0.78 0.82 0.46 0.07 0.05 0.56]
y_hat:  [0.63 0.49 0.6  0.36 0.89 0.34 0.52 0.99 0.03 0.02]
MSE:  0.17829999999999996
cs