深層強化学習の統計的機械学習、強化学習の関数近似器としての深層学習 | Accel Brain

深層強化学習の統計的機械学習、強化学習の関数近似器としての深層学習

Accel Brain; Console×

派生問題:複合的な方策の一般化と関数近似は如何にして可能になるのか

これまでの推定価値関数のように、単一の状態や単一の状態と行動の組み合わせのみを前提とした場合、状態の数と行動の数が少ない場合にしか方策を規定できなくなる。そのため、限定された部分集合的な経験一般化(generalization)することで、既知の状態や既知の状態と行動の組み合わせから未知の状態や未知の状態と行動の組み合わせに対応する価値を近似的に算出する必要がある。例えば強化学習が適用される視覚情報のセンシング技術などのように、同一の状態で同一の経験が得られる保証の無い場合には、とりわけ過去の経験から未だ経験していない状態や行動へと一般化することが求められる。

そこで、強化学習問題教師あり学習(supervised learning)の問題と接点を持つことになる。つまり、教師あり学習の一種である関数近似(function approximation)の一般化方法強化学習アルゴリズムに組み込むことにより、目的関数となる既知の価値関数から関数全体を近似する一般化を試みることになる。そのためニューラルネットワークパターン認識、決定木などのような教師あり学習は、強化学習問題においても有用なアルゴリズムとして挙げられるかもしれない。

だが、全ての関数近似方法が例外無く強化学習に適している訳ではない。例えばニューラルネットワークでは、静的な訓練データ集合を前提としているために、同一のデータで複数回の試行が実行されることを想定されている。しかしながら強化学習では、環境やそのモデルとの相互作用を通じて、学習がオンラインで実行可能でなければならない場合もある。そのためには、新データを随時獲得しつつ漸進的学習し続ける方法が必要になる。

更に付け加えるなら、強化学習問題の枠組みでは、「非定常目的関数(nonstationarity target function)」を参照した関数近似方法が求められる。非定常目的関数とは、時間と共に変異する目的関数意味する。例えば方策が変化しない場合であっても、訓練データ内の目的価値が動的計画法やTD学習などによるブートストラップ法によって生成される場合には、その目標価値は非定常型となる。こうした非定常を扱うことを不得手としている関数近似方法は、強化学習には不向きと言える。

問題解決策:平均二乗誤差

教師あり学習の大半は、入力の分布P上の「平均二乗誤差(mean-squared error)」を最小化するように動作する。強化学習における価値の予測問題では、入力値に該当するのが状態で、目的関数に該当するのが真の価値関数となる。したがって、パラメタθを用いた価値Vの近似に関する平均二乗誤差MSEは次のようになる。

$$MSE(\overrightarrow{\theta_t}) = \sum_{s \in S}^{}P(s) [V^π(s) – V_{t(s)}]^2$$

Pは異なる状態の誤差重み付けする分布を表す。あらゆる状態の誤差をゼロまで小さくすることは、通常ならば不可能だ。そのためこの分布は重要な位置付けにあるとされる。一般的に状態数はθの要素数に比して極めて大きい。言うなれば関数近似器近似能力の自由度は希少資源のようなものだ。つまり、一部の状態でより良い近似を得るためには、他の状態での近似の質を犠牲にせざるを得ない。分布Pは、このトレードオフの関係を指し示している。

問題解決策:大域最適解と局所最適解の区別

この最小二乗誤差に固執すべきか否かは議論の余地がある。強化学習問題の枠組みにおいて重要となるのは、最小二乗誤差の追究ではない。強化学習で求められるのは、教師あり学習の予測を機能的再利用することでより良い方策の発見へと応用していくことだ。最小二乗誤差における理想的な目標は「大域最適解(global optimum)」を発見することに他ならない。この理想的な目標は、線形関数などのような比較的単純な関数近似方法においては達成可能である場合が多い。しかしニューラルネットワーク決定木などのような比較的複雑な関数近似においては、ほぼ不可能である。

こうした複雑な関数近似は、代替的に「局所最適解(local optimum)」へ収束するように動作する。これは、非線形関数近似それ自体の目的の達成という点では十分な解決としてられる場合がある。だが強化学習問題の事例の多くにおいて、最適解への収束は見受けられていない。この関数近似問題は、この点で未だ研究途上にあると言える。例えば勾配に基づく関数近似の中では「深層アーキテクチャ(Deep architecuture)」とも関わりを持つ逆伝播を用いた多層ニューラルネットワークが採用される場合がある。いわゆるDQN(Deep Q Network)は、この方面を推し進め、関数近似に「深層学習(Deep learning)」を用いた方法となっている。

問題解決策:関数近似による行動価値推定

関数記事を用いた状態価値推定行動価値推定拡張することは比較的容易に実現できる。ここでもまた、探索を確実に実行させる方法として、「方策オン型」と「方策オフ型」の区別が導入される。

行動価値関数はパラメタ・ベクトル$$\overrightarrow{\theta_t}$$によってパラメタ表現された関数形式で、$$Q_t \approx Q^π$$と表せる。状態価値推定が$$s_t \rightarrow v_t$$であるなら、行動価値推定は$$s_t, a_t \rightarrow v_t$$という形式で記述できる。状態価値関数における価値vが状態に関する近似であるのならば、行動価値関数における目的となる価値vは、$$Q^π(s_t, a_t)$$に対する近似であれば良い。

$$\overrightarrow{\theta_{t+1}} = \overrightarrow{\theta_t} + \alpha [v_t – Q_t(s_t, a_t)] ∇_{\overrightarrow{\theta_t}}Q_t(s_t, a_t)$$

例えばTD(λ)同様、行動価値関数に対する逆方向のビューは次のようになる。

$$\overrightarrow{\theta_{t + 1}} = \overrightarrow{\theta_t} \alpha\sigma_t\overrightarrow{e_t}$$
$$\sigma_t = r_{t+1} + γQ_t(s_{t+1}, a_{t+1}) – Q_t(s_t, a_t)$$
$$\overrightarrow{e_t} = γ\lambda\overrightarrow{e_{t-1}} + ∇_{\overrightarrow{\theta_t}}Q_t(s_t, a_t)$$
$$\overrightarrow{e_0} = \overrightarrow{0}$$

SarsaQ学習のような制御に応用するには、上記のような行動価値予測計算に方策改善と行動選択方法を関連付けて実装する必要がある。だが行動全体が巨大な離散集合連続値となる場合は特に、こうした設計に明確な解を与えられるほどには、研究は進んでいない。

問題解決策:深層学習

遅くても2006年から2009年ごろの間には、「深層学習(Deep Learning)」の研究領域では、「深層アーキテクチャ(Deep Architectures)」という概念が取り沙汰にされるようになった。

ここでいうアーキテクチャの深さ(depth of architecture)は、非線形関数の水準を意味する。深さがあるということが意味するのは、深層アーキテクチャ構造的にもアルゴリズム的にも「階層分化」しているということだ。例えばニューラルネットワークならば隠れ層(Hidden Layer)の個数に比例して「深くなる」。深層アーキテクチャはこうした中間層のように高度に可変的な関数(highly-varying function)を幾つも階層的に組み合わせ、比較的低水準の層で抽出した個別具体的な特徴ベクトルが比較的高水準の層に渡されるに連れて抽象化されていくという機構によって、概念の表現可能にしている。

この概念の抽象化された表現関数近似を前提とした「一般化(generalization)」によって成り立っている。深層学習機能関数近似一般化による概念の抽象化可能にする点にあると言える。

表面的にれば、深層学習特徴は深く層の数の多いニューラルネットワークとして記述できる。しかしより重要なのは、深層学習アルゴリズム観測したデータ点を対象とした概念の抽象化による情報抽出如何にして可能になるのかだ。この抽出したデータをとりわけ「内部表現(internal representation)」、あるいは単に「特徴(feature)」と呼ぶ。自然言語処理のみならず、音声認識や画像認識をはじめとしたパターン認識においては、入力可能な音声や画像のパターン情報から認識に有用な特徴ベクトルを抽出することが先決となる。認識に適用可能な少数の有用な特徴ベクトルが抽出できれば、線形分類器やベイズフィルターなどによってクラス確率推定やラベリングが可能になる。

内部表現特徴抽出要求されるのは、観測したデータに潜在的な構造が含まれているためだ。例えばデータが局所的なクラスタとして分布している場合には、事前にデータ・クラスタリングを実行した後に、各クラスタに対するデータ処理を実行した方が効率が良い。そうしたクラスタは「カテゴリ(category)」とは異なって、人間が事前に把握していた集合とは別のあり方でもあり得る関連を指し示す。そうした関連は、元来無関係と思われていた複数の問題設定を紐付けることによって、それら複数の問題を一挙に解決するアルゴリズムへの道標を連想させることもあり得る。確かに「ノーフリーランチ定理(no free lunch theorem)」が物語るように、あらゆる問題設定に対して機能する万能なアルゴリズムはあり得ない。だが、多くの問題設定に対応し得る汎用の高い内部表現抽出できれば、より汎用的な問題解決策となるアルゴリズムを設計することも可能になる。

ニューラルネットワークの関数近似能力

