普通に微分計算(算術微分)してもいいんだけど、それだと計算効率が悪くて恐ろしく遅いので使い物にならないから、効率的かつ高速に微分の計算ができるように工夫した方法が「誤差逆伝播法」なんだということですかね。試しにnumpy+算術微分だけで学習させてみよう勾配が計算できたら、後は学習率をかけて引いていくだけです。疑似コードで書くとこんな感じ。gradこれでパーツがそろったので、一度、tensorflowなどのフレームワークを使わず、かつ、誤差逆伝播法(バックブロゲーション)も使わずに、普通の微分を使った簡単なニューラルネットワークの学習をやってみようと思います。これで、ちゃんと学習できるなら「学習の肝は微分らしい」というのが、納得できますからね。Pythonのソース全文をのせて、後で補足説明します。クロスエントロピーです。