"機械学習","信号解析","ディープラーニング"の勉強

HELLO CYBERNETICS

深層学習、機械学習、強化学習、信号処理、制御工学などをテーマに扱っていきます

統計物理学と機械学習の関係

 

 

f:id:s0sem0y:20170823204105j:plain

 

 統計物理学の始まり

まず統計物理学がどんなものかを説明しましょう。ここを定性的にでも把握しておくと、だいぶ機械学習に近しい考え方を持っていることを強く実感できるはずです。

 

統計物理の着想は熱力学にあり

統計物理学は熱力学からやって来ました。

 

私達は生活の中で容易に実感できるように、「熱」というものが温度の高い方から低い方へ流れていくことを知っています。運動エネルギーや化学エネルギー、電気エネルギーなどがあるように、熱もエネルギーの形態の1つと言えます。しかし事前に述べたとおり、

 

熱というエネルギーは温度というものに依存して移動の方向が制限されていることが特徴的です。

 

これがいつでも成り立っていそうなのであれば、「熱は温度の高い方から低い方へ流れる」という事実を基本法則に持ってこれば話は解決します。実際にそのような法則を携えて議論をするのが高校生の学ぶ熱力学という分野のスタンスです。

 

しかし、そんな特殊な動作をする熱とは一体なんですか?この疑問が意外と難しいのです。私達が知っているのは、「熱がAからBへ移動した時、Aの温度の方がBの温度より高い」ということだけです。

 

つまり、基本法則である「熱は温度の高い方から低い方へ流れる」についてはとりあえず鵜呑みにするしか無く、そもそもなんで熱の移動に制限があるのかも上手く説明できそうにありません。

 

ともすれば、もっと違う根本的な説明の方法を開発する必要があります。

 

 

熱力学におけるエントロピーという概念の導入

 

エントロピーというのは熱力学で生まれてきた物理量です。

 

これを熱力学からしっかりやると意外と難しいのですが、「温度が高い方から低い方へ熱が移動する」ということを上手く数式で表現しようとした結果生まれてきたものだと考えればいいです。

 

熱力学からエントロピーを議論するときには熱機関のサイクルを真面目に論じていかなければなりません。熱機関の温度を外部から上昇させるには「外部から熱を与える」方法と、「熱機関の体積を減少させる(圧縮する)」方法があります。

 

実はこの両方を組み合わせた「外部から熱を与えてから圧縮する」方法と、「圧縮してから熱を与える」方法では同じ大きさの熱、同じ圧縮率を使っても結果が変わってきます。

 

要するに熱機関は変化の経路によって振る舞いが変わるということです。このような系で何か特殊な物理量が現象を支配しているのではないかと考え、模索されたのがエントロピーという物理量です。

 

「温度が高い方から低い方へ熱が移動する」という法則を、エントロピーという物理量を使うと「エントロピーが増大する」という言葉で置き換えることができます。

 

 

 

実はこの段階で最初に述べたような「温度」や「熱」というものに対する明確な説明はできていません。エントロピーという謎の物理量を導入することで、「エントロピーが増大する」と言えるようになっただけであって、「じゃあエントロピーが増大するように移動する熱とは一体何なのでしょうか?」という質問に応えることはできません。

 

統計物理学のモチベーション

実は、熱というエネルギーにはその元である「熱素」なるものが存在するのだという、未知の物質を仮定した考えもあったのですが、実際にはそのようなものは見つかりませんでした。

 

そこで統計物理学は、熱という謎の物理量を廃してしまって、一から熱力学を説明できるようにすることを目指しました。

 

そもそも熱を持っているというのは、微視的に見れば粒子が運動エネルギーを有しているということです。高温の物体はそれを構成する原子(あるいは分子)が非常に激しく振動しており、逆に絶対零度では完全に停止しているという状態になります。

 

これは気体や液体でも同じで、要するに温度が高い状態というのは分子の運動エネルギーが大きい状態のことを指します。

 

ここから出発して、エネルギーの方向性を有した受け渡しを記述できれば嬉しいというわけです。

 

そこで統計物理学は果敢にも、物質を構成するアボガドロ数(10^{23}オーダー)の分子の統計的な振る舞いを明らかにすることに挑むこととしたのです。

 

統計物理学の着想

