ニューラルネットワークの学習
次に、ニューラルネットワークの学習に移ります。
損失関数
2乗和誤差
\begin{eqnarray}
E=\dfrac {1}{2}\sum _{k}\left( y_{k}-t_{k}\right) ^{2}
\end{eqnarray}
-
$ y_{k} $ : ニューラルネットワークの出力(ソフトマックス関数などによる出力)
-
$ t_{k} $ : 教師データ
-
$ k $ : データの次元数
例:y = [0.1, 0.05, 0.6, 0.0, 0.05, 0.1, 0.0, 0.1, 0.0, 0.0]
t = [0, 0, 1, 0, 0, 0, 0, 0, 0, 0] ←三番目の要素が正解の場合
E=0.097500000
交差エントロピー
\begin{eqnarray}
E=-\sum _{k}t_{k}\log y_{k}
\end{eqnarray}
数値微分
損失関数を使用して、パラメータを最適化していく際に、偏微分を用います。
まずは微分の説明から。
微分
ある地点での変換量は下記式で求まります。
高校数学で$ y=x^{2}$が$ \dfrac {dy}{dx}=2x $に微分できると習ったかと思いますが、ここでは別の求め方をしています(解析的な微分と呼ぶそうです)。
\begin{eqnarray}
\dfrac {dt\left( x\right) }{dx}=\lim _{h\rightarrow 0}\dfrac {f\left( x+h\right) -f\left( x\right) }{h}
\end{eqnarray}
丸め誤差を考慮し、$ h=10^{-4} $程度の桁数が良いそうです。
ただ、hの値が限りなく0の近い訳ではないので、中心差分というのが有効だそうです。
中心差分とは$ \dfrac{f\left( x+h\right) - f\left( x-h\right)}{2} $になります。
偏微分
$ f\left( x_{0}-x_{1}\right) = x_{0}^{2} + x_{1}^{2} $というように、複数の変数がある場合、
1つを除く他の変数に値を固定し微分したものを偏微分といいます。
これにより、固定した値における傾きを知ることができます。
勾配
$ x_{0}, x_{1} $の両方のある地点での偏微分をまとめて次のように表記します。
\begin{eqnarray}
\left( \dfrac {\partial f}{\partial x_{0}}, \dfrac {\partial f}{\partial x_{0}}\right)
\end{eqnarray}
これをベクトルとして表記したものを勾配と呼びます。
$ f\left( x_{0},x_{1}\right) = x_{0}^{2} + x_{1}^{2}$の各地点の勾配を求めてみましょう。
勾配法
勾配方向へパラメータを調整し、最小値を求める方法が勾配法です。
\begin{eqnarray}
x_{0}=x_{1}-\eta \dfrac {\partial f}{\partial x_{0}}
\end{eqnarray}
\begin{eqnarray}
y_{0}=y_{1}-\eta \dfrac {\partial f}{\partial y_{0}}
\end{eqnarray}
$ \eta $は学習率を表します。つまり、偏微分に学習率を掛け合わせた値で補正させます。
学習率を0.01として、$ (-3.0, 4.0) $から100回試行した場合、$ (-6.11110793e^{-10}, 8.14814391e^{-10}) $となり、限りなく$ (0, 0) $になります。
学習率が大きすぎたり、小さすぎたりすると、期待した結果になりづらい可能性があります。
学習率のようなパラメータはハイパーパラメータと言い、うまく学習する値を探す作業が必要になります。
ニューラルネットワークに対する勾配
勾配法をニューラルネットワークに適用する方法を考えます。
形状が$ 2\times 3 $の重み$ W $だけを持つニューラルネットワークがあり、損失関数を$ L $で表す場合、次のように表記できます。
\begin{eqnarray}
W=\begin{pmatrix}
w_{11}w_{21}w_{31} \\
w_{12}w_{22}w_{32}
\end{pmatrix}
\end{eqnarray}
\begin{eqnarray}
\dfrac {\partial L}{\partial W}=\begin{pmatrix}
\dfrac {\partial L}{\partial w_{11}} & \dfrac {\partial L}{\partial w_{21}} & \dfrac {\partial L}{\partial w_{31}} \\
\dfrac {\partial L}{\partial w_{12}} & \dfrac {\partial L}{\partial w_{22}} & \dfrac {\partial L}{\partial w_{32}}
\end{pmatrix}
\end{eqnarray}