Python
機械学習

ゼロから作るDeep Learning(4章)

More than 1 year has passed since last update.

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ページ)