ニューラルネットワークは長らく「勾配消失(Vanishing Gradient)」にしめられていた。多層化されたニューラルネットワークでは、損失関数のパラメタの勾配が0に近付いてしまう。つまり最急降下による勾配が小さくなることで、それ以上学習が進まなくなってしまうのだ。

歴史的な経緯からすれば、ニューラルネットワークは外部要因からも厳しい制約を受けていた。丁度勾配消失問題が取り上げられた時期と重なるように、「サポートベクトルマシン(Support vector machine; SVM)」が脚光を浴びたためだ。SVMはニューラルネットワークのように局所収束の問題に直面する訳ではない。この方法はカーネルによる複雑な非線形的な識別分類をも可能にする。MNIST(Mixed National Institute of Standards and Technology database)の手書き文字認識に対するベンチマークテストでも、当時はニューラルネットワークを上回る能を発揮していた。

SVMはパターン識別方法の一種であると共に、データ・クラスタリングの一種でもある。このクラスタ分析では、クラスタと非クラスタ差異が重視される。SVMは「マージン最大化」によって、各クラスタの内外境界決定する。ここでいう「マージン(margin)」とは、あるクラスタの内外境界から最も近傍に位置するデータとの距離を指す。例えば二次元平面上の情報空間クラスタリングを実行する場合、各クラスタの内外境界を規定するためには、クラスタ区別する線分を引く必要がある。この差異化は、所与の各データを前提とした場合のみならず、未知の新たなデータが入力された場合にも適用できなければならない。さもなければそのクラスタ分析結果は汎化可能性を失う。したがってここで記述する線分は、可能な限り各データの中心を通過するのが好ましい。言い換えれば、「マージン」が最大となるように、線分を記述した方が良いのである。サポートベクターマシンは、このマージン最大化の原理により、未知のデータに対しても妥当クラスタリング可能にすると期待されている。

これに対しニューラルネットワークのとりわけ逆伝播による学習では、原則的に教師データに対してのみ学習結果を保証する。学習データの無い特徴空間上においては、分析が初期値に依存することになる。故に決定境界の導入にも偶発性が伴う。

ニューラルネットワークとSVMのアルゴリズム的差異

そうなると、そもそもにおいてSVMとニューラルネットワーク比較されるのは、まさにMNISTの手書き文字認識の如く、ある一定の問題設定を前提とした比較観点が導入された場合の等価機能主義的な分析方法を採用した場合に限られる。双方は手書き文字認識のような問題を設定した場合には機能的に等価となり得るだろう。しかしアルゴリズム的な等価は全く無い。SVMのアルゴリズム特徴空間上の非線形分離問題の解決策となる一方で、ニューラルネットワークアルゴリズムは「関数近似(Function approximation)」において特徴付けられる。

形式ニューロンの入出力関数における微分可能性背景としたシグモイド関数機能は、多層パーセプトロンによる出力値を0から1の間の連続値に限定することを指向する。教師データとの誤差すらこの範疇の連続値で正規化してデータ化することが可能なのだ。概してニューラルネットワーク特徴付ける機能は、単純に文字認識のような問題の解決にあるというよりは、むしろ出力値を教師データ近似していくことにある。

問題再設定:深層強化学習問題の枠組み

強化学習深層学習機能的に接続させた「深層強化学習(Deep Reinforcement Learning)」において名を馳せているのは、Googleが「Q学習(Q Learning)」と「畳み込みニューラルネットワーク(Convolutional neural network)を組み合わせることで設計したDeep Q-networks(DQN)だ。しかし強化学習問題の枠組み観点かられば、この組み合わせの選択別のあり方でもあり得る強化学習アルゴリズム深層学習のようなアルゴリズムとの結合要求するのは、状態あるいは状態対行動の組み合わせが大量にあり得る場合のメモリやデータ量の面で限界に直面してしまうからだ。つまりこの場合の深層学習は、強化学習アルゴリズムで状態や状態対行動の組み合わせの「複合性の縮減」が如何にして可能になるのかという問題設定を前提とした問題解決策として導入されているのである。

これは、言い換えれば「一般化(generalization)」の問題として設定できる。状態や状態対行動の組み合わせの観測データ一般化することで、より広汎な状態や状態対行動の組み合わせに対する近似構成していくことが求められているのだ。

この問題設定に対する問題解決策として第一に挙げられるのは、DQNでも採用されているように、「関数近似(function approximation)」であろう。それは強化学習問題の枠組みにおける価値関数をはじめとした目的関数からサンプルを抽出して、そこから関数全体を近似するように一般化を実行していく。関数近似教師あり学習の一種だ。畳み込みニューラルネットワークは、これを可能にする具体例の一つとなるだろう。

しかし抽象化するなら、この一般化問題に対する機能的に等価問題解決策は直ぐに思い付く。例えば観測データから未知のデータをベイズ的に予測する統計的機械学習モデルは、状態や状態対行動の組み合わせに対しても適用できる。状態や状態対行動の組み合わせに関する観測データから未知の潜在的な構造を推定することによって、より効率的に報酬探索していくこともまた、状態や状態対行動の組み合わせに伴う複合性への対処となるはずだ。

問題解決策:Deep Q-Network

以上のように、深層強化学習問題の枠組みは、強化学習アルゴリズムを導入することの派生問題となる一般化の問題の枠組みとなる。この問題設定における深層学習機能は、関数近似に他ならない。このことは、従来の深層学習理論的な貢献強化学習一般化問題を主題にしていることからも明らかである。

深層学習観点かられば、強化学習は幾つかの課題を抱えている。まず、今日まで成功した深層学習のアプリケーションが大量の手続き的な学習データを必要としていたのに対して、強化学習アルゴリズムは、頻繁に発生する疎のノイズが含まれ、遅延も伴うスカラー型の報酬信号から学習できなくてはならない。とりわけ気掛かりなのは、教師あり学習発見された入力データと目的変数との直接的な関連に比して、何千もの時間ステップから成る可能性のある行動とその結果として得られる報酬との間に遅延が伴うということである。もう一つの問題は、深層学習アルゴリズムではデータのサンプルが独立していると仮定されるのに対して、強化学習の場合は通常、相関の高い状態の系列に遭遇するということである。さらに言えば、強化学習では、アルゴリズムが新しい行動を学習するに連れて、データ分布が変異する。そして固定された基礎分布を仮定する深層学習では、この変異が問題となる可能性がある。」
Mnih, V., Kavukcuoglu, K., Silver, D., Graves, A., Antonoglou, I., Wierstra, D., & Riedmiller, M. (2013). Playing atari with deep reinforcement learning. arXiv preprint arXiv:1312.5602., p1.

尤も、深層学習関数近似器としての機能如何にして可能になるのかを知るには、強化学習深層学習の接続を可能にしている特徴工学を確認しなければならない。

Deep Q-Networkの特徴工学

2013年にDeepMind Technologiesによって紹介された最初期の深層強化学習は、Pong、Breakout、Space Invaders、Seaquest、Beam RiderなどのようなAtari 2600 Gamesを主題として設計されている。Deep Q-Networkは、確率的勾配降下によって重み行列を学習する深層畳み込みニューラルネットワーク(Deep Convolutional Neural Networks)を関数近似器として搭載したQ学習アルゴリズムである。

ゲームのプレイヤーとしてのエージェントは、ゲームの環境 $$\mathcal{E}$$ の中で、状態、行動、報酬系列を前提に、環境と相互作用する。どの時間ステップでも、エージェントは規定された行動 $$A = \{1, …, K\}$$ の中から行動を選択する。この行動は、ゲームの環境に影響を与えると共に、エミュレータの状態を更新する。それに伴い、ゲームのスコアも計算される。一般的に $$\mathcal{E}$$ は確率的である。エミュレータの内的な状態はエージェント自身によっては観測されない。代わりにエージェントは、エミュレータから渡される $$x_t \in \mathcal{R}^d$$ の映像を観測する。これは現在のスクリーン上の情報をピクセル値で表現したベクトルである。この情報に付随して、エージェントは $$r_t$$ で表される報酬を得る。この値は、ゲームスコアが変異することで規定される。一般的にゲームスコアは、事前の行動と観測系列に依存して規定する可能性を持つ。行動についてのフィードバックは、数千単位の時間ステップが実行された後に伝播される。

エージェントは現在の映像のみを観測する。それ故にゲーム課題は部分的に観測されることになる。そして多くのエミュレータの状態は知覚的に変換される。つまりエージェントは、現在の映像状態 $$x_t$$ から現在の状況が完全に理解することが可能なのである。したがって、行動と観測系列は $$s_t = x_1, a_1, x_2, …, a_{t-1}, x_t$$ と表現することができる。ゲームの戦略はこの系列に依存する。エミュレータにおける全ての系列有限個の時間ステップで終了すると想定される。この形式化によって、いずれの系列も明確化された状態となる、巨大ではあるものの有限のマルコフ決定過程(Markov decision process: MDP)が得られる。結果的に、単純に時刻tにおける状態表現として全系列を利用することにより、MDPにおいての標準的な強化学習方法を適用することが可能になる。

エージェントの最終的な目標は、将来的な報酬を最大化する方法で諸行動を選択することでエミュレータと相互作用することである。ここで重要となるのは、将来的な報酬時間ステップごとのγの因子によって割り引かれる(discounted)されるという、強化学習ではお馴染みの想定である。時刻tの将来的な割引された収益(return)は、次のようになる。

