Concetti Chiave
Roseは、対話型Webアプリケーションに適した新しいハイブリッド型の自動微分フレームワークである。Roseは、従来の自動微分手法の長所を組み合わせることで、高速な計算と小さなバンドル容量を実現している。
Sintesi
Roseは、対話型Webアプリケーションのための新しい自動微分フレームワークである。従来の自動微分手法は、機械学習向けに最適化されているため、スカラープログラムや動的な計算に適していない。一方、プログラム変換ベースの手法は重たいコンパイラ技術に依存しており、Webアプリケーションには適していない。
Roseは、トレーシングとプログラム変換の長所を組み合わせた新しいハイブリッド手法を採用している。ユーザーはJavaScriptを使ってメタプログラミングを行い、明示的に再利用可能な関数を定義できる。一方で、Roseはこれらの関数をWebAssemblyにコンパイルし、高速な実行と小さなバンドル容量を実現している。
Roseの設計の中心的な特徴は以下の通りである:
ホスト言語(JavaScript)を使ったメタプログラミング
明示的に定義可能な再利用可能な関数
プログラム変換とトレーシングの融合
WebAssemblyへのコンパイル
これらの特徴により、Roseは対話型Webアプリケーションに適した自動微分フレームワークとなっている。
Statistiche
線形回帰の損失関数は、y - Xβ の2乗和である。
損失関数の勾配は、2X^T(Xβ - y)である。
損失関数のヘシアンは、2X^TX。
Citazioni
"Reverse-mode automatic differentiation (autodiff) has been popularized by deep learning, but its ability to compute gradients is also valuable for interactive use cases such as bidirectional computer-aided design, embedded physics simulations, visualizing causal inference, and more."
"Unfortunately, the web is ill-served by existing autodiff frameworks, which use autodiff strategies that are unperformant on dynamic scalar programs, and pull in heavy dependencies that would result in unacceptable webpage sizes."