本記事では、統計的機械学習と生成モデルの一般的な枠組みを説明します。
この枠組みを理解することで、近年凄まじい勢いで進化している画像生成や音声生成のモデルの共有概念を確実に理解することができます。
本記事の内容
- 統計的機械学習と生成モデル
- どのように学習モデルを構築するのか
- 学習モデルのパラメータ調節について
統計的機械学習と生成モデル
まずは、生成モデルと統計的機械学習について簡単に説明していきます。
『統計的機械学習』や『生成モデル』は、機械学習の場面で定義が揺れている気がするので、本記事で使用する定義を説明します。
恐らく、本記事で使用している定義が一般的だと思います。
生成モデルとは
まず、以下の画像を見てください。
このデータは、白黒画像で、\( \{0,1\} \)の2値のn個(28×28)の要素から構成されます。
その白黒画像のデータセットの各画素をまとめて、\( \mathbf{x} = \{x_{i} \in \{0,1\} \}_{i=1}^{n} \)と表すことにします。
さらに、このデータ点は、確定的に出現したのではなく、背後にある確率分布\(Q(\mathbf{X})\)から生成されたものと仮定します。
ここで、\( \mathbf{X} \)は、\( \mathbf{X} = \{X_{i} \in \{0,1\} \}_{i=1}^{n} \)の確率変数を表すことにします。
一般に、データの背後にある同時確率分布\(Q(\mathbf{X})\)は、『真の生成モデル』と呼ばれることが多いです。
重要なことは、真の生成モデルは一般に未知であることです(データに対する事前知識があれば、部分的な情報は既知)
統計的機械学習
早速ですが、未知の生成モデルを知るにはどうしたら良いでしょう?
一つのアイデアは、与えられているデータ点から真の生成モデルを予測することです。
確かにデータが数個しかない場合は、生成モデルを予測することは困難ですが、データ数が多ければ真の生成モデルを予測できる気がします(例えば、サイコロを数回振っただけでは、本当に各数字が1/6で出るということは予測できませんが、仮に1億回振ったとしたら1/6を予測できそうですよね)
このように、与えられたデータから生成モデルを近似的に構築する枠組みのことを『統計的機械学習』と言います。
どのように生成モデルを構築するのか
この章では、与えられたデータからどのように生成モデルを近似的に再現するのかを説明していきます。
当然、構築する方法は任意性があるので、本章では、その中の一つにフォーカスして紹介していきます。
学習モデルを仮定する
与えられたデータから真の生成モデルを予測する一つのアイデアは、パラメータ\(\theta\)を持つ\(P(\mathbf{X} \mid \theta) \)を仮定し、データ集合から\(\theta\)を調節する方法です。
ここで、\(P(\mathbf{X} \mid \theta)\)を単に『生成モデル』と呼ぶことにします。
この生成モデル\(P(\mathbf{X} \mid \theta)\)には、任意性があり一般に事前知識を用いて決定します。
また、今回は説明しませんが生成モデルが\(\theta\)によって特徴付けられないモデルもあります。
一般にパラメータ\(\theta\)を用いる方法を『パラメトリック法』、用いない方法を『ノンパラメトリック法』といいます。
具体的に事前知識とは?
例えば、コイン投げのような場合は、二値の値を取るので確率分布を予測するためには、学習モデルとしてベルヌーイ分布を仮定すれば良さそうですね。
このように、学習モデルの確率分布の関数系は経験的に事前知識を利用してあらかじめ決定しておきます。
当然、事前知識が全くない状況もありますが、そのようなケースでも学習モデルを適切に選ぶための方法は存在します。
学習モデルのパラメータ調節について
簡単に、『パラメータ\(\theta\)を調節』と言いましたが、どのように調節したら良いのでしょうか。
答えは、
一般に機械学習の文脈では、このパラメータの調節を『学習』といい、調節方法を『学習アルゴリズム』といいます。
今回紹介する調節方法を理解するために、まずは『KL Divergence』という量について紹介します。
KL Divergenceとは
KL Divergenceの正式名称は、『Kullback-Leibler divergence』です(相対エントロピーと呼ばれることもあります)
詳しく説明しませんが、KL Divergenceは以下のように定義され、2つの確率分布間の『差異』を測る尺度として使われます。
KL Divergence
\(P, Q\)を離散確率分布とするとき、PとQに対するKL Divergenceは以下のように定義されます。
$$\text{D}_{\text{KL}}(P \mid Q) = \sum_{\mathbf{X}} P(\mathbf{X}) \log \frac{P(\mathbf{X})}{Q(\mathbf{X})} $$
一方、P, Qが連続確率分布の場合は以下のように定義されます。
$$\text{D}_{\text{KL}}(P \mid Q) = \int_{-\infty}^{\infty} p(x) \log \frac{p(x)}{q(x)} $$
イメージ的には、確率分布PとQがどのくらい似ているかを表していると思ってください。
PとQの間のKL Divergenceが小さい | PとQは似ている |
---|---|
PとQの間のKL Divergenceが大きい | PとQは似ていない |
生成モデルとのKL Divergenceを最小化
KL Divergenceは、確率分布間の差異を表すため、学習モデルと生成モデルの間のKL Divergenceが小さければ学習モデルとしては嬉しいですね。
つまり、パラメータを調節する一つの方法は、以下で定義される生成モデルとのKL Divergenceを最小化するようにパラメータを選ぶ方法です。
$$\text{D}_{\text{KL}}(\theta) = \sum_{\mathbf{X}} Q(\mathbf{X}) \log \frac{Q(\mathbf{X})}{P(\mathbf{X} \mid \theta)} $$
しかし、生成モデルの確率分布を知ることができないので、生成モデルの代わりに与えられたデータの経験分布\(\hat{Q}(\mathbf{X})\)を使用します。
経験分布はN個のデータ集合\(\mathcal{D} = \{\mathbf{X}^{(\mu)} \}_{m=1}^{M}\)を用いて以下のように表せます。
$$\hat{Q}(\mathbf{X}) = \frac{1}{M} \sum_{m=1}^{M} \delta \left(\mathbf{X}, \mathbf{X}^{(\mu)} \right) $$
この経験分布を生成モデルの代わりに使用したKL divergenceを最小化するようにパラメータを選びます。
$$\text{D}_{\text{KL}}(\theta) = \sum_{\mathbf{X}} \hat{Q}(\mathbf{X}) \log \frac{\hat{Q}(\mathbf{X})}{P(\mathbf{X}\mid \theta)} $$
経験分布を用いたKL Divergenceと最尤推定
KLダイバージェンスの評価に経験分布を代入した量を系統的に展開すると以下のようになります。
\begin{align}\mathrm{D}_{\mathrm{KL}}(\theta) &= \sum_{\mathbf{X}} \hat{Q}(\mathbf{X}) \log \hat{Q}(\mathbf{X}) – \sum_{\mathbf{X}} \hat{Q}(\mathbf{X}) \log P(\mathbf{X} \mid \theta) \\ &=~ – \frac{1}{N}\sum_{\mu=1}^{N} \log P(\mathbf{X}^{(\mu)} \mid \theta) + \mathrm{const} \end{align}
まさに最後の等式は、対数尤度に\(-1\)をかけたものとなり、経験分布を使用した場合はKLダイバージェンス最小化は対数尤度最大化と等価になります。
KL Divergenceの最小化法
上記の結果から、以下の経験分布を用いたKL Divergenceを最小化するようにパラメータを選びます。
$$\text{D}_{\text{KL}}(\theta) = \sum_{\mathbf{X}} \hat{Q}(\mathbf{X}) \log \frac{\hat{Q}(\mathbf{X})}{P(\mathbf{X} \mid \theta)} $$
最小化するためには、\(\theta\)で微分して極値を求めれば良いです。
この\(\theta\)に関する連立方程式を解けば良いことになります。
勾配降下法による最小化
上記で導出した方程式は一般に解くことは難しいので、勾配降下法を利用して最小化を目指します。
具体的には、以下のようなアルゴリズムで最小化を目指すことができます。
勾配降下法による最小値探索
$$\theta^{(t+1)} \leftarrow \theta^{(t)} – \epsilon \frac{\partial}{\partial \theta} \text{D}_{\text{KL}}(\theta) $$
ここで、\(\epsilon \in \mathbb{R}_{+} \)は、学習率と呼ばれます。
以下が勾配降下法のイメージです。
学習率\(\epsilon\)で徐々に極小値になるように更新するイメージです。
このようなアルゴリズムを学習方程式と呼ぶことにします。
これで、パラメータを適切に調節すれば学習モデルを生成モデルに近づけることが可能になります。
参考文献
参考文献について紹介します。
パターン認識と機械学習 下
確率的グラフィカルモデル
深層学習 Deep Learning
これならわかる深層学習入門
深層学習
どの本もわかりやすくオススメです。
まとめ
今回は、生成モデルと統計的機械学習について簡単に説明しました。
基本的に、生成モデルを構築する手法で有名なGANやボルツマンマシンもこの枠組みで全て説明することができます。
ここで、基本的な枠組みを理解することで、これ以降の具体的な学習モデルを簡単に理解することができます。
『Amazon Prime Student』は、大学生・大学院生限定のAmazon会員制度です。
Amazonを使用している方なら、必ず登録すべきサービスといっても過言ではありません…
主な理由は以下の通りです。
- 『Amazon Prime』のサービスを年会費半額で利用可能
- 本が最大10%割引
- 文房具が最大20%割引
- 日用品が最大15%割引
- お急ぎ便・お届け日時指定便が使い放題
- 6ヶ月間無料で使用可能
特に専門書や問題集をたくさん買う予定の方にとって、購入価格のポイント10%還元はめちゃめちゃでかいです!
少なくとも私は、Amazon Prime Studentを大学3年生のときに知って、めちゃめちゃ後悔しました。
専門書をすでに100冊以上買っていたので、その10%が還元できたことを考えると泣きそうでした…ww
より詳しい内容と登録方法については下記を参考にしてください。
登録も退会もめちゃめちゃ簡単なので、6ヶ月の無料体験期間だけは経験してみても損はないと思います。