$$R_t = \sum_{t’=t}^{T}\gamma^{t’-t}r_{t’}$$

ここで、Tはゲームが終了した時点の時刻である。この関連から、最適化された行動価値関数 $$Q^{\ast} (s, a)$$は、幾つかの系列状態sを観測すると共に、幾つかの行動aを選択するという時間ステップを踏んだ後に規定されることがわかる。それはいずれの戦略に追従した場合でも到達可能な最大期待収益として表現される。

$$Q^{\ast}(s, a) = \max \pi \mathbb{E}[R_t \mid s_t = s, a_t = a, \pi ]$$

ここで、πは系列と行動の写像となる方策を表す。

最適化された行動価値関数ベルマン方程式を踏襲している。これは次のような直観(intuition)を基礎としている。もし次の時間ステップにおいて、系列$$s’$$の最適値 $$Q^{\ast}(s’, a’)$$が、行動$$a’$$であるとわかっているのならば、最適戦略は$$r + \gamma Q^{\ast}(s’, a’)$$の期待収益を最大化する行動$$a’$$を選択することであるということになる。すなわち、

$$Q^{\ast}(s’, a’) = \mathbb{E}_{s’ \sim \mathcal{E}}[r + \gamma \max_{a’} Q^{\ast}(s’, a’)\mid s, a]$$

強化学習の基礎的な発想は、次のようなベルマン方程式再帰的かつ反復的な更新によって行動価値関数を推定することである。

$$Q_{i+1}(s, a) = \mathbb{E}[r + \gamma \max_{a’}Q_i(s’, a’) \mid s, a]$$

この価値反復アルゴリズム(value iteration algorithms)では、iを無限にすることで、Q値を最適解へと収束させる。しかし無限大の反復は実用に欠けるため、汎化(generalisation)に基づく近似(approximation)が必要になる。近似に関わるパラメタをθとするなら、

$$Q(s, a; \theta) \approx Q^{\ast}(s, a)$$

が実行されなければならない。

最適化されるべき損失関数

典型的な強化学習アルゴリズムでは線形の関数近似が用いられてきたのに対して、深層強化学習では、ニューラルネットワークによる非線形の関数近似が採用される。この場合、θはニューラルネットワーク重みパラメタとして再記述される。この時、深層強化学習学習は、i回の反復によって変異する損失関数$$L_i(\theta_i)$$の系列を最小化する訓練として実行される。

$$L_i(\theta_i) = \mathbb{E}_{s, a \sim \rho(\cdot)}[y_i – Q(s, a, \theta_i)]^2$$

ここで、$$y_i = \mathbb{E}_{s’ \sim \mathcal{E}}[r + \gamma \max_{a’} Q(s’, a’, \theta_{i-1}) \mid s, a]$$は、i回の反復に対する目的関数である。また$$\rho(\cdot)$$は、いわゆる「振る舞い分布(behaviour distribution)」として表現される系列sと行動aに対する確率分布である。この損失関数最適化する時、前回の反復処理から得られたパラメタ$$\theta_{i-1}$$は固定される。

深層畳み込みニューラルネットワーク推論は、便宜上それぞれtanhの活性化関数を持つ3層のネットワーク構造を想定するなら、次のようになる。

$$y_i^{in} = \tanh\left(\boldsymbol{F}(s, a, r) \ast W_{\theta_{i}}^{in} + \vec{b^{in}}\right)$$

$$y_i^{h} = \tanh\left(y_i^{in} \ast W_{\theta_{i}}^{h} + \vec{b^{h}}\right)$$

$$y_i^{o} = \tanh\left(y_i^{h} W_{\theta_{i}}^{o} + \vec{b^{o}}\right)$$

ここで、$$\boldsymbol{F}(s, a, r)$$は強化学習エージェントの状態、行動、報酬から構成された特徴量を意味する。*は畳み込み演算子を表す。Wとbで表記されている記号はそれぞれの層の重み行列とバイアスベクトルを表す。

注意しなければならないのは、目的変数はネットワークの重みに依存するということだ。これは教師あり学習とは対照を成した質である。と言うのも教師あり学習においては、この目的変数は学習が始まる前に固定されるためである。深層強化学習はそうではない。エージェントにとって、目的変数は可変である。それは機械学習エンジニアやデータサイエンティストのようなシミュレーション世界超越した観測者によって先験的に与えられる訳ではない。外部から入力されるはずの「教師データ」は、強化学習モデルの内部に再導入(re-entry)される。強化学習モデル全体でれば、目的変数は、ベルマン方程式に基づく再帰的な学習アルゴリズムによる自己言及によって、認識論的に構成されるのである。強化学習エージェントの目的変数に対する外部言及は、モデル観点では、外部に言及している自己への言及に他ならない。

損失関数重みに関して微分すると、次のような勾配が得られる。

$$\nabla_{\theta_i}L_i(\theta_i) = \mathbb{E}_{s, a \sim \rho(\cdot);s’ \sim \mathcal{E}}\left[\left(r + \gamma \max_{a’} Q(s’, a’; \theta_{i-1}) – Q(s, a; \theta_i)\right)\nabla_{\theta_i}Q(s, a; \theta)\right]$$

上記の勾配計算では完全な期待値を計算している訳ではない。確率的勾配降下によって損失関数最適化することは、計算効率上有用となる。各時間ステップの実行語に重み行列が更新されることで、期待値振る舞い分布$$\rho$$とエミュレータ環境$$\mathcal{E}$$のそれぞれにおける単一のサンプルに変換されるのならば、既存のQ学習アルゴリズムとなる。

プロトタイプの開発:Deep Q-Networkの機能的等価物としての深層強化学習アルゴリズム

先述したライブラリの『pyqlearning』では、Q学習のみならず、このDeep Q-NetworkのTemplate Methodも提供している。しかし、関数近似器として機能する深層学習は、深層畳み込みニューラルネットワークだけではない。後述するように、深層学習理論を記述するなら、様々な機能的等価物を想定できる。このライブラリでは、Deep Q-Network構成している関数近似器Q学習を疎結合状態で設計することで、関数近似器機能的な代替可能性を担保している。これによりこのライブラリは、機能的に等価深層強化学習との精度や速度比較可能にしている。

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

統計的機械学習(statistical machine learning)問題の枠組みでは、観測したそれぞれのデータ点の出現確率に関する未知の生成モデル(generative model)を入力された観測データ点の集合から推定する。未知の生成モデルからその確率分布に準じて観測するデータ点が生成されているという発想は、ベイズにおいてもお馴染みの考え方だ。

観測者は当初、生成モデル形式を知らない。故にまずはパラメタθを前提とした学習モデル(learning model)となるP(X|θ)を仮定するところから分析が始まる。そして、観測したデータ点は$$X = {x_1, x_2, …, x_n}$$となり、パラメタθに依存した学習モデルを調節することで生成モデルを再現していく。最終的に学習モデル生成モデル近似として形式化される。

この点、生成モデルはまさにベイズでも言及される「事前分布(prior distribution)」に他ならない。推定される生成モデル近似としての学習モデルは「事後分布(posterior distribution)」に対応する。最大事後確率(Maximum a posteriori; MAP)推定を単に採用するだけでも、生成モデルはベイズ的に推定することが可能になる。

問題解決策:グラフとノードの区別

マルコフ確率場(Markov random field; MRF)」は、統計的機械学習問題の枠組みにおける学習モデルの一つと見做されている。この概念は、ベイジアンネットワークでも縁のある「グラフ(graph)」と「ノード(node)」の区別を導入することで特徴付けられている。

グラフ概念は、更に「有向グラフ(directed graph)」と「無向グラフ(undirected graph)」に区別される。

誤解を招くことを恐れずに言えば、この二つのグラフ概念は、UMLクラス図における「関連」概念とよく似ている。有向グラフが関連の誘導可能性を明示的に限定している関連であると喩えるなら、無向グラフはその誘導可能性を未規定にして表現する。同じようにクラス図で喩えるなら、ノードオブジェクトに対応すると言える。また、関連付けること一般を「リンク(link)」と呼ぶ。

グラフ内の無向リンク集合をεとするなら、n個のノード$$\Omega = {1, 2, …, n}$$によって構成された無向グラフはG(Ω, ε)と表せる。例えばノードiとjの無向リンクは{i, j}あるいは{j, i}となる。有効ではないため、双方は同一の関連を意味する。

エネルギー関数

これを前提に言えば、マルコフ確率場無向グラフG(Ω, ε)における確率モデルとなる。i番目のノード確率変数$$X_i \in {0, 1}$$が対応する。$$i \in \Omega$$に関する$$X_i$$の実現値となる$$x_i$$のベクトルを$$x = {x_1, x_2, …, x_n}$$とした場合、無向グラフから次のようなエネルギー関数(energy function)を記述できる。

$$\Phi(x) = – \sum_{i \in \Omega}^{} \phi_i(x_i) – \sum_{\{i, j\} \in ε}^{} \psi_{ij}(x_i, x_j)$$

ここで、$$\sum_{i \in \Omega}^{} \phi_i(x_i)$$は各ノードに割り当てられたエネルギー意味する。一方、$$\sum_{(i, j) \in ε}^{} \psi_{ij}(x_i, x_j)$$は各リンク結合に割り当てられたエネルギー意味する。つまり関連の重み付けを表現している。

