自動微分(Automatic differentiation)のSurvey論文の参照|微分をプログラミングする #2

f:id:lib-arts:20201121144954p:plain

当シリーズでは、近年の深層学習の発展に関連するトレンド的に微分のプログラミングの重要度は増していると思われるので、関連文脈の取りまとめを行なっています。
#1では誤差逆伝播などにも用いられている「自動微分(Automatic differentiation)」の概要について確認しました。

#2では引き続き自動微分について、下記のSurvey論文を参照しながら確認していきます。

[1502.05767] Automatic differentiation in machine learning: a survey

以下、目次になります。
1. 論文の例で自動微分について再確認する
1-1. Forward mode AD(ボトムアップ型自動微分
1-2. Reverse mode AD(トップダウン型自動微分
1-3. ロジスティック写像(logistic map)の例の確認
2. 自動微分機械学習
3. まとめ


1. 論文の例で自動微分について再確認する

[1502.05767] Automatic differentiation in machine learning: a survey

1節では上記のSurvey論文の例を元に#1の内容を振り返りつつ、自動微分について再度確認を行っていきます。以下、論文のSection2の"What AD Is Not"とSection3の"AD and Its Main Modes"を中心に確認します。

 

1-1. Forward mode AD(ボトムアップ型自動微分
1-1節ではSection3-1の"Forward Mode"について確認します。これは#1で確認したボトムアップ型の自動微分の内容と同様です。

f:id:lib-arts:20201121145451p:plain

式の定義に関しては基本的に上記で、関数f(x_1,x_2)に対して、中間変数(intermediate variable)のv_iを定義して、v_ix_1に関する偏微分\displaystyle \dot{v}_i = \frac{\partial v_i}{\partial x_1}と定義しています。この定義がForward mode AD(ボトムアップ型自動微分)において中核的な役割を果たします。

f:id:lib-arts:20201121150021p:plain

関数f(x_1,x_2)に関する自動微分については上記のように、行うことができます。左のPrimal Traceは値を追っており、右のTangent Traceは微分の値を追っています。それぞれ、文字での計算に加えて、具体的な値も代入していることも確認できます。x_1 = 2x_2 = 5をそれぞれに値として与えており、かつ、x_1偏微分であるので、\dot{x}_1=1\dot{x}_2=0を与えています。

f:id:lib-arts:20201121150541p:plain

また、ここでの関数のf(x_1,x_2)は上記のような計算グラフ(Computational graph)で表現できることも抑えておきましょう。


1-2. Reverse mode AD(トップダウン型自動微分
1-2節ではSection3-2の"Reverse Mode"について確認します。これはトップダウン型の自動微分の内容と同様です。

f:id:lib-arts:20201121150541p:plain

1-1節のFoward mode ADと同様に上記のf(x_1,x_2)について取り扱っていきます。

f:id:lib-arts:20201121152549p:plain
式の定義に関しては基本的に上記のように、偏微分\bar{v}_iを定義しています。中間変数のv_iを入力のx_1に対して偏微分を行っていたForward Modeに対して、Reverse Modeでは出力のy_jv_i微分することを考えています。この考え方は一般的な逆伝播(backpropagation)のアルゴリズムに一致しています。

f:id:lib-arts:20201121152206p:plain

偏微分\bar{v}_iを元に計算を行った結果が上記のようになります。これはニューラルネットワーク の学習の際に用いる誤差逆伝播と同様なイメージで理解すれば良さそうです。


1-3. ロジスティック写像(logistic map)の例の確認
f(x_1,x_2)以外の例についても簡単に確認しておければということで、1-3節ではSection2で紹介されているロジスティック写像の例の確認を行います。

f:id:lib-arts:20201121153605p:plain

上記のようにロジスティック写像の例において、Foward Mode的な記載が紹介されています。


2. 自動微分機械学習
2節では参照のSuveryのSection4の"AD and Machine Learning"の内容を取り扱います。

f:id:lib-arts:20201121154047p:plain

上記が冒頭部の記載ですが、勾配を用いた最適化(Gradient-Based Optimization)やbackpropagationについて言及されています。

f:id:lib-arts:20201121154600p:plain
パフォーマンス比較としては、上記のようにReverse Modeの効率が良いと記載されています。

あまり詳しい解説がなかったので、ここでは軽く流し、#3でトップダウン自動微分(Reverse mode AD)と誤差逆伝播について詳しく取り扱えればと思います。


3. まとめ
#2では自動微分について、Survey論文を参照しながら確認を行いました。
#3では、トップダウン自動微分(Reverse mode AD)と誤差逆伝播について詳しく確認を行います。