0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ゼロからのディープラーニング(コスト計算編)

Posted at

ゼロからのディープラーニング(フォワードプロパゲーション編)の続きです。

前回はフォワードプロパゲーションを実装して入力値が$1$である確率$AL$を導くところまでを行いました。今回はモデルの精度向上のため、予測値と正解ラベルの誤差を導きだすところまでを実装します。

コスト

本DNNは入力された画像が猫であるか否かを予測するものですので、コスト関数にはCross-entropy誤差を使います。

Cross-entropy誤差

以下の式によって表されます。$AL$はYが1である確率を予測したもの、$Y$は正解ラベルです。
$$L(AL, Y) = \sum^m_{i=1}{(-Ylog(AL) - (1-Y)log(1-A))}$$

$Y=1$のとき$-log(AL)$を返し、$Y=0$のとき$log(1-AL)$を返します。以下のグラフから、予測値と正解が離れれば離れるほどコストが大きくなることがわかります。

cross_entropy_cost_y_0.png

cross_entropy_cost_y_1.png

関数にすると以下です。

def compute_cost(AL, Y):
    m = Y.shape[1]
    logprobs = np.multiply(Y, np.log(AL)) + np.multiply(1-Y, np.log(1-AL))
    cost = -1/m * np.sum(logprobs)
    return cost

ベクトル化された予測値$AL$と正解ラベル$Y$を渡すことでコストを返します。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?