エネルギーベースモデル
🎙️ Yann LeCun概要
モデルを定義するための新しいフレームワークを紹介します。これは、教師あり、教師なし、自己教師ありのモデルを定義するのに役立つ統一的な枠組みを提供するものです。エネルギーベースモデルは、変数の集合 $x$ を観測し、変数の集合 $y$ を出力します。フィードフォワードネットには2つの大きな問題があります。
- 単に加重和を行う層を積み重ねたもの以上の複雑な計算を伴う推論を行う場合にはどうするのか?
- 1つの入力に対して複数の出力がありうる場合はどうなるのか?(例えば、動画の未来のフレームを予測する場合。)分類ネットでは、本質的にはクラスごとのスコアを出力するようにこのネットワークを訓練します。しかし、これは画像のような連続的かつ高次元の領域では不可能です(softmaxで確率を考えることは離散的な出力に対する操作なので、画像に対してのsoftmaxを考えることはできません!)。出力が離散的であったとしても、サンプル空間が大きい可能性があります。例えば、文章は構成的なため、膨大な数の組み合わせが考えられます。エネルギーベースモデルは、これらのモダリティをモデル化するためのより良い枠組みを提供するものです。
EBMのアプローチ
$x$を$y$に分類しようとするのではなく、あるペア($x$, $y$)が合うか合わないかを予測する問題、言い換えれば、$x$と相性の良い$y$を見つける問題を考えます。また、この問題は、ある $F(x,y)$ が低くなるようなある$y$ を見つける問題だと考えることもできます。例えば
- $y$ は $x$ の高精度で高解像度な画像であるか?
- テキスト
A
は、テキストB
の良い翻訳であるか?
などです。
定義
エネルギー関数を次のように定義します:$F: \mathcal{X} \times \mathcal{Y} \rightarrow \mathcal{R}$。 ただし、$F(x,y)$は、$(x,y)$ペア間の依存の度合いを表しています(注:このエネルギーは推論時に使われるものであって、学習に使われるものではありません)。次の式にしたがって推論を行います。
\[\check{y} = \displaystyle \text{argmin}_y \left \{ F(x,y)\right \}\]解法: 勾配法による推論
勾配法を用いた推論に使えるように、エネルギー関数は滑らかで微分可能なものであって欲しいと考えます。推論を行うために、勾配降下法を用いてこの関数上を探索し、互換性のある $y$を見つけます。 最小値を求める方法は、勾配法の他にもたくさんあります。
余談:グラフィカルモデルは、エネルギーベースモデルの特殊な場合です。エネルギー関数は、エネルギー項の和に分解することができます。各エネルギー項は、私たちが扱っている変数の部分集合を踏まえたものです。エネルギー項がある特定の形式で構成されると、私たちが推論したい変数に対して、エネルギー項の和の最小値を見つけるための効率的な推論アルゴリズムが存在します。
潜在変数を持つEBM
出力 $y$ は 、$x$ と、その値がわからない追加の変数 $z$ (潜在変数) に依存します。これらの潜在変数は、補助的な情報を提供することができます。例えば、潜在変数は、テキストのチャンク(単語の一塊の集まりのこと)の中の単語の境界の位置を教えてくれます。これは、単語の間のスペースのない手書きのテキストを解釈したいときに役立つでしょう。また、これは解読が困難な間隙のある音声を理解するのにも特に便利です。さらに、いくつかの言語では、単語の境界が非常に弱いものがあります(例:フランス語)。したがって、モデルがこの潜在変数を持っていることは、そのような入力を解釈するのに非常に有用です。
推論
潜在変数を持つEBMで推論を行うためには、エネルギー関数を$y$と$z$について同時に最小化する必要があります。
\[\check{y}, \check{z} = \text{argmin}_{y,z} E(x,y,z)\]これは、エネルギー関数を次のように再定義することと等価です:
\[F_\infty(x,y) = \text{argmin}_{z}E(x,y,z)\]これはすなわち、次と等価です:
\[F_\beta(x,y) = -\frac{1}{\beta}\log\int_z \exp(-\beta E(x,y,z))\]ただし、$\beta \rightarrow \infty$であるとき,$\check{y} = \text{argmin}_{y}F(x,y)$です。
潜在変数を導入することのもう一つの大きな利点は、潜在変数をある集合上で変化させることによって、予測出力$y$も、ありうる予測の集まりからなる多様体上で変化させることができる点です(ひもで表された多様体は下の図に示されています)。
これにより、予測器は1つの出力だけでなく、複数の出力を生成することができます。

