loss.backward() の内部で何が起きているのか? PyTorch の自動微分エンジンを自作して理解する
What loss.backward() actually does

ニューラルネットワークの訓練でおなじみの loss.backward()。しかし、その内部で何が起きているのかを正確に説明できる人は少ないでしょう。この記事では、著者が Karpathy の micrograd に触発されて書いたスカラー値ベースの自動微分エンジン microcrad を例に、逆伝播の核心メカニズムを解説します。計算グラフがどのように構築され、逆順トポロジカル順序で勾配が伝播するのか、C 言語のコードと数式で丁寧に紐解きます。微分の連鎖律、局所微分、フォワードモードとバックワードモードの計算コストの違いなど、基礎からしっかり理解できます。
この非対称性こそが、ニューラルネットワークが訓練可能である理由のすべてです。