統計物理学を始める上では高校生の学ぶ範囲である気体分子運動論が分かっていると良いのですが、ゴリゴリに議論するつもりはないので、知っていなくても大丈夫でしょう。

 

統計物理学を始める上での基本

とりあえず気体を想定しましょう。空気中ではいろんな分子が飛び交っています。この飛び交っている分子の運動エネルギーが大きいほど温度が高いと言う状態です。ここでは温度が分子の運動の激しさによって規定され、熱という概念は登場していないことに注意してください。

 

統計物理学では熱という概念を完全に撤廃して、「偶然にも移動方向に制限が掛かる場合がある」ことを見ていきます。

 

空気中を飛び交う分子は、あっちにいったりこっちにいったり、その方向も速さも様々です。一言で言えば「分子ごとに速度が異なる」のです。

 

これら空気中の分子1つ1つを厳密に調べあげることは難しいでしょう。代わりに、やけにスピードの速い分子が多いそうなのか、止まっている分子の方が多そうなのか、統計によって議論をしていくことはできそうです。

 

したがって統計物理学では、分子の速度分布を使って議論していきます。

 

単純に考えれば、分子の運動の方向は考えず、とりあえず速さだけ考えることにすれば、温度の高い気体の方が温度の低い気体よりも、「速く動く分子の数が多そう」ということが言えます。

 

これらを分布を使って定量的に考察していくのです。

 

 

熱の移動の正体

統計物理では熱の存在は撤廃していますが、理解のため、熱という言葉を使います。なぜに熱が温度の高い方から温度の低い方へ移動するのでしょうか。

 

統計物理学を使うと、「確率的にそのような現象が起こりやすい」という形で結論を出すことができます。

 

いま気体Aに属する複数の分子をA_iとし、気体Bに属する分子B_jと書いておきます。気体Aは温度が低く(分子のスピードが小さい)、気体Bは温度が高い(分子のスピードが大きい)状態です。この気体は完全に隔離されており、下の図のようになっているとしましょう。

 

f:id:s0sem0y:20170823165948p:plain

 

さて、ここで真ん中の仕切りを取り払って見ましょう。分子は運動しているので、仕切りがない場合は自由に移動を開始します。

 

 

f:id:s0sem0y:20170823170120p:plain

 

時間が経過した後に、もう一度仕切りを挟んでみましょう。もしかした以下のようになっているかもしれません。

 

f:id:s0sem0y:20170823170258p:plain

 

このように気体が自由に動いていくことを考えた場合に、適当に仕切りを入れた時、分子はどのように分かれていると考えられるでしょうか。それは仕切りを入れるタイミングによって変わるかも知れません。しかし、確実に言えそうなのは

 

速い分子と遅い分子が完全に分かれているような確率は非常に低いということです。

 

完全に分かれている確率は、最初の状態のままか、あるいは左右が完全に入れ替わるかの2通りだけです。それ以外の入れ替わり方は何個あるでしょうか。仮に、左右に必ず3つずつに別れると考えた場合には6つの玉から3つを選び出し、更に左右箱のいずれかを選ぶ2通りがあるので、

 

\displaystyle C(6,3)\times 2=\frac{6\cdot 5 \cdot 4}{3\cdot 2 \cdot 1} \times 2=40

 

通りも考えられるのです。このうち2つが完全に別れるパターンであり、残りの38通りは全て遅い分子と速い分子が混ざっているパターンに相当します。

 

つまり、仮に希少な2パターンが起これば、温度の高い気体と低い気体が、完全にそのままか、完全に入れ替わることになりますが、それ以外では温度が平坦に均されることになるのです。

 

当然、もともとは左の箱は運動エネルギーの総和は小さかったのですが、仕切りを取り払い、もう一度仕切りを入れた時には、先程よりはエネルギーが上昇している確率が非常に高いのです。

 

このようにエネルギーが均される確率が非常に高いことが、(熱)エネルギーが温度の高い方から低い方へ流れていくことを説明します。

 

このような形で受け渡されるエネルギーを、たまたま「熱」という特別な物理量だと考えてしまっていたわけです(もちろん、そのような制限を受ける環境下では、熱として特別扱いすることは、応用上十分に意義がある)。

 

 

