Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Augmented Neural ODEs #37

Open
Yagami360 opened this issue Oct 22, 2019 · 0 comments
Open

Augmented Neural ODEs #37

Yagami360 opened this issue Oct 22, 2019 · 0 comments

Comments

@Yagami360
Copy link
Owner

Yagami360 commented Oct 22, 2019

0. 論文情報・リンク

1. どんなもの?

  • Neural-ODE の解空間をより高次元に拡張することで、従来の Neural-ODE では表現できなかった線形分離不可能な関数も表現可能とし、更に学習の安定性や計算効率も向上させた Augmented Neural ODEs を提案している。

2. 先行研究と比べてどこがすごいの?

  • 従来の Neural-ODE では、線形分離不可能な関数をうまく表現(=近似)できないという問題が存在した。
    本手法で提案されている Augmented Neural ODEs では、Neural-ODE の解空間の次元をより高次元に拡張することで、このような線形分離不可能な関数を、拡張した高次元空間内で線形分離可能とし、Neural-ODE で表現可能な関数としている。
  • 同時に、このような線形分離不可能な関数での学習の安定性や計算効率も向上させている。

3. 技術や手法の"キモ"はどこにある?

  • 既存の Neural-ODE の問題点

    • Neural-ODE の定式化
      Neural ODE が解く初期値問題は、以下のような初期値問題である。
      ※ 詳細は「【論文まとめ】[Neural-ODE] Neural Ordinary Differential Equations」 参照

      この初期値問題の解である隠れ層の出力 h(t) は、中間特徴量 ϕ_t (x) を用いると以下のようにかける。

      Neural ODE では、更に出力層で、t=T での中間特徴量をスカラー活性化値 g(x) に写像するが、このことは以下のように定式化できる。

    • Neural-ODE が表現できない関数
      ① 1次元の場合
      出力層が出力する関数 g(x) として、以下のような関数を考える。

      このような関数は、下図の (a) のように x=-1.0 ~ 1.0 の領域間で少なくとも1点で互いに交差しているしているはずである。(=言い換えると線形分離可能ではない関数となっている)
      しかしながら、Neural-ODE による任意の2つの解の軌道 h1(t), h2(t) は下図の (b) の実線のように、互いに交差出来ないという定理(証明略)により、Neural-ODE ではこのような関数を表現(近似)することができない。
      ※ この関数は、より高次元への次元の拡張を行えば、線形分離できる関数となっていることに注目。
      ※ (a),(b) で横軸 t=0.0 ~ 1.0、縦軸 h(t) = -1.0 ~ 1.0 になっているが、横軸 x=-1.0 ~ 1.0 縦軸 g(x)=-1.0 ~ 1.0 の間違えでは?
      の関係より、横軸 t=0.0 ~ 1.0、縦軸 h(t) = -1.0 ~ 1.0 でもよい?

      ② d 次元の場合
      出力層が出力する関数 g(x) として、以下のような関数を考える。

      このような関数では、高次元空間においては、-1(青領域)と +1(赤領域)を分離する線形超平面が存在するが、このときの領域内の点の軌跡線は、下図のように途中で互いに交差しているしているはずである。しかしながら、Neural-ODE による任意の2つの解の軌道 h1(t), h2(t) は、互いに交差出来ないという定理(証明略)により、Neural-ODE ではこのような関数を表現(近似)することができない。
      ※ この関数は、より高次元への次元の拡張を行えば、線形分離できる関数となっていることに注目。

    • 損失関数の収束性
      Neural-ODE では、上記のような線形分離不可能な関数 g(x) をうまく表現することが出来ないことを実験的に確認するために、Neural-ODE と(その離散化バージョンである)ResNet における loss 値の変化を比較すると、以下の図のようになる。

      d=1 での線形分離不可能な g(x) では、Neural-ODE での loss 値が0に収束しておらず、うまくこの関数を近似できていないことが見て取れる。
      同様に、d=2 での g(x) でも、Neural-ODE での loss 値が0に収束するまで時間がかかっており、この関数を近似するのに苦労していることが見て取れる。
      一方で、g(x) でない線形分離可能な関数では、loss 値が0に収束しており、線形分離可能な関数はうまく近似できていることが見て取れる。

    • Neural-ODE の ODE-Solver での計算コスト

      Neural-ODE では、上図のように、学習が進みにつれて、ODE-Solver における最適化のための関数の評価回数(ステップ数)が増大し、計算コストが大きくなるという問題も存在する。

  • Augmented Neural ODEs での解決法
    先の Neural ODEs では表現できない関数 g(x) は、その次元での空間上では線形分離できない関数となっていたが、より高次元での空間上では線形分離できる関数となっていた。
    従って、Augmented Neural ODEs では、上記のような問題を解決するために、Neural ODE における解空間を へ拡張することを考え、以下のような初期値問題を考える。

    このような解空間では、Neural ODEs では表現できない関数 g(x) は、互いに交差しないようになり、結果として、Neural ODEs でも表現できる関数となる。

    又、全ての入力データ x に(拡張した次元分の)0ベクトルが連結されているので、関数

    もより滑らかな関数となり、ODEソルバーがより少ないステップ数(評価回数)で計算を行うことができるようになり、その結果として計算コストが軽減される。

