LoginSignup

This article is a Private article. Only a writer and users who know the URL can access it.
Please change open range to public in publish setting if you want to share this article with other users.

More than 5 years have passed since last update.

PRML輪読会:第5回(P54〜P74)

Last updated at Posted at 2018-12-02

1.6.1 相対エントロピーと相互情報量

情報理論の概念をパターン認識と関係付けてみよう!

相対エントロピー(KLダイバージェンス)

相対エントロピーとは、2つの確率分布の差異を計る尺度
未知の分布$p(x)$を近似的に$q(x)$でモデル化したとき、xの値を特定するのに必要な追加情報の平均は、

KL(p||q)=-\int p(x) ln q(x)dx - (-\int p(x) ln p(x)dx)=-\int p(x)ln\frac {q(x)}{p(x)}dx\quad(1.113)

これを$p(x)とq(x)$の相対エントロピー(KLダイバージェンス)という

KLダイバージェンスの性質

$ ・KL(p||q)≠KL(q||p)$
$・KL(p||q)\geq 0$ (等号成立は$p(x)=q(x)$の時に限る)

$KL(p||q)\geq 0$の性質が正しいことを示すために凸関数の概念を導入する

凸関数とは

関数f(x)で、全ての弦が関数に乗っているか関数より上にある関数
区間内の任意の $a$,$b$ と $λ(0≤λ≤1)$ に対して、以下が成立

f(λa+(1-λ)b)\leq λf(a)+(1-λ)f(b)\quad(1.114)

2018-11-25 13.04のイメージ.jpg

・(1.114)の等号成立が$λ=0,1$のみの時、真に凸という
・$f(x)$が真に凸の時、$f(x)''$(2階微分)が常に正
・$f(x)$が凸関数ならば、$-f(x)$は凹関数

イェンセンの不等式

f(x) が凸関数のとき、任意の$λi\geq0, x_i(i=1,⋯,n), \sum_{i=1}^{n}λ_i=1$ に対して,

 f(\sum_{i=1}^{M}λ_ix_i)\leq\sum_{i=1}^{M} λ_i f(x_i)\quad(1.115)

これをイェンセンの不等式という
:writing_hand_tone1:数学的帰納法による証明:https://mathtrain.jp/jensen_proof

$λ_i$を{$x_i$}をとる確率変数$x$上の確率分布$p(x)$とすると

(離散変数)f(E[x])\leq E[f(x)]\quad(1.116)\\
(連続変数) f(\int p(x)dx)\leq\int f(x)p(x)dx\quad(1.117)

これをKLダイバージェンスに適用する
$-lnx$が凸関数であることと$\int f(x)p(x)dx=1$より、KLダイバージェンス$KL(p||q)\geq 0$が示せる

KL(p||q)=-\int p(x)ln\frac {q(x)}{p(x)}dx\geq-ln\int q(x)dx=0\quad(1.118)

:writing_hand_tone1:計算過程:http://d.hatena.ne.jp/sleepy_yoshi/20110720/p1

KLダイバージェンスと推定問題

データの分布$p(x)$(未知)をパラトリックな分布$q(x|θ)$でモデル化してみる
この時、$KL(p||q)$を$θ$について最小化すれば、$q(x|θ)$を$p(x)$に最も近似できる
ただし、$p(x)$の分布は未知なので$p(x)$から得られた有限個のデータ$x_n${$n=1,2,...,N$}を使って$KL(p||q)$を近似する(1.35より)

KL(p||q)≃\frac{1}{N}\sum (-ln q(x_n|θ) + ln p(x_n) )\quad(1.119)

$ln p(x_n)$を求めることはできないが、$θ$とは無関係であり、
KLダイバージェンス最小化は対数尤度関数の最大化に等しい

相互情報量

2つの変数集合x,yの同時分布p(x,y)に対し
・x,yが独立の場合、$p(x,y)=p(x)p(y)$
・x,yが独立でない場合、「どれくらい独立に近いか」を測るため$KL(p(x,y)||p(x)p(y))$を利用できる

I[x,y]≡KL(p(x,y)||p(x)p(y))=-\int\int p(x,y)ln(\frac{p(x)p(y)}{p(x,y)})dxdy\quad(1.120)

この$I[x,y]$を$x,y$間の相互情報量と呼ぶ

確率の加法・乗法定理から、

 I[x,y]=H[x]-H[x|y]=H[y]-H[y|x]\quad(1.121)

であり、yの値を知ることによって、xに関する不確実性がどれだけ減少するかを表している
ベイズ的に言えば、$p(x)$は$x$の事前分布、$p(x|y)$は新たなデータ$y$を観測した後の事後分布

第2章 確率分布 概要

標本データから、確率変数の確率分布を推定(密度推定)したい
:large_blue_diamond:少数のパラメータのみで確率分布が決まる?
 :small_blue_diamond:決まる⇨パラメトリック(2.1~2.4)
 :small_blue_diamond:決まらない⇨ノンパラメトリック(2.5)

