正則化問題における敵対的生成ネットワーク(GANs)と敵対的自己符号化器(AAEs)のネットワーク構造 | Accel Brain

正則化問題における敵対的生成ネットワーク(GANs)と敵対的自己符号化器(AAEs)のネットワーク構造

Accel Brain; Console×

目次

問題設定:過学習

ニューラルネットワークをはじめとする機械学習学習アルゴリズムは、誤差(loss)を最小化するために設計されている。しかし学習の本来の目的は、学習時に観測した訓練データに対してではなく、学習時に観測しなかった「未知のデータ」に対して正確な推論や推定を実行できるようになることである。ここで、訓練データと「未知のデータ」は、同一の母集団、同様の確率分布からサンプリングされると想定される。いわゆる「汎化能」はこのために要求される。論理学的に言えば、汎化とは、訓練データ観測することによって、その上位概念となる母集団の概念を獲得することなのである。

尤も、可能性を全て網羅して、「未知のデータ」となり得るあらゆるデータセットを事前に準備することは不可能だ。そこで機械学習学習時には、訓練データとは区別される別のテストデータを同じ母集団からサンプリングすることで、学習アルゴリズムに入力することになる。この時、訓練データに基づいた推論や推定の誤差を「訓練誤差(training error)」と呼び、テストデータに基づいた推論や推定の誤差を「テスト誤差(test error)」と呼ぶ。

一般的な機械学習学習アルゴリズムを前提とすれば、訓練誤差はパラメタの更新を反復していくに連れて単調減少していく。一方、テスト誤差はこの限りではない。場合によっては、パラメタの更新回数が増えるに連れて、訓練誤差と乖離し始めることもある。逆に一定回数更新を繰り返していくと、訓練誤差に近接していくこともある。

理想的な訓練となるのは、訓練誤差テスト誤差が共に減少し続けている状態である。しかし、入力するデータやパラメタチューニングの状態によっては、テスト誤差訓練誤差から大きく乖離し続ける場合がある。この場合を特に「過学習(overlearning)」や「過剰適合(overfitting)」などと呼ぶ。何が「過剰(over)」なのかと言えば、この場合のモデルは、訓練データのみを「過剰」に学習してしまい、訓練データのみに「過剰」に適合してしまっているということである。その結果として学習後のモデルは、テストデータに対して上手く推論や推定を実行することができなくなっている。それはつまり、モデルが「未知のデータ」に対する汎化能を獲得し損ねているということである。

高い汎化能や表現能力を有するニューラルネットワークの設計者は、この問題と無縁ではいられない。ニューロンの個数や隠れ層の個数を増やせば、ニューラルネットワークはより複合的なパターン表現できるようになる。だが訓練データのみを複合的に表現すれば、実際のデータ分布とは異なるパターンを分類してしまうようになる。単純に誤差関数最適化すれば良いという訳ではない。むしろ最適化の派生問題として過学習や過剰適合が伴うのである。

問題解決策:ドロップアウト

過学習や過剰適合の問題解決策を、ここでは一つだけ取り上げよう。「ドロップアウト(dropout)」は、過学習や過剰適合に対する最も有名な対策の一つである。それは、ニューラルネットワークの汎化能を向上させる技術として導入される。文字通りこの技術は、訓練時にアトランダムに選択したニューロンを除外することで、ニューラルネットワーク上にそのニューロンが存在しないことにする処理を指す。これにより、ニューラルネットワーク上のニューロン同士の過剰な共適応(co-adapting)が抑制される。

学習時には、順伝播ごとにアトランダムに除外対象となるニューロンを選択することで、訓練全体を通じてパラメタの値が徐々に調整されていく。一般にあるニューロンがドロップアウト対象になるか否かの確率は、0.5とされる。

ドロップアウトを適用したニューラルネットワーク構造は以下のようになる。

Srivastava, N., Hinton, G. E., Krizhevsky, A., Sutskever, I., & Salakhutdinov, R. (2014). Dropout: a simple way to prevent neural networks from overfitting. Journal of machine learning research, 15(1), 1929-1958., p.1930より。

この図では、隠れ層を2層とした場合のニューラルネットワークが例示されている。左側が通常のニューラルネットワークで、右側がドロップアウトを適用したニューラルネットワークだ。ドロップアウトとして選択される確率は0.5となるため、選択されるニューロンの数も各層で区々となっている。

多層ニューラルネットワーク、あるいは深層学習における派生問題の一つは、実装水準での費用対効果である。各層の学習率、活性化関数損失関数など、アルゴリズムの設計者は様々な関数設計やハイパーパラメタの調整に悩まされる。勾配喪失のような派生問題にも注意しなければならない。また、ミニバッチを採るにしても、全体的に大量の訓練データを用意しなければならないことには変わりは無い。

ドロップアウトは、こうした派生問題を可能な限り回避した単純明快な方法である。このことは数式でモデル化した場合にも表れている。

L個の隠れ層を$$l \in \{1, …, L\}$$で表す。隠れ層lと接続された入力層のベクトルを$$z^{(l)}$$で表し、隠れ層lと接続された出力層のベクトルを$$y^{(l)}$$と表す。各層の重みを$$W^{(l)}$$とし、バイアスを$$b^{(l)}$$とする。この時、ニューラルネットワークの順伝播は次のようになる。

$$i \in \{0, …, L – 1\}$$

$$z_i^{(l+1)} = w_i^{(l+1)}y^l + b_i^{(l +1)}$$

活性化関数をfとするなら、$$y_i^{(l+1)} = f(z_i^{(l+1)})$$

ドロップアウトを適用するなら、$$r_i^{(l)} ~ Bernoulli(p)$$

$$\widetilde{y}^{(l)} = r^{(l)} * y^{(l)}$$

$$z_i^{(l+1)} = w_i^{(l + 1)}\widetilde{y}^{(l)} + b_i^{(l + 1)}$$

$$y_i^{(l+1)} = f(z_i^{(l+1)})$$

ここでいうrはドロップアウトの確率pについての独立なベルヌーイ確率変数のベクトルを意味する。このベクトルが出力層のyの値に掛け合わされることで、間引きされた(thinned)出力値が計算される。

