Site cover image

Site icon imageSen(Qian)’s Memo

This website is Donglin Qian (Torin Sen)’s memo, especially about machine learning papers and competitive programming.

NNDL 第11章 独立した複数のモデルの訓練による効用

中国の有名な機械学習の本の勉強ノート。自分がわからなかったところだけなので飛び飛びだろう。

https://nndl.github.io/

Graphical Modelとは、変数間の依存関係を定式化したもの。パラメタにすべて依存関係が存在するのであれば、大量にサンプリングしないといけない。これに対して、独立性の仮定を設ける。x1,.xnx_1, \cdots. x_nに対して、

  • x1x_1を知っている前提で、x2,x3x_2, x_3は独立である。
p(x2,x3x1)=p(x2x1)p(x3x1)p(x_2, x_3 | x_1) = p(x_2 | x_1) p(x_3 | x_1)
  • x2,x3x_2, x_3を知っている前提で、x4x_4x1x_1も独立である。
p(x1,x4x1,x3)=p(x1x2,x3)p(x4x2,x3)p(x_1, x_4 | x_1, x_3) = p(x_1| x_2, x_3) p(x_4 | x_2, x_3)

これを依存関係で構築すると、以下のようにできる。

Image in a image block
p(x1,x2,x3,x4)=p(x1)p(x2x1)p(x3x1)p(x4x2,x3)p(x_1, x_2, x_3, x_4) = p(x_1) p(x_2|x_1) p(x_3|x_1) p(x_4 | x_2, x_3)

Graphical Modelでは3つの基本的な問題がある。

  1. どのようにGraphical Modelで構成するか。
  2. どのようにパラメタを学習するか。
  3. 既知の変量をもって、どのようにほかの変量の確率分布を計算するか。

実際ほとんどの機械学習はGraphical Modelで表示することができる。それはそう。

例えば普通のCNNで識別するならば、XyX \to \mathbf{y}となるし、中に隠れ変数h\mathbf{h}があるならば、XhyX \to \mathbf{h} \to \mathbf{y}というようになる。基本は一本線。

モデルの表現

有向グラフモデルと無向グラフモデルに分けられる。

  • 有向グラフモデルの場合、DAGで構築される。ABA \to Bp(BA)p(B|A)となる。
  • 無向グラフモデルの場合、無向グラフで作られる。辺があるということは依存関係があるが、どちらかが原因で結果かはわからない。

有向グラフィカルモデル

有向グラフィカルモデルは、Bayesian Network、Belief Networkとも呼ばれている。上で紹介したかたちが、有向グラフィカルモデル。

3つによる因果関係として、以下の4つの図のタイプがある。 背景に色がついているのは観測されているパラメタである

Image in a image block

aからcはすべて、X2X_2が既知の時、X1,X3X_1, X_3は条件付独立。

dだけ、X2X_2が未知の時、X1,X3X_1, X_3が独立だが、知ってしまったら独立ではなくなる。

局所的マルコフ性という性質がある。任意の変数について、1つの親接点が定まったら、すべての子接点以外のものとは条件付独立というもの。

有向グラフィカルモデルを実現するには

Sigmoid Belief Network(SBN)

変量がXk{0,1}X_k \in \{0, 1 \}をとる。親節点の集合はπk\pi_kだとする。シグモイド関数をσ\sigmaで表す。条件確率分布は以下のようになる。

Pr(xk=1xπk;θ)=σ(θ0+xiXπkθixi)Pr(x_k = 1 | \mathbf{x}_{\pi_k}; \theta) = \sigma(\theta_0 + \sum_{\mathbf{x}_i \in X_{\pi_k}} \theta_i \mathbf{x}_i)

つまり、線形モデルをSigmoidに入れた感じ。前にも同じような線形モデルによるcalibration=Logistic回帰があった。📄Arrow icon of a page linkNNDL 第3章 線形学習

学習するパラメタはθ\thetaである。親節点の数がMM個ならば、単純に2M2^M個パターンの条件が生まれ概算が面倒である。だが上のようにパラメタ化することで、M+1M+1個のパラメタで事足りる。

つまり、1つの頂点への入力をすべてまとめて1つのsigmoidのモデルで近似している。

1層のみ含むSigmoid Belief NetworkとLogistic回帰モデルの違いは、前者でxxは非確定の変数で分布自体を推定して、生成モデルになれる、後者は確定の値で、分類モデルとなる。