図1: エネルギーベースモデルの計算グラフ
例
その一例が動画予測です。動画予測を利用した良い応用例はたくさんありますが、その一つが、動画圧縮システムを作ることです。もう一つは、自動運転車から撮影した動画を使って、他の車が何をするかを予測することです。
動画予測とは別の例として、翻訳をあげることができます。言語翻訳は、常に難しい問題です。というのも、ある言語のテキストの一部から別の言語へのテキストの一部に対して、単一の正しい翻訳というものは存在しないためです。通常、同じ考えを表現するには多くの異なる方法があるため、私たちはなぜ他の表現でなくその表現を選ぶのかを説明するのが難しいと感じます。そこで、与えられたテキストに反応するためにシステムが生成できる可能性のあるすべての翻訳をパラメトリックに表現する方法があればいいかもしれません。例えば、ドイツ語を英語に翻訳したい場合、正しい英語の翻訳は複数ありえますが、いくつかの潜在変数を変化させることで、生成される翻訳を変化させることができます。
エネルギーベースモデル vs 確率モデル
エネルギーは正規化されていない負の対数確率と見ることができます。そして、正規化後にエネルギーを確率に変換するためには、Gibbs-Boltzmann分布を用います。
\[P(y \mid x) = \frac{\exp (-\beta F(x,y))}{\int_{y'}\exp(-\beta F(x,y'))}\]ただし、$\beta$は正の定数であり、モデルに合うように調整する必要があります。$\beta$を大きくするとゆらぎが大きなモデルになり、小さくすると滑らかなモデルになります(物理学では、$\beta$は逆温度であり、$\beta \rightarrow \infty$ は温度がゼロになることを意味します)。
\[P(y,z \mid x) = \frac{\exp(-\beta F(x,y,z))}{\int_{y}\int_{z}\exp(-\beta F(x,y,z))}\]これを$z$について周辺化すると: $P(y \mid x) = \int_z P(y,z \mid x)$、次の式を得ます
\[\begin{aligned} P(y \mid x) & = \frac{\int_z \exp(-\beta E(x,y,z))}{\int_y\int_z \exp(-\beta E(x,y,z))} \\ & = \frac{\exp \left [ -\beta \left (-\frac{1}{\beta}\log \int_z \exp(-\beta E(x,y,z))\right ) \right ] }{\int_y \exp\left [ -\beta\left (-\frac{1}{\beta}\log \int_z \exp(-\beta E(x,y,z))\right )\right ]} \\ & = \frac{\exp (-\beta F_{\beta}(x,y))}{\int_y \exp (-\beta F_{\beta} (x,y))} \end{aligned}\]したがって、潜在変数モデルの潜在変数 $z$を、確率的に正しい方法で除去したい場合には、エネルギー関数$F_\beta$ (自由エネルギー) を再定義すればよいだけであるということがわかります。
自由エネルギー
\[F_{\beta}(x,y) = - \frac{1}{\beta}\log \int_z \exp (-\beta E(x,y,z))\]これを計算するのは非常に難しいです…。実際、ほとんどの場合、おそらく手に負えません。 モデルの中で最小化したい潜在変数がある場合、あるいは、周辺化したい潜在変数がある場合(このエネルギー関数$F$を定義することで周辺化を行います)、最小化することがこの式の$\beta$の極限に対応する場合、それは実行可能です。
上の$F_\beta(x, y)$の定義では、$P(y \mid x)$は単にギブス・ボルツマン式の応用であり、$z$はこの中で暗黙のうちに周辺化されています。 物理学者はこれを「自由エネルギー」と呼んでおり、そのため私たちもこれを$F$と呼んでいます。つまり、$E$がエネルギーで、$F$が自由エネルギーということになります。
質問:エネルギーベースモデルが与える利点についてもう少し詳しく教えてくださいませんか? 確率ベースのモデルでも潜在変数を持つこともできますし、それについて周辺化することもできると思います。
違いは、確率モデルでは、基本的に最小化する目的関数を選択することはできず、操作するすべてのオブジェクトは正規化された分布でなければならないという意味で、確率論的枠組みに忠実でなければならないということです(変分法などを使って近似することもできます)。ここでは、これらのモデルを使って最終的にしたいことが、意思決定であると言っています。 車を運転するシステムを作って、そのシステムが「確率0.8で左に曲がるか、確率0.2で右に曲がる必要がある」と教えてくれたら、あなたは左に曲がることになるでしょう。 確率が0.2と0.8であるという事実は問題ではありません。なんらかの意思決定をする必要があるのですから、最良の意思決定をする、というのがやりたいことなのです。つまり、意思決定をしたいなら確率は役に立たないのです。 自動化されたシステムの出力を別のシステム(例えば、人間や他のシステム)と組み合わせたい場合、さらにこれらのシステムは一緒に訓練されているのではなく、別々に訓練されている場合、欲しいのは、良い判断をするために2つのシステムのスコアの違いがうまく調整された、それらが組み合わされたスコアです。スコアの違いを調整する唯一の方法は、確率に変換することです。 他の方法はすべて劣っているか、同じくらいの方法です。 しかし、意思決定を行うためにシステムをエンドツーエンドで訓練しようとしているのであれば、それが最良の意思決定に最良のスコアを与える限り、どのようなスコアリング関数を使用しても構いません。 エネルギーベースモデルは、モデルをどのように扱うか、どのように訓練するか、どのような目的関数を使用するかなどについて、より多くの選択肢を与えてくれます。モデルが確率的であることを要求するならば、最尤推定を使用しなければなりません。すなわち、基本的には、観測されたデータに与える確率が最大になるようにモデルを訓練しなければなりません。 問題は、これはあなたのモデルが「正しい」場合にのみうまくいくことが証明できるということです。そして、あなたのモデルは決して「正しい」ものではありえません。 有名な統計学者[Goerge Box]の言葉を引用すると、「すべてのモデルは間違っているが、いくつかは有用」 です。ですから、確率モデル、特に高次元空間やテキストのような組み合わせ空間でのモデルは、すべて近似モデルである、ということになります。 それらのモデルはある意味ではすべて間違っていて、正規化しようとすると、より間違ったものになってしまいます。 ですから、正規化しない方がいいと言えます。