ドロップアウトが適用されたニューラルネットワークは、「間引きされたネットワーク(thinned network)」であると言える。このネットワークは、ドロップアウトを回避して生き残ったニューロンによって構成されている。生き延びるか否かは二値であることからもわかるように、n個のニューロンで構成されたニューラルネットワークは、2のn乗もの可能な「間引きされたネットワーク」の集合体であるとも見做せる。

つまりドロップアウトを適用したニューラルネットワークの訓練においては、事実上複数の、別様のモデルが生成されていることになる。一つのモデルのみで学習を繰り返せば、過学習が避けられなくなる。一方、ヴァーチャルにでも複数のモデルを組み込んだネットワークであれば、それぞれの可能モデルで別様の学習と予測を実行することができる。ドロップアウトの技術では、このモデルの複数過学習の回避策になっている。

問題再設定:正則化問題

機械学習の主導的な参照問題の一つは、訓練データだけではなく、新しい観測データ点の入力に対しても能を発揮するアルゴリズムの設計が如何にして可能になるのかである。機械学習の多くのアルゴリズムは、訓練誤差が増加する可能性代償として、テスト誤差が減少することを目指して設計される。こうした方法は、一般的に「正則化(Regularization)」と呼ばれている。

正則化は、モデルアルゴリズムの設計者が試みる「投資」に他ならない。と言うのも正則化とは、訓練誤差の増加というリスクを受容することによって、テスト誤差の減少というリターンを得る試みであるためだ。この意味正則化は、コモディティ化している機械学習ライブラリのエンドユーザーとは無縁の設計である。それはブラックボックスの内部で実行されている無理解で無視しても無害なコンポーネントなのではない。正則化とは、リスクある不確実な状況下の設計者が「期待」や「効用」や「投資対効果」などのような指標との兼ね合いから下す「意思決定」以外の何物でもない。

正則化が「意思決定」である理由は、設計者が「正則化を実行するか否か」の選択に迫られるためだけではない。正則化方法もまた多岐に渡るためでもある。設計者に求められるのは、自らのアルゴリズムモデル理論背景データ特徴工学によって、最適な、あるいは満足し得る正則化方法選択することである。

長らくニューラルネットワーク理論は、正則化機能を「過学習」の問題設定との関連から記述してきた。しかしこの問題設定は消極的で、「利」を生まない。過学習という概念を記述するだけでは、「モデル過学習しているか否か」という二つの状態の区別に資するだけで留まってしまう。事実、「過学習」という言葉は知っていても実際には何もできないビギナーは、後を絶たないようだ。

アルゴリズムモデルの設計は、この程度で許されるほど甘くはない。上述した正則化問題設定は、積極的かつ冷徹である。「訓練誤差が増加する可能性を代償として、テスト誤差が減少すること」を目指した正則化問題の枠組みは、誤差という定量評価の指標を明示的に指し示している。正則化という問題設定は、機械学習の定量的な比較可能性を担保している。そこには、有用ならば採用し、無用ならば棄却するという、「意思決定」が介在する。

定量評価の指標としての誤差は、機能的に記述されなければならない。つまり、Loss function や Cost function などのように、誤差意味論機能的変異し得るのである。

ディープラーニングは、原理的には単純な最小二乗法にすぎない」と断じてしまうビギナーには到底理解の及ばぬことだが、深層学習に関連する誤差の概念は、様々な「機能的等価物(funktionalen Äquivalenten)」として区別されている。「機能的に等価」であるというのは、特定の問題設定を前提とした上で、その問題の解決に際して同様に機能していることを意味している。選択肢Aと選択肢Bが機能的に等価となるのは、特定の問題Xの解決に、双方とも有用で役立ちメリットを発揮している場合のみだ。

これを前提とすれば、深層学習の設計者は、機能的に等価な複数の誤差関数の「意思決定」を実践しなければならない。例えば同じ最適化の問題でも、SGDとAdam等の間にあるアルゴリズム上の差異を前提とした上で、Root Mean Square Error(RMSE)やMean Absolute Error(MAE)、あるいは問題設定次第ではCross Entropyなどのような「関数」を選択しなければならないのである。

問題再設定:統計的機械学習問題の枠組み

深層学習(Deep Learning)の第一人者たちは、正則化問題の枠組みの中で誤差関数の定量評価を見据えたアルゴリズム設計モデリングに徹してきた。しかし彼らの努力は、しばしば不当にも、コモディティ化され、大衆化している「ディープラーニング」の背後に追いやられていた。そうした「ディープラーニング」の「機能」の多くは、単に多次元のクラスラベルに入力データ写像するだけの「機械学習(Machine Learning)」の「識別モデル(discriminative model)」の「機能」に過ぎなかった。何しろ「機械学習ライブラリ」として配布されている大多数のクラスやAPIは、識別器としての「機能」しかまともに扱えず、それを利用するCasual Usersもその程度のユースケースしか思い描けないからだ。

識別モデル存在に注視した場合の盲点となるのは、「統計的機械学習(Statistical Machine Learning)」の「生成モデル(Generative model)」の存在だ。ニューラルネットワークとの関連から端的かつ簡潔に纏めるなら、識別モデルの成功は、ほぼ逆伝播(Backpropagation)やドロップアウト(Dropout)のような学習アルゴリズム正則化(Regularization)の技術に基づいている。しかしこうしたコモディティ化されている後知恵だけでは、難解な確率計算の近似推論が困難になる。そのため、逆伝播やドロップアウトのような学習アルゴリズム正則化の技術が統計的機械学習生成モデルに強い設計思想上の影響を与える機会は限定的であった。これは、最尤推定とこれに関する設計、そして生成モデル文脈では、区分線形関数(Piecewise linear function)の機能を利用することが困難であることと照応している。

だがとりわけ2014年以来、「機械学習」と「統計的機械学習」、および「識別モデル」と「生成モデル」の一見理論的に乖離しているかのように思われる状況は、幾つかの問題設定の枠組みで解消されている。ここで「解消されている」というのは、機械学習理論統計的機械学習問題の枠組みの中で再記述されることで、理論的な接続可能性構成されているということである。そして、「幾つかの問題設定の枠組みで」というのは、既存の問題設定が、その歴史的な影響から反復的に再設定されているということでもある。それは、機械学習の概念実証や研究開発が、問題を再設定することによって、問題解決策展開していることを言い表している。言い換えれば、問題を再設定することこそが、問題解決策として機能しているのである。