もちろん現実には、遅い分子と速い分子の2つに分けられるものではなく、個々に異なる速度を持っています(もちろん温度の低い気体は平均的には遅い分子の集まりだが)。また衝突などによって分子同士がエネルギーを個々にやり取りすることも考えられます。

 

それでも、それらのエネルギーの受け渡しが行われた結果、偶然にも速度の小さな分子ばかりが一方に集まってくる確率が低そうなのは直感的に理解できるでしょう。

 

 

統計物理学でのエントロピー

 

 

温度が高い方から低い方へ移動することは、熱力学では「エントロピー増大則」として、統計力学では「そのパターンが起こりやすいから」として説明できたので、統計力学でエントロピーを記述するならば、場合の数や確率と関連のある形になるはずです。

 

ところで、熱力学では温度が高い方から低い方へ熱が移動することを、エントロピー増大則として記述しましたが、このエントロピーは温度と熱の比によって定義されています。統計物理学では熱という概念を用いていないため、エントロピーというものを記述する他の形式が必要です。

 

熱力学での事実として、気体Aと気体BのエントロピーをそれぞれS_A,S_Bとすると、2つの気体を合わせた合計のエントロピーはS_A+S_Bになります。非常に単純です。

 

なので、統計力学でエントロピーを定義する場合も、気体Aと気体Bのエントロピーがあった時に、それらを混ぜた時に和になるような形式が必要でした。

 

そこで気体Aと気体Bの分子が取りうる状態のパターンをそれぞれW_A,W_Bとしたときにエントロピーをそれぞれ

 

S_A = k\log(W_A)

 

S_B = k\log(W_B)

 

としておくことで、エントロピーの和が

 

S_A + S_B= k\log(W_A) + k\log(W_B) = k\log(W_AW_B)

 

という形になり、右辺に上手く組み合わせの積が出てきてそれっぽくなってくれます。統計力学ではこの形式でエントロピーを定義するのですが、情報理論を知っている人は何かピンと来るものがあるかも知れません。

 

統計力学と情報理論のエントロピーの数学的形式が非常に似ているのです。

 

s0sem0y.hatenablog.com

s0sem0y.hatenablog.com

 

 

 

※気体Aと気体Bの分子が取りうる状態のパターンというのは、例えば速度であれば連続的なので数えることはできない。実際には数えることができるように理論が出来上がってはいるが、それを説明するのは非常に難しい。ここでは場合の数くらいに思っておいていただきたい。

 

この統計的な議論と数式から始まって、見事に熱力学の様々な関係式が導かれていきます。これは本当に物理学の素晴らしいところで、本質的な基本法則から始まって現象を導く様は感動しますが、今回は物理の解説が目的ではないためこの辺で一旦区切るとしましょう。

 

※ボイル・シャルルの法則やそれをまとめた状態方程式なども導かれていく

 

統計力学と機械学習

何はともわれ、統計物理学が分子の場合の数や確率、分布を用いて議論する体系を有していることは理解してもらえたと思います。統計物理学では、物理現象を説明する分布を上手く構築して、その分布に関する解析が徹底的に行われてきました(分布を解析できれば、現象を解析できるのと同じなので)。

 

確率分布を使って現象を説明する代表的な応用分野がまさしく機械学習です(確率分布を考えない機械学習の手法も勿論あるが、そのほとんど全てが、確率分布を考える手法の近似である)。

 

なので何かしら親和性がありそうだというのは、なんとなく直感できるところではないでしょうか。

 

情報統計力学

物理現象で実在する分布の効率的な解析方法やサンプリング法が、既に統計物理学では基本的な手法として取り揃えられています。ともすれば、機械学習で何らかの確率分布を考えなければならない時、もしかしたらそれは統計物理学で既に解法が得られているかもしれないのです。

 

いや、むしろ、機械学習の問題を積極的に統計物理の問題にマッピングすることで、既に得られている洗練された手法を流用できるということになります。

 

このような発想に基づいた学問体系として「情報統計力学」があります。

 

実は機械学習で用いられる「ホップフィールドネットワーク」や「ボルツマンマシン」、ディープラーニングという言葉を産んだ「ディープビリーフネットワーク」は全てこれらの発想に基づいていると言っていいでしょう。

 

イジングモデル