エネルギー関数コストを最小限に抑えるべく最適化される。この関数の出力値は常に低くなるように設計される。言い換えれば、この関数エネルギーをより低く計算できるようにxを学習していく。

問題解決策:マルコフ確率場としてのイジングモデル

マルコフ確率場の最も単純な一例は「イジングモデル(Ising model)」として知られている。イジングモデル強磁性体相転移(Phase transition)を分析するために設計された確率モデルである。強磁性体とは、磁石として機能する物質を意味する。その特徴温度によって不連続変異する。臨界温度以上であれば、外部から磁場を外場として加えない限りは、磁化は生じない。だが臨界温度以下では、外場をどれほど0に近付けても、磁化が弱まることが無い。この微弱な磁化を特に「自発的磁化(spontaneous magnetization)」という。相転移という現象は、この磁化の作用のように、外部環境のパラメタが変化することで物質のマクロ特徴が変化することを指す。

Mezard, M., & Montanari, A. (2009). Information, physics, and computation. Oxford University Press., p35より掲載。

Mezard, M., & Montanari, A. (2009). Information, physics, and computation. Oxford University Press., p35より掲載。

イジングモデル強磁性体構成要素となる原子分子水準の「スピン(spin)」と呼ばれる弱い磁石の質に着目した確率モデルである。強磁性という特徴は、このスピンの向きに対するマクロ観点によって区別される。

通常、磁気における「クーロンの法則(Coulomb’s Law)」によれば、一般に粒子上の磁力は次のようになる。

$$\vec{F}_{msg} = q\vec{v}\vec{B}$$

ここで、qは粒子の電荷を意味する。vベクトルは粒子の速度意味する。そしてBベクトルは、以下の「ビオ・サバールの法則(Biot–Savart Law)」によって得られる周辺磁場(ambient magnetic field)である。

$$\vec{B} = \frac{\mu_0}{4 \pi}\int_{C}^{}\frac{Id\vec{l}\vec{r}}{|\vec{r}|^3}$$

ここで、$$\mu_0 \approx 1.25663706 × 10^{-6} m \ kg \ s^{-2} \ A^{-2}$$は、真空の透磁率を意味する。Iは背景電流(background electric current)で、周辺磁場を生成する。Cは電流経路を意味する。$$d\vec{l}$$は経路の長さの要素を表す。rベクトルは経路上の点からの変位を意味する。しかし、とりわけ周辺磁場が非真空媒体において「磁気双極子モーメント(a magnetic dipole moment)」を発生させる場合、あるいは「スピン(spin)」を生じさせる場合に、この関連は複合化する。通常の強磁性体は鉄やニッケルで構成されているが、周辺磁場存在する必要が無いという点では特殊である。強磁性体の各スピンは、互いにその隣接するスピンと同一の方向を志向する。自発的磁化が生じるのは、このスピンが整序された場合である。

とはいえイジングモデルにおけるスピンモデルは単純化されている。それはある軸に準拠した格子状の量として記述されており、それぞれ平行を表す+1か反平行を表す-1の二値しか取り得ない。だが隣接するスピンは互いに影響を与え合う。また、各スピンは外場の影響も受容する。こうした特徴は、ハミルトニアン(Hamiltonian)のエネルギー関数により、次のように定式化される。

$$H(x) = -J\sum_{(ij)}x_ix_j – h\sum_{i}x_i$$

ただしJ>0となる。(ij)は格子状で隣接する接格子点の対を意味する。Jは隣接する対の相互作用を表すのに対して、hは外場の強さを表している。Jが正の値であることが、強磁性に対応している。熱力学的に言えば、エネルギー保存則により、仕事が介在しない限り、物質はエネルギーの低い状態を好む。外場の発生していない状況がh = 0とするなら、J > 0であれば、スピンの対の積となる$$x_ix_j$$が正の値となる場合にエネルギーは低下する。つまり、エネルギーが最も下がるのは、全てのスピンが+1になっている場合か、全てのスピンが-1になっている場合となる。したがって、ハミルトニアンのエネルギー関数エネルギー保存則を前提とすれば、J > 0の場合、$$x_i$$と$$x_j$$は同値になる確率が高まる。逆にJ < 0の場合は異なる値を取る確率が高まる。また、h > 0の場合は$$x_i$$が1となる確率が高まる。

ボルツマン分布

物理学的に言えば、マルコフ確率場は上述したエネルギー関数に準拠した「ボルツマン分布(Bolzmann distribution)」としても設定されている。この分布は物理学において分子速度分布を与えるマクスウェル分布を汎化したマクスウェル=ボルツマン分布として位置付けできる。全ての可能なxに関する確率の総和$$\sum_x^{}P(X = x)$$の値を1にする規格化定数をZとするなら、マルコフ確率場は当該エネルギー関数の値をより低くするxがより高確率で出現するように調整された確率モデルとして表現される。

$$P(X = x) = \frac{1}{Z} \exp(-\Phi(x))$$

$$Z = \sum_{x}^{}\exp(-\Phi(x))$$

ボルツマンマシンのエネルギー関数

マルコフ確率場を前提とするなら、深層学習でも取り上げられている「ボルツマンマシン(Boltzmann machine)」はこの特殊事例として簡単に記述できる。マルコフ確率場エネルギー関数

$$\Phi(x) = – \sum_{i \in \Omega}^{} \phi_i(x_i) – \sum_{\{i, j\} \in ε}^{} \psi_{ij}(x_i, x_j)$$

とするなら、ボルツマンマシンエネルギー関数は次のようになる。

$$\Phi(x;\theta) = – \sum_{i \in \Omega}^{} b_ix_i – \sum_{\{i, j\} \in ε}^{} w_{ij}x_ix_j$$

$$\theta = \{b, W\}$$

$$b = \{b_i | i \in \Omega \}$$

$$W = \{ w_{ij} | {i, j} \in \epsilon \}$$

ここで、bは各ノードに割り当てられたバイアスパラメタを意味する。Wは各結合重み付けを表すパラメタとなる。無向グラフである以上、$$w_{ij} = w_{ji}$$となる。自分自身への結合は無いため、$$w_{ij} = 0$$となる。

ボルツマンマシンは以上のエネルギー関数の変換を前提として設定される。

$$P(X = x|\theta) = \frac{1}{Z(\theta)}\exp(-\Phi(x;\theta))$$

$$P(X = x|\theta) = \frac{1}{Z(\theta)}\exp\left(\sum_{i \in \Omega}^{}b_ix_i + \sum_{(i,j) \in \epsilon}^{}w_{ij}x_ix_j \right)$$

ここでもZ(θ)は規格化定数となる。

バイアスパラメタの機能

バイアスパラメタbは、諸要素に紐付けてエネルギーの高低を振り分ける機能を有している。これは正負の区別を導入することで簡明となる。

$$b_i > 0$$ならば$$x_i = 1$$が比較エネルギーが低くなる。

$$b_i < 0$$ならば$$x_i = 0$$が比較エネルギーが低くなる。 そのため、bを調節することでxの値の出現確率の偏りを制御することが可能になる。

重みパラメタの機能

重みパラメタwは、諸関連すなわち各リンクに紐付けてエネルギーの高低を振り分ける機能を持つ。これもまた正負の区別から簡明となる。 $$w_{ij} > 0$$ならば$$x_i = 1, x_j = 1$$の時にエネルギー比較的低くなる。

$$w_{ij} < 0$$ならば$$x_i = 0, x_j = 0$$の時か、あるいは$$x_i ≠ x_j$$の時にエネルギー比較的低くなる。

ポップフィールド・ネットワークとしてのボルツマンマシン

ボルツマンマシンは、「ホップフィールド・ネットワーク(Hopfield network)」を拡張した確率ニューラルネットワークとして位置付けできる。

ホップフィールド・ネットワークはマルコフ確率場との兼ね合いから無向グラフG(Ω, ε)上の各ノードのそれぞれをニューロンとして見立てたニューラルネットワーク意味する。無向グラフの各リンクニューラルネットワークにおける結合関連を表し、ニューラルネットワーク上の信号が無向グラフ上のリンクを表す。

このニューラルネットワークボルツマンマシンと同様のエネルギー関数を持つ。

$$\Phi(x;\theta) = – \sum_{i \in \Omega}^{} b_ix_i – \sum_{\{i, j\} \in ε}^{} w_{ij}x_ix_j$$

$$\theta = \{b, W\}$$

$$b = \{b_i | i \in \Omega \}$$

$$W = \{w_{ij} | {i, j} \in \epsilon \}$$

ノードiは、ニューロンとして表現されるために、発火状態に対応した$$x_i = 1$$と非発火状態に対応した$$x_i = 0$$の区別が導入される。各ノードiは0か1かのいずれかの値を持つ。ある時点におけるノードiは結合された全てのノードjから

$$\lambda_i = b_i + \sum_{j \in N(i)}^{}w_{ij}x_{j}$$

という形式で信号を受信する。N(i)はノードiと結合された他ノード集合を表す。

$$\lambda_i > 0$$

ならばノードiは発火する。この確率モデル化したのがホップフィールド・ネットワークとなる。