以上を前提とすれば、統計的機械学習問題の枠組みのとりわけ生成モデルとの関連から深層学習を再記述することは、コモディティ化され、大衆化している「ディープラーニング」の残滓に囚われない発見探索可能にする。これらの先行事例を観察する場合には、問題志向型の等価機能分析的なアプローチが最良の方法となるであろう。それは、一定の問題設定を前提とした上で、複数の機能的に等価問題解決策比較していく方法である。以下では、絶えず問題設定問題解決策区別していくことによって、概念の歴史意味論観察していくことになる。この問題設定問題解決策区別の導入は、当初統計的機械学習問題の枠組みで記述されていたはずの生成モデルが、いつの間にか分類問題のような識別モデル問題設定でも機能することを明らかとするであろう。

問題解決策:敵対的生成ネットワーク

敵対的生成ネットワーク(Generative Adversarial Networks: GANs)」は、生成器モデル対者のモデルと競争するというゲーム理論的な状況設定に基づいている。このフレームワークは、これらのモデルが共に多層のパーセプトロンである場合に最も直接的に適用できるようになる。以下では、他でもないこのゲーム理論的な状況設定を選択するという設計者の「意思決定」が如何にして可能になったのかを、GANの概念史の意味論との関連から記述していく。

敵対的生成ネットワークと敵対的事例の差異

敵対的生成ネットワーク(Generative Adversarial Networks)は「敵対的事例(adversarial examples)」から区別されなければならない。敵対的事例は、分類器のネットワークに直接的に入力されるデータの勾配に準拠した最適化を利用することで発見される事例である。それは学習済みの分類器のモデルが未だ誤分類してしまうデータ類似した事例を発見するために用いられる。元来、敵対的事例生成モデルの訓練のために設計された方法なのではない。この方法機能するのは、興味を引く振る舞いを見せたニューラルネットワークを分析する場合である。

ニューラルネットワークは、人間と同様の精度に到達することが間々ある。したがって、こうしたモデルが真にその識別タスクを人間と同じ水準で理解しているのかどうかを知りたくなるのは道理である。そこで、対象となる識別タスクに対するネットワークの理解度を調査するために、モデルが誤分類した事例を探す訳だ。しかしこれは、敵対的生成ネットワーク問題設定から逸脱した問題である。

敵対的生成ネットワークの構造

敵対的生成ネットワークの定式は、生成器(Generator)と識別器(Discriminator)の区別を導入するところから始まる。GANのフレームワークでは、まず生成器の分布$$p_g$$を観測データ点$$x$$のもとで学習するために、事前分布として、入力ノイズ変数$$p_z(z)$$を定義する。そしてデータ空間写像を$$G(z; \theta_g)$$として表現する。ここで、$$G$$は、微分可能関数で、パラメタ$$\theta_g$$に基づいた多層パーセプトロンによって表現できる。更に、第二の多層パーセプトロンとして、単一のスカラを出力する識別機のモデル$$D(x; \theta_d)$$を定義する。$$D(x)$$は、$$x$$が生成器によって出力された$$p_g$$ではなく観測データ点それ自体である確率を表す。

敵対的生成ネットワークの最適化

識別器$$D$$の訓練は、訓練事例と$$G$$によってサンプリングされた事例の双方に対して正確なラベルを割り当てる確率を最大化するように実施される。$$G$$に対する訓練はこの訓練と同時に実行される。$$G$$においては、$$\log (1 – D(G(z)))$$を最小化するように実施される。言い換えれば、$$D$$と$$G$$の訓練は、一つの価値関数(Value function) $$V(G, D)$$ に基づいた二人のプレイヤーによるミニマックスゲーム(minimax game)の問題として設定される。

$$\min_G \max_D V(D, G) = \mathrm{E}_{x \sim p_{data}(x)}\left[\log D(x) \right] + \mathrm{E}_{z \sim p_z(z)}\left[\log(1 – D(G(z)))\right]$$

この定式が言い表している通り、識別器Dはサンプルの真偽を識別するように学習する。同時に、生成器識別器を言わば「騙す」ように学習することで、生成器がサンプルを真であると信じ込ませようとする。最適化が進んだ収束点においては、生成器のサンプルの分布と真の分布との差異は極小化されている。これら2つの分布を区別しようとする識別器は拠り所を失うために、どの入力に対しても0.5の確率値を出力することとなる。

ゲーム理論的な定式化の意味論

GANゲーム理論的な記述がミニマックスに行き着いているのは、理由の無いことではない。一般的に、二つのモデルコストに対して同時に勾配降下を適用したとしても、平衡に到達することは保証されていない。例えば、価値関数 $$V(a, b) = ab$$ を導入し、一方のモデルがaを制御してabを報酬として受け取ると共に、他方のモデルがbを制御して-abの報酬を受け取るとする。各モデル微小ステップで勾配を計算するように学習率を調節すると、各モデルは自身のコストを相手のコストに支払わせるように低減させていくことになる。そのため、aとbは原点の平衡点には到達せずに、安定した円軌道を描写することとなる。ここで、ミニマックスゲーム理論において、平衡点はVの極小値ではない。この平衡点は、双方のモデルコストが同時に最小になる点である。言い換えれば、平衡点は、一方のモデルのパラメタに対して極小値であって、他方のモデルのパラメタに対して極大値を取る。つまり平衡点とは、Vの鞍点(saddle point)なのだ。これを前提とすれば、双方のモデル学習アルゴリズムは、いずれのモデルコストを減少させることのできない鞍点に精確に到達するのではなく、ただ双方のモデルが交互にVの増減を永遠に反復させるように進行する可能性がある。