統計力学の代表的なモデルである、イジングモデルを見てみましょう。

イジングモデルとは磁性体をモデル化したものなのですが磁性体とは磁石みたいなものだと思ってもらえればいいでしょう。粒子1つ1つが上向きと下向きの磁性を有しており、これらが無数に結晶化されたものを考えます。

 

例えば以下の画像は2次元のイジングモデルです。

 

f:id:s0sem0y:20170823181015p:plain

図参照:量子アニーリングで組合せ最適化 - Qiita

 

各格子点が粒子であり、その粒子1つ1つが上向きや下向きの磁性を持っています。上向きや下向きをそれぞれ+1-1で表現することにしましょう。例えばk番目の粒子が上向きならばs_k=+1と表すことにします。

 

ここでこの磁性体のエネルギーHを以下のように考えます。

 

\displaystyle H=-\sum_{i,j}s_is_j

 

ここでi,jはいつでも隣通しの粒子しか考えないことにします。

 

物理ではエネルギーが小さい方が安定しており、物体はエネルギーが小さくなる方へ自身の状態を変化させていきます。

 

上記のようなエネルギーを考えた場合は、隣同士の粒子が同じ方向を向いていたほうがエネルギーが小さくなります(同じ方向を向いていれば、+1\times +1=1-1\times(-1)=1なので、\sumの中身は正になり、エネルギーは負の値となる)。

 

つまり上記のようなモデルで表される磁性体は、各粒子が同じ方向を向きたがるというわけです。きっと、磁性体の種類によって、同じ方向を向きたがる度合いやエネルギーの大きさは異なるはずなので、その係数をJとして

 

\displaystyle H=-\sum_{i,j}Js_is_j

 

と表すことにしておきましょう。非常に強く同じ方向を向きたがる磁性体はきっとJが正の大きな値であり、同じ方向を向きたがるがそれほど強くない場合はJは正の小さな値になるでしょう。

 

こう考えると、Jが負の場合も考えることができます。Jが負の場合は、隣り合う粒子は違う方向を向きたがるということになります。

 

 

Jが正の磁性体を強磁性体と呼び(大抵普通に磁性体と言えば、この強磁性体のことを言う)、このような物質は各粒子が同じ方向に磁性を持ちたがるために全体としても磁性を持ち、磁石のような役割をします。

 

これは非常に特殊な物質であるため、かなり深くモデルについて考察されました。

 

現実の強磁性体におけるイジングモデルは、外部磁場hを用いて

 

\displaystyle H=-\sum_{i,j}Js_is_j-\sum_i hs_i

 

と書きます。第二項は、外から磁場を掛けた時に、それぞれの粒子が磁場と同じ方向を向きたがることを表しています。すなわち、強磁性体は外部磁場によって(第二項の影響で)外部磁場と同じ方向に揃えられ、しかも第一項も同様に隣り合った粒子が同じ方向を向きたがるため、一度外部磁場を掛けてやれば、その方向に全ての粒子が向くようになり、それは全体として外部磁場と同じ方向の磁性を持つこととなり、磁石として振る舞うようになります。

  

 

イジングモデルを更に一般化したスピングラスモデル

さて、イジングモデルを簡単に見てきました。

 

\displaystyle H=-\sum_{i,j}Js_is_j-\sum_i hs_i

 

においてJの値がそれなりに重要であることが伺えました。

 

ところで、仮に隣り合う粒子毎に異なるJの値を持っていたならばどうでしょう。すなわち「あいつとは同じ方向が良いけど、こいつとは違う方向が良い(正負の違い)」とか、あるいはその度合い(絶対値)が異なることも考えられるということです。更に、hs_iとの関係性も個々で異なるということも考えられるでしょう。

 

これを表記するのは簡単でJi,jごとに違う値を、hiごとに違う値を持つようにすればよく

 

\displaystyle H=-\sum_{i,j}J_{ij}s_is_j-\sum_i h_is_i

 

と表記できます。これをスピングラスモデルと言います。こうなってくると、モデルの解析は遥かに難しくなるでしょう。J_{ij}の具合によっては、エネルギーを最小化するような方向の調整が上手くできない場合もあります。あちらを立てればこちらが立たずということが起こってくるのです。それでも全体としては最小値になりたいというのが系全体での振る舞いになります。

 

