覚え書きブログ

Pythonによる機械学習3(ニューラルネット 1/3)

前回のロジスティック回帰の構成を2階層のニューラルネットワークと解釈できました。今回は、中間層を導入し非線形な表現が可能な3階層のニューラルネットワークを実装していきます。

Pythonによる機械学習3(ニューラルネット 1/3)の目次】

3階層のニューラルネットワーク

ロジスティック回帰の入力層と出力層の間に、入力層からの線形和 \textbf{s}^1活性化関数をかけた値を格納する中間層(隠れ層とも呼ばれます)を導入したグラフを、3階層のニューラルネットワークと呼びます。
f:id:hirotaka_hachiya:20181124003201p:plain

ロジスティック回帰と同様に、3階層のニューラルネットワークにおいても、back-propagationにより線形和 s_c^2 s_m^1を再利用することにより効率よくモデルパラメータを更新します。
f:id:hirotaka_hachiya:20181124003439p:plain
f:id:hirotaka_hachiya:20181124003840p:plain

演習1

入力と中間層の間パラメータ \textbf{w}^1と、中間と出力層の間パラメータ \textbf{w}^2に関する交差エントロピーの勾配を求めてみましょう。以下は、 \textbf{w}^1に関する偏微分を求めるための手順です。なお、 \textbf{w}^2に関する偏微分は、Pythonによる機械学習2(ロジスティック回帰 1/3)の演習1で求めた式と同じ形にります(ただし、 \textbf{x} \textbf{h}に置き換わる)。
f:id:hirotaka_hachiya:20181124182920p:plain

f:id:hirotaka_hachiya:20181129141657p:plain

Pythonによる機械学習3(ニューラルネット 2/3)>>