GAN学習アルゴリズムミニマックスの設定を採用しているのは、簡潔に纏めてしまうなら、それが当初ゼロサムゲームの設定で試行錯誤されていた名残りであると言える。当初のGANのフレームワークでは、生成器識別器が正しく推論する対数確率を減少させることを目指して設計されていた。だが後にGANは、これを発見探索的に再記述することになる。その結果として生成器は、上述した通り、識別器が誤った推論をする対数確率を増加させることを目指して再設計されたのである。この再記述はヒューリスティックな動機付けによって導入されている。それは単に、識別器生成器のあらゆるサンプルを高い信念棄却する場合でも、識別器のロジットに関する生成器コスト関数の微分が強く維持される点のみに起因している。生成器が偽(fake)のサンプルを生成することで識別器を「欺く(confuse)」ことが目指される場合、以上のような意味論が土台となっている。

敵対的生成ネットワークの機能

GANのフレームワークにおけるネットワーク構造上の利点は、まずマルコフ連鎖が一切必要とはならない点である。そしてこの構造では、逆伝播(Back propagation)だけで勾配が獲得される。また深層ボルツマンマシンをはじめとした生成モデルとは異なり、平均場近似における統計力学的な近似推論エネルギー分布に関わる熱力学的な分配関数を設定しなくても学習を進めることができる。

敵対的生成ネットワークの逆機能

一方、GANのフレームワークの欠点は、学習の収束の可能性である。$$\theta_g$$において、 $$max_D V(D, G)$$ が凸である場合には、この手続きは収束することが保証されている。一方、GとDがニューラルネットワークによって表現されている場合は、 $$max_D V(D, G)$$ は凸ではない場合があるために、学習は困難となる。加えて、 $$p_g(x)$$ は明示的に与えられてはいない。この分布は設計者が積極的に設定しなければならない。アルゴリズム設計上の欠点は、生成ネットワークを生成器識別器区別していることと関わる。と言うのも、敵対的生成ネットワーク学習アルゴリズムにおいて、DとGの学習同期的に実行する必要があるためである。特にDを更新することなくGを更新してはならない。

問題設定:GANの分類問題

ヨスト・トビアス・スプリンゲンベルクが2016年に発表した『カテゴリカル敵対的生成ネットワークによる教師なし学習半教師あり学習(Unsupervised and semi-supervised learning with categorical generative adversarial networks)』によれば、GANを分類問題に応用したモデルCatGANと呼ぶ。このモデルはカテゴリやクラスの推定を可能にする。だがそのアルゴリズムを確認すれば、この機能データクラスタリングのそれと等価であることがわかる。

ラベル無しの事例のデータセットを $$\chi = \{x^1, …, x^N\}$$ とする。このデータセットを用いた教師なし学習問題を、Χから識別器Dへの入力によって表現するなら、この問題は、カテゴリあるいはクラスKの番号をアプリオリに選択する問題として設定できる。更に、D(x)をカテゴリの条件付き確率分布を生成するモデルとして設定するなら、$$\sum_{k=1}^K p(y = k \mid x, D) = 1$$ となる。そのため、この教師なし学習の目標となるのは、クラスを割り当てることで良好な適合(goodness of fit)を実現する識別器Dの訓練である。サンプルの中での正例の確率分布は未知となる。それは最小化のためというよりはむしろ、識別機の能を判断するための中間測定として特定されなければならない。とりわけ識別器Dとして選好されるべきなのは、与えられたサンプルΧにおけるクラスの条件付き分布$$p(y \mid x, D)$$が高い確実を有しており、かつクラスの周辺分布$$p(y \mid D)$$が全てのkにおいて事前分布$$p(y)$$に近接するという要求を満たす識別器である。クラスの事前分布が一様分布であると仮定するなら、Χのクラスごとのサンプルは、全てのkにおいて次のように表現される。

$$k: \forall k, k’ \in K : p(y = k \mid D) = p(y = k’ \mid D)$$

問題再設定:GANの多クラス分類問題

この問題設定からは二つの洞察が得られる。第一に、このモデル確率論的でソフト(soft)なクラスタリングの問題として記述できる。この問題に対する問題解決策は、したがって、原理的にデータクラスタリングアルゴリズムとなる。敵対的生成ネットワークのフレームワークに準拠した場合に特筆すべきなのは、ロバストなモデルとして設計できるという点である。

第二の洞察は、標準的な敵対的生成ネットワークの目的関数は、記述問題を解くためには直接的に利用できないことと関わる。その理由は識別器Dの機能にある。この識別器は標準的な敵対的生成ネットワーク最適化によってモデル化されている。このモデルは、入力された観測データ点の統計量を把握しなければならない。識別器が有用となるのは、与えられたサンプルxがχに属するか否かを決定する場合に限られる。データの分布をモデル化できる識別器に対してならば、識別器によるクラスタリングのようなクラスの抽出で有用となる特徴表現学習していると、原理上は期待することができる。しかしながら、関数Dが真偽(real/fake)を識別するという二値(binary)の分類問題を実行することの意味は、敵対的生成ネットワークのフレームワークに限定されている訳ではない。そして識別器Dが将来的に焦点を定めることになる観測データ点の特徴は、生成器によって精確にモデル化されている訳ではない。したがって、この特徴表現において、当の問題設定で識別しようとしているクラスの概念に適合させる必要は必ずしも無いということになる。極端に言えば、生成器によって生み出されたデータの中からノイズを検知することによっても、この特徴表現は実現可能である。

原理的だが単純明快な上記の問題設定は、敵対的生成ネットワークのフレームワークを多クラスの分類問題に拡張することも可能にしている。このフレームワークに倣い、二人のプレイヤーが参加しているゲームを設定しよう。このプレイヤーの一人である識別器Dには、xがΧに属する確率を予測させる代わりに、K個のカテゴリあるいはクラスの一つ一つにそれぞれのサンプルを割り当てさせることになる。無論、生成器Gによって生成されたサンプルがクラスの割り当てを不確実化させるという前提においてである。むしろこのGによるノイズこそが、識別器Dにロバストを与える。類推的に言い換えるなら、生成器問題設定は「データセットに属するサンプルを生成する(generate samples that belong to the dataset)」から「K個のクラスのうちの一つに正確に属するサンプルを生成する(generate samples that belong to precisely one out of K classes)」へと再記述することができる。

