コメント
検索
Notionを使ってみる

最尤推定の理論

前節では、正規分布のパラメータをサンプルデータから推定しました。具体的には、観測データ {x(1),x(2),,x(N)}\{x^{(1)}, x^{(2)}, \dots,x^{(N)}\} が得られたとき、次の式に従って正規分布のパラメータを推定しました。
μ^=1Nn=1Nx(n)(2.1)σ^=1Nn=1N(x(n)μ^)2(2.2)\begin{aligned} \hat{\mu} &= \frac{1}{N} \sum_{n=1}^{N}x^{(n)} &\qquad(2.1)\\ \hat{\sigma} &= \sqrt{\frac{1}{N}\sum_{n=1}^{N}(x^{(n)}-\hat\mu)^2}&\qquad(2.2) \end{aligned}
ここでは正規分布の平均を μ^\hat \mu 、標準偏差を σ^\hat \sigma という記号で表します(推定した値は μ^\hat \mu のように、「^(ハット)」をつけます)。上式のように、 μ^\hat \mu はサンプルデータの平均、 σ^\hat \sigma はサンプルデータの標準偏差として推定します。では、なぜこの計算式で良いのでしょうか?その理由は 最尤推定(Maximum Likelihood Estimation) によって説明がつきます。ここでは最尤推定により上が導けることを示します。

尤度の最大化

ここにパラメータ θ\boldsymbol \theta によって形状が決まる確率分布があるとします。パラメータ θ\boldsymbol \theta のとき、データ xx が得られる確率密度は p(x;θ)p(x;\boldsymbol \theta) で表されます。
💡
ここでは正規分布に限定せずに、何らかのパラメータ θ\boldsymbol \theta によって分布が決まる確率分布を考えます。正規分布の場合は θ={μ,σ}{\boldsymbol \theta} = \{\mu, \sigma\} として考えることができます。
1
次に NN 個のサンプルデータ D={x(1),x(2),,x(N)}\mathcal{D}=\{x^{(1)}, x^{(2)}, \dots, x^{(N)}\} が得られた場合を考えます。ここでは各データが独立に生成されると仮定します。このとき NN 個のデータが得られる確率密度は次の式によって表されます。
p(D;θ)=p(x(1);θ)p(x(2);θ)p(x(N);θ)=n=1Np(x(n);θ)\begin{aligned} p(\mathcal{D};{\boldsymbol \theta}) &= p(x^{(1)};{\boldsymbol \theta})p(x^{(2)};{\boldsymbol \theta}) \cdots p(x^{(N)};{\boldsymbol \theta})\\ &=\prod_{n=1}^{N}p(x^{(n)};{\boldsymbol \theta}) \\ \end{aligned}
各データが独立に生成されると仮定しているため、上式のようにデータごとの確率密度の積として表されます。 p(D;θ)p(\mathcal{D};{\boldsymbol \theta}) は、パラメータが θ\boldsymbol \theta のときサンプルデータ D\mathcal{D} が得られる確率密度を表します。この p(D;θ)p(\mathcal{D};{\boldsymbol \theta})尤度(Likelihood) と呼ばれます。尤度とは「ルビ:もっともらしさ」という意味です。
私たちの興味は、サンプルデータ D\mathcal{D} に最もフィットするパラメータ θ\boldsymbol \theta を求めることです。言い換えると、尤度 p(D;θ)p(\mathcal{D};{\boldsymbol \theta}) を最大化するパラメータ θ\boldsymbol \theta を求めるということです。ただし、対数(自然対数)を取るほうが計算上便利なことが多いため、次の対数尤度の最大化を目指します。
logp(D;θ)\log{p(\mathcal{D};{\boldsymbol \theta})}
対数関数は単調増加関数であるため、 p(D;θ)p(\mathcal{D};{\boldsymbol \theta}) を最大にする θ\boldsymbol \theta の値は、 logp(D;θ)\log{p(\mathcal{D};{\boldsymbol \theta})} を最大にする θ\boldsymbol \theta の値と一致します。また、ここで言う「対数」とは、正確には「自然対数」を指します。数式では logex\log_ex です。本書では、 logex\log_exlogx\log x と表記します。
💡
積の対数対数の和」 2つの数 aabb の積の対数は、 aa の対数と bb の対数の和に等しくなります。数式では次のように表されます。
logab=loga+logb\log a b = \log a + \log b
この公式を使うことで、 logp(D;θ)\log{p(\mathcal{D};{\boldsymbol \theta})} の計算が簡単になります。
次に、対数尤度を最大化する方法について見ていきますが、その前に簡単な関数を例にとり、最大値を見つける方法を示します。