:large_blue_diamond:パラメトリックの場合
 :small_blue_diamond:どうやってパラメーターを推定する?
  ・最尤推定
  ・ベイズ推論
 :small_blue_diamond:重要な確率分布の性質を用いる(2.4)
  ・共役事前分布
  ・指数型分布族
  ・十分統計量

:large_blue_diamond:ノンパラメトリックの場合(2.5)
 :small_blue_diamond:パラメーターは分布の形状ではなく複雑さを調整する
 :small_blue_diamond:手法の紹介
  ・ヒストグラム
  ・最近傍法
  ・カーネル

2.1 二値変数

ベルヌーイ分布

ある事象Xが、$x = 0$、$x = 1$ の2通りのみの結果しかありえない場合
(例)コイン投げ 表:$x = 1$、裏:$x = 0$
表が出る確率をパラメータ$μ$で表すと$P(x=1|μ) = μ$, 裏が出る確率$P(x=0|μ) = 1-μ$となる
このとき、確率変数$x$ はベルヌーイ分布 (Bernoulli distribution) に従う


Bern(x|μ)=μ^x(1-μ)^{1-x}\quad(2.2)

2018-12-01 22.03のイメージ.jpgμ=0.3

ベルヌーイ分布の性質

期待値:E[X] = μ \quad(2.3)\\
分散:Var(X) = μ(1-μ)\quad(2.4)

ベルヌーイ分布の最尤推定

尤度関数:P(D| μ)=\prod_{n=1}^NP(x_n|μ)=\prod_{n=1}^Nμ^{x_n}(1-μ)^{1-x_n}\quad(2.5)\\
対数尤度関数:lnP(D|μ)=\sum_{n=1}^NlnP(x_nμ)=\sum_{n=1}^N(x_nlnμ+(1-x_n)ln(1-μ))\quad(2.6)\\
最尤推定量:μ_{ML}=\frac{1}{N}\sum_{n=1}^Nx_n\quad(2.7)

また、$x=1$となった回数をmと置けば、(2.7)は以下の通りになる

μ_{ML}=\frac{m}{N}\quad(2.8)

ただし、最尤推定を用いると常識ではあり得ないような結果を示す、極端な過学習を起こすことがある
ベイズ推定を用いて、もっと常識的な結果を得ることができる方法は後程、、、

:writing_hand_tone1:
十分統計量:https://stats.biopapyrus.jp/glm/sufficient-statistic.html
ベルヌーイ分布の正規化・平均・分散:http://prml.2apes.com/2-1-%E3%83%99%E3%83%AB%E3%83%8C%E3%83%BC%E3%82%A4%E5%88%86%E5%B8%83%E3%81%AE%E6%AD%A3%E8%A6%8F%E5%8C%96/

二項分布

引き続きコインの例で、$x=1$となった回数mの分布を考える
これを二項分布という

$\binom{N}{m}$を総数が$N$個の同じ対象から、$m$個の対象を選ぶ場合の数とすると

Bin(m|N,μ) = \binom{N}{m} μ^{m}(1-μ)^{N-m}\quad(2.9) 

2018-12-02 0.09のイメージ.jpg$N=10,μ=0.25$

二項分布の性質

期待値:E[m] = Nμ \quad(2.11)\\
分散:Var(m) = Nμ(1-μ)\quad(2.12)

:writing_hand_tone1:二項分布の平均・分散:https://mathtrain.jp/bin

2.1.1 ベータ分布

最尤推定はデータ数が少ないと過学習を起こしがちなので、ベイズ主義的に扱いたい!
パラメーター$μ$を確率変数と考え、事前分布$p(μ)$を導入する

このとき、事前分布は数学的に便利なよう、恣意的に決められる
モデルとして妥当で、解析的に便利で、簡潔に解釈されるものがいいな:thinking:

『事後分布 ∝ 事前分布 × 尤度関数』であり、二項分布の尤度関数は$μ^x(1-µ)^{1-x}$の形の因数の積である
つまり、『事前分布 ∝ $µ$と$1-µ$の冪乗』なら事前分布と事後分布は同じ関数形式になる!:hugging:
この性質を共役性といい、計算やベイズの更新が楽になる等の利点があるけど詳しくは2章4節で
2018-12-02 14.05のイメージ.jpg
:writing_hand_tone1:共役事前分布:https://to-kei.net/bayes/conjugate-prior-distribution/

といことで、二項分布と共役性のあるベータ分布を事前分布に選びましょう

Beta(μ|a,b)=\frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)}μ^{a-1}(1-μ)^{b-1} \quad(2.13)

 ・hyperパラメーターa,bは、それぞれ$x=1$,$x=0$の有効観測数として解釈できる
 ・$\frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)}$ベータ分布が正規化されていること保証している
  ※$\Gamma(x)$は$\Gamma(x)=\int^∞_0t^{x−1}e^{−t}dt$(1.141)で定義されるガンマ関数