この関連からボルツマンマシンは$$\lambda_i$$から$$P(X_i = x_i|\lambda_i) = \frac{\exp(\lambda_ix_i)}{1 + \exp(\lambda_i)}$$という条件付き分布を算出する。この分布を特に「シグモイド信念(sigmoid belief)」と呼ぶ。この条件付き分布はλを受け取った時点でのノードiの発火状態と非発火状態の分布を表す。信号受信時にノードiが発火する確率は、シグモイド関数をσと表すなら、$$P(X_i = 1 | \lambda_i) = \sigma(\lambda_i)$$となる。ノード全体の発火状態と非発火状態の同時分布は平衡分布(equilibrium distribution)を有する。つまり、時間が経過しても確率過程の分布は変異しない。分布は一貫してボルツマン分布となる。

問題解決策:ボルツマンマシンの学習方程式

ボルツマンマシン学習は、統計的機械学習問題の枠組みにおける問題解決策として機能する。つまりボルツマンマシンは、観測したデータ点の集合によって仮定した学習モデルをパラメタθの調節によって構成することで、未知なる生成モデル近似していくことを以って学習していく。

観測した可視変数と潜在的な隠れ変数の差異

ボルツマンマシン学習は、可視変数(visible variable)と隠れ変数(hidden variable)の区別を導入することで設計される。可視変数観測変数(observable variable)とも呼ばれ、また隠れ変数は潜在変数(latent variable)とも呼ばれる。可視変数観測したデータ点に直接的に関連付く一方で、潜在的な隠れ変数は必ずしも紐付かない。

誤解を恐れずに言えば、隠れ変数関数言語(functional language)で言うところの「副作用(side effects)」を伴わせる内部のメンバ変数であると言えるだろう。この変数は、観測することで入力されたデータ点とは別の内部的な関連から出力に影響を及ぼすのである。

ボルツマンマシン学習は大別して可視変数のみの学習隠れ変数も含めた学習区別される。可視変数のみのボルツマンマシン学習は全ての確率変数を観測したデータ点との関連から計算する。一方隠れ変数を含めたボルツマンマシン学習は更にこれよりも複合的な計算によって実現する。

「隠れ変数なし」のボルツマンマシンの学習方程式

可視変数をVと置く。この場合、全ての確率変数は可視変数であるため、$$V = {v_i|i \in \Omega}$$となる。n個の諸要素を有した観測データ点が独立同一分布からN個生成された場合、μ番目の観測データ点を$$V^{(\mu)} = \{v_i^{(\mu)} \in \{0, 1 \}|i \in \Omega \}$$と表現する。以下では、この観測データ点の集合を参照することでボルツマンマシン学習を実行することを想定する。

エネルギー関数を利用したボルツマンマシン学習は以下のように計算されるのであった。

$$P(X = x|\theta) = \frac{1}{Z(\theta)}\exp(-\Phi(x;\theta))$$

$$P(X = x|\theta) = \frac{1}{Z(\theta)}\exp\left(\sum_{i \in \Omega}^{}b_ix_i + \sum_{(i,j) \in ε}^{}w_{ij}x_ix_j\right)$$

観測データ点の諸要素のそれぞれに対して確率変数を一つずつ対応付けるなら、ボルツマンマシン観測データ点と同じくn個の確率変数$$V = \{v_i|i \in \Omega \}$$を有した確率モデルとなる。

ボルツマンマシン学習では最尤推定が採用される。観測データ集合

$$D = \{v^{μ}|μ = 1,2,…,N \}$$

に対する尤度関数は、

$$l_D(\theta) = \prod_{μ=1}^{N}P(V = v^{(μ)}|\theta)$$

となる。尤度関数自然対数を取るなら、

$$L_D(\theta) = \ln{l_D(\theta)} = \sum_{μ=1}^{N} \ln{P(v^{(μ)}|\theta)}$$

となる。

上記のPはボルツマンマシン観測データ集合Dを生成する確率を表す。統計的機械学習問題の枠組みで求められる問題解決策は、観測データ集合を参照することで生成モデルを再現する方法に他ならない。故にこの最尤推定の採用によってボルツマンマシン要求されるのは、観測データ集合Dを最も高い確率で生成することとなる。この要求を満たすボルツマンマシンが、生成モデル近似されるモデルとなると考えられる。

対数尤度関数の最大点におけるパラメタθの勾配は0となる。したがって勾配が0となるθを求めるなら、$$\frac{\partial L_D(\theta)}{\partial b_i} = \sum_{μ=1}^{N}v_i^{(μ)} – NE_{P(V|\theta)}[v_i]$$

$$\frac{\partial L_D(\theta)}{\partial w_{ij}} = \sum_{μ=1}^{N}v_i^{(μ)}v_j^{(μ)} – NE_{P(V|\theta)}[V_iV_j]$$

$$E_{P(V|\theta)}[f(V)] = \sum_{V}^{}(f(v))P(V|\theta)$$

Eはボルツマンマシンにおける期待値を表している。

勾配が0となるのは、$$\frac{\partial L_D(\theta)}{\partial b_i} = 0$$と$$\frac{\partial L_D(\theta)}{\partial w_{ij}} =0$$が成立する場合となる。故に対数尤度関数の最大値は次の連立方程式の解となる。

$$\frac{1}{N}\sum_{μ=1}^{N}v_i^{(μ)} = E_{P(V|\theta)}[V_i]$$

$$\frac{1}{N}\sum_{μ=1}^{N}v_i^{(μ)}v_j^{(μ)} = E_{P(V|\theta)}[V_iV_j]$$

この方程式において、左辺は観測データ点の標本平均を意味する。双方とも観測データ集合を参照することで得られることから、まさに可視変数と言える。一方、右辺はボルツマンマシン期待値となる。つまりこの連立方程式が言い表しているのは、観測データ点の標本平均にボルツマンマシン期待値近似させることに他ならない。この近似を以って、ボルツマンマシン学習したことになる。一連の方程式は特に「学習方程式(learning equation)」と呼ばれる。

「隠れ変数なし」のボルツマンマシンの組み合わせ爆発

ボルツマンマシン学習方程式を解くことは解析的に困難とされる。そのため勾配上昇(gradient ascent method)で反復的に解析されることとなる。

しかしより重要な問題となるのは学習方程式における期待値だ。ボルツマンマシンにおける期待値の計算は全ての確率変数の可能な組み合わせの総和となる。n個の確率変数を持つボルツマンマシンにおける期待値の計算は$$2^n$$の項の和の計算となる。そのためボルツマンマシンの計算量はnに比例して爆発的に増加する。

この計算量問題は、文字通り「組み合わせ爆発(combinatiorial explosion)」の問題として設定される。そのため、学習方程式では期待値計算それ自体もまた近似によって実施される。だがただ近似を求めれば良いという訳ではない。これに加えて、勾配上昇で反復的に計算する以上、1回のスループットの速度も向上させられるような近似値計算が求められる。

「隠れ変数あり」のボルツマンマシンの学習方程式

何らかの理由から観測データ点の諸要素の一部が欠損して得られない場合や、そもそもデータ収集が不十分である場合、「可視変数のみ」のボルツマンマシンでは学習を実施することができない。一部のデータ不可視であることを前提とした学習方程式が必要になる。

n個の諸要素で構成された観測データ点がN個、観測したデータモデルから独立に生成されたとする。この時、ボルツマンマシンは(n + m)個の確率変数を持つと仮定する。この場合、mは隠れ変数の個数に等しい。つまりm個分のデータ点が観測したデータ点に対応しないということだ。この対応しない変数が隠れ変数となり、対応する変数が可視変数となる。

ボルツマンマシンでは、これらの可視変数隠れ変数がそれぞれノード番号の集合として表現できる。可視変数側のノード番号集合を$$V = \{1, …, n \}$$とするなら、隠れ変数側は$$H = \{n + 1, …, n +
m \}$$となる。ノード全体の集合をΩとするなら、$$V \cup H$$となる。確率変数Xの1, 2, 3のノード番号が可視変数で、4, 5のノード番号が隠れ変数に対応するなら、Xは次のように表現できる。$$X = \{V_1, V_2, V_3, H_4, H_5\}$$無論、ノードの個数が5個であるとは限らない。個数をiと置くなら、$$X = \{X_i | i \in \Omega \}$$で、これに対応する可視変数は$$V = \{V_i | i \in V\}$$となり、隠れ変数は$$H = \{H_i | i \in H \}$$となる。Xに対応するボルツマンマシンはVとHの同時分布に他ならない。したがって、$$p(X = x | \theta) = p(V = v, H= h | \theta) = \frac{1}{Z(\theta)}exp(-\Phi(V, H;\theta))$$となる。ここで、vはVの実現値で、hはHの実現値となる。これもまたボルツマンマシンの一種であるため、以下の式と変わりは無い。

$$P(X = x|\theta) = \frac{1}{Z(\theta)}exp(-\Phi(x;\theta))$$

隠れ変数あり」のボルツマンマシン学習もまた「隠れ変数なし」の場合と同様に最尤推定で実施される。尤も、観測したデータ点に対応していない隠れ変数があるため、「隠れ変数なし」の場合とは異なるアルゴリズムが必要になる。

隠れ変数あり」の場合は、以下のように、隠れ変数において周辺化した可視変数のみの分布を利用する。

$$p(v | \theta) = \sum_{h}^{}p(v, h | \theta)$$