微分を使って最大値を探す

ここでは次の関数を対象に最大値の場所を見つける方法を示します。
y=2x2+3x+4y = -2x^2 + 3x + 4
最大値を見つける際に重要になるのが 微分 です。 yyxx に関する微分は dydx\frac{dy}{dx} と表され、次のように計算できます。
dydx=4x+3\frac{dy}{dx} = -4x + 3
これより、ある xx における微分を計算することができます。たとえば、 x=0x=0 における微分は 33 です。これは x=0x=0 において xx を微小値 δ\delta だけ変化させたら yy3δ3 \delta だけ変化するということを意味します。このように、微分は、ある xx における yy の「変化の割合」を表します。また、2-4で示すように微分は接線の傾きに対応します。
図2-4:微分と接線の傾き
図からも分かる通り、グラフは単純な形です。そして、微分値が0の場所に最大値があることがわかります。 これより
yx=4x+3=0\frac{\partial y}{\partial x} = -4x + 3 = 0
1
を解くことで最大値の場所がわかります。その答えは x=34x=\frac{3}{4} です。
💡
y=ax2+bx+cy= ax^2 + bx + ca,b,ca, b, c は定数)のような2次関数は、最大値(もしくは最小値)は数式の解として求まります。これは「解析的(analytically)に解ける」や「閉形式(closed-form)の解が得られる」と言います。
次に尤度関数を最大化する問題について考えます。その解き方はここで示した方法と同じです。対数尤度のパラメータ θ\boldsymbol \theta に関する微分を求め、それを 00 とすることで解析的に解くことができます。その解が式(2.1)と式(2.2)になります。その導出過程を次に示します。

正規分布の最尤推定【★】