Naive Bayes Classifier

ベイズの定理により、以下が成り立つ。

Image in a image block

仮定として、YYが与えられたとき、XmX_m間はすべて条件付独立であるとする。この時、以下のようにp(yx)p(y|\mathbf{x})を分解できる。ここでθc\theta_cは事前分布のパラメタであり、θm\theta_mは条件分布のパラメタ。

p(yx;θ)p(yθc)m=1Mp(xmy;θm)p(y|\mathbf{x} ; \theta) \propto p(y | \theta_c) \prod_{m=1}^M p(x_m | y ; \theta_m)

離散分布ならば、p(xmy;θm)p(x_m | y;\theta_m)は多項分布、連続分布ならばガウス分布でモデリングできる。

つまり、Graphical Modelの各Edgeごとに1つの分布を仮定し、独立性を仮定しているので積で計算している。

見るように、これは非常に強い独立性の仮定を設けているが、実用的にはNaive Bayes Classifierは悪くない結果を出す。

隠れマルコフモデル
Image in a image block

X1,X_1, \cdotsは観測可能な変量であり、Y1,Y_1, \cdotsは隠れ変量である。これらはすべてマルコフチェーンを形成し、XtX_tの観測は当該時刻の隠れ変量YtY_tに依存するマルコフ過程に従う。

これを式で定義すると以下のようになる。X,YX, Yはベクトルをつなげたもの。式の中では、yty_tをそれぞれどのように作っているか、そして各yty_tからxtx_tができる確率を計算している。

p(X,Y;θ)=t=1Tp(ytyt1,θs)p(xtyt,θt)p(X, Y; \theta) = \prod_{t=1}^T p(\mathbf{y}_t | \mathbf{y}_{t-1}, \theta_s) p(\mathbf{x}_t|\mathbf{y}_t, \theta_t)

p(xtyt,θt)p(\mathbf{x}_t | \mathbf{y}_t, \theta_t)は出力確率といい、p(ytyt1,θs)p(\mathbf{y}_t | \mathbf{y}_{t-1}, \theta_s)は遷移確率という。

無向グラフィカルモデル

全体的な解説: https://www.slideshare.net/Kawamoto_Kazuhiko/ss-35483453

無向グラフィカルモデルはマルコフ確率場Markov Random Field(MRF)、Markov Networkとも呼ばれてる。

ランダム変量X1,,XNX_1, \cdots, X_Nについて、それを頂点とした無向グラフG=(V,E)G=(V,E)を定義する。頂点vVv \in Vに対して隣接頂点をN(v)\mathcal{N}(v)を定義する。この時、各頂点が局所的マルコフ性を満たす=隣接している頂点以外とは独立で関係がない

p(xkX¬k)=p(xkXN(k))p(\mathbf{x}_k | X_{\neg k}) = p(\mathbf{x}_k | X_{\mathcal{N}(k)})
Image in a image block

上のようなグラフの場合、X2,X3X_2, X_3が既知であるとき、X1X_1X4X_4は互いに独立である。また、X1,X4X_1, X_4が既知であるとき、X2X_2X3X_3も互いに独立である。

無向グラフィカルモデルのクリーク分解

DAGではないので、トロポジカル分解はできない。その代わりに、Clique=クリークという、集合内のすべての頂点の間に辺がある=完全グラフというものに分解していく。上の図の場合、以下のようなクリークを持つ。

Image in a image block
(X1,X2),(X1,X3),(X2,X4),(X3,X4),(X2,X3),(X1,X2,X3),(X4,X2,X3)(X_1, X_2), (X_1, X_3), (X_2, X_4), (X_3, X_4), (X_2, X_3), \\ (X_1, X_2, X_3), (X_4, X_2, X_3)

その中で、極大のCliqueに着目する。他に何かの頂点を加えてもCliqueを新たに作れない=極大Clique。この時、別にクリークのサイズが最大と等しいわけではないことに注意!上図の例だと、(X1,X2,X3),(X2,X3,X4)(X_1, X_2, X_3), (X_2, X_3, X_4)が極大クリークの集合。

