本記事では4回に渡り、筆者が親しみのある潜在変数モデル群を題材に、EMアルゴリズムと呼ばれる共通の計算手法を用いて各モデルを比較し、性質の違いをまとめます。それにより、モデル間の性質の違いを理解する助けとなることを目指します。
本記事で使用する知識
以下の知識をもとに話を展開しております。
確率論・統計学の基礎
・最尤推定、尤度関数
・ベイズの定理
機械学習の基礎
・クラスタリングやモデリング
・離散値の潜在変数モデル
・連続値の潜在変数モデル
・EMアルゴリズム
記事の内容
本記事は第1回目にあたります。ここでは、潜在変数を導入するケース、計算タスク、近似計算、その1つであるEMアルゴリズム、の概要の順に説明します。その後、記事で扱う潜在変数モデル群を示します。
潜在変数モデルを導入するケース
潜在変数モデルでは、観測データ𝑥の背後にある観測されない潜在変数$𝑧$を仮定し、これらと、パラメータ$\theta$を含む確率モデルを構築します。
数式で書くと以下のようになります。
p(x|\theta)=\int p(x,z|\theta) dz
右辺の積分の中身は、パラメータ$\theta$に基づく、$x$と$z$の同時確率分布 $p(x, z | \theta)$ を表しています。したがって、上の式は、本来$x$と$z$の同時分布になるような確率モデルに対し、$z$のみ周辺化されていると、解釈できます。
ここで、このような潜在変数を導入するケースとして2つ列挙しておきます。
1.$p(x|\theta)$の計算が難しいので回避したいケース
この場合は、潜在変数を導入して、$p(x|\theta)$よりも計算が簡単な確率モデル$p(x,z|\theta)$に置き換えて、その積分を計算します。一見すると、積分計算が複雑に見えるものの、潜在変数を用いることで条件付き独立性を利用できるようになり、単純なモデルの組み合わせで複雑な分布を表現できるようになります。
例えば、ボルツマンマシンは、データ間の相互作用をパラメータとして組み込んだモデルですが、直接扱うとパラメータの最適化が難しいです。そこで、隠れ変数を導入して間接的に相互作用を組み込みます。この隠れ変数により条件付き独立性が利用できるようになり、データ間の相互作用を直接扱わないより単純なモデルで同じ表現ができるようになります。
2.$x$が高次元でデータ分布を把握することが難しいので、代わりに$x$と対応する低次元の変数$z$でデータ分布を把握したいケース
この場合は、$p(x|\theta)$よりも、$p(z|x,\theta)$の分布を得ることが目的となります。
例えば、潜在変数を2次元の連続変数とすると、高次元上で連続的に分布している観測データ$x$の分布の様子を$z$により視覚化的に知ることができます。
計算課題
ここでは、潜在変数を含む確率モデルの最尤推定の式、その式から解析解を得ることが難しいこと、その対策として近似計算があることを説明します。
最尤推定
一般的に、機械学習では、手元のデータに最も合うモデルを作ったあと、モデルのパラメータを調整することが必要です。最尤推定では、データの分布を再現する確率が最も高いモデルのパラメータを見つける推定を考えます。そして、最尤推定を実現するにあたり、尤度や対数尤度を最大化するパラメータを見つけることが計算課題となります。
今回は対数尤度に着目します。潜在変数モデルの場合は以下のように定義されます。
L(\theta)=\sum_n^N\log p(x_n|\theta) =\sum_n^N\log \int p(x_n,z_n|\theta) dz_n
計算課題は、この対数尤度を$\theta$と$z_n$を調整して最大化することです。
さて、同時分布$p(x_n,z_n|\theta)$は、確率の積の公式を使って以下の形に分解できます。
p(x_n,z_n|\theta)=p(z_n)p(x_n|z_n,\theta)
この式は、潜在変数$p(z_n)$の分布と潜在変数$z_n$と$\theta$が与えられた時の観測データ$x_n$の分布$p(x_n|z_n,\theta)$の関数を設計すれば、その分布の積を取ることで、同時分布が得られることを意味しています。
この分解により、$p(z_n)$の計算では$z_n$は未知ですが、$p(x_n|z_n,\theta)$の計算では$z_n$が既知になっており$\theta$のみが未知になっています。
次に説明しますが、この未知変数を分解できる性質と対数尤度の形から、対数尤度を近似する計算を作ることができます。
近似計算
対数尤度ですが、$\log\int$の形があります。ですので、そのままでは$z$,$\theta$の計算を同時にしないといけません。二つの未知変数を同時に調整するのですから調整が大変そうですね。
ではもし、$\int\log$の形に変更できるとするとどうでしょうか?対数の性質から、$\log p(z_n)p(x_n|\theta,z_n)$を$\log p(z_n)+\log p(x_n|\theta,z_n)$の形にできるので$z$と$\theta$を交互に更新する形でより容易に計算できそうです。
実際、このような$z$と$\theta$の交互計算により対数尤度を最大化する近似計算方法があります。EMアルゴリズムや変分ベイズ法として知られています。
EMアルゴリズムと変分ベイズ法は計算する対象が異なります。その違いを表に示します。
計算手法 | $z$ の推定 | $\theta$ の推定 |
---|---|---|
EMアルゴリズム | 分布推定 | 点推定 |
変分ベイズ法 | 分布推定 | 分布推定 |
これらの近似計算方法は、対数尤度の形から導出されるため、特定の潜在変数モデルの形に依存しません。したがって、導出後に、設計したモデルを当てはめることができます。このように計算方法が共通のため、各潜在変数モデルの特性や違いを比較できそうですね。
今回はより推定する情報が少ないという点で、より計算の課題が単純なEMアルゴリズムに着目して取り組みます。
EMアルゴリズム
EMアルゴリズムでは、Q関数と呼ばれる関数を基に逐次計算を行い、対数尤度を最大化する解に徐々に近づけていきます。本記事では、理論の詳細は割愛し、記事に必要な範囲に絞って説明します。(理論の詳細を知りたい方は、例えばこちらのサイトなどを参考して、逐次最適化のイメージから、掴むことをお勧めします。)
まず、Q関数を以下に示します:
Q(\theta, \theta^{(t)}) = \sum_{n=1}^{N} \int p(z_n \mid x_n, \theta^{(t)}) \log p(x_n, z_n \mid \theta) \, dz_n
ここで、$p(z_n \mid x_n, \theta^{(t)})$ は、$t$回目の計算のパラメータに基づく観測データ$x_n$に対する潜在変数の事後分布です。
また$p(x_n, z_n \mid \theta)$は観測データと潜在変数の同時確率分布です。
重要なポイントは、計算を分割して進められる点です。具体的には、$p(z_n \mid x_n, \theta^{(t)})$を計算する段階(Eステップ)では、$\theta^{(t)}$が既知のため$z$に関する計算のみで済みます。一方、Q関数を最大化する段階(Mステップ)では、潜在変数$z$の分布が既知であるため、パラメータ$\theta$の計算に集中できます。この分離により、$z$と$\theta$を同時に計算する必要がなくなります。
このQ関数に注目すると、EMアルゴリズムという共通の計算手法が適用されているため、異なる潜在変数モデル間の違いを比較する手がかりが得られます。
次回以降の記事では、Q関数をもとに、各モデルの性質の違いを比較していきます。
潜在変数モデル群
本記事では以下の表のモデルを扱います。
注意:各モデルの変数の定義域や導入背景には異なるため、潜在変数モデル群としてまとめることは必ずしも一般的でないかもしれません。本記事では独自の視点でこれらを1つのグループとして扱っている点にご留意ください。
モデル名称 | 潜在変数の値 | 学習タスク | モデルの特徴 |
---|---|---|---|
K-means | 離散 | クラスタリング | 分散推定なし |
GMM | 離散 | クラスタリング | 分散推定あり |
PPCA | 連続 | モデリング | 線形写像で表現 |
GTM | 連続 | モデリング | 非線形写像で表現 |
学習タスクにはクラスタリングとモデリングの2種類があります。以下の図は各タスクにおける観測データの生成過程を表しています。
どちらのタスクも、確率的に抽出された潜在変数が、写像により観測空間に移り、さらにノイズが印加されて観測データが得られる、という共通の過程に従っています。
一方、潜在変数の値の定義域(離散値または連続値)は異なります。そのため潜在変数の値は、離散値の場合は集合の要素、連続値の場合は潜在空間上の点に対応します。
次に各モデルの特徴について説明します。
まず、同じクラスタリングであってもK-meansとGMMは各クラスタの分散を推定するか否かで区別することができます。一般には、分散を推定する方がよりデータを表現するモデルが得られそうです。この点でGMMはK-meansよりも一般的なモデルと考えられます。実際に、GMMのある種の極限としてk-meansが得られます。その点は、次回以降の記事で説明していきます。
また、同じモデリングであっても、PPCAとGTMでは写像の表現によって区別することができます。一般には、非線形写像の方がよりデータを表現するモデルが得られそうです。この点でGTMはPPCAよりも一般的なモデルと考えられます。しかし、詳細は割愛しますが、PPCAは凸な最尤推定問題に帰着することに対して、GTMは非凸な最尤推定問題に帰着するため、最尤推定解が常に見つかるとは限らない、という理論上の課題が生じます。その点も、次回以降の記事で説明していければと考えてます。
おわりに
最後まで読んでいただきありがとうございました。
本記事を執筆する動機は、Q関数をもとに色んなモデルの違いが見えると面白くない?という些細なものです。ただ、いざ記事にするとQ関数の導入するための知識が必要なことに気づき、結果、本記事のような構成になりました。図などを導入し、もう少し視覚的に読みやすくする工夫は今後の課題とします。
知識至らずで曖昧な点があると思います。ご指摘やご質問などがございましたら、編集や回答いたします。コメントお待ちしております。