復習になりますが、正規分布の確率密度は次の式で表されます。
N(x;μ,σ)=12πσexp((xμ)22σ2)\mathcal{N}(x;\mu, \sigma) = \frac{1}{\sqrt{2\pi}\sigma}\exp\biggl({-\frac{(x-\mu)^2}{2\sigma^2}}\biggr)
1
ここで NN 個の観測データ D={x(1),x(2),,x(N)}\mathcal{D}=\{x^{(1)}, x^{(2)}, \dots, x^{(N)}\}得られたとします。そのときの尤度は次の式で表されます。
p(D;μ,σ)=n=1N12πσexp((x(n)μ)22σ2)p(\mathcal{D};\mu,\sigma) = \prod_{n=1}^{N}\frac{1}{\sqrt{2\pi}\sigma}\exp\biggl({-\frac{(x^{(n)}-\mu)^2}{2\sigma^2}}\biggr)
以上から、対数尤度は次の式で表されます。
logp(D;μ,σ)=logn=1N12πσexp((x(n)μ)22σ2)=logn=1N12πσ+logn=1Nexp((x(n)μ)22σ2)=log(12πσ)N+n=1N(x(n)μ)22σ2=N2log2πσ212σ2n=1N(x(n)μ)2\begin{aligned}\log{p(\mathcal{D};\mu,\sigma)} &= \log \prod_{n=1}^{N}\frac{1}{\sqrt{2\pi}\sigma}\exp\biggl({-\frac{(x^{(n)}-\mu)^2}{2\sigma^2}}\biggr)\\&= \log \prod_{n=1}^{N}\frac{1}{\sqrt{2\pi}\sigma} + \log\prod_{n=1}^{N}\exp\biggl({-\frac{(x^{(n)}-\mu)^2}{2\sigma^2}}\biggr)\\&= \log\biggl(\frac{1}{\sqrt{2\pi}\sigma}\biggr)^N + \sum_{n=1}^{N}{\frac{-(x^{(n)}-\mu)^2}{2\sigma^2}} \\&= -\frac{N}{2}\log{2\pi\sigma^2}-\frac{1}{2\sigma^2}\sum_{n=1}^{N}(x^{(n)}-\mu)^2\end{aligned}
μ\mu に注目すると、対数尤度は μ\mu の2次関数であることがわかります。この2次関数の最大値は、微分値が 00 の場所にあります。次は微分の計算です。 L=logp(D;μ,σ)L = \log{p(\mathcal{D};\mu,\sigma)} という記号で表すとLμ\frac{\partial L}{\partial \mu} は次の式で表されます
Lμ=1σ2n=1N(x(n)μ)\begin{aligned} \frac{\partial L}{\partial \mu} &= \frac{1}{\sigma^2}\sum_{n=1}^{N}(x^{(n)}-\mu) \\ \end{aligned}
2
💡
今回の問題は、 LL に対して変数が μ\muσ\sigma の2つあります。2変数以上の微分は、「偏微分」として「 Lμ\frac{\partial L}{\partial \mu} 」のように表記します。偏微分は、ある変数についてのみ微分を行います。たとえば、Lμ\frac{\partial L}{\partial \mu}μ\mu だけを変数として考え、 それ以外の変数は固定して(つまり定数とみなして)微分します。
1
LL最大値の場所は Lμ=0\frac{\partial L}{\partial \mu} = 0 にあります。式展開を進めると、次のように解が求まります。
1σ2n=1N(x(n)μ)=0n=1N(x(n)μ)=0n=1Nμ=n=1Nx(n)Nμ=n=1Nx(n)μ=1Nn=1Nx(n)\begin{aligned}&\frac{1}{\sigma^2}\sum_{n=1}^{N}(x^{(n)}-\mu) = 0 \\\Leftrightarrow\quad&\sum_{n=1}^{N}(x^{(n)}-\mu) = 0 \\\Leftrightarrow\quad&\sum_{n=1}^{N}\mu = \sum_{n=1}^{N}x^{(n)} \\\Leftrightarrow\quad&N\mu = \sum_{n=1}^{N}x^{(n)} \\\therefore\quad &\mu = \frac{1}{N} \sum_{n=1}^{N}x^{(n)} \end{aligned}
1
これより、 μ\mu1Nn=1Nx(n)\frac{1}{N} \sum_{n=1}^{N}x^{(n)} のときに最大値を取ることがわかります。ここでは次のように μ^\hat \mu という記号を使って表すことにします。
μ^=1Nn=1Nx(n)\hat \mu = \frac{1}{N} \sum_{n=1}^{N}x^{(n)}
💡
数式の「⇔」は、2つの式が等価であることを示します。「∴」は結論を示すための記号で、「したがって」という意味があります。
正規分布の平均 μ\mu は、 μ^\hat \mu のときに対数尤度が最大となることがわかりましたμ^\hat \mu はサンプルデータの平均です。次は標準偏差 σ\sigma についてです。 μ=μ^\mu=\hat \mu の条件のもとで、対数尤度を σ\sigma に関して最大化することが目標です。 μ=μ^\mu=\hat \mu のときの対数尤度は次の式で表されます。
logp(D;μ=μ^,σ)=N2log2πσ212σ2n=1N(x(n)μ^)2\begin{aligned} \log{p(\mathcal{D};\mu=\hat \mu,\sigma)} &= -\frac{N}{2}\log{2\pi\sigma^2}-\frac{1}{2\sigma^2}\sum_{n=1}^{N}(x^{(n)}-\hat \mu)^2\end{aligned}
σ\sigma の最大値も、 μ\mu と同じく、解析的に求めることができます。つまり微分を求めて、それを0として数式を展開することで求められます。それでは対数尤度の σ\sigma に関する微分を求めてみましょう。
σlogp(D;μ=μ^,σ)=N212πσ24πσ12(2)σ3n=1N(x(n)μ^)2=Nσ+σ3n=1N(x(n)μ^)2\begin{aligned} \frac{\partial }{\partial \sigma} \log{p(\mathcal{D};\mu=\hat \mu,\sigma)} &= -\frac{N}{2}\frac{1}{2\pi\sigma^2}4\pi\sigma-\frac{1}{2}(-2)\sigma^{-3}\sum_{n=1}^{N}(x^{(n)}-\hat\mu)^2\\ &= -\frac{N}{\sigma}+\sigma^{-3}\sum_{n=1}^{N}(x^{(n)}-\hat\mu)^2\\ \end{aligned}
1
後は、この微分を 00 して、次の式が導かれます。
Nσ=σ3n=1N(x(n)μ^)2σ2=1Nn=1N(x(n)μ^)2σ=1Nn=1N(x(n)μ^)2\begin{aligned} &\frac{N}{\sigma} = \sigma^{-3}\sum_{n=1}^{N}(x^{(n)}-\hat\mu)^2\\ \Leftrightarrow\quad&\sigma^2 = \frac{1}{N}\sum_{n=1}^{N}(x^{(n)}-\hat\mu)^2\\ \therefore\quad&\sigma = \sqrt{\frac{1}{N}\sum_{n=1}^{N}(x^{(n)}-\hat\mu)^2} \end{aligned}
最後に、ここで求めた標準偏差を σ^\hat \sigma という記号を使って次のように表します。
σ^=1Nn=1N(x(n)μ^)2\hat \sigma = \sqrt{\frac{1}{N}\sum_{n=1}^{N}(x^{(n)}-\hat\mu)^2}
以上、正規分布の最尤推定によりパラメータ推定ができました。
【次ページ 】
T
Taichi Kawabata
11月26日(編集済み)
θの太字の初出にあたり、変数の太字の意味をきちんと説明した方がよいかと思います。 小文字の太字はローマ字・ギリシャ文字ともにベクトルを、大文字(Σ)は行列を、また太字のθは行列・ベクトル含む複数のパラメータの集合であることをきちんと言うと、後から悩まずにすむかと思います。
T
Tsubasa.I
11月14日
ここでもサンプルデータという言葉が少し紛らわしく感じました。以下のような表現だと混乱が少ないと思います。 『観測データ…が得られた場合を考えます。各データが確率密度pに従い、それぞれ独立に生成されると仮定すると、…』
R
Roo Gee
11月25日(編集済み)
「N個のデータ」なので個数Nを限定しているだけなのかと思ってしまいました。
さらに1件のコメント
Hidenari Yatsuo
11月27日
「N個のデータが得られる確率密度」は式の左辺に対応するので、「サンプルデータDが得られる確率密度」の方がわかりやすいです。
S
Shingo Fukumoto
11月26日
「N個のデータが得られる」、という事象に確率的な感じがないので、「N個のデータがそれぞれx1、x2、、、、xnになる」のほうが個人的にはわかりやすく感じますがいかがでしょうか。
T
Tsubasa.I
11月14日(編集済み)
尤度は本書で重要な概念なので、確率とは別物であることの説明を追加してもよいと思いました。
Hidenari Yatsuo
11月27日
式の右辺に対応するので、「N個のデータごとの確率密度の積」の方がわかりやすいと思います。
S
Shingo Fukumoto
11月26日
せっかく直前に「尤もらしいさ」と記載されているので、「フィットする(尤もらしい)」のように記載してもいいと思いました。
hotekagi
11月15日
後の章で対数尤度をLとするのでここで既にLと名付けても良いかと思いました。また、L(θ;D) = log p(D;θ)のようにして、Dが所与でθがパラメータだと強調して確率密度関数との扱いの違いを書き分ける方法もあるかなと。(個人的に昔に尤度の考え方がよく分からなかった時にこの書き換えトリックに救われた経験があり紹介します)
N
November19
11月19日
最大値の場所という表現は、かえって分かりにくいと思います。yを最大化するxの値などとストレートに書いてもよい気がします。
K
Kim
2日前
細かいですが、「あるxにおける、xの変化に対するyの「変化の割合」」はいかがでしょうか。 今考えている「割合」における、もとにする量が何か明記するという意味です。
Cognac
11月10日(編集済み)
左記の例ではこの表現でいいかもしれませんが、微分が0となるのは極大、極小、最大、最小(微分可能な一般的な関数において)であることを言及しておいた方がいいと思います。
👍1
Guvalif
11月10日
変曲点の可能性もあるので、あくまで必要条件である旨は言えると良さそうですね
👍2
R
Roo Gee
11月26日
「微分値が0⇢最大値」を必ず満たすんでしたっけ。そのための何らかの条件設定がなされているんでしたっけ。
S
S.T.
11月23日
\frac{dy}{dx} ではないでしょうか
iBouncer
11月14日(編集済み)
物理とかが専門なら普通に見えるものかも知れませんが、一般に化学の分野の人には、(もし初めて化学の人が書店でこの本をみたら)こういう表記が馴染まない世界だと思うので、そういう人もいると言う意味で、この本ではこういう書き方をしますよ、と数学的表記や意味の宣言をまとめたページがあってもいいかもです。 おそらく高卒以上でも数学のレベルは大学や学部で様々なので、基本的にy=f(x)的な表記で止まっていると、ちょっと面食らいませんか?
… 詳細
べんぢゃみん
11月23日
「記号で表す」ではなく「式で表す」ではないでしょうか?あるいは「と定義すると」でもよいかもしれません。
R
rhonda
11月24日
同意します。「と定義すると」が良い気がします。
Keisuke Fukuda
12月1日
二次の係数が負ですから、と言っておいたほうが良いかもしれません
K
kiku1924
11月18日
軽く手計算した限り間違ってはいないように見えます. ミスがあるかもしれませんが...
Hiroki Taniai
11月19日
ありがとうございます、私の勘違いでした。削除しますね。
S
Shingo Fukumoto
11月26日
2変数以上の微分というと勾配などをイメージする場合もあるかと思いますので、長ったらしいですが 「変数が2つ以上ある関数に対し1つの変数に注目して行う微分」 といった記載のほうがいいかと思いました。
hotekagi
11月15日(編集済み)
(大学以上の)数学や機械学習の教科書および論文などの本文では同値記号を連発して式変形をすることはあまり無い印象です。証明セクションはともかく、「~~なので~~と変形すると~~」と普通に文にする方がいいのではないかなと。その方が下の記号の説明も不要になりそう
👍1
G
G3
11月28日
式(2.1)と同じなった、という意味合いの言葉を入れておくと、「ここでは最尤推定により上式が導けることを示します」という記述を回収できるのではないかと感じました。
もりゆき
11月11日
σ^2の微分の方が計算も親切なのでご提案します。
😀1
👍🏼1
さらに2件のコメント
R
rhonda
11月24日
logの微分と(分母にしか変数が無い)商の微分であるとわかれば、目で追える範囲かと思いますので、例えば補足欄にlogと商の微分公式を載せるか、計算過程はそちらに記すなどでも良いような気もします。
SakanoueDaiki
11月25日
「Lを最大化するσの値も」では?
安達隆宏
11月20日(編集済み)
自然対数の微分式  d/dx(logx) = 1/x 合成関数微分式  dy/dx = dy/du * du/dx の両方を使っていることを補足して頂くほうが理解しやすいと思いました
masa_t
11月18日
微分値
S
Shiro Matsumoto
11月14日
「正規分布のパラメータを最尤推定により得ること」とすることで、推定対象が明確になり、「推定」が冗長になることを回避できます
R
Roo Gee
11月25日(編集済み)
前節の「正規分布のパラメータ推定は、『サンプルデータの平均』と『サンプルデータの標準偏差』によって求めることができます(これで上手くいく理由は、次節で説明します)」をここで回収したのであれば「正規分布のパラメータ推定とは『サンプルデータの平均』と『サンプルデータの標準偏差』の2つを計算することであることを最尤推定により示しました」のように引き取って欲しいです。
… 詳細
R
Roo Gee
11月25日
一方でこの項には★がついており、読み飛ばした場合にはもやもやが残ったままになるかもしれません。