3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

JuliaでNeural ODE (DiffEqFluxライブラリ)

Last updated at Posted at 2020-06-05

2018年のNeurIPSで話題になったNeuralODEですが、Juliaで簡単に出来るパッケージ「DiffEqFlux.jl」が出たようです。

論文:https://arxiv.org/abs/1902.02376
GitHub:https://github.com/SciML/DiffEqFlux.jl
ドキュメント:https://diffeqflux.sciml.ai/dev/
Juliaの公式ブログ記事:https://julialang.org/blog/2019/01/fluxdiffeq/

Juliaのセットアップ

筆者はJuliaの開発環境にJunoを用いています。
MATLABのような感じで動かせるので便利です。

セットアップはこちらの記事が参考になります。
https://qiita.com/SatoshiTerasaki/items/3dda33ece801b75e248c

DiffEqFlux.jlはどんなライブラリか

Juliaの機械学習ライブラリは以下の記事にあるのように色々とあります。
https://opensourceforu.com/2019/03/the-best-machine-learning-libraries-in-julia/
この中でも、「Flux.jl」ライブラリは有名です。
また、微分方程式を解くライブラリとしては「DifferentialEquations.jl」ライブラリがあります。
この2つを組み合わせできたのが、今回の「DiffEqFlux.jl」ライブラリのようです。

DiffEqFlux.jlはNeural ODEだけではなく、確率微分方程式や偏微分方程式を使用したニューラルネットワークを作ることも出来るようです。(Universal neural differential equations)
また、GPUの使用にも対応しています。

DiffEqFlux.jl試してみる

環境は以下です。
Ubuntu
Julia 1.4.2
Juno

インストール

ライブラリのインストールはJuliaの対話環境で以下のように行います。

Pkg.add("DiffEqFlux")

デモを動かす

ドキュメントにNeural ODEのデモがありました。
これを動かしてみましょう。

実行すると、予測値がデータにフィッティングされていく様子がplotで分かります。

最初のplot
test.png

トレーニング後のplot
test2.png

終わりに

使いこなすにはJuliaやFluxライブラリの知識が必要になりそうです。
これから勉強していきたいと思います。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?