さて、前回 からの続きです。

機械学習講座のまとめで ロジスティック回帰とシグモイド関数 こんなまとめをしました。

ニューラルネットワークの仕組みを理解しやすくする為に、計算グラフと微分(連鎖律)を使って最急降下法を視覚的に理解します。

ロジスティック回帰 (Logistic Regression)のおさらい

機械学習講座で学んだパラメータ $\theta$ は重さ $w$ に、対数 $log$ を利用した分類判定は損失関数 $\mathcal{L}(a,y)$ にまとめています。

$$z = {W^T}{x}+b\\ \hat{y} = a = \sigma(g)\\ \mathcal{L}(a,y) = - (y\ log(a) + (1-y)log(1 - a))$$

ニューラルネットワークで使われる用語に置き換えて考えてみるという事ですね。さて、この最急降下法を計算グラフで考えてきます。

最急降下法(Gradient descent)

特徴量に重さを掛けたものにバイアスを足し、シグモイド関数に代入します。結果とラベルとの誤差を損失関数とし、最小値を求めます。

損失関数の最小値を得るため、微分を使いますが、前回みた様に「連鎖律の原理」を利用することで計算を簡単にします。

ある関数が合成関数で表される場合、その合成関数の微分は、合成関数を構成するそれぞれの関数の微分の積によって表すことが出来る

これにより、微分 $\frac{dJ}{dz}$ (省略すると $dz$)は以下の様になります。

$$
dz = a-y
$$

計算のリソースをこの様にして削減します。

目的関数(Cost function)の最小値を求める

画像引用:Neural networks and Deep learning - Coursera

トレーニングセット $(x^{(i)},y^{(i)})$ に対する目的関数は $J(w,b)$ は上記のように表せます。

目的関数の最小値を求めるため重さ $dw^{(i)}$ を更新します。上の式をまとめると以下の様になります。

$$
dw_1= \frac{dJ}{dw_1}
$$

最急降下法に代入します。

$$w_1 := w_1-\alpha dw_1\\ w_2 := w_2-\alpha dw_2\\ ...\\ b := b-\alpha db$$

まとめ

今回は計算グラフと連鎖律を使ってロジスティック回帰の最急降下法の仕組みをまとめてみました。

次回はいよいよニューラルネットワークの誤差逆伝播法の詳細をみていきたいと思います。

参考にさせて頂きました

マンガでわかる微分積分 - サイエンス・アイ新書

ゼロから作るDeep Learning - O’REILLYジャパン