この周辺分布の変数は観測データ点全てに対応している。したがって「隠れ変数なし」の場合と同様に対数尤度関数を記述することが可能になる。

$$L_D(\theta) = \ln{l_D(\theta)} = \sum_{μ=1}^{N} \ln{P(v^{(μ)}|\theta)}$$

隠れ変数なし」においても、この関数を最大化するパラメタθの値が最尤推定量となる。

問題解決策:カルバック-ライブラー・ダイバージェンス

この最尤推定量は、「カルバック-ライブラー・ダイバージェンス(Kullback-Leibler divergence; KL divergence)」を導入することで、情報量の視点から再記述することができる。

KLダイバージェンス確率変数Xに対する二つの異なる確率分布$$P_0(X)$$と$$P_1(X)$$の間にある「差異」、言い換えれば「非類似性」を表現する量を意味する。

$$D_{KL}(P_0||P_1) = \sum_{x}^{}P_0(x) \ln \frac{P_0(x)}{P_1(x)}$$

KLダイバージェンスは$$D_{KL}(P_0||P_1) \geq 0$$であると共に、$$P_0(X) = P_1(X)$$の時のみ$$D_{KL}(P_0||P_1) = 0$$となる。

経験分布を前提としたボルツマンマシンの学習方程式

これを前提に、観測データ点の頻度分布となる経験分布(empirical distribution)を定義する。観測データ点の集合Dの経験分布は次のようになる。

