▼ 下記ページを理解していること。
[Python] [1] 単純パーセプトロンの概念と実装サンプル
[Python] [2] 多層パーセプトロンの概念と実装サンプル
[Python] [3] ニューラルネットワークの活性化関数と実装サンプル
[Python] [4] 活性化関数の実装サンプルまとめ(ステップ / シグモイド …
[Python] [5] MNISTのダウンロード方法 (手書き数字画像セットを取込む)
[Python] [6] MNISTを使ったニューラルネットワークの推論処理と実装サンプル
[Python] [7] MNISTを使った推論バッチ処理の実装サンプル
[Python] [8] 損失関数 (2 乗和誤差、交差エントロピー誤差) と実装サンプル
[Python] [9] ミニバッチ学習 (交差エントロピー誤差) の実装サンプル
[Python] [10] 損失関数と数値微分(勾配)の実装サンプル
[Python] [11] 偏微分と勾配の実装サンプル
[Python] [12] 勾配降下法の実装サンプル
[Python] [13] 重みに対する損失関数の勾配法と実装サンプル
(1) 訓練データの抽出 (ミニバッチの決定)
訓練データの中からランダムに 100件程度(ある程度信頼性がある件数) 抽出した データ群 を ミニバッチ といい、以降の (2) ~ (4) では、この ミニバッチ 単位に 損失関数の結果 と 勾配 を求めるアルゴリズムになっている。
※ (1) の参考ページ
・[Python] [9] ミニバッチ学習 (交差エントロピー誤差) の実装サンプル >「ミニバッチ学習とは」
(2) 損失関数の結果取得
ニューラルネットワークの学習では、損失関数 という ニューラルネットワークの性能の悪さ表す指標 を基準にする。
損失関数 の有名どころでは 2 乗和誤差 と 交差エントロピー誤差 があるが、このシリーズでは、交差エントロピー誤差 にスポットを当てた実装サンプルを記載してる。
※ (2) の参考ページ
・[Python] [8] 損失関数 (2 乗和誤差、交差エントロピー誤差) と実装サンプル >「2. 乗和誤差」
・[Python] [8] 損失関数 (2 乗和誤差、交差エントロピー誤差) と実装サンプル >「4. 交差エントロピー誤差」
・[Python] [9] ミニバッチ学習 (交差エントロピー誤差) の実装サンプル >「5. 交差エントロピー誤差のミニバッチ学習 (Python実装サンプル)」
(3) 勾配の取得
損失関数 の結果が 最も小さい値となる重み となるように 自己探索(最適な重みパラメータを探す) していくことになる。
損失関数 の結果は、小さいほど正解に近づいている わけだが、もちろんそこで終わりではなく 今の結果より正解に近い パラメータ候補 (重み、バイアス) を決めてさらに正解に近づけていく必要がある。
そこで基準になるのが 重みパラメータの微分結果(勾配値)。
※ (3) の参考ページ
・[Python] [10] 損失関数と数値微分(勾配)の実装サンプル >「2. 損失関数と微分の関係」
・[Python] [10] 損失関数と数値微分(勾配)の実装サンプル >「3. 微分のおさらい」
・[Python] [10] 損失関数と数値微分(勾配)の実装サンプル >「4. 数値微分の関数定義 (Python実装サンプル)」
・[Python] [10] 損失関数と数値微分(勾配)の実装サンプル >「5. 数値微分の例 (Python実装サンプル)」
・[Python] [11] 偏微分と勾配の実装サンプル >「2. 偏微分のおさらい」
・[Python] [11] 偏微分と勾配の実装サンプル >「3. 偏微分のPython実装サンプル」
・[Python] [11] 偏微分と勾配の実装サンプル >「4. 勾配のPython実装サンプル」
・[Python] [13] 重みに対する損失関数の勾配法と実装サンプル >「2. 重みに対する勾配法とは」
・[Python] [13] 重みに対する損失関数の勾配法と実装サンプル >「3. 重みに対する勾配のPython実装サンプル」
(4) 重みパラメータの更新
重みパラメータを 勾配方向(より損失が少ない重みパラメータへ) へ微小量だけ更新する。
※ (4) の参考ページ
・[Python] [13] 重みに対する損失関数の勾配法と実装サンプル >「4. 実装サンプルの実行確認」
※ 勾配法の参考ページ
[Python] [12] 勾配降下法の実装サンプル >「2. 勾配法とは」
[Python] [12] 勾配降下法の実装サンプル >「3. 勾配降下法のPython実装サンプル」
[Python] [12] 勾配降下法の実装サンプル >「4. 勾配降下法の実装サンプル実行例」