ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装では5章「誤差逆伝播法」において計算グラフを用いつつ、各ノードで“局所的な”偏導関数を求めて連鎖律でつないでいく解説がある。*1
この仕組みは実践Pytorch - Qiitaで torch.autograd.Function.backward
をオーバーライドするところで見られるように思う。
pytorch/function.py at 593bb145ceea548478f83fd820de44b95d375108 · pytorch/pytorch · GitHubが基底クラスの該当部分だろうか。
Keras についてはpython - Backward propagation in Keras? - Stack Overflowについては backward
を実装するといったことができなさそうだ。Automatic differentiation and gradient tape | TensorFlow Coreよく分からないけど、バックエンドの Tensorflow なりが自動微分でやってくれるからユーザーにはできることはない・・・ってことだろうか。
行動に抽象化されていて、全然下回りに仕組みが見えない・・・。
自動微分については自動微分を実装して理解する(前編) - Qiitaに記事があった。
また、deep-learning-v2-pytorch/Part 3 - Training Neural Networks (Exercises).ipynb at master · udacity/deep-learning-v2-pytorch · GitHubを眺めるとテンソルが記録されて、backpropagation用の関数がセットされる様子が見られる。
*1:これを誤差逆伝播法について再び考えてみる(4) - らんだむな記憶で具体的に見る。