はじめに
O'REILLYから出版されている「ゼロから作るDeepLearning」を読んで、自分なりに纏めた内容です。
書籍には、PythonでDeepLearningを作成する手順や各種関数の説明などがありますが、主に理論寄りの内容を書いていきます。
活性化関数について
DeepLearningでは、複数の層からなるニューラルネットワークを形成し、入力層から出力層へ伝播する際に下図のように計算されます。
\begin{eqnarray}
a=b+w_{1}x_{1}+w_{2}x_{2}
\end{eqnarray}
\begin{eqnarray}
y=h\left( a\right)
\end{eqnarray}
[補足]
$ b $ : バイアス
$ w_{1} $ : $ x_{1} $の重み
$ w_{2} $ : $ x_{2} $の重み
上図の$ h\left( \right) $が活性化関数です。
活性化関数の例
シグモイド関数
\begin{eqnarray}
h\left( x\right)=\dfrac {1}{1+\exp \left( -x\right) }
\end{eqnarray}
ステップ関数
\begin{eqnarray}
h\left( x\right) =\begin{cases}1\left( x >0\right) \\
0\left( x\leqq 0\right) \end{cases}
\end{eqnarray}
ReLU関数
\begin{eqnarray}
h\left( x\right) =\begin{cases}x\left( x >0\right) \\
0\left( x\leqq 0\right) \end{cases}
\end{eqnarray}
出力層の設計
出力層の活性化関数($ \sigma \left( \right) $とする)を変更することで、分類問題や回帰問題に使用できます。
- 分類問題:データがどの分類に属するかを判定(0-9の手書き画像から、その画像の数値を判定)
- 回帰問題:入力データから数値の予測(例:写真から値段や大きさを予測)
出力層の関数
ソフトマックス関数
\begin{eqnarray}
y_{k}=\dfrac {\exp \left( a_{k}\right) }{\sum ^{n}_{i=1}\exp \left( a_{i}\right) }
\end{eqnarray}
分類問題で使用されるよう。
ソフトマックス関数の特徴
ソフトマックス関数の出力は0から1.0までの値になります。つまり、出力値は確率として解釈することが出来る。