記事の目的
同じような学習タスクであっても、選択するモデルによって結果が大きく異なることがあります。これには、モデルが持つ特性や設計上の違いが影響しています。そのため、タスクを成功させるためには、各モデルの性質を正しく理解することが重要です。
さらに、同じモデルであっても、モデルを実現する際に用いる計算手法やアルゴリズムが異なると、結果も異なる可能性があります。そのため、モデルの特性を公平に比較するためには、統一された計算方法を用いることが必要です。
本記事では4回に渡り、筆者が親しみのある潜在変数モデル群を題材に、共通の計算手法を用いてそれらのモデルを比較し、その性質の違いをまとめます。それにより、モデル間の性質や違いを理解する助けとなることを目指します。
第1回目は、扱うモデル群を紹介し、各モデルを比較する土台となる計算手法であるEMアルゴリズムを説明します。
必要となる前提知識
本記事は、潜在変数モデルやEMアルゴリズムについて解説します。そのため、以下のような前提知識が必要です。
確率論・統計学の基礎
・確率分布や尤度関数、ベイズの定理の理解
・最大尤度推定、対数尤度
機械学習の基礎
・クラスタリングやモデリングの概念
・潜在変数モデルの概要
・EMアルゴリズムの概要
扱うモデル群
本記事では以下の表のモデルを扱います。
モデル名称 | 潜在変数の値 | 学習タスク |
---|---|---|
K-means | 離散 | クラスタリング |
GMM | 離散 | クラスタリング |
PPCA | 連続 | モデリング |
GTM | 連続 | モデリング |
上記の表について説明します。
学習タスクにはクラスタリングとモデリングの2種類がありますが、これらは潜在変数の値の定義域の違い(離散値または連続値)によって分類されます。
ここで、K-meansは一般的には、潜在変数という概念を明示的に利用しませんが、潜在変数を導入して考えることができるため、今回のモデル群に含めています。
また、K-meansやGMMでは、潜在変数が「離散値」としてクラスタを表現するのに対し、PPCAやGTMでは「連続値」をとして空間を表現しています。ただし、定義域の違いを無視すると、いずれも潜在変数を利用しています。そのため、同じグループとみなします。
表の説明は以上になります。
各モデルの変数の定義域や導入背景には異なるため、潜在変数モデル群としてまとめることは必ずしも一般的でありません。本記事では独自の視点でこれらを1つのグループとして扱っている点にご留意ください。
潜在変数モデルのタスク
潜在変数モデルの基本的なタスクは、観測データ𝑥の背後にある観測されない潜在変数$𝑧$を仮定し、これらを含む確率モデルを構築し、目的関数の最適化をもとにモデルのパラメータ$θ$を決めることです。
$x$と$z$は以下のような関係になっております。
p(x|\theta)=\int p(x,z|\theta) dz
右辺の積分の中身は、パラメータ$θ$に基づく、$x$と$z$の同時確率分布 $p(x, z | \theta)$ を表しています。したがって、上の式は、本来$x$と$z$の同時分布になるような確率モデルに対し、$z$のみ周辺化されていると、解釈できます。
ここで、このような潜在変数を導入するケースとして2つ列挙しておきます。
1.$p(x|\theta)$の計算が難しいので回避したいケース。
この場合は、潜在変数を導入して、$p(z\theta)$よりも計算が簡単な確率モデル$p(x,z|\theta)$に置き換えて、その積分を計算します。一見すると、積分計算が複雑に見えるものの、潜在変数を用いることで条件付き独立性を利用できるようになり、単純なモデルの組み合わせで複雑な分布を表現できるようになります。
2.$x$が高次元でデータ分布を把握することが難しいので、代わりに$x$と対応する低次元の変数$z$でデータ分布を把握したいケース。
この場合は、$p(x|\theta)$よりも、$p(x,z|\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関数を観察し、それぞれの性質の違いがどの部分に現れるかを探っていきます。
おわりに
最後まで読んでいただきありがとうございました。
本記事を執筆する動機は、Q関数をもとに色んなモデルの違いが見えると面白くない?という些細なものです。ただ、いざ記事にするとQ関数の導入するための知識が必要なことに気づき、結果、情報量が大きくなってしまったな、と感じています。図などを導入し、もう少し視覚的に読みやすくする工夫は今後の課題とします。
知識至らずで曖昧な点があると思います。ご指摘等ありましたら、編集いたしますので、コメントお待ちしております。