极大似然估计:利用已知的样本结果信息,反推最具有可能(最大概率)导致这些样本结果出现的模型参数值!
极大似然估计提供了一种给定观察数据来评估模型参数的方法,即:“样本已知,模型已定,参数未知”。
推导:要求的是argmax_ P(|X), 根据贝叶斯公式,等于P(X|)P() / P(X), 分母与无关可以消去,等于P(X|)P(); P()这个先验概率,可以假设对所有都相同(其实不一定是啊,正则化项相当于增大了数值小的们的先验概率!L2正则项,相当于假设服从高斯分布的!),化简为P(X|); 可以假设X里的所有样本都是独立同分布的,得到P(X|) = P(x1|)*P(x2|)*...*P(xn|); 最开始的最大化后验概率P(|X)转化成了最大化似然概率P(X|)
求最大似然函数估计值的一般步骤:
(1)写出似然函数;(样本们视为已知数,模型参数视为未知数)
(2)对似然函数取对数,并整理;
(3)求导数,令导数为0,得到似然方程;
(4)解似然方程,得到的参数即为所求;
例子:已知一堆样本服从正态分布,求该正态分布的均值和方差;
解:套用以上4步;
已知样本集,已知分布的形式和个数,求解每个分布的参数;不知道每个样本是由哪个分布生成的;
1. 最终目的是极大化似然函数L(θ), 取lg之后等于; log里面把化为;
2. 这里如果直接对θ求偏导,对z[i]求偏导,难度非常大;解决办法:为每个样本引入分布,加在分子和分母上转成log(sum_i(Q[z[i]] * (p/Q[z[i]]))), 因为log是凹函数,所以满足Jesen不等式的>=形式,即log(E[X])>=E[log(X)], 从而把Q[z[i]]提到了log前面,转换成sum_i(Q[z[i]] * log(p/Q[z[i]]));因为>=,所以原始L(θ)就有了下界函数;
3. E步. 求所有Q[z[i]],使得原始L(θ)=下界函数(θ); M步. 再固定Q[z[i]](即固定下界函数的样子),求解使得下界函数值最大的θ';
解释:因为L(θ)永远>=下界函数,所以在该θ'上L(θ')>=下界函数(θ'); 不等式传递得到L(θ)=下界函数(θ)<=下界函数(θ')<=L(θ'); 从而找到了新的θ'比老θ使得原始L的值更大;
3.E步 当对于所有的z[i], log(p/Q[z[i]])全部都等于任意常数C时,log(sum_i(Q[z[i]]*C))和sum_i(Q[z[i]]*logC))相等,都等于logC;联立方程组:log(p/Q[z[i]])=C,sum_i(Q[z[i]])=1,解得Q[z[i]] = p(z[i] | x[i]); 即得到了在θ上是L(θ)=下界函数(θ)的具体下界函数;
M步 Q[z[i]]已知,求解使得下界函数sum_i(Q[z[i]] * log(p/Q[z[i]])) 最大化的θ
注意:EM算法是框架算法,任何分布都可以使用其去求最优参数使得似然函数最大化;
EM算法的例子:训练GMM
已知样本集合,已知样本是由N个高斯分布生成的(每个样本只由一个高斯分布生成),求:<各个高斯分布的概率,均值,协方差矩阵>
E-Step: Q[j] = p(z=j | x,θ) = p(z=j, x | θ) / p(x) = p(x | z=j,θ)*p(z=j | θ) / 分子去所有j之和 = 高斯分布生成x的概率 * 高斯分布j的概率 / 分子去所有j之和
M-Step: 下界函数里的p(z=j,x | θ)用和上式一样的条件概率公式得到p(x | z=j,θ)*p(z=j | θ), 最终式子里出现的是3组参数和所有样本x[i],对均值求导令其等于0,解得均值;协方差同理;高斯分布概率之和等于1,所以是带约束得最优化问题,用拉格朗日法求解;