【Python】交差エントロピー誤差関数の実装【目的関数】

スポンサーリンク

【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()

人気記事

人気記事はこちら。

CUDA、cuDNNのバージョンをターミナルで調べるコマンド
【Pytorch】テンソルの次元を追加・削除する方法【dim】
【Pytorch】テンソルを連結する方法(cat・stack)
【Python】Tensorflowをダウングレード・アップグレードするコマンド
【Protobuf】"TypeError: Descriptors cannot not be created directly."を解決する【solved】

最新記事

最新記事はこちら。

【イタリア】ピサの斜塔へ。中に入って頂上まで上り景色を見る。
【イタリア】サンタ・マリア・デル・フィオーレ大聖堂にある「最後の審判」、屋上から見る景色が良かった
【イタリア】ミケランジェロ広場から夜景を見る。ヴェッキオ橋も。
【イタリア】フィレンツェのフードコートで夕食。ビール・ワイン・海鮮フライなど
【Latex】コンパイルエラーが出た場合の解決方法。Tex Live Managerでインストール。
タイトルとURLをコピーしました