karpathy/micrograd
A tiny scalar-valued autograd engine and a neural net library on top of it with PyTorch-like API
解決する課題
microgradは、動的に構築された有向非巡回グラフ(DAG)上でバックプロパゲーション(逆モード自動微分)を実装した、非常に小さな教育用autogradエンジンです。PyTorchのようなAPIを使用して、ユーザーが小さなニューラルネットワークを構築・訓練することを可能にし、勾配計算とネットワーク訓練の内部メカニズムを根本的に理解できるようにします。
仕組み
このエンジンはスカラー値のみで動作し、すべての演算(加算や乗算など)を個別のステップに分解します。これらの演算のDAGを構築し、それによってエンジンがバックワードパスを介して勾配を計算できるようにします。このエンジンを基盤として、多層パーセプトロン(MLP)や二値分類器を構築するための小さなニューラルネットワークライブラリが提供されています。
対象者
大規模なプロダクションフレームワークの複雑さを排除し、ディープラーニングの核心となる数学的基礎と自動微分がどのように機能するかを理解したい開発者や学生。
ハイライト
- 極小のフットプリント: autogradエンジンは約100行のコードで、ニューラルネットワークライブラリは約50行です。
- PyTorch風API: 現代的なディープラーニングライブラリに慣れている人にとって馴染みのあるインターフェースを提供します。
- 可視化: 計算グラフのGraphvizによる可視化を行い、データと勾配の両方を示すツールが含まれています。
- 教育に特化: 二値分類とニューラルネットワークの基本的な構成要素を実演するために、教育目的で特別に設計されています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト