【Python】交差エントロピー誤差関数の実装【目的関数】
学習モデルの実装では誤差を求める目的関数を実装する必要がある。
そこで、今回は2クラス交差エントロピー誤差関数と多クラス交差エントロピー誤差関数の実装をまとめて紹介する。
2クラス交差エントロピー誤差関数の実装
2クラス交差エントロピー誤差関数は以下の式で表される。
式の中にlogがあり、中身が0になるのを防ぐために以下のようにnp_log関数を定義しておく。
# logの中身が0になるのを防ぐ
def np_log(x):
return np.log(np.clip(a=x, a_min=1e-10, a_max=1e+10))
そして、2クラス交差エントロピー誤差関数は以下のように実装することができる。
# y : 教師ラベル, shape=(batch_size, 出力の次元数)
# y_hat: 予測ラベル
E = (- y * np_log(y_hat) - (1 - y) * np_log(1 - y_hat)).mean()
多クラス交差エントロピー誤差関数の実装
多クラス交差エントロピー誤差関数は以下の式で表される。
そして、多クラス交差エントロピー誤差関数は以下のように実装することができる。
# y : 教師ラベル, shape=(batch_size, 出力の次元数)
# y_hat: 予測ラベル
E = (- y * np_log(y_hat)).sum(axis=1).mean()
人気記事
人気記事はこちら。
最新記事
最新記事はこちら。