logo

エネルギーに基づくモデル 📂機械学習

エネルギーに基づくモデル

概要1 2 3

エネルギーベースモデルとは、データのエネルギーenergyという関数を定義し、エネルギーが低いデータほどもっともらしいデータ(=確率が高いデータ)とみなして確率密度関数を推定する方法論だ。エネルギーベースモデルは、データの分布を従来の既知の分布に仮定せず、データの分布を直接モデル化する方法論で、複雑なデータを扱う際に有用だ。

ビルドアップ

確率モデルでデータを扱う伝統的なアプローチは、データがある既知の分布(例: 正規分布ベルヌーイ分布ポアソン分布など)に従うと仮定し、その分布のパラメータを推定することだ。例えば、データが正規分布に従うと仮定すると、平均と分散を推定することでデータの全体の分布をモデル化できる。この方法は統計的によく確立されており、数学的な解釈も可能で、簡単なデータに対して効果的に機能する。

しかし、このようなアプローチには明らかな限界がある。実際に我々が直面するデータは高次元で複雑であり、正規分布のような単純な形で表現するのは難しい。さらに、複雑な構造を持つデータでは、分布の形を事前に明確に知ることが難しいため、「正規分布に従う」という仮定そのものが非現実的な場合もある。このように、分布を事前に仮定してそこにデータを当てはめる方式は、データの本質的な構造を反映できないリスクがある。

例えば、人の顔写真を考えてみよう。人の顔写真は無数のピクセルで構成されており、各ピクセルの色は00から255255までの整数で表される。このとき各ピクセルの色は独立していないし、特定のパターンを持っている。例えば、目、鼻、口などの位置と形が互いに関連している。このようなデータは、上で説明した通りのシンプルな確率密度関数で表現するのが困難だ。特定の確率分布を仮定し、そのパラメータを推定することは、実際にデータがそのような分布に従うという強い推測もあろうが、形がうまく合わなくても最大限当てはめるという意図もある。そのため、複雑なデータを扱う際には、データの分布を仮定するのではなく、データの分布を直接モデル化することがより良い方法になるかもしれない。このような方法の一つがエネルギーベースモデルenergy-based modelである。

エネルギーベースモデルのアイデアはその名前からも分かるように物理学から由来している。温度がTTである系systemのエネルギーがEEである確率は次の通りで、これをボルツマン分布という。

P(E)eEkBT P(E) \propto e^{ - \frac{E}{k_{B} T} }

kBk_{B}ボルツマン定数である。ここで「系がどうこう」「温度がどうこう」という内容は重要ではない。重要なのはエネルギーが低い状態ほど確率が高いということだ。実際に物質が安定しているというのはエネルギーが低い状態を意味する。これをデータに適用すると、エネルギーが低いデータほど抽出される確率が高い、すなわちもっともらしいデータということになる。したがってエネルギーベースモデルはデータの確率密度関数を次のように定義する。

定義

データが従う分布の確率密度関数pθ(x)p_{\boldsymbol{\theta}}(\mathbf{x})を次のように仮定するのをエネルギーベースモデルenergy-based modelという。

pθ(x)=1Z(θ)eEθ(x),Z(θ)=eEθ(x)dx p_{\boldsymbol{\theta}}(\mathbf{x}) = \dfrac{1}{Z(\boldsymbol{\theta})}e^{ - E_{\boldsymbol{\theta}}(\mathbf{x}) }, \qquad Z(\boldsymbol{\theta}) = \int e^{ - E_{\boldsymbol{\theta}}(\mathbf{x}) } d\mathbf{x}

ここでEθE_{\boldsymbol{\theta}}エネルギー関数energy functionという。分母のzZ(θ)=eEθ(x)dxZ(\boldsymbol{\theta}) = \int e^{ - E_{\boldsymbol{\theta}}(\mathbf{x}) } d\mathbf{x}

説明

pθp_{\boldsymbol{\theta}}が確率密度関数になるためには積分した値が11でなければならないので、Z(θ)Z(\boldsymbol{\theta})のような正規化定数を掛けてやる。Z(θ)=eEθ(x)dxZ(\boldsymbol{\theta}) = \int e^{ - E_{\boldsymbol{\theta}}(\mathbf{x}) } d\mathbf{x}パーティション関数partition functionとも呼ぶ。指数関数部分を簡単に次のように示すこともある。

pθ(x)=1Z(θ)p~(x;θ)=1Z(θ)f(x;θ) p_{\boldsymbol{\theta}}(\mathbf{x}) = \dfrac{1}{Z(\boldsymbol{\theta})} \tilde{p}(\mathbf{x}; \boldsymbol{\theta}) = \dfrac{1}{Z(\boldsymbol{\theta})} f(\mathbf{x}; \boldsymbol{\theta})

ここでffが正規化されていないため、このようなモデルを非正規化モデルnon-normalized modelsという。

エネルギー関数をどのように定義するかによってpθp_{\theta}の表現力が変わり、複雑なデータも十分にうまくモデル化できる。また、複雑に見えても結果的には指数関数の形なので、情報理論の文脈でも適合するということができる。情報とは確率のマイナスログで定義されるので、次を得る。

I(x)=logpθ(x)=Eθ(x)+logZ(θ) I(\mathbf{x}) = - \log p_{\boldsymbol{\theta}}(\mathbf{x}) = E_{\boldsymbol{\theta}}(\mathbf{x}) + \log Z(\boldsymbol{\theta})

第二項はx\mathbf{x}に対して定数であるため、エネルギーベースモデルでデータx\mathbf{x}のエネルギーとはデータの情報と同じである。

  • モデル
    • ホップフィールドネットワーク
    • ボルツマンマシン
      • 制限付きボルツマンマシン
  • 学習、サンプリング: 次元の呪いなどの問題で正規化定数Z(θ)Z(\boldsymbol{\theta})を計算するのが難しい場合、以下のようなサンプリング方法を使用する。