Skip to main content
QUICK REVIEW

[論文レビュー] DiffEqFlux.jl - A Julia Library for Neural Differential Equations

Christopher Rackauckas, Mike Innes|arXiv (Cornell University)|Feb 6, 2019
Model Reduction and Neural Networks参考文献 6被引用数 89
ひとこと要約

DiffEqFlux.jl は DifferentialEquations.jl のソルバーを Flux ニューラルネットワークと組み合わせて、微分方程式レイヤーをニューラルネットに埋め込み、ニューラルODE、SDE、DDE などを adjoint バックプロパゲーションで実現します。

ABSTRACT

DiffEqFlux.jl is a library for fusing neural networks and differential equations. In this work we describe differential equations from the viewpoint of data science and discuss the complementary nature between machine learning models and differential equations. We demonstrate the ability to incorporate DifferentialEquations.jl-defined differential equation problems into a Flux-defined neural network, and vice versa. The advantages of being able to use the entire DifferentialEquations.jl suite for this purpose is demonstrated by counter examples where simple integration strategies fail, but the sophisticated integration strategies provided by the DifferentialEquations.jl library succeed. This is followed by a demonstration of delay differential equations and stochastic differential equations inside of neural networks. We show high-level functionality for defining neural ordinary differential equations (neural networks embedded into the differential equation) and describe the extra models in the Flux model zoo which includes neural stochastic differential equations. We conclude by discussing the various adjoint methods used for backpropogation of the differential equation solvers. DiffEqFlux.jl is an important contribution to the area, as it allows the full weight of the differential equation solvers developed from decades of research in the scientific computing field to be readily applied to the challenges posed by machine learning and data science.

研究の動機と目的

  • データサイエンスにおける非線形変換の構造を微分方程式が提供することと、それが機械学習と対になる役割をデモンストレーションする。
  • DifferentialEquations.jl の問題を Flux のニューラルネットワークに組み込み、そしてその逆も示す。
  • 剛性、遅延、確率性を含む neural network layers に対する全DifferentialEquations.jlソルバー・スイートの利点を強調する。
  • ニューラルODEおよび関連モデル(ニューラルSDE、DDE)を提示し、ソルバーを介した逆伝播のアダプタ法(adjoint methods)を論じる。

提案手法

  • 前方パスでソルバー出力を返す neural network layer として ODE ソルバーを埋め込む方法を説明する。
  • diffeq_rd という、Flux に ODE解法を統合し、バックプロパゲーションを介して訓練を可能にするインターフェースを紹介する。
  • 別の勾配法を示す:diffeq_fd(前方モードの AD)と diffeq_adjoint(アジョイント感度解析)。
  • Lotka–Volterra のような例や様々なネットワークアーキテクチャにおけるニューラルODE層を用いて、ニューラルODEとニューラルSDEを示す。
  • 剛性・非剛性を含む堅牢性と性能のために、完全なソルバー・スイート(ODEs, SDEs, DDEs, DAEs)が必要であることを強調する。
  • ソルバーを介したバックプロパゲーションの課題と、それに対処する自動微分(ForwardDiff.jl, Zygote.jl)と adjoint 法について論じる。

実験結果

リサーチクエスチョン

  • RQ1ニューラルネットワークと微分方程式ソルバーを融合させ、微分可能でエンドツーエンド学習可能なモデルを作るにはどうすればよいか?
  • RQ2完全な DifferentialEquations.jl ソルバー・スイートは、ソルバー内部実装と比較してニューラルネットワーク層にどんな利点を提供するか?
  • RQ3勾配手法(前方モード、反転モード、 adjoint感度)は微分方程式ソルバーを微分する際に最も効率的で、パラメータ数とともにどのようにスケールするか?
  • RQ4ニューラルODE、SDE、DDEは標準的な深層学習パイプライン内で、 GPU デプロイを含めて実用的に訓練可能か?
  • RQ5さまざまな式のタイプ(ODEs、DDEs、SDEs)は、トレーニング安定性と外挙性の点でニューラルネットワーク層としてどのように振る舞うか?

主な発見

  • DiffEqFlux.jl は完全な DifferentialEquations.jl ソルバー・スイートをニューラルネットワークの層として埋め込み、ODEs、SDEs、DDEs、剛性方程式、そして adjoint ベースの訓練を可能にする。
  • このフレームワークは、ソルバーを通じて逆伝播するための複数の勾配経路(diffeq_rd、diffeq_fd、diffeq_adjoint)を、最小限のコード変更でサポートする。
  • ニューラルODE層は、初期条件とネットワークをGPU上に保持し、ODEソルバーがGPU上で動作するようにすることで実装およびGPU加速が可能である。
  • ロバスト性が必要な問題(堅い・非堅いの例、例えば ROBER、堅いケース)に対して、完全なソルバー・スイートを使用する方が、単純な積分戦略では失敗する場合に有利であることが示されている。
  • 自動微分(ForwardDiff、ReverseDiff)と今後のソースツーソースAD(Zygote)を活用して、ソルバーのパラメータに対する勾配を最適化し、訓練をスケーラブルにする。

より良い研究を、今すぐ始めましょう

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。