そして、無向グラフィカルモデルの分解を以下のように定める。

  • 与えられた無向グラフの極大クリークの集合CC(1つとは限らないので)とする。
    • 最大クリークの集合ではない!極大クリークとは、任意の頂点を加えてもより大きいクリークを作ることができないクリークの集合
  • クリークccについて、ϕc(xc)\phi_c(\mathbf{x}_c)はPotential Functionという。
    • 各クリークごとに変わる势能函数Potential Functionに頂点を代入している。
    • 一般的に使われるのはギブス分布。量子力学のルールで習慣的にマイナスをつけているだけ。EcE_cによって毎回変換しているといえる。
    ϕc(xc)=exp(Ec(xc))\phi_c (\mathbf{x}_c) = \exp(- E_c( \mathbf{x}_c))
  • ZZはPartition Functionであり、総積を確率化したいから割っている。
p(x)=1ZcCϕc(xc)Z=xXcCϕc(x)p(\mathbf{x}) = \frac{1}{Z} \prod _{c \in C} \phi_c (\mathbf{x}_c) \\ Z = \sum_{\mathbf{x} \in X} \prod_{c \in C} \phi_c(\mathbf{x})

もしギブス分布に従うと定義するのならば、以下のように書くことができ、それはボルツマン分布というもの。

p(x)=1ZcCexp(Ec(xc))=1Zexp(cCEc(xc))p(\mathbf{x}) = \frac{1}{Z} \prod_{c \in C} \exp(-E_c(\mathbf{x}_c)) = \frac{1}{Z} \exp(- \sum_{c \in C} E_c(\mathbf{x}_c))

このようにモデリングするのが普通である。

一般的な無向グラフィカルモデルを実現するには

対数線形モデル

Potential Functionを以下のように定義する。

ϕc(xcθc)=exp(θcTfc(xc))\phi_c(\mathbf{x}_c | \theta_c) = \exp(\theta_c ^ T f_c(\mathbf{x}_c))

fc(xc)f_c(\mathbf{x}_c)xc\mathbf{x}_cの特徴量を抽出しているといえる。

このように定義すると、グラフィカルモデル全体の対数確率は以下のようになる。

logp(xΘ)=cCθcTfc(xc)logZ(Θ)\log p(\mathbf{x} | \Theta) = \sum_{c \in C} \theta_c ^ T f_c(\mathbf{x}_c) - \log Z(\Theta)

このモデルを用いて、p(yx)p(y|\mathbf{x})を予測する場合は以下のようになる。

Image in a image block

このモデルでは、X,yX, yの間の関係は以下のようになる。

Image in a image block
Conditional Random Field(CRF)

解説: https://mieruca-ai.com/ai/conditional-random-fields/

上の対数線形モデルでは、yyは定数であったが、そのyyすら確率変数となるときが、Conditional Random Fieldである。p(yx;θ)p(y|\mathbf{x};\theta)は上のセクションのようなギブス分布で定義するとして、以下のようにp(yx;θ)p(\mathbf{y} | \mathbf{x}; \theta)を得ることができる。

Image in a image block

この上の式は、すべてのクリーク内での対数線形モデルの総和である。

そして、CRFについてグラフをどのように書くかはいろんな定義があるが、最もよく使われるのは以下のようなLinear Chain CRFである。

Image in a image block

存在するクリークは(Y1,Y2),(Y2,Y3)(Y_1, Y_2), (Y_2, Y_3)などやY1,Y2,X),(Y2,Y3,X)(Y_1, Y_2, X), (Y_2, Y_3, X)などの3つ組であり、後者が最大クリークなので、後者に着目する。

Y1,Y2,X)(Y_1, Y_2, X)について、(Y1,Y2)(Y_1, Y_2)の関係はf2(x,y1,y2)f_2(\mathbf{x}, y_1, y_2)でとらえてこれは遷移特徴、(Y1,X),(Y2,X)(Y_1, X), (Y_2, X)の関係はf1(x,yi)f_1(\mathbf{x}, y_i)でとらえて状態特徴という。

よって、最大クリーク全体についてイテレーションすると以下のようになる。ここで、(Y2,X),(Y4,X)(Y_2, X), (Y_4, X)などは各クリークから2回ずつ呼ばれるが、どうせパラメタと内積をとるので1つにまとめていい。なので以下のようになる。

Image in a image block

有向と無向の間の転換

無向から有向に直すのは難しいが、有向を無向に直すのは簡単である。

無向は最大クリークで見るので、1つの最大クリークの中に収める必要がある。このために辺を追加することになるが、それをMoralizationという。

Image in a image block

グラフィカルモデルの学習