評価関数の利用方法

評価関数はモデルの性能を測るために使われます. 次のコードのように,モデルをコンパイルする際に metrics パラメータとして評価関数を渡して指定します.

model.compile(loss='mean_squared_error',
              optimizer='sgd',
              metrics=['mae', 'acc'])
from keras import metrics

model.compile(loss='mean_squared_error',
              optimizer='sgd',
              metrics=[metrics.mae, metrics.categorical_accuracy])

評価関数は損失関数とよく似ていますが,評価結果の値が訓練に直接使われることはありません.

渡す metrics パラメータには既存の評価関数の名前を引数に与えるか, 自分で作った評価関数を渡す事ができます(カスタマイズ を参照してください).

引数

  • y_true: 真のラベル.Theano/TensorFlowのテンソル
  • y_pred: 予測値.y_trueと同じshapeのTheano/TensorFlowのテンソル

戻り値

全データ点の平均値を表すスカラ.


利用可能な評価関数

binary_accuracy

binary_accuracy(y_true, y_pred)

categorical_accuracy

categorical_accuracy(y_true, y_pred)

sparse_categorical_accuracy

sparse_categorical_accuracy(y_true, y_pred)

top_k_categorical_accuracy

top_k_categorical_accuracy(y_true, y_pred, k=5)

カスタマイズ

(y_true, y_pred) を引数とし,各データ点に対してスカラを返す関数を評価関数として利用できます:

  • y_true: 正解ラベル.Theano/TensorFlow テンソル
  • y_pred: 予測.y_trueと同じ形状のTheano/TensorFlow テンソル
import keras.backend as K

def mean_pred(y_true, y_pred):
    return K.mean(y_pred)

model.compile(optimizer='rmsprop',
              loss='binary_crossentropy',
              metrics=['accuracy', mean_pred])