손실(loss) 함수 종류

손실 함수

  • 손실 함수란?
    손실 함수는 값을 예측하려할 때 데이터에대한 예측값과 실제의 값을 비교하는 함수로 모델을 훈련시킬 때 오류를 최소화 시키기 위해 사용되는 함수이다.
    모델의 성능을 올리기 위해 loss 함수를 임의적으로 변형할 수 있다.

  • 딥러닝에서 손실 함수는 여러가지 말로 표현됩니다.

비용 함수(cost function) = 손실 함수(loss function) = 오차 함수(error function) = 목적 함수(objective function)

Mean_Squared_error

  • 예측한 값과 실제 값 사이의 평균 제곱 오차를 정의한다. 공식이 매우 간단하며, 차가 커질수록 제곱 연산으로 인해서 값이 더욱 뚜렷해진다.
    그리고 제곱으로 인해서 오차가 양수이든 음수이든 누적 값을 증가시킨다.
1
2
3
from sklearn.metrics import mean_squared_error

MSE = mean_squared_error(y, y_pred)

RMSE(Root Mean Squared error)

  • Mean_Squared_error에 Root를 씌운 값으로 왜곡을 줄여준다.
1
2
3
4
from sklearn.metrics import mean_squared_error

RMSE = mean_squared_error(y, y_pred)**0.5
RMSE = mean_squared_error(y, y_pred, squared=False)

RMSLE(Root mean squared Logarithmic error)

  • 중간에 로그를 취해서 편차를 구함
1
2
3
4
from sklearn.metrics import mean_squared_log_error

MSLE = mean_squared_log_error(y, y_pred)
RMSLE = mean_squared_log_error(y, y_pred)**0.5

Binary Crossentropy

  • 이진 분류(0또는 1분류)를 할 경우 사용.

sparse_categorical_crossentropy vs categorical_crossentropy

  • 모두 다중 분류 손실 함수이다.

  • categorical_crossentropy는 다중 분류 손실 함수로 one_hot_encoding 클래스이다

  • sparse_categorical_crossentropy는 int_type 클래스이다.

  • 결론적으로, 원핫백터인 경우 categorical_crossentropy

    int인 경우에는 sparse_categorical_crossentropy를 사용하면 된다.

Author

InhwanCho

Posted on

2022-12-20

Updated on

2022-12-20

Licensed under

Comments