問題再設定:GANのクラス確率最適化問題

したがって、クラス分類問題における最適化問題設定は、定式化される標準的な敵対的生成ネットワークから区別される。と言うのもこの場合、二値の識別関数学習する代わりに、いずれのデータxに対してもラベルyを割り当てることによって、K個のカテゴリの中でデータを分割することこそが、識別器学習の目的となるためだ。定式化して言えば、この識別関数はD(x)となる。この関数機能は、微分可能関数で、次のようなK個のクラスのロジットを予測する。

$$D(x) \in \mathbb{R}^K$$

相互に排他的なK個のラベルのうちの一つにサンプルxが属する確率は、識別器の出力層におけるソフトマックス関数によって表現できる。

$$p(y = k \mid x, D) = \frac{e^{D_k(x)}}{\sum_{k=1}^K e^{D_k(x)}}$$

標準的な敵対的生成ネットワークと同様に、生成器はG(z)と表現できる。このモデルはアトランダムなノイズ $$z \in \mathbb{R}^Z$$を写像することで、 $$\tilde{x} \in \mathbb{R}^I$$ のサンプルを生成する。すなわち、 $$\tilde{x} = G(z), \ with \ z \sim P(z)$$

ここで、 P(z) は任意のノイズの分布を表す。DとGはいずれも常に線形関数やロジスティクス関数を出力層に有する多層ニューラルネットワークとしてパラメタ化される。

この時、生成器Gの機能は、識別器Dの正則化となる。この関連からDとGはそれぞれの視点から学習展開することになる。識別器Dは三つの要求を満たそうとする。一つ目がクラスの割り当ての確実で、二つ目が生成器のサンプルの割り当ての不確実性で、そして三つ目が全てのクラスを同値で扱うということである。一方、生成器Gは二つの要求を満たそうとする。一つは高い確実を有したクラス割り当てを伴わせるサンプルを生成することである。そして二つ目は、K個全てのクラスに渡ってサンプルを等価な分布として扱うことである。

問題解決策:シャノンエントロピーの情報理論