:writing_hand_tone1:ガンマ関数:https://risalc.info/src/gamma-function.html

2018-12-02 14.28のイメージ.jpg
$a$と$b$を色々な値にした時の$Bera(µ|a,b)$のグラフ

ベータ分布の性質

期待値:E[m] = \frac{a}{a+b} \quad(2.15)\\
分散:Var(m) = \frac{ab}{(a+b)^2(a+b+1)}\quad(2.16)

逐次学習

2018-12-02 15.09のイメージ.jpg
新たなデータが観測されるごとに事後分布を更新する
上図は1段階のみの更新を示したもの
 ・逐次学習はデータが独立分布に従えば成立する
 ・共役事前分布を選択しておくことで、事後分布を次の更新時の事前分布とすることができる
 ・データが揃う前に予測しないといけないときに便利
 ・処理し終わったデータは捨てていいので、全てのデータ分メモリを確保しなくていい

コイントスの結果を予測したい

$\mu$の分布はいいから、手元のデータを元に次のコイントスの結果を予測したいなあ:thinking:
⇨興味があるのは$p(\mu)$ ではなくて$p(x = 1 \mid D)$

p(x=1∣D)=\int_0^1p(x=1∣μ)p(μ∣D)dμ=\int_0^1μp(μ∣D)dμ
=E[\mu∣D]\quad(2.19)\\
p(x=1∣D)=\frac{m+a}{N+a+l+b}\quad(2.20)

有限のデータでは事後分布の平均値(2.20)は常に最尤推定値と事前平均の間にある
無限に大きなデータ集合では、(2.20)の結果は最尤推定の結果(2.8)と等しくなる

ベイズ学習の特性

多くのデータを観測すればするほど、事後分布が示す不確実性は恒常的に減少する
2018-12-02 22.30のイメージ.jpg

それって一般的なのものなの?:neutral_face:

同時確率$p(θ,D)$で記述されたデータ集合$D$を観測した時に、
パラメーター$θ$をベイズ推論する、一般的な問題について考える

E_θ[θ]=E_D[E_θ[θ∣D]]\quad(2.21)\\
var_θ[θ]=E_D[var_θ[θ∣D]]+var_D[E_θ[θ∣D]]\quad(2.24)

・データを生成する分布の上で事後平均を平均すると事前平均になる
・事後分散の平均と事後平均の分散を足すと事前分散になる
(らしい)
:writing_hand_tone1:計算過程参考:https://heavywatal.github.io/lectures/prml-2-1.html
ただし、この結果は平均的に成り立つだけで『事後分散>事前分散』の場合もある!

2.2 多値変数

相互に排他的なK個の可能な状態のうち1つを取るような離散確率変数を多値変数という(例:サイコロ)

また、要素の1つ$x_k$が1で、残り全ては0であるようなK次元ベクトルを1-of-K 符号化法という(例:サイコロで3が出た $\vec{x} =(0,0,1,0,0,0)^T$)

$x_k = 1$となる確率$\mu_k$とすると、$\vec{x}$の確率分布は

p(\vec{x}∣\vec{\mu}​)=\prod^K_{k=1}\mu_k^{x_k}\quad(2.26)

​この分布はベルヌーイ分布を二種類以上の出力に一般化したものであり、

\sum_\vec{x}p(\vec{x}∣\vec{\mu})=\sum^K_{k=1}\mu_k=1\quad(2.27)\\
E[\vec{x}∣\vec{\mu}​]=\sum_{x}p(\vec{x}∣\vec{\mu})\vec{x}=\vec{\mu}\quad(2.28)

また、尤度関数はK個の十分統計量$m_k=\sum_nx_{nk}$で表現される

p(D∣\vec{\mu}​)=\prod^N_{n=1}\prod^K_{k=1}\mu_k^{x_{nk}}=\prod^K_{k=1}\mu_k^{\sum_nx_{nk}}=\prod^K_{k=1}\mu_k^{mk}\quad(2.29)

ラグランジュ乗数λを用いて、対数尤度の最大化を行うと

\mu_k^{ML}=\frac{m_k}{N}\quad(2.33)

結局、観察総数 N のうち$x_k=1$である割合が最尤推定値となる

多項分布

パラメーター$\vec\mu$と観測総数$N$が条件のもとでの$m_1,....,m_k$の同時確率を多項分布という

Mult(m_1,....,m_k|\vec\mu,N)=\binom{N}{m_1,m_2,....,m_k}\prod^K_{k=1}\mu_k^{m_k}\quad(2.34)

変数$m_k$は次の制約に従う

\sum^K_{k=1}m_k=N\quad(2.36)
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up