論文ノート 神経常微分方程式


この記事には複数のバージョンがあり、初期バージョンにはいくつかの誤りがあるため、2019 年の最新バージョンをダウンロードすることをお勧めします。

概要

残差ネットワークには次の形式があります:
ht + 1 = ht + f ( ht , θ t ) (1) \mathbf h_{t+1} = \mathbf h_{t} + f(\mathbf h_{t} 、 \theta_t) \tag{1}ht + 1=h+f ( h( 1 )
連続動的システムは通常、次のように常微分方程式 (ODE) で表すことができます。
dh (t) dt = f (h (t), t, θ) (2) \frac{d\mathbf h (t )}{dt} = f(\mathbf h(t), t, \theta) \tag{2}dt _d h ( t )=f ( h ( t ) ( 2 )動的システムでfffをニューラルネットワークのモジュールで表しニューラルODEを求めると、式(1)は式(2)のオイラー離散化とみなすことができます。
入力はh ( 0 ) \mathbf h(0)h ( 0 )、出力はh (T) \mathbf h(T)h ( T )、これは時間 T における常微分方程式の初期値問題の解です。

ここで注目に値するのはt は時間を表すのではなく、ネットワークの層の数を表します。ただし、時間予測問題など一部の問題では、ttt は時間を表すこともできます。

以下の図は、残差ネットワークと神の正規微分方程式の違いを示しています。縦軸はttを表すt (深さ)、残差ネットワークの状態変化は離散的であり、状態の値は整数の位置で計算されますが、神の常微分方程式の状態は連続的に変化し、計算された状態値の位置が決定されます。常微分方程式を解くアルゴリズムによる。
実際, Neural ODE における深さの定義は単純ではありません. これは論文のパート 3 で述べられています. t がどれだけ深いかではありません. Neural ODE における深さは暗黙的な状態計算の数に関連している必要があります. たとえば、以下の図で深さが 5 に達した場合、resnet は隠れ状態を 5 回しか計算しませんが、Neural ODE は実際には隠れ状態を何度も計算します。暗黙的な状態計算の数は、終点 t と ODE 解法アルゴリズムに関連します。

ここに画像の説明を挿入します
Neural ODE はニューラル ネットワーク モジュールを使用して常微分方程式のffを表しますfおよび Neural ODE は、常微分方程式をモジュールとして大規模なニューラル ネットワークに埋め込むことができます。

パラメータの最適化

通常の常微分方程式におけるパラメータθ \thetaθは固定ですが、Neural ODEではニューラルネットワークのパラメータなので最適化する必要があります。ニューラル ネットワークのパラメータはバックプロパゲーションを使用して最適化されますが、ニューラル ネットワークのモジュールとしてニューラル定数微分方程式もバックプロパゲーションをサポートする必要があります。神の定数微分方程式のパラメータを最適化するだけでなく、神の定数微分方程式の前のモジュールのパラメータも最適化する必要があるため、z ( t 0 ) 、 t 0 、 t 0、 t 1 , θ \mathbf z(t_0) , t_0, t_1, \thetaz ( t0t0t1θの勾配。

理論的には、積分の順方向プロセスを直接逆伝播することは可能ですが、大量のメモリが必要となり、追加の数値誤差が発生します。
これらの問題を解決するために、この論文では勾配を見つけるために随伴感度法を使用することを提案しています。アジョイント法では、別の ODE を解くことでバックプロパゲーションに必要な勾配を計算できます。
ODE の結果を入力とするスカラー損失関数の最適化を検討してください。

ここに画像の説明を挿入します
随伴状態をa ( t ) = − ∂ L ∂ z ( t ) \mathbf a(t)=-\frac{\partial L}{\partial \mathbf z(t)} として定義します。( t ) _=z ( t )∂L _
随伴状態はもう 1 つの ODE を満たします: da ( t ) dt = − a ( t ) ⊤ ∂ f ( z ( t ) , t , θ ) ∂ z \frac{d \mathbf a(t)}{dt} = -
\mathbf a(t)^\top \frac{\partial f(\mathbf z(t), t, \theta)}{\partial \mathbf z}dt _( t ) _=a ( t )∂z _f ( z ( t ) )。論文の付録に証拠が記載されています。
随伴状態を通じて、損失関数は約z ( t 0 ) 、 t 0 、 t 1 、 θ \mathbf z(t_0), t_0, t_1, \theta になります。z ( t0t0t1θの傾きは
∂ L ∂ z ( t 0 ) = a ( t 1 ) − ∫ t 1 t 0 a ( t ) ⊤ ∂ f ( t , z ( t ) , θ ) ∂ z ( t ) dt \frac{\partial L} {\partial \mathbf z(t_0)} = \mathbf a(t_1) - \int_{t_1}^{t_0} \mathbf a(t)^{\top}\frac{\partial f(t,\mathbf z (t), \theta)}{\partial \mathbf z(t)} dtz ( t0∂L _=a ( t1t1t0( t ) _z ( t )f ( t ,z ( t ) )。d twhere a ( t 1 ) \mathbf a(t_1)a ( t1)は、最後の瞬間の隠れ状態への損失関数の勾配であり、ニューラル ネットワークの次の層の BP によって取得できます。

a θ ( t ) = ∂ L ∂ θ ( t ) , at ( t ) = ∂ L ∂ t ( t ) \mathbf a_\theta(t) = \frac{\partial L}{\partial\theta(t )}, \ a_t(t) = \frac{\partial L}{\partial t(t)}ある( t )=θ ( t )∂L _ ある( t )=t ( t )∂L _
∂ L ∂ θ ( t 0 ) = a θ ( t 1 ) − ∫ t 1 t 0 a ( t ) ⊤ ∂ f ( t , z ( t ) , θ ) ∂ θ dt \frac{\partial L}{ \partial\theta(t_0)} = \mathbf a_\theta(t_1) - \int_{t_1}^{t_0} \mathbf a(t)^{\top}\frac{\partial f(t, \mathbf z (t), \theta)}{\partial\theta} dtθ ( t0∂L _=ある( t1t1t0( t ) _∂θ _f ( t ,z ( t ) )。d t ここで、 a θ ( t 1 ) = 0 \mathbf a_\theta(t_1)=0 としますある( t1=0、なぜこのように設定されているのかは現時点ではわかりません、θ \thetaθ はttに続きません∂ L ∂ t 1 = ∂ L ∂ z ( t 1 ) ∂ z ( t 1 ) ∂ t
1 = a ( t 1 ) ⊤ f ( t 1 , z ( t 1 ) , θ ) = at ( t 1 ) \frac{\partial L}{\partial t_1} = \frac{\partial L}{\partial \mathbf z(t_1)} \frac{\partial \mathbf z(t_1)}{\partial t_1 } = \mathbf a(t_1)^{\top} f(t_1, \mathbf z(t_1), \theta) = a_t(t_1)∂t _1∂L _=z ( t1∂L _∂t _1z ( t1)=a ( t1 f(t1z ( t1=ある( t1) ∂ L ∂ t 0 = at ( t 1 ) − ∫ t 1 t 0 a ( t ) ⊤ ∂ f ( t , z ( t ) , θ ) ∂ tdt \frac{\partial L}{\partial t_0} = a_t(t_1) - \int_{t_1}^{t_0} \mathbf a(t)^{\top}\frac{\partial f(t, \mathbf z(t), \theta)}{\partial t} dt∂t _0∂L _=ある( t1t1t0( t ) _∂t _f ( t ,z ( t ) )。次のアルゴリズムに示すように、 d t
のこれらの導関数はODE 方程式に統合して解くことができます。
ここに画像の説明を挿入します
実際に使用する際には、勾配計算などを考慮する必要はなく、ライブラリ(https://github.com/rtqichen/torchdiffeq)に書かれており、ffを定義するだけで済みます。f統合アルゴリズムを直接呼び出すだけです。

継続的な正規化フロー

式 (1) のこの形式は、フローの正規化にも現れます。
フローの正規化は、モデルを学習して指定された分布を持つデータを生成できる生成アルゴリズムであり、現在画像生成で広く使用されています。
フローを正規化するには、変数変化定理を使用して確率を直接計算できるように、変換が全単射 (全単射関数) である必要があります。
ここに画像の説明を挿入します

全単射の要件を満たすには、変換を慎重に設計する必要があります。正規化フローにはさまざまなバリエーションがあり、平面正規化フローの 1 つは次の変換を持ちます: 主な計算量は、 ∂ f ∂ z \frac{\partial f}{\partial \mathbf z} を
ここに画像の説明を挿入します
計算することです。∂z _∂f _興味深いのは、離散変換が連続変換になると、確率の計算が簡単になり、det の計算が必要なくなることです。
この論文では次の定理が示されています。

ここに画像の説明を挿入します
後に普及した生成モデルである拡散モデルは確率フロー ODE に拡張でき、この定理も使用できることは注目に値します。

生成潜在関数時系列モデル

タイミングモデルではttt は時間を表すことができます。Neural ODE を使用して時系列をモデル化する利点は、連続状態をモデル化できることです。これは当然、不規則にサンプリングされた時系列 (不規則にサンプリングされたデータ) に適しています。
各時系列は隠れた軌跡によって決定されると想定されます。暗黙的な軌道は、初期状態と暗黙的なダイナミクスのセットによって決定されます。観測時点t 0 、 t 1 、 ⋯ 、 t N t_0,t_1,\cdots,t_N があります。t0t1tNおよび初期状態zt 0 z_{t_0}zt0、生成されたモデルは次のとおりです:
ここに画像の説明を挿入します
ここでfffは、時間の経過とともに変化しないニューラル ネットワークとして定義されます。外挿により、時間的に前方または後方に予測結果を取得できます。

これは本質的に潜在変数生成モデルであるため、変分オートエンコーダー (VAE) アルゴリズムを使用して最適化できます。従来の VAE の観測変数が画像であるのに対し、ここでの観測変数は時系列であるというだけです。
時系列を表現するために、ここのエンコーダーは RNN モデルを使用します。初期の暗黙的状態が生成された後、ニューラル ODE は他の時点で暗黙的状態を生成し、デコーダー ネットワークがp ( x ∣ z ) p(x|z)を計算します。p ( x z )
ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/icylling/article/details/128565022
おすすめ