『ゼロから作るDeep Learning』を題材に、Pythonの動的計算グラフ(自動微分)の仕組みをRustで再実装しようとしたものです。
行列演算の高速化のために rayon を用いた並列データ処理を実装しましたが、計算グラフのノードの双方向リンク(親子の参照)をRustで安全に表現するにあたり、Rc や循環参照の解決など、高度なメモリ管理の設計が必要となりました。
抽象度が高く複雑なメモリ制御が要求されるため、一旦より低レベルなRustのメモリ管理やスマートポインタの挙動への理解を深めてから再開する方針とし、現在は保留中としています。 AIの内部構造(数理ロジック)と、Rustのメモリ安全性の真価を同時に学べる非常に良い題材だと考えています。
This project is a Rust re-implementation of the dynamic computational graph (autograd) from 'Deep Learning from Scratch'. I implemented parallel data processing using rayon for matrix operations. However, representing bidirectional links between graph nodes—parent-child references—in a memory-safe way required complex memory management, including Rc and strategies to handle circular references. Since this necessitates a deep understanding of low-level memory control, I have temporarily paused the project to focus on mastering Rust's smart pointers. I believe this is an excellent subject for simultaneously learning the mathematical logic of AI and the true value of Rust’s memory safety.