$$q_D(V = v) = \frac{1}{N}\sum_{μ=1}^{N}\sigma(v, v^{(μ)}), \begin{equation}\sigma(d, e) =\left \{\begin{array}{l} 1 (d = e) \\ 0 (d \neq e) \end{array}\right. \end{equation}$$

この経験分布を利用すると、上述したボルツマンマシンの対数尤度関数は次のように変換できる。

$$L_D(\theta) = \ln{l_D(\theta)} = \sum_{μ=1}^{N} \ln{P(v^{(μ)}|\theta)} = N\sum_{v}^{}q_D(v) \ln p(v|\theta)$$

この最尤推定KLダイバージェンスを最小化することと等価となる。

$$D_{KL}(q_D||p) = \sum_{v}^{}q_D(v)\ln\frac{q_D(v)}{p(v|\theta)}$$

対数尤度関数のbとwのそれぞれに対する勾配は、次のようになる。

$$\frac{\partial L_D(\theta)}{\partial b_i} = N\sum_{v, h}^{}x_ip(h|v, \theta)q_D(v)\ln\frac{q_D(v)}{p(v|\theta)}$$
$$\frac{\partial L_D(\theta)}{\partial w_{ij}} = N\sum_{v, h}^{}x_ix_jp(h|v, \theta)q_D(v) – NE_{p(V, H|\theta)}[X_iX_j]$$

勾配を0とする条件により、「隠れ変数あり」の場合のボルツマンマシン学習方程式は、以下のようになる。

$$\sum_{v, h}^{}x_ip(h|v,\theta)q_D(v) = E_{p(V, H|\theta)}[X_i]$$
$$\sum_{v,h}^{}x_ix_jp(h|v,\theta)q_D(v) = E_{p(V, H|\theta)}[X_iX_j]$$
$$\begin{equation}X_i =\left \{\begin{array}{l} V_i (i \in V) \\ H_i (i \in H) \end{array}\right. \end{equation}$$

すなわち、ノードiが可視変数隠れ変数かによって確率変数Xの変換過程が左右されている。

p(h| v, θ)は可視変数が与えられた場合の隠れ変数が与えられる条件付き分布であるため、確率乗法定理により、$$p(h|v, \theta) = \frac{p(v, h|\theta)}{p(v|\theta)}$$となる。

「隠れ変数あり」のボルツマンマシンの組み合わせ爆発

隠れ変数あり」のボルツマンマシン学習では、「隠れ変数なし」のボルツマンマシンに比して「組み合わせ爆発」の問題が派生し易い。

隠れ変数なし」、つまり「可視変数のみ」のボルツマンマシン学習方程式観測データ点では単純における標本平均とボルツマンマシン期待値を如何に近付けるのかが問われた。これに対して、上述した「隠れ変数あり」のボルツマンマシン学習方程式では、右辺がボルツマンマシン期待値であることに変わりは無いが、左辺は複合化している。

隠れ変数あり」のボルツマンマシン学習方程式の左辺は、次のような形式になっている。

$$\sum_{v, h}^{}f(v, h)p(h|v,\theta)q_D(v)$$

これを変形するなら、$$\frac{1}{N}\sum_{μ=1}^{N}\sum_{h}^{}f(v^{(μ)}, h)p(h|v^{(μ)}, \theta)$$となる。

ここで、$$p(h|v^{(μ)}, \theta)$$は可視変数の値をμ番目の観測データ点で固定した場合に得られる隠れ変数の条件付き分布を意味する。したがってこの形式は「隠れ変数のみ」で構成されている別様のボルツマンマシンであると言える。つまり上述した「隠れ変数あり」のボルツマンマシン学習方程式を計算するには、まず各観測データ点における隠れ変数の条件付き分布を計算することで、それに対応する期待値を算出しておく必要がある。この観測データ点ごとの算出結果の平均として計算した結果が、「隠れ変数あり」のボルツマンマシン学習方程式における左辺であるということになる。

したがって「隠れ変数あり」のボルツマンマシンの場合は、左辺でも右辺でも「組み合わせ爆発」の問題が派生し得るということになる。隠れ変数存在ボルツマンマシン学習を至難の極みにしてしまう。隠れ変数の有無とは関係無しに、ボルツマンマシン学習は「組み合わせ爆発」問題を解消する「近似」の方法要求している。

問題解決策:マルコフ連鎖モンテカルロ法のギブスサンプラー

ボルツマンマシンは、「可視変数のみ」であれ「隠れ変数あり」であれ、組み合わせ爆発問題を派生させる。組み合わせ爆発問題を回避するには、ボルツマンマシン期待値近似的に計算する必要がある。

ボルツマンマシン期待値近似方法として導入できる方法の一つに、「マルコフ連鎖モンテカルロ法(Markov chain Monte Carlo method; MCMC method)」の「ギブスサンプラー(Gibbs sampler)」がある。

MCMCは、マルコフ性背景としたモンテカルロ法だ。MCMCベイズ統計学をはじめとした様々な統計学の分野で利用されている。この方法は、とりわけ期待値計算に応用される傾向にある。背景にあるのは、「マルコフ連鎖(Markov chain)」と呼ばれる確率過程の収束に関する質だ。

時点tにおける確率変数を$$x^{(t)}$$と表す。確率過程$$(x^{(0)}, x^{(1)}, …, x^{(n)}, …)$$を仮定する。$$x^{(t)} (t = 0, 1, …, n, …)$$の集合をXと表す。$$i_n$$を時点nにおける状態を表すとすれば、この確率過程が全ての$$i, j \in X$$と$$t \geq 0$$に対して、$$p(x^{(t 1)} = j|x^{(0)} = i_0, x^{(1)} = i_1, …, x^{(t-1)} = i_{(t-1)}, x^{(t)} = i)$$$$ = p(x^{(t 1)} = j|x^{(t)} = i)$$を満たす場合、この確率過程はマルコフ連鎖の関係にある。マルコフ連鎖はt + 1の時点における条件付き確率分布が時点tよりも前の過去の状態には依存しない確率過程である。言い換えれば、マルコフ連鎖確率過程では、各状態は直前の状態にしか依存しない。この質を特に「マルコフ性」と呼ぶ。

マルコフ連鎖モンテカルロ法は、このマルコフ性を前提としたモンテカルロ法意味する。それは言い換えれば、データxが与えられた時に事後分布P(θ|x)からパラメタθをサンプリングする方法となる。

$$p(\theta|x) = \frac{p(x|\theta)p(\theta)}{p(x)}$$

MCMCのうち、特に「ギブスサンプラー(Gibbs sampler)」はボルツマンマシンで積極的に活用されている。ギブスサンプリングはマルコフ性を応用することにより、エネルギー関数の同時分布に従って確率変数に対応するサンプルを多数発生させることを可能にする。ボルツマンマシンはあるノードの状態が周囲のノードによる影響のみによって確率的に変化するという点で局所的なマルコフ性を有している。そこでボルツマンマシンは、ギブスサンプリングによって、任意の初期状態(x, y)から開始して、以下の計算を反復する。

  1. xの新しい値を条件付き分布p(x|y)から選択する。
  2. yの新しい値を条件付き分布p(y|x)から選択する。

ギブスサンプリングでは、xとyを交互に固定した上で、そこから条件付き分布を求めてデータ点を抽出していく。言い換えれば、ギブスサンプリングは条件付き分布に従って変数の値を確率論的に逐次更新していく方法意味する。

ギブスサンプラーのベクトル表現

あるパラメタθが与えられた時にモデル分布p(x|θ)に従うxをアトランダムに生成させることを想定しよう。i番目以外の全ノードの変数を配列したベクトルを$$x_{_i}$$と表し、この値を指定した場合の変数$$x_i$$の条件付き分布$$p(x_i|x_{_i}, \theta)$$を計算していく。すると条件付き分布は$$p(x_i|x_{_i}, \theta) = \frac{p(x, \theta)}{\sum_{x_i=0, 1}^{}p(x, \theta)}$$となる。ボルツマンマシンエネルギー関数との関連から、

$$P(X = x|\theta) = \frac{1}{Z(\theta)}\exp(-\Phi(x;\theta))$$

$$P(X = x|\theta) = \frac{1}{Z(\theta)}\exp\left(\sum_{i \in \Omega}^{}b_ix_i + \sum_{(i,j) \in ε}^{}w_{ij}x_ix_j\right)$$

ここでもZ(θ)は規格化定数となる。

これらを上述した条件付き分布に代入すると、$$p(x_i|x_{_i}, \theta) = \frac{\exp\left(b_i + \sum_{j \in N_i}^{}w_{ij}x_jx_i\right)}{1 + exp\left(b_i + \sum_{j \in N_i}^{}w_{ij}x_j\right)}$$となる。ここでNはi番目のノード結合する全てのノード集合となる。つまり、i番目以外の全てのノードの状態を指定した条件付き分布は、Nのノードのみを状態として指定した条件付き分布から導き出すことが可能だ。各変数の条件付き分布の計算はこれにより一に効率化できるようになる。

ギブスサンプラーは、こうして各変数xのサンプリングを逐次的に反復していくことで元々の同時分布p(x|θ)に従うxの値を抽出していく。

問題解決策:コントラスティブ・ダイバージェンス法

よく指摘されるように、ギブスサンプラー計算コストが高い。そのため、コストパフォーマンスに見合うか否かは問題視される場合が多い。高い計算コストを支払うだけの価値があるか否かは、アルゴリズム設計において切迫した問題となる。

ジェフェリー・ヒントンも述べているように、ギブスサンプリングは一般に大きな分散を有する。この分散は局地を形成する。たとえ勾配がゼロになろうとも、高い分散の領域からパラメタを斥けてしまう。そしてこの事態は、サンプリング結果モデルのパラメタに依存しているために、不確定要因として伴い得る。

平衡分布に由来するサンプルは一般的に非常に高い分散を有する。何故なら、そうしたサンプルはモデルの分布から所嫌わず得られているからだ。」
Hinton, G. E. (2002). Training products of experts by minimizing contrastive divergence. Neural computation, 14(8), 1771-1800. 引用はp1774より。

ヒントンはこの問題設定において、次のような砂と板の比喩でわかり易く解説している。

「この微妙な影響を理解するために、水平のブリキ板を想定してみよう。その板は、一方が強く垂直に振動していて、他方が微動だにしていないといった具合に、共振状態にある。たとえ時間平均的に勾配がいずれにせよゼロになるとしても、その板の上で散在している砂は、動きの無い領域に集積されていくだろう。」
Hinton, G. E. (2002). Training products of experts by minimizing contrastive divergence. Neural computation, 14(8), 1771-1800. 引用はp1774より。

そこでヒントンは、代替案として、「コントラスティブ・ダイバージェンス(Contrastive Divergence; CD」を提案している。この方法は正確で効率的に近似することが可能なパラメタの導関数に関わる。

CDの方法は単純極まりない。最初に可視変数としてセットする$$v^{(0)}$$をMCMCのようにアトランダムに初期化するのではなく訓練サンプルとして$$v^{(0)} = v_n$$としてセットする。その上でギブスサンプラー同様に隠れ変数可視変数のサンプリングをk回反復していく。経験的にkは1で良いとされる。ボルツマンマシンでは、こうして抽出されたvとhを利用することで、期待値近似に役立てる。

機能的拡張案:制限ボルツマンマシン

CD法との関連から言えば、「制限ボルツマンマシン(Restricted Boltzmann Mathine; RBM)」は、組み合わせ爆発問題の回避策として有効に機能する制限ボルツマンマシンは「隠れ変数あり」のボルツマンマシンの一種だ。ボルツマンマシン同様、隠れ変数複合性が高まれば、それだけモデル表現能力も高まる。

グラフ理論的に言えば、制限ボルツマンマシンの各ノード完全二部グラフ(complete bipartite graph)として構成されている。つまり制限ボルツマンマシンの各ノードは二層構造形成している。一方の層は可視変数のみで構成された「可視層(visible layer)」で、他方の層は隠れ変数のみで構成された「隠れ層(hidden layer)」となる。

可視層の全てのノード隠れ層の全てのノードリンクを結んでいる。各ノード結合は双方向の無向エッジである。だが可視層ノード同士のリンク隠れ層ノード同士のリンクは一切形成されずに制限される。可視変数の個数をn、隠れ変数の個数をmとするなら、制限ボルツマンマシンはn個の諸要素を有した観測データ点の集合を参照することで学習していくモデルとなる。

可視変数隠れ変数のそれぞれをVとHで表し、可視変数バイアスをb、隠れ変数バイアスをcと表すなら、制限ボルツマンマシンエネルギー関数は次のようになる。

$$\Phi(v, h; \theta) = – \sum_{i}^{}b_iv_i-\sum_{j}^{}c_jh_j-\sum_i^{}\sum_j^{}w_{ij}v_ih_j$$

ボルツマンマシンエネルギー関数同様、次のように変換して表現することもできる。

$$P(X = x|\theta) = \frac{1}{Z(\theta)}\exp(-\Phi(x;\theta))$$

$$P(X = x|\theta) = \frac{1}{Z(\theta)}\exp\left(\sum_{i \in \Omega}^{}b_ix_i + \sum_{(i,j) \in ε}^{}w_{ij}x_ix_j\right)$$

$$p(v, h | \theta) = \frac{1}{Z(\theta)}\exp\left(\sum_{i}^{}b_iv_i + \sum_{j}^{}c_jh_j + \sum_{i}^{}\sum_{j}^{}w_{ij}v_ih_j\right)$$

条件付き独立性

制限ボルツマンマシンは「条件付き独立性(Conditional Independence)」を有している。確率変数Yを条件としたある確率分布が$$p(X_1, X_2, …, X_n|Y) = \prod{i=1}^{n}p(X_i|Y)$$のように、積の形式表現できる場合、XやYの下で条件付き独立である。制限ボルツマンマシンの場合、可視層隠れ層の関係が条件付き独立性形成する。つまり、可視層が固定された場合には隠れ層が、隠れ層が固定された場合には可視層が、それぞれ条件付き独立により積の形式で計算可能になる。

$$p(h|v, \theta) = \frac{p(v,h|\theta)}{p(v|\theta)} = \prod_{j}^{}p(h_j|\lambda_j)$$

$$p(v|h, \theta) = \frac{p(h,v|\theta)}{p(h|\theta)} = \prod_{i}^{}p(v_i|\lambda_i)$$

$$\lambda_i = b_i + \sum_{j}^{}w_{ij}h_j$$
$$\lambda_j = c_j + \sum_{i}^{}w_{ij}v_i$$

この可視層隠れ層条件付き独立性背景にあるのは、可視層ノード同士のリンク隠れ層ノード同士のリンクが一切形成されないという、制限ボルツマンマシンの「制限」たる所以だ。この条件付き独立により、事実上可視変数を固定した上での隠れ変数のサンプリングと、隠れ変数を固定した上での可視変数のサンプリングを交互に反復することで、ギブスサンプリングが可能になる。

制限ボルツマンマシンの学習方程式

制限ボルツマンマシンは「隠れ変数あり」のボルツマンマシンの一種であるため、学習方程式もこれに準拠している。基本的には、まず隠れ変数を周辺化することで可視変数のみの分布を求めた上で、そこから隠れ変数の分布を求めていくという手順を踏む。ただし制限ボルツマンマシンの場合は完全二部グラフを採用しているために、計算処理が単純化される。

隠れ変数Hについて周辺化した可視変数Vの分布は次のようになる。

$$p(v|\theta) = \sum_{n}^{}p(v, h|\theta)$$

$$=\frac{1}{Z(\theta)}\exp\left(\sum_{i}^{}b_iv_i \sum_{j}^{} + \ln\left(1 + \exp(\lambda_j)\right)\right)$$

観測データ点の集合をDとするなら、$$D = \{v^{(μ)}|μ=1, 2, …, N \}$$となる。

この集合と上記の可視変数周辺分布使用して、対数尤度関数のパラメタθに関する勾配を求めるなら、以下のようになる。

$$\frac{\partial L_D(\theta)}{\partial b_i} = \sum_{μ=1}^{N}v_i^{(μ)} – NE_{p(V, H|\theta)}[V_i]$$
$$\frac{\partial L_D(\theta)}{\partial c_j} = \sum_{μ=1}^{N}\sigma(\lambda_j^{(μ)}) – NE_{p(V, H|\theta)}[H_j]$$
$$\frac{\partial L_D(\theta)}{\partial w_{ij}} = \sum_{μ=1}^{N}v_i^{(μ)}\sigma(\lambda_j^{(μ)}) – NE_{p(V, H|\theta)}[V_iH_j]$$
$$\lambda_j^{(μ)} = c_j + \sum_{i}^{}w_{ij}v_i^{(μ)}$$

これらの勾配を0にする前提で、制限ボルツマンマシン学習方程式は次のように導出できる。

$$\frac{1}{N}\sum_{\mu=1}^{N}v_i^{(\mu)} = E_{p(V, H|\theta)}[V_i]$$
$$\frac{1}{N}\sum_{\mu=1}^{N}\sigma(\lambda_j^{(\mu)}) = E_{p(V, H|\theta)}[H_j]$$
$$\frac{1}{N}\sum_{\mu=1}^{N}v_i^{(\mu)}\sigma(\lambda_j^{(\mu)}) = E_{p(V,H|\theta)}[V_iH_j]$$

通常の「隠れ変数あり」のボルツマンマシン学習方程式に比して、少なからず観測データ点の標本平均に対応する左辺の計算は簡易化されている。しかし、右辺の期待値計算では依然として組み合わせ爆発問題の可能性を孕んでいる。そのため、制限ボルツマンマシンであっても、やはり近似計算は必要とする。その近似方法にはギブスサンプラーのみならずCD法も採用される。ここで用いられるCD法制限ボルツマンマシン条件付き独立性を利用した近似学習方法となる。

機能的拡張案:深層信念ネットワーク

確率論的な深層学習は、この制限ボルツマンマシンを何層にも積み上げた構成として設計される。それを一般に「深層ボルツマンマシン(Deep Boltzmann Mathine; DBM)」と呼ぶ。尤も、深層ボルツマンマシン深層学習の研究史上初のモデルとされる「深層信念ネットワーク(Deep Belief Network; DBN)」を再設計したアルゴリズムとしても位置付けられている。そのため、まずは深層信念ネットワークを確認しておいた方が良いだろう。

深層信念ネットワークも、ボルツマンマシン同様にノードを層状に配置する。ただし、無向エッジなのは最上位層のみで、その他のノードは有向エッジとしてリンクされる。情報は上位層から階層へと一方通行の形式伝播される。それにより、最下層の可視層の状態が決定される。制限ボルツマンマシンに比して、隠れ層が多数追加されているために、複合的な生成モデルにも対応できるようになっている。R個の隠れ層を持つ深層信念ネットワークは次のような確率モデル表現される。

$$p(v, h |\theta) = p(h^{(R-1)}, h^{(R)}|W^{(R)})\left(\prod_{r=0}^{R-2}p(h^{(r)}|h^{(r + 1)}, W^{(r + 1)})\right)$$

ここで、r=0は可視層を表す。$$p(h^{(R-1)}, h^{(R)}|W^{(R)})$$は、最上位の2層の同時分布となるため、$$p(h^{(R-1)}, h^{(R)}|W^{(R)}) = \frac{1}{Z(W^{(R)})}\exp\left(\sum_{i \in H^{(R-1)}}^{}\sum_{j \in H^{(R)}}^{}w_{ij}^{(R)}h_i^{(R-1)}h_j^{(R)}\right)$$となる。一方、$$p(h^{(r)}|h^{(r + 1)}, W^{(r + 1)})$$はその他の層同士の条件付き分布となるため、$$p(h^{(r)}|h^{(r + 1)}, W^{(r + 1)}) = \prod_{j \in H^{(r)}}^{}p(h_j^{(r)}|\sum_{k \in H^{(r + 1)}}^{}w_{jk}^{(r + 1)}h_k^{(r+ 1)})$$となる。

深層信念ネットワークの学習形式

深層信念ネットワーク学習は、初めにネットワーク全体の学習を実行するのではなく、2層ごとに逐次学習していくという「事前学習(pre-learning)」の形式を採る。

Le Roux, N., & Bengio, Y. (2008). Representational power of restricted Boltzmann machines and deep belief networks. Neural computation, 20(6), 1631-1649. p7より。

事前学習では、まず可視層と第一層目の隠れ層にのみ着目して、その他の層は度外視することになる。その上で学習方程式により計算を実行する。そして次に、第一層目の隠れ層と第二層目の隠れ層の組み合わせに着目することで、今度はこれらの隠れ層のみの学習方程式を計算していく。この時、第一層目の隠れ層は疑似的な観測データ点と見做される。この疑似的な観測データ点は、本来の観測データ点と区別させるために、「特徴点(feature point)」と呼ばれることもある。

全体がR層で構成された深層信念ネットワークの場合、r=0からr=R-2までの層は隣接する上位層と有向エッジでリンクしている。その間の条件付き分布は次のようになる。

$$p(h^{(r)}|h^{(r + 1)}) = \prod_{i}^{}\delta\left(b_i^{(r)} + \sum_{j}^{}w_{ij}^{(r + 1)}h_j^{(r + 1)}\right)$$

最上位層は制限ボルツマンマシンと同様の構造となるため、r=R-1とr=Rの層の同時分布は制限ボルツマンマシンの分布関数と等価となる。

しかし、深層信念ネットワークには隠れ変数間にリンクがあると共に、層数も多い。そのため、隠れ変数の条件付き分布は制限ボルツマンマシンほど容易には計算できない。そこで、制限ボルツマンマシン同様に、隣接する層間の条件付き分布は次のように近似される。

$$p(h_j^{(r)}|h^{(r-1)}) = \delta\left(b_j^{(r)} + \sum_{i}^{}w_{ij}^{(r-1)}h_i^{(r-1)}\right)$$

機能的拡張案:深層ボルツマンマシン

深層ボルツマンマシンは、制限ボルツマンマシンを何層にも積み上げた構造を有している。だがその事前学習形式深層信念ネットワークの拡張として捉えることができる。

深層ボルツマンマシンの事前学習

Salakhutdinov, R., Hinton, G. E. (2009). Deep boltzmann machines. In International conference on artificial intelligence and statistics (pp. 448-455). p451より。

深層ボルツマンマシン事前学習における基本的な手続きは、深層信念ネットワークのそれと大差は無い。ただし上図のように、深層ボルツマンマシンの場合はグラフ構造に若干の修正が加えられる。可視層である最下層と最上層のグラフの場合、事前学習深層信念ネットワークと同様の形式で進められる。だがそれ以外の隠れ層同士のリンクでは、条件付き分布の計算が変更される。例えば層r=1の場合の可視層の条件付き分布は、$$p(v_i|h^{(1)}) = \sigma\left(b_i + \sum_{j}^{}w_{ij}^{(r)}h_j^{(1)}\right)$$となる。深層信念ネットワークと変わりは無い。一方、中間層の場合の条件付き分布は、$$p(h_j^{(r)}|h^{(r-1)}) = \sigma\left(c_i^{(r)} 2 + \sum_{j}^{}w_{ij}^{(r)}h_i^{(r-1)}\right)$$となる。ただし、可視変数バイアスはbと表し、隠れ変数バイアスはcと表している。この2倍の数値は、中間層rがr + 1の層とr-1の層の双方から入力を受け取ることを反映している。深層ボルツマンマシンは、こうして計算されたパラメタを初期値として設定する。

プロトタイプの開発:制限ボルツマンマシンと深層ボルツマンマシンのフレームワーク

GitHubのaccel-brain-code/Deep-Learning-by-means-of-Design-Patternに配置しているライブラリ:『pydbm』では、制限ボルツマンマシン深層ボルツマンマシンをはじめとする様々な構造アルゴリズムモデルアーキテクチャを提供している。このライブラリの主要な機能の一つは、先述したライブラリ:『pyqlearning』と接続させることにより、関数近似器の様々な機能的等価物を提供することにある。先に示したように、深層強化学習問題の枠組みにおいて関数近似として機能し得るのは、畳み込みニューラルネットワークだけではない。『pydbm』と『pyqlearning』は、この関数近似器の設計に伴う偶発性を明確化すると同時に、様々な関数近似器の精度や速度に関する機能的比較可能にする。

参考文献

  • Ackley, D. H., Hinton, G. E., & Sejnowski, T. J. (1985). A learning algorithm for Boltzmann machines. Cognitive science, 9(1), 147-169.
  • Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep learning (adaptive computation and machine learning series). Adaptive Computation and Machine Learning series, 800.
  • Hinton, G. E. (2002). Training products of experts by minimizing contrastive divergence. Neural computation, 14(8), 1771-1800.
  • Le Roux, N., & Bengio, Y. (2008). Representational power of restricted Boltzmann machines and deep belief networks. Neural computation, 20(6), 1631-1649.
  • Mezard, M., & Montanari, A. (2009). Information, physics, and computation. Oxford University Press.
  • Mnih, V., Kavukcuoglu, K., Silver, D., Graves, A., Antonoglou, I., Wierstra, D., & Riedmiller, M. (2013). Playing atari with deep reinforcement learning. arXiv preprint arXiv:1312.5602.
  • Salakhutdinov, R., & Hinton, G. E. (2009). Deep boltzmann machines. InInternational conference on artificial intelligence and statistics (pp. 448-455).
  • S. Kullback and R. A. Leibler. (1951). “On Information and Sufficiency,” The Annals of Mathematical Statistics, Vol. 22, No. 1 (Mar., 1951), pp. 79-86.
  • Wainwright, M. J., & Jordan, M. I. (2008). Graphical models, exponential families, and variational inference. Foundations and TrendsR in Machine Learning, 1(1-2), 1-305.
  • Y Rubner (2000) “The Earth Mover’s Distance as a Metric for Image Retrieval,” International Journal of Computer Vision
    November, Volume 40, Issue 2, pp. 99-121.
  • 人工知能学会, 嶌敏弘(編)『深層学習』近代科学社、2015