#4章 ニューラルネットワークの学習
##学習アルゴリズムの実装
118ページのサンプルプログラムに誤植?があったので、書き残し
import numpy as np
from dataset.mnist import load_mnist
from two_layer_net import TwoLayerNet
と書いてあるが、datasetが見つかりません
エラーが出た。
datasetフォルダは親フォルダにあるので、親フォルダへのアクセスが必要になる。
mnistデータへのアクセスが登場したページ(73ページ)を参考にして書き直すと以下の通り。
import numpy as np
import sys, os
sys.path.append(os.pardir)
from dataset.mnist import load_mnist
from two_layer_net import TwoLayerNet
この変更で通すことができた。
同サンプルプログラムの中のnp.random.choice(a, b)
は初めて出てきた気がする。
動作は、0~(a-1)までの数からb個をランダムに取り出す。
なので、
batch_mask = np.random.choice(train_size, batch_size)
でやっているのは、0~783の中からランダムに100個を取り出して、1次元のndarrayを返す
。
for key in ('W1', 'b1', 'W2', 'b2'):
これも一瞬何やっているのかよくわからなかったが、辞書型でforループしているだけ。
すなわち、W1、b1、W2、b2を順に呼び出して処理しているだけである。
##過学習の確認方法
学習用のデータの認識精度と確認用のデータの認識精度を比べる。
両方描画してみて、グラフの形に違いがなければ過学習はしていない。(121,122ページ)