今回は、まず、人工知能(3セメ)で学んだロジスティックモデル(2階層のニューラルネットワーク)を簡単に復習し、モデルのパラメータの勾配を手計算で求めます。
そして、ソフトマックス、交差エントロピー、事後確率および最急降下法のメソッドを持つ2階層のニューラルネットワークのクラスを実装し、人工データを用いてモデルの学習と評価を行います。
参考書
本ブログの内容の詳細は、「機械学習スタートアップシリーズ ゼロからつくるPython機械学習プログラミング入門」に掲載されています。
機械学習に必要な数学の復習から、機械学習のアルゴリズムの導出およびPythonの基本ライブラリのみを用いた実装方法まで学びたい方は、本書籍をご活用ください。
bookclub.kodansha.co.jp
【Pythonによる機械学習2(ロジスティック回帰 1/4)の目次】
ロジスティックモデル(2階層のニューラルネットワーク)
カテゴリの事後確率p(y=c|x)を用いて、入力データxがどのカテゴリに属するかを判別する確率的な分類方法を考えます。このカテゴリの事後確率をロジスティックモデルp(y=c|x)を用いて近似します。ロジスティックモデルは、以下のように、パラメータWとbとを用いた線形モデルをソフトマックスで確率に変換した形になっています。
ロジスティックモデルの処理の流れをグラフで表現すると以下の2階層のニューラルネットワークになります。
ロジスティック回帰
事後確率をよく近似するためにはロジスティックモデルのパラメータwとbを調整する必要があります。学習データを用いて、交差エントロピーを最小化するようにモデルパラメータを決定します。ロジスティックシグモイド関数で表される確率値を回帰していることから、ロジスティック回帰と呼ばれています。
交差エントロピーの最小化には、最急降下法を用います。
演習1
最急降下法を用いるためには、交差エントロピーのWとbに関する偏微分が必要になります。
参考動画:
youtu.be
最急降下法によるモデルパラメータの更新は、チェインルールにより線形和s_cに関する偏微分を利用して、交差エントロピー損失関数から入力データに向かって処理が行われることから、back-propagation(日本語では、「誤差逆伝播」)と呼ばれています。