机器学习 之 最大后验估计(MAP),交叉熵

最大后验概率是在最大似然后面乘上一个先验概率,求的仍是一个具体值,但最大似然与最大后验有很大不同。

在最大似然估计中,用的是 p ( t ∣ w , X , δ 2 ) p(t|w,\textbf X,\delta^2) p(tw,X,δ2)乘在一起求最大值然后导等于0求出 w w w很好理解,求出来的 w w w就是最大似然值(就是一个值),在最大后验概率估计中,按理说也是求出一个值,这个值有先验的影响,求的是 P ( w ∣ t , X , δ 2 ) P(w|t,\textbf X,\delta^2) P(wt,X,δ2)的最大值,但是仍然通过求导等于0得出参数解,究其原因,应该就是在于高斯函数的求导等于0与最大后验的最大输出值是完全重合的。先验概率分布起到一个提升起跑线的作用,毕竟 P ( X ) P(X) P(X)是自己定的,在最大似然估计中,它被设定成了1(表示完全没有任何信息)。

最大后验估计一般是这样的:
θ = a r g m a x θ P ( θ ∣ D ) ∼ a r g m a x θ P ( D ∣ θ ) P ( θ ) = a r g m a x θ l o g P ( D ∣ θ ) + l o g P ( θ ) \theta = argmax_\theta P(\theta|D)\sim argmax_\theta P(D|\theta)P(\theta)\\ =argmax_\theta logP(D|\theta)+logP(\theta) θ=argmaxθP(θD)argmaxθP(Dθ)P(θ)=argmaxθlogP(Dθ)+logP(θ)

然后求导等于0求出 w w w,本来这个概率密度的最大输出值参数是最大似然值参数,实际上它也可以求导出来,这个问题并不是很好解决。
鉴于最大似然也是先取 log ⁡ \log log再求导,最大后验的本质是多了一个 l o g P ( θ ) logP(\theta) logP(θ)项而已。

每日小常识:

信息量的定义为:
I ( x ) = − l o g ( p ( x ) ) I(x)=-log(p(x)) I(x)=log(p(x))

例如当事件必定发生时,其信息量为0。而熵值越大,表明这个系统的不确定性就越大:
H ( x ) = − ∑ i = 1 n p ( x i ) l o g ( p ( x i ) ) H(x)=-\sum^n_{i=1}p(x_i)log(p(x_i)) H(x)=i=1np(xi)log(p(xi))

就是概率与信息量的乘积之和。
相对熵也成为KL散度,用来比较两条曲线是否一致是最好的(之前是用来检验简繁体字)(了解即可,用处不大):
D K L ( p ∣ ∣ q ) = ∑ i p ( x i ) l o g ( p ( x i ) q ( x i ) ) D_{KL}(p||q)=\sum_ip(x_i)log(\frac{p(x_i)}{q_(x_i)}) DKL(pq)=ip(xi)log(q(xi)p(xi))

交叉熵,设 p ( x ) , q ( x ) p(x),q(x) p(x),q(x)分别是随机变量 X X X的两个概率分布,其中 p ( x ) p(x) p(x)是目标分布, p p p q q q的交叉熵可以看作使用分布 q ( x ) q(x) q(x)表示目标分布 p ( x ) p(x) p(x)的困难程度:
H ( p , q ) = − ∑ i p ( x i ) l o g q ( x i ) H(p,q)=-\sum_ip(x_i)logq(x_i) H(p,q)=ip(xi)logq(xi)

明白了,就是普通熵的一个变种。实际上:
H ( p , q ) = D K L ( p , q ) + H ( p ) H(p,q)=D_{KL}(p,q)+H(p) H(p,q)=DKL(p,q)+H(p)

通常 p ( x ) p(x) p(x)是训练数据,是固定的,即 H ( p ) H(p) H(p)是一个常量,这样算交叉熵也就等价于最小化这两个分布的相对熵 D K L ( p ∣ ∣ q ) D_{KL}(p||q) DKL(pq) q ( x ) q(x) q(x)为训练得到的分布。注意下面的最大似然平均值:
1 m ∑ i m l o g ( x i , θ ) = E ( l o g ( x , θ ) ) \frac{1}{m}\sum^m_ilog(x_i,\theta)=E(log(x,\theta)) m1imlog(xi,θ)=E(log(x,θ))

θ M L = a r g m a x θ E x − P ( l o g ( x , θ ) ) = a r g m a x θ E x − P ( − l o g ( x , θ ) ) \theta_{ML}={argmax}_\theta E_{x-P}(log(x,\theta))\\ ={argmax}_\theta E_{x-P}(-log(x,\theta)) θML=argmaxθExP(log(x,θ))=argmaxθExP(log(x,θ))

对右边取负号的意义是将最大化变成最小化运算。

©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页