交差エントロピー誤差(P89)等、完全に数式の背景を理解できない部分もあったがなんとかニューラルネットの勾配(4.2.2 P109)まで読み進めた。で、、Pythonの実装で全く理解できない箇所に出くわした。それは、、P111の以下の実装 def f(W): return net.loss(x,t) dW = numerical_gradient(f, net.W)まず分からないのは、、def f(W)で、引数Wの関数fを定義するのだけど、関数内では変数xとtを使っている(tは教師データで、xは認識対象の入力データ)。普通に実行すると、xとtは不定エラーになるのでは?と思った。この実装の意図は、関数fが実行する時点で関数f外ですでに定義されていることを前提にしており、グローバル変数のx(入力データ)とt(教師データ)を関数の外部に対して参照するというものであった。 この実装だと、関数の実行