覚え書きブログ

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

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

参考書

本ブログの内容の詳細は、「機械学習スタートアップシリーズ ゼロからつくるPython機械学習プログラミング入門」に掲載されています。
機械学習に必要な数学の復習から、機械学習のアルゴリズムの導出およびPythonの基本ライブラリのみを用いた実装方法まで学びたい方は、本書籍をご活用ください。
bookclub.kodansha.co.jp

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

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

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

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

演習1

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

ヒント:3の微分の式は、分母が二乗の形になります。分母が二乗の場合の部分分数分解を用いて2つの項に分解してみると、それぞれの項にシグモイド関数が出てくるのでhに置き換えてみましょう。

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