end0tknr's kipple - web写経開発

太宰府天満宮の狛犬って、妙にカワイイ

ニューラルネットワークにおける誤差逆伝播法を計算グラフと合成関数の微分で理解する

「ゼロから作るDeep Learning ① (Pythonで学ぶディープラーニングの理論と実装)」 p.129~132の写経です。

基本は、上流からの値と偏微分の乗算

まず、 \large{ y = f(x) }を計算グラフで表すと、下図の通りです。

次に出力値であるEからの逆伝播は、偏微分との乗算で得られる為、 朱書きのようになります。

<sodipodi:namedview id="namedview371" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:showpageshadow="2" inkscape:pageopacity="0.0" inkscape:pagecheckerboard="0" inkscape:deskcolor="#d1d1d1" inkscape:document-units="mm" showgrid="false" inkscape:zoom="2.5680429" inkscape:cx="308.99016" inkscape:cy="151.08782" inkscape:window-width="2207" inkscape:window-height="1333" inkscape:window-x="2767" inkscape:window-y="150" inkscape:window-maximized="0" inkscape:current-layer="g927" /> f y x f (x) y = = E E y x

応用例?  合成関数での逆電波

今度は、[tex: \large{z=(x+y)2}]の場合を考えます。 この式は、下図の①→②のような合成関数へ置き換えることができますので、 下図のような計算グラフで表すことができます。

逆伝播は、上流の値と、偏微分の乗算で得られますので、 下図の朱書きのようになります。