JavaScriptを有効にしてください

【論文メモ】Your classifier is secretly an energy based model and you should treat it like one

 ·  ☕ 1 min read
  • 分類問題について, 生成モデルで用いられるEnergy Based Modelに基づいた学習手法を提案

  • 一般的な学習

    • あるNNを $f_\theta(x)$とすると, 出力の $y$番目を $f_\theta(x)[y\rbrack$として, softmaxは以下のように表される
      $$p_{\theta}(y|{\bf x}) = \frac{\exp{\left(f_{\theta}({\bf x})[y\rbrack \right)} } { \sum_{y^{\prime}}\exp{\left(f_{\theta}({\bf x})[y^{\prime}\rbrack \right)} }$$

    • ここで, Energy Based Modelでは
      $$p_{\theta}(\boldsymbol{x},y) = \frac{\textrm{exp}(-E_{\theta}(\boldsymbol{x},y))}{Z_{\theta}}$$

    • と定義されるので, エネルギー関数 $E_{\theta}(\boldsymbol{x},y)$を
      $$E_{\theta}(\boldsymbol{x},y) := -\ln(f_{\theta}({\boldsymbol{x}})[y\rbrack)$$

    • と定義すれば, エネルギー関数 $E_{\theta}(\boldsymbol{x})$は $y$について周辺化して
      $$E_\theta(\boldsymbol{x}) := -\sum_y \ln(f_\theta(\boldsymbol{x})[y\rbrack)$$

    • と定義でき, 一般的な分類学習問題はEnergy Based Modelへと再解釈できる

      • これをJoint Energy-Based Model (JEM)と呼ぶ
  • 図にすると下のような感じ


  • このとき, 最適化したい対数尤度は
    $$\ln(p_\theta(y|x)) = \ln(p_\theta(x)) + \ln(p_\theta(x,y))$$
  • 第二項はそのままクロスエントロピーとして最適化すればよいので第二項だけ考える
共有

YuWd (Yuiga Wada)
著者
YuWd (Yuiga Wada)
機械学習・競プロ・iOS・Web