系を構成している各粒子それぞれが、全体としてどうすればエネルギーが最小化されるのかをいろいろ方向を変えながら模索していくことになります。

 

パラメータJによってsの振る舞いが変わるので、sを確率変数として、その条件付き確率分布を考えましょう。

 

sJに依存しており、かつエネルギーHが低い状態になりたがっているはずなので、エネルギーが低いsほど生起確率が高い確率分布になるはずです。

 

具体的には以下の形になります。

 

\displaystyle p(s|J) = \frac{1}{Z(J,\beta)}\exp(-\beta H)

 

ここでZはこの式が確率となるように(0~1となるように)設定された正規化関数(統計力学では分配関数という)です(実はこのZは単に正規化するためだけの値以上の価値がある)。

 

なんでこんな形になるの?と思うでしょう。これはボルツマン分布と呼ばれ、粒子が取りうるエネルギーの分布を表すために広く使われています(適当に置いているのではなく、そうなることがこのケースに限らず、より一般的に導ける)。

 

あとはこの確率分布を解析することで、どのようなJでどのようにsが値を持つのかを知ることができます。

 

 

統計力学が機械学習にもたらすもの

スピングラスモデルについて少しまとめましょう。

 

\displaystyle H=-\sum_{i,j}J_{ij}s_is_j-\sum_i h_is_i

 

というエネルギーを考え、このエネルギーが小さくなるように物質は振る舞うため

 

\displaystyle p(s|J) = \frac{1}{Z(J,\beta)}\exp(-\beta H)

 

という確率分布に従ってsが決まってくるということです。ところがHを最小にするようなsというのは、組み合わせが膨大にありすぎて見つけることが難しいのです。すなわちJが既知であったとしても、どのようなsの組み合わせ(各粒子がどのように値を持てば良いのか)を明らかにするのは困難だということです。

 

統計力学では、このようなモデルで表現される物質の振る舞いを理解するために、このモデルの解析方法やシミュレーションの方法が構築されていきました。

 

つまり、どのようなJのもとでsがどのように変化していくのかを明らかにするための解法を模索していったということです。

 

これは言い換えると、パラメータJを持つ学習マシンの出力s〜p(s|J)を、統計物理の上記の手法に当てはめて完全に流用することができるということです(出力を導くことが自体が非常に難しい)。これを実践したものがボルツマンマシンになります。

 

 

例えばギブスサンプリングであったり平均場近似であったり、機械学習で聞いたことあるこれらの手法は統計物理の成果物なのです。

 

ところで、機械学習ではむしろsの方が既にたくさん得られており、ある損失関数を元にそれを最小化するようなJを求めたいというのが本題になります。

 

物理ではあるJのもとでsがどのように振る舞うのかを知りたい(そして、どんなJでどんな現象が起こるのかを明らかにしたい)という「順問題」が取り扱われますが、機械学習では既に実験でsがいっぱい得られているから、このsが得られるようなJってどんな値をしているのかという「逆問題」を扱うということになります。

 

確率分布を仮定しているので、最尤推定などを用いればもっともらしいJを得る式が得られますが、この式は解析的には解けないので数値解法で解く必要が出てきます。

 

そして最尤推定を解く式の中にs_iの期待値やs_is_jの期待値が出てくるため、結局あるJの元でのsを見積もる必要が出てきます(すなわち順問題を解く必要がある)。

 

結局逆問題を解くにも、順問題を解く必要があり、ここが組み合わせが膨大すぎて難しかったところを、統計力学で得られた平均場近似やギブスサンプリングを用いられることで回避できるというわけです。

 

(物理では結晶を考え、隣り合った粒子を想定していましたが、データにとって「隣り合う」の意味は明確ではないため(画像のような場合は明確だが)、通常は隣り合った結合i,jではなく、全てのi,jの組み合わせを考えるため、余計に計算量の問題が深刻です。 )

 

 

機械学習での発展

物理で考案されるモデルというのは、実際の物理現象を解明するために作られているわけなので、物質であったり場であったり、何かしらの実在する物理的な対象とマッチしていなければなりません。

 

しかし機械学習では、ある程度表現範囲の広いモデルを使っておいて、学習によりフィッティングしていくことがメインになります。すなわち物理的な実在が無いモデルでも構わなく、そのような観点から独自の発展を遂げていきました。

 

