손실 함수(혹은 목적 함수, 최적화 점수 함수(optimization score function))는 모델을 컴파일하기 위해 필요한 두 개의 파라미터 중 하나 입니다:
model.compile(loss='mean_squared_error', optimizer='sgd')
from keras import losses
model.compile(loss=losses.mean_squared_error, optimizer='sgd')
존재하는 손실 함수의 이름을 넘길 수도 있고 다음과 같이 인수 두 개를 받아서 각 데이터포인트 마다 스칼라값 하나를 반환하도록 미리 정의되어 있는 TensorFlow/Theano의 함수를 넘길 수도 있습니다:
실제의 최적화된 객체가 모든 데이터포인트에 걸친 출력 배열의 평균입니다.
이러한 함수에 대한 몇 가지 예제를 확인하려면 다음을 확인하세요: losses source.
mean_squared_error(y_true, y_pred)
mean_absolute_error(y_true, y_pred)
mean_absolute_percentage_error(y_true, y_pred)
mean_squared_logarithmic_error(y_true, y_pred)
squared_hinge(y_true, y_pred)
hinge(y_true, y_pred)
categorical_hinge(y_true, y_pred)
logcosh(y_true, y_pred)
categorical_crossentropy(y_true, y_pred)
Note
<aside>
💡 categorical_crossentropy
손실을 사용할 때, 목표는 범주화 형식이어야 합니다(예를 들어 10개의 클래스가 있다면 각 샘플의 목표는 샘플 클래스에 대응되는 인덱스만 1이고 나머지는 0인 10차원의 벡터이어야 합니다). integer targets를 categorical targets로 전환하기 위해서 Keras 도구인 to_categorical
를 사용할 수 있습니다:
</aside>
from keras.utils.np_utils import to_categorical
categorical_labels = to_categorical(int_labels, num_classes=None)
sparse_categorical_crossentropy(y_true, y_pred)
binary_crossentropy(y_true, y_pred)
kullback_leibler_divergence(y_true, y_pred)
poisson(y_true, y_pred)
cosine_proximity(y_true, y_pred)
이 문서는 Keras의 Losses을 번역한 것입니다.