4. どうやって有効だと検証した?

  • 損失関数の収束性向上から、学習可能性や学習の効率的向上を実験的に検証している。

    上図は、線形分離不可能な関数 g(x) において、Neural-ODE とAugmented Neural ODE の loss 値の変化の様子を比較した図である。
    Neural-ODE では、loss 値が0に収束しない(d=1) or 収束するのに苦労する(d=2)のに対して、Augmented Neural ODE では、どちらのケースでもより速く loss 値が0に収束しており、このような線形分離不可能な関数 g(x) でもうまく学習出来ていることが見て取れる。

  • ODE-Solver の解の軌道から、学習の効率性向上を実験的に検証している。

    上図は、線形分離不可能な関数 g(x) において、Neural-ODE とAugmented Neural ODE の解の軌跡の様子を比較した図である。
    Neural-ODE (NODE) では、同じ次元の空間内で、2つの領域を線形分離するように複雑な軌道で写像されており、学習に苦労している様子が見て取れる。
    一方 Augmented Neural ODE (ANODE) では、拡張されたより高次元空間内で、2つの領域を線形分離するように直線状の軌道で写像されており、より効率的に学習が進んでいることが見て取れる。

  • ODE-Solver における最適化のための評価回数から、計算効率が向上していることを実験的に検証している。

    Neural-ODE では、学習が進みにつれて、ODE-Solver における最適化のための関数の評価回数(ステップ数)が増大し、計算コストが大きくなるという問題も存在した。一方、Augmented Neural ODE では、学習が進んでも、最適化のための関数の評価回数(ステップ数)は大きく変わらず、この面でも計算効率が向上していることが見て取れる。

  • 学習済みのモデルでの写像後の値の分布や学習用データセットと検証用データセットの loss 値の変化から、汎化性能が向上していることを実験的に検証している。

    上図の (a) は、学習用データセットでの loss 値が0になる状態(=学習済みの状態)における Neural-ODE と Augmented Neural ODE に対して、写像後の値の分布を図示した図である。
    Neural-ODE では同じ次元の空間内で2つの領域を分離する必要があるので、外側の楕円(=赤領域)から内側の楕円領域(=青領域)を押し出すように、下領域で汎化性能が低下していることが見て取れる。
    一方 Augmented Neural ODE では、より高次元の空間内で、より適切に2つの領域を分離出来ているので、下領域で汎化性能が低下しているといったことは発生していないことが見て取れる。

    上図の (b), (c) は、Neural-ODE と Augmented Neural ODE に対して、学習用データセットと検証用データセットでの loss 値の変化を示した図である。
    Neural-ODE では、学習データセットに対する loss 値は0に収束しているが、検証データセットに対する loss 値は0に収束しておらず、汎化性能が低いことが見て取れる。
    一方 Augmented Neural ODE では、検証データセットに対する loss 値も0に収束しており、より汎化性能が高くなっていることが見て取れる。

5. 議論はあるか?

  • 線形分離不可能な関数を、より高次元空間で線形分離可能にして置き換える考えは、カーネル法とよく似た発想であり、ある意味 「Neural ODEs+カーネル法」 の手法になっている。

6. 次に読むべき論文はあるか?

  • xxx

7. 参考文献

  • xxx
@Yagami360 Yagami360 added this to To do in machine-learning_papers_survey via automation Oct 22, 2019
@Yagami360 Yagami360 moved this from To do to In progress in machine-learning_papers_survey Oct 22, 2019
@Yagami360 Yagami360 changed the title <In progess> Augmented Neural ODEs Augmented Neural ODEs Oct 24, 2019
@Yagami360 Yagami360 moved this from In progress to Done in machine-learning_papers_survey Oct 24, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

1 participant