コスト関数の選択は、タスクの性質やモデルの種類によって異なります。以下にいくつかの一般的なコスト関数とそのコード例を示します。
-
平均二乗誤差(Mean Squared Error, MSE): 平均二乗誤差は、回帰タスクでよく使用されるコスト関数です。以下はPythonでのMSEの計算例です。
import numpy as np def mean_squared_error(y_true, y_pred): return np.mean((y_true - y_pred) 2)
-
交差エントロピー誤差(Cross-Entropy Error): 交差エントロピー誤差は、分類タスクで一般的に使用されます。以下は二値分類の場合のコード例です。
import numpy as np def binary_cross_entropy(y_true, y_pred): epsilon = 1e-7 # ゼロ割を防ぐための微小な値 return -np.mean(y_true * np.log(y_pred + epsilon) + (1 - y_true) * np.log(1 - y_pred + epsilon))
-
ソフトマックスクロスエントロピー誤差(Softmax Cross-Entropy Error): ソフトマックスクロスエントロピー誤差は、多クラス分類タスクで一般的に使用されます。以下はクラス数がCの場合のコード例です。
import numpy as np def softmax_cross_entropy(y_true, y_pred): epsilon = 1e-7 # ゼロ割を防ぐための微小な値 y_pred = np.clip(y_pred, epsilon, 1 - epsilon) # 確率の範囲を制限する return -np.mean(np.sum(y_true * np.log(y_pred), axis=-1))
これらは一部の一般的なコスト関数の例であり、他にもさまざまな種類のコスト関数が存在します。コスト関数の選択は、特定の問題やモデルに最適なものを選ぶ必要があります。また、コスト関数の最小化には最適化手法(例: グラディエント降下法)を使用することが一般的です。