識別器Dの視点から観察するなら、クラス確率の最大化あるいは最小化の問題は、これらの要求によって再設定することが可能になる。K個のクラスについてのラベルの追加情報が無ければ、クラス確率 $$p(y = k \mid x, D)$$は上述した要求を如何なるxに対しても最大化されるべきである。しかし、予測されるクラスの分布においては、情報理論的な測定を通じた直観(intuition)を働かせることもできる。この問題に適用可能な指標の中で最も直接的に導入できる測定指標は、シャノンエントロピーのHである。このHは、与えられた分布からサンプルされた情報期待値として定義できる。直観的に言えば、もしクラス分布 $$p(y \mid x, D)$$が高次のピークになるように条件付けられるのならば、識別器Dはクラス割り当てにおいて確実化されるべきである。観測者が、それが低くなるようにサンプリングされた情報内容 $$H[p(y \mid x, D)]$$を求めるのは、どのサンプリングからの描写も常に同様のクラスになるはずだからだ。一方で、生成器Gから生成されたΧに属さないサンプルに対して条件付きクラス分布を非常に不確実でフラットにしたい場合、エントロピー$$H[p(y \mid G(z), D)$$を最大化することができる。その最適解において、このエントロピーはクラスにおける条件付き一様分布となる。そしてこれが、上述した識別器への第二の要求生成器のサンプルの割り当ての不確実性という要求を満たすのである。

条件付きエントロピーの差異

より具体化して言えば、Χからのサンプルにおける条件付きエントロピー経験的推定は次のようになる。

$$\mathbb{E}_{x \sim \chi} = \frac{1}{N}\sum_{i=1}^N H\left[p(y \mid x^i, D)\right] = \frac{1}{N}\sum_{i=1}^N\left(-\sum_{k=1}^Kp(y = k \mid x^i, D) \log p(y = k \mid x^i, D)\right)$$

生成器からのサンプルにおける条件付きエントロピー経験的推定は、事前分布$$P(z)$$に対する$$H[p(y \mid G(z), D)$$の期待値として表現できる。ここでzはノイズを表す。また、この確率分布はモンテカルロ法によるサンプリングによって近似的に生成される。

$$\mathbb{E}_{z \sim P(z)}\left[H\left[p(y \mid D(z), D)\right]\right] \approx \frac{1}{M}\sum_{i=1}^MH\left[p(y \mid G(z^i), D)\right], \ with \ z^i \sim P(z)$$

ここでMは独立したサンプルの個数を意味する。単純化して $$M = N$$と仮定しても良いとされる。この関連から、一様周辺分布との対応関係を前提とした上で、識別器における第三の要求、すなわち全てのクラスを同値で扱うという要求を満たす際、経験的にΧに準拠して生成器Gからサンプリングされている周辺クラス分布のエントロピーを最大化することが可能になる。

$$H_{\chi}[p(y \mid D)] = H\left[\frac{1}{N}\sum_{i=1}^Np(y \mid x^i, D)\right]$$

$$H_G[p(y \mid D)] \approx H\left[\frac{1}{M}\sum_{i=1}^Mp(y \mid G(z^i), D)\right], \ with \ z^i \sim P(z)$$

これら二つのエントロピーのうち後者のエントロピーは、生成器Gの側からた第二の要求、すなわちK個全てのクラスに渡ってサンプルを等価な分布として扱うという要求を満たすことを必要とする最大化問題として定義される。一方、生成器Gにおける第一の要求に関しては、モンテカルロ法によって近似される上述した期待値表現においてというよりはむしろ最小化と関わる。

目的関数の形式としての相互情報量

以上の情報理論的な記述を前提とするなら、敵対的生成ネットワークの多クラスの分類モデルであるCatGANの目的関数を定義することが可能になる。

$$\mathcal{L}_D = \max_D \left( H_{\chi} [p(y \mid D)] – \mathbb{E}_{x \sim \chi}\left[H\left[p(y \mid x, D)\right]\right] + \mathbb{E}_{z \sim P(z)} \left[H\left[p(y \mid G(z), D)\right]\right]\right)$$

$$\mathcal{L}_G = \min_G \left( – H_G\left[p(y \mid D)\right] + \mathbb{E}_{z \sim P(z)}\left[H\left[p(y \mid G(z), D)\right]\right]\right)$$

ここで、Hは上述した定義に従う経験的なエントロピー意味する。そして、生成器Gにおける$$\mathcal{L}_G$$は、標準的な敵対的生成ネットワーク最適化問題の類推により、最小化問題として定義できる。この定式化は上述した三つの要求を満たすと同時に、次のような単純な情報理論的な解釈を前提としている。$$\mathcal{L}_D$$における最初の二つの項は、データの分布と予測されたクラス確率の分布における「相互情報量(mutual information)」の推定値となる。これは、識別器Dが最大化する対象としている一方で、生成器Gに由来するG(z)においては最小化したい情報量でもある。更に類推的に言い換えれば、$$\mathcal{L}_G$$最初の二つの項もまた相互情報量を表している。この場合、相互情報量は生成されたサンプルと予測されたクラス確率との間の相互情報量となる。

ミニバッチの確率的勾配降下法

上記の目的関数最適化を試みるなら、大量のデータセットを入力しつつ、ミニバッチの確率的勾配降下法(stochastic gradient descent: SGD)を適用することになる。上記の定式における条件付きエントロピーの項は、サンプルのエントロピーごとの総和を意味する。それ故に単純にバッチ単位での計算が可能になる。しかしながら一方で、周辺エントロピーである$$H_{\chi}[p(y \mid D)]$$と$$H_G[p(y \mid D)]$$を求めるには、全データセットΧに渡る総和か、あるいは生成器Gによってサンプリングされた巨大なデータセットにおいてエントロピーを計算しなくてはならない。したがって、単純にバッチ単位でデータセットを分割することは許されない。識別器Dが予測する必要のあるカテゴリKの個数がバッチサイズよりも非常に少ない場合、この問題は単純に解消される。何故ならこの場合、アトランダムにサンプリングされたバッチサイズ分の周辺クラス分布の推定問題となるためである。バッチサイズをBとするなら、この推定は次のように計算される。

$$H_{\chi}\left[p(y \mid D)\right] \approx H\left[\frac{1}{B}\sum_{x \in \chi_B}p(y \mid x^i, D)\right]$$

M = Nとするなら、生成器Gにおける推定$$H_{G}\left[p(y \mid D)\right]$$も同様に近似し得る。しかしこれが合理的機能するのは、Kが10以下で、バッチサイズBが100の場合である。カテゴリ数が増えた場合の対応は、未解決問題として留まっている。

問題再設定:半教師あり学習問題の枠組み

以上のCatGANの定式化は半教師あり学習問題においても再利用することができる。L個のラベル付けられたサンプルデータセットを$$\chi^L = \{(x^1, y^1), …, (x^L, y^L)\}$$とするなら、ラベルのone-hotベクトル表現は$$y^i \in \mathbb{R}^K$$となる。この表現においては、N個のラベル無しサンプルがΧに含まれている。上述した最適化問題の定式を再利用するなら、これらの追加サンプルを組み合わせるには、ラベル無しのサンプルを利用したエントロピーHを計算する代わりに、予測された条件付き分布 $$p(y \mid x, D)$$と$$\chi^L$$から得られた正例のラベルの分布との間のクロスエントロピーを計算することが求められる。ラベル付けられたデータセットの組み合わせ(x, y)のクロスエントロピーは次のように計算される。

$$CE[y, p(y \mid x, D)] = – \sum_{i=1}^K y_i \log p (y=y_i \mid x, D)$$

問題解決策:半教師ありCatGAN

CatGAN半教師あり学習アルゴリズムとして再利用したモデルを「半教師ありCatGAN(semi-supervised CatGAN)」と呼ぶ。このモデルは二つの目的関数を持つ。識別器Dの視点かられば、目的関数は$$\mathcal{L}_D^L$$となる。一方生成器Gの側かられば、目的関数は$$\mathcal{L}_D^L$$となる。

$$\mathcal{L}_D^L = \max_D H_{\chi}[p(y \mid D)] – \mathbb{E}_{x \sim \chi}\left[H[p(y \mid x, D)]\right] + \mathbb{E}_{z \sim P(z)}\left[H[p(y \mid G(z), D)]\right] + \lambda \mathbb{E}_{(x, y) \sim \chi^L}[CE[y, p(y \mid x, D)]$$

$$\mathcal{L}_G^L = \mathcal{L}_G$$

ここで、λはコスト重み付け項を表す。

機能的等価物の探索: 半教師あり敵対的自己符号化器

敵対的生成ネットワーク構造的な拡張物は、CatGAN以外にも様々な半教師あり学習アルゴリズムの設計を可能にする。例えば「敵対的自己符号化器(Adversarial Auto-Encoder: AAE)」のモデルは、自己符号化器生成モデルに変換することを可能にする。敵対的生成ネットワークのフレームワークは、生成モデルであるGと識別モデルであるDから構成されている二つのニューラルネットワークの間でゲーム理論におけるミニマックス戦略の敵対的ゲーム展開するのであった。敵対的自己符号化器もまた、この展開を踏襲している。

敵対的自己符号化器のネットワーク構造

自己符号化器に入力される観測データ点を $$x$$ とし、隠れ層の潜在変数のベクトルを $$z$$ とする。潜在変数をサンプリングする際の事前分布を $$p(z)$$ とし、符号化確率分布と復号化確率分布をそれぞれ $$q(z \mid x), p(x \mid z)$$ とする。また、観測データ点の分布とモデルの分布をそれぞれ $$p_d(x), p(x)$$ とする。自己符号化器 $$q(z \mid x)$$ における符号化関数は、以下のように、自己符号化器の潜在変数における $$q(z)$$ の事後分布を規定することができる。

$$q(z) = \int_x^{} q(z \mid x)p_d(x)dx$$

Makhzani, A., Shlens, J., Jaitly, N., Goodfellow, I., & Frey, B. (2015). Adversarial autoencoders. arXiv preprint arXiv:1511.05644., p2より掲載。

Makhzani, A., Shlens, J., Jaitly, N., Goodfellow, I., & Frey, B. (2015). Adversarial autoencoders. arXiv preprint arXiv:1511.05644., p2より掲載。

敵対的自己符号化器の最適化

したがって、敵対的自己符号化器事後分布 $$q(z)$$ を任意の事前分布 $$p(z)$$ に適合させる自己符号化器として実装される。このために敵対的生成ネットワーク自己符号化器の潜在変数との間に構造的な結合構成する。自己符号化器再構成誤差の最小化を試行する。敵対的生成ネットワークにおける生成器は、自己符号化器 $$q(z \mid x)$$ における符号化器となる。この符号化器によって、敵対的生成ネットワークにおける識別器は、計算された事後分布が真の事前分布 $$p(z)$$ に由来する潜在変数のサンプリング $$q(z)$$ であると欺かれることになる。

この場合、敵対的生成ネットワーク自己符号化器は共に確率的勾配降下法(stochastic gradient descent: SGD)によって訓練される。その訓練は「再構成フェーズ(reconstruction phase)」と「正則化フェーズ(regularization phase)」に区別される。これらのフェーズではそれぞれミニバッチによる学習が実行される。再構成フェーズでは、自己符号化器はその符号化器と復号下器を入力された観測データ点との再構成誤差を最小化するべく更新していく。一方、正則化フェーズでは、まず敵対的生成ネットワークがその識別器を生成されたサンプルと真の分布に基づくサンプルを区別できるように訓練する。その上で敵対的生成ネットワークはその生成モデルに該当する自己符号化器を、敵対的生成ネットワークにおける識別器を欺くべく更新していく。一度学習が実行されれば、自己符号化器における復号化器は、$$p(z)$$ の事前分布データの分布に適用する写像構成する生成モデルとなる。

符号化器のモデリング

敵対的自己符号化器のフレームワークでは、幾つかのモデル符号化器 $$q(z \mid x)$$ として採用できる。第一に、単純に識別モデルを導入することができる。この場合、 $$q(z \mid x)$$ はxの識別関数として機能する。この符号化器は標準的な自己符号化器類似した構造になる。そして $$q(z)$$ における確率の発生源だけがデータの分布 $$p_d(x)$$ となる。

第二の選択肢は「ガウス事後分布(Gaussian posterior)」である。この場合、 $$q(z \mid x)$$ はガウス分布として機能する。ここで、当のガウス分布は次のような符号化器のネットワーク構造によって予測される。

$$z_i \sim \mathrm{N}(\mu_i(x), \sigma_i(x))$$

$$q(z)$$ の確率は、符号化器の出力において、データ分布とガウス分布による乱数生成に由来して生成される。

第三に採用し得るのは、「万有近似事後分布(Universal approximator posterior)」である。敵対的自己符号化器事後分布の万有近似として $$q(z \mid x)$$ を訓練するために利用することができる。敵対的自己符号化器における符号化器のネットワーク構造関数 $$f(x, \eta)$$ とする。ここで、$$x$$ は入力された観測データ点で、 $$\eta$$ はガウス分布などで固定された分布から生成された乱数ノイズを表す。この観測データ点とノイズ区別により、異なる $$\eta$$ のサンプルの比較に基づいた $$f(x, \eta)$$ の評価によって、任意の事後分布 $$q(z \mid x)$$ をサンプリングすることが可能になる。言い換えれば、$$q(z \mid x, \tau) = \sigma(z – f(x, \eta))$$ と事後分布 $$q(z \mid x)$$ を仮定することにより、計算後の事後分布 $$q(z)$$ は次のように定義できる。

$$q(z \mid x) = \int_{\eta}q(z \mid x, \eta)p_{\eta}(\eta)d\eta \rightarrow q(z) = \int_x\int_{\eta}q(z \mid x, \eta)p_d(x)p_{\eta}(\eta)d\eta dx$$

この場合、 $$q(z)$$ の確率データ分布と自己符号化器に入力された観測データ点の乱数ノイズ $$\tau$$ の双方によって生成される。注意しなければならないのは、この場合に事後分布 $$q(z \mid x)$$ はもはやガウス分布の制約を受けないということだ。そして符号化器は入力された観測データ点 $$x$$ に対する任意の事後分布学習することが可能になる。計算された事後分布 $$q(z)$$ からサンプリングする効果的な方法存在するなら、敵対的な訓練は、符号化器のネットワーク $$f(x, \eta)$$ を通じた直接的な逆伝播によって $$q(z) \rightarrow p(z)$$を適用することで実現する。

以上のように、異なる形式の $$q(z \mid x)$$ を採用することによって、異なる訓練の力学に基づいた異なるモデルを構築することが可能になる。

教師あり敵対的自己符号化器と半教師あり敵対的自己符号化器の差異

敵対的自己符号化器によって半教師あり学習を実現するには、ラベル情報を取り扱うために、敵対的自己符号化器のネットワーク構造ラベル符号化とその復号化可能にする構造結合させなければならない。この「半教師あり敵対的自己符号化器(Semi-supervised Adversarial Auto-Encoder)」のモデリングは、「教師あり敵対的自己符号化器(Supervised Adversarial Auto-Encoder)」のモデリング比較することで明確になる。例えばMNISTのように単純な画像認識問題では、ラベルはone-hotなベクトルとして定義できる。復号化器はこの場合、ラベルを特定するためのone-hotベクトルと画像を再構成するための潜在変数 $$z$$ の双方を処理することとなる。このアーキテクチャによって、ネットワーク構造は全ての情報を潜在変数 $$z$$ におけるラベルとは独立して保持することになる。

Makhzani, A., Shlens, J., Jaitly, N., Goodfellow, I., & Frey, B. (2015). Adversarial autoencoders. arXiv preprint arXiv:1511.05644., p8より掲載。

Makhzani, A., Shlens, J., Jaitly, N., Goodfellow, I., & Frey, B. (2015). Adversarial autoencoders. arXiv preprint arXiv:1511.05644., p8より掲載。

半教師あり敵対的自己符号化器のネットワーク構造

教師あり敵対的自己符号化器のネットワーク構造は、上記の教師あり敵対的自己符号化器構造的な拡張によって成り立つ。半教師あり敵対的自己符号化器機能は、ラベル無しのデータの生成的な説明(generative description)を利用することによって、ラベルデータのみを利用することで得られる分類能を向上することにある。教師あり敵対的自己符号化器と半教師あり敵対的自己符号化器の特筆すべき差異は、ガウス分布からサンプリングされた連続量の潜在変数 $$z$$ のみならず、カテゴリカル分布からサンプリングされた潜在クラス変数 $$y$$ からもデータが生成されるという点にある。定式化するなら、この差異は以下の二つの確率分布の差異によって表現される。

$$p(y) = Cat(y), p(z) =\mathrm{N}(z \mid 0, I)$$

教師あり敵対的自己符号化器構造においては、敵対的自己符号化器推論のネットワークが符号化器 $$q(z, y \mid x)$$ を利用することで離散クラス変数 $$y$$ と連続的な潜在変数 $$z$$ の双方を予測することになる。復号化器はそれ故、one-hotなベクトルとしてのクラスラベル連続的な潜在変数 $$z$$ を、画像の再構成のために処理する。

この構造との関連から、自己符号化器隠れ層における特徴表現正則化する敵対的生成ネットワークは、次の二つに区別される。第一に、ラベル特徴表現におけるカテゴリカル分布の敵対的生成ネットワークである。このネットワークでは、如何なる「型(style)」の情報も持たないクラス変数 $$y$$ とカテゴリカル分布に適合された $$y$$ の事後分布が担保される。一方第二のネットワークは、情報の「型」に関する特徴表現におけるガウス分布が参照される。この特徴表現では、潜在変数 $$z$$ が連続的なガウス変数となる。

半教師あり敵対的自己符号化器の最適化

教師あり敵対的生成ネットワークの場合、敵対的生成ネットワーク自己符号化器は三つのフェーズに区別されるSGDによって共に訓練される。その三つのフェーズとは、「再構成フェーズ」と「正則化フェーズ」と「半教師あり分類フェーズ(semi-supervised classification phase)」である。再構成フェーズでは、自己符号化器符号化器 $$q(z, y \mid x)$$ と復号化器を更新していく。この学習アルゴリズムは、入力された観測データ点とラベルなしのデータとの間の再構成誤差を最小化するべく、ミニバッチで実行される。正則化フェーズでは、いずれの敵対的生成ネットワークもまず識別器のネットワークを生成されたサンプルと真の分布のサンプルとを区別するべく更新していく。ここでいう真の分布とは、カテゴリカル事前分布とガウス事前分布である。一方生成モデルのサンプルは、自己符号化器の潜在変数として埋め込まれている特徴量を意味する。それから敵対的生成ネットワークは、生成モデル識別器を欺くべく更新していく。最後に、半教師あり分類フェーズでは、自己符号化器は $$q(y \mid x)$$ をラベルデータにおけるクロスエントロピーコストを最小化するべく更新していく。この学習アルゴリズムもまたミニバッチで実行される。

Makhzani, A., Shlens, J., Jaitly, N., Goodfellow, I., & Frey, B. (2015). Adversarial autoencoders. arXiv preprint arXiv:1511.05644., p9より掲載。

Makhzani, A., Shlens, J., Jaitly, N., Goodfellow, I., & Frey, B. (2015). Adversarial autoencoders. arXiv preprint arXiv:1511.05644., p9より掲載。

プロトタイプの開発:敵対的生成ネットワークと敵対的自己符号化器のフレームワーク

GitHubのaccel-brain-code/Generative-Adversarial-Networksのリポジトリでは、敵対的生成ネットワーク敵対的自己符号化器のライブラリを公開している。生成モデルを構築するという点では、敵対的生成ネットワーク深層ボルツマンマシン機能的等価物となる。しかしこの関連がより明瞭となるのは、敵対的生成ネットワーク敵対的自己符号化器へと拡張した場合であろう。敵対的自己符号化器は、自己符号化器生成モデルに変換することを可能にするのである。ここでいう自己符号化器は、深層ボルツマンマシン自己符号化器として構築した場合に限らず、CNNやLSTMのような他のニューラルネットワーク系のモデル自己符号化器として構築した場合も該当する。このライブラリは、これら様々なモデル機能的に等価生成モデルに変換することで、その機能的比較可能にしている。

このライブラリはフレームワークとして機能する。真の分布のサンプラー、生成器、そして分類器には、それぞれインターフェイスを用意している。これらのインターフェイスを実装したクラスは、Strategy PatternにおけるConcrete Strategyのように利用される。各具象クラスのプロトタイプには、accel-brain-code/Deep-Learning-by-means-of-Design-Patternで公開しているpydbmを利用している。しかし共通インターフェイスを被せた機能的等価物であるなら、他のライブラリを用いても実装することができる。以上のフレームワークは、pyganとして提供している。

参考文献

  • Goodfellow, I. J. (2014). On distinguishability criteria for estimating generative models. arXiv preprint arXiv:1412.6515.
  • Goodfellow, I., Pouget-Abadie, J., Mirza, M., Xu, B., Warde-Farley, D., Ozair, S., … & Bengio, Y. (2014). Generative adversarial nets. In Advances in neural information processing systems (pp. 2672-2680).
  • Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep learning (adaptive computation and machine learning series). Adaptive Computation and Machine Learning series.
  • Loshchilov, I., & Hutter, F. (2017). Fixing weight decay regularization in adam. arXiv preprint arXiv:1711.05101.
  • Makhzani, A., Shlens, J., Jaitly, N., Goodfellow, I., & Frey, B. (2015). Adversarial autoencoders. arXiv preprint arXiv:1511.05644.
  • Springenberg, J. T. (2015). Unsupervised and semi-supervised learning with categorical generative adversarial networks. arXiv preprint arXiv:1511.06390.
  • Srivastava, N., Hinton, G., Krizhevsky, A., Sutskever, I., & Salakhutdinov, R. (2014). Dropout: a simple way to prevent neural networks from overfitting. The Journal of Machine Learning Research, 15(1), 1929-1958.