例えば制限ボルツマンマシンは、計算の都合上導入されたボルツマンマシンの簡易的版であり、これに相当する物質が存在するかどうかは問題ではありません。学習がしやすくなったことに意味があります。

 

更に、制限ボルツマンマシンを積み重ねたものをディープ(制限)ボルツマンマシンと呼び、制限ボルツマンマシンを有向グラフで結んだものをディープビリーフネットワークと呼びます。またディープビリーフネットワークが登場する際、制限ボルツマンマシンを個々に教師なし学習させる「事前学習」が提案されました。

 

その中でギブスサンプリングのサンプリング数が理論上無限に必要であるという問題点を回避するコントラスティブ・ダイバージェンス法などの画期的な手法も生まれました。

 

また、ボルツマンマシンではエネルギーH

 

\displaystyle H=-\sum_{i,j}J_{ij}s_is_j-\sum_i h_is_i

 

とし、sが以下の確率分布

 

\displaystyle p(s|J) = \frac{1}{Z(J,\beta)}\exp(-\beta H)

 

から生起するとしていました。これは暗黙のうちに、Hを最小化するようなsを出すことが良いことであると設定していることになります(つまり、データが強磁性体の如く振る舞うことを要請している)。この部分は実際には正しいのか微妙でしょう(そうだとしても、そのような仮定のもとでJを学習してしまうのだから、データに対して上手く動作はしてくれるだろう)。

 

そこで、これを更に一般化したものがマルコフ確率場であり、

 

\displaystyle H=-\sum_{i,j}Φ(s_i,s_j)-\sum_i Ψ(s_i)

 

のようにしておき、Φ,Ψを上手く設計することでデータに応じたモデルを構築することが可能になります。

 

 

最後に

量子アニーリングコンピュータ

巷で言われる実用化されている量子コンピュータとは、量子アニーリングコンピュータのことです。ボルツマンマシンが分かっていると、量子アニーリングの狙いも非常に明確になります。

 

量子アニーリングの前にシミュレーテッドアニーリング(擬似焼きなまし法)を見ておくと良いでしょう。

 

擬似焼きなまし法は、勾配法などと異なり、局所最適解を避けることが可能な大域的最適化アルゴリズムの一種です。着想はこれまた物理学(あるいは冶金学)であり、金属を熱してから冷ますと、更に固く(エネルギーが安定に)なっていることを応用しています。すなわち金属結晶のエネルギーを低くする現象をシミュレーションしたものがシミュレーテッドアニーリングなわけです。

 

量子アニーリングも物理的なモデルがエネルギーを低くする動きを利用したものですが、量子効果を利用しているため、決定論的には超えられないポテンシャルの壁を通過することが可能になります。

 

そして、量子コンピュータと言われる所以は、これをプログラミング言語で数式を書いてシミュレーションしているのではなく、本物の物理的な実体でこれを行っているのです。

 

すなわち、学習したいモデルがあった場合にはそのモデルの学習プログラムを書くのではなく、そのモデルに相当する物理系を自然界の中で実際に動かしてしまうのです。そうして得られた結果を、再び数値の世界に戻すという手法を取るのです。

 

言い換えると、物理的に実在する形のモデルでなければ最適化問題を量子アニーリングコンピュータで解くことはできないということになります。

 

そして、現状、量子アニーリングで用いているのは今まで述べてきた「イジングモデル」の発展形であるということだけ述べて今回は終わりましょう。


\displaystyle H=-\sum_{i,j}J_{ij}s^z_is^z_j - Γ(t)\sum_i s^x_i

 

(zxは三次元の座標。zが上向きとすれば、xは横向きであり、横磁場を用いている。Γ(t)tの減少関数)

量子アニーリングによる量子コンピュータ(西森秀稔)

 

ベイズ

統計物理学は「ベイズ」という言葉を使ってはいませんが、ベイズ的な考え自然と利用しているため、ベイズ統計との関連も非常に深いです。

 

 

 

 

 

 

s0sem0y.hatenablog.com

 

 

s0sem0y.hatenablog.com

 

 

s0sem0y.hatenablog.com

s0sem0y.hatenablog.com