図2: xとyの依存関係を捉えたエネルギー関数を可視化したもの
これは、xとyの間の依存関係を捉えるためのエネルギー関数です。 いわば山脈のようなものです。 谷は黒い点(これらはデータ点です)があるところで、周囲には山があります。 さて、これを使って確率モデルを学習する場合、点が実際に無限に薄い多様体上にあると想像してみてください。 つまり黒い点のデータ分布は、実際にはただの線であり、その中の3つの点がある状況です。 実際には線には幅はありません。 ですから、もしあなたがこの上で確率モデルを訓練した場合、密度モデルは、この多様体上にいるときに多様体上にいることを教えてくれるはずです。 この多様体上では、密度は無限大で、その外側に$\varepsilon$離れただけで密度はゼロになるはずです。 それがこの分布の正しいモデルでしょう。 密度が無限大であるだけでなく、[xとy]の上での積分が1でなければなりません。 これをコンピュータ上で実装するのは非常に難しいです。 それだけでなく、基本的に不可能です。例えば、ある種のニューラルネットを使ってこの関数を計算したいとしましょう。そうすると、そのニューラルネットは無限の重みを持たなければならず、全領域にわたるシステムの出力の積分が1になるように調整されなければなりません。 これは基本的に不可能です。 この特定のデータの例を表現するための、正確で正しい確率モデルは不可能です。 これが最尤法が求めるものであり、これを計算できるコンピュータは世界中に存在しません。 ですから、実際には、面白くもなんともありません。 この例についての完全な密度モデルを持っていたと想像してみてください。それはその(x, y)空間内の薄い板であり、推論することはできません。もし私がxの値を与えて、「yの最良の値は何ですか?」と聞いても、それはわからないでしょう。なぜなら,ゼロ確率の集合以外のyの値はすべてゼロの確率を持っていて、とりうる可能な値はわずかしかないからです。例えば、これらのxの値について、

図3: 陰関数としてEBMの複数の予測の例
可能なyの値は3つありますが、それらは無限に狭くなっています。 だから、それらを見つけることはできないでしょう。 それらを見つけることができる推論アルゴリズムはありません。 唯一見つけられる方法は、コントラスト関数を滑らかで微分可能なものにして、任意の点から開始し、勾配降下法によって、どのようなxの値に対してもyの良い値を見つけることができる場合です。 ここでは、良い確率モデルを持つことを要求することが実際には悪い結果を招く場合を示しています。 最尤は最悪です[この場合]!
もしあなたが真のベイジアンであれば、「ああ、でも、密度関数が滑らかでなければならないという強い事前知識を導入することでこれを修正するできますよね」と言うでしょう。 これは事前知識の一つと考えることができます。 しかし,ベイズの言葉で行うことはすべて、(対数を取ったり、正規化をしないことで)、エネルギーベースのモデルで行うことができます。 エネルギー関数に足される形で導入される、正則化項を持つエネルギーベースのモデルは、尤度がエネルギーの指数関数であるベイジアンモデルと完全に等価となり、次の式を得ることができます$\exp(\text{energy}) \exp(\text{regulariser})$。そしてこれは次の式と等価です$\exp(\text{energy} + \text{regulariser})$。指数を取り除けば和の形の正則化項つきのエネルギーベースモデルを得ることができます。
そこには確率論的手法とベイズ的手法の対応関係がありますが、最尤法を行うということは、特に確率モデルが非常に間違っているような高次元空間や組み合わせ空間では、悪手であることもあります。離散分布ではあまり間違ってはいませんが(大丈夫です)、連続的な場合には実際に間違っていることがあります。 そして、すべてのモデルが間違っているのです。
📝 Karanbir Singh Chahal,Meiyi He, Alexander Gao, Weicheng Zhu
Shiro Takagi
9 Mar 2020