タダです。
今回は3章のニューラルネットワークの勉強まとめです。 ※記事は理解ができるたびに何度もアップデートしていこうと思います。 www.oreilly.co.jp
目次
なお、各章の内容は次の通りです。
- 1章 Python入門
- 2章 パーセプトロン
- 3章 ニューラルネットワーク
- 4章 ニューラルネットワークの学習
- 5章 誤差逆伝播法
- 6章 学習に関するテクニック
- 7章 畳み込みニューラルネットワーク
- 8章 ディープラーニング
3章は広範な内容(個人的に)になっており、一回でまとめられきれそうになかったので、段階的にまとめます。
3.4
- ニューラルネットワークの計算は行列の計算(内積)としてまとめられる
- 第一層目の重みは(1)で表現する
- 恒等関数とは、出力層の活性化関数として利用される(入力をそのまま出力する)
- init_network()関数で重みとバイアスの初期化を行い、それらをディクショナリ型の変数networkに格納
- forward関数では、入力信号から出力へと変換されるプロセスがまとめて実装されている
3.5
- ニューラルネットワークは分類問題(データがどのクラスに属するか)と回帰問題(ある入力データから連続的な数値の予測を行う)の両方に用いることができる
- 分類問題ではソフトマック数関数を、回帰問題では恒等関数を使う
- ソフトマックス関数の実装では、指定関数の計算を行うがその際指定関数の値が容易に大きな値になってしまう(オーバーフロー)から注意
- オーバーフローの対策としては、入力信号の中で最大の値を用いることが一般的
- 出力層の数は解くべき問題により適宜変更する
3.6
- 手書き数字画像の分類を学ぶ(すでに学習は完了している)
- 推論処理(forward propagation)だけを実装する
- データセットは、MNISTという手書き数字の画像セット
- MNISTデータセットは、0から9までの数字画像から構成される
- 訓練画像が6万枚、テスト画像が1万枚よういされ、学習と推論を行う
3.7
- ニューラルネットワークの順方向の伝搬の解説を行った
- ニューロンのへ信号を送信する際に、信号を変化させる活性化関数に大きな違いがある
- シグモイド関数、ステップ関数など
- 機械学習の問題は、回帰問題と分類問題に大別できる
- 出力層で使用する活性化関数は、回帰問題では恒等関数、分類問題ではソフトマックス関数を利用する
- 分類問題では出力層のニューロンの数を分類するクラス数に設定する
- 入力データのまとまりをバッチといい、バッチ単位で推論処理を行うことで計算を高速にできる
3章は何度も読み返そうと思います。。 次からは4章になります。