机器学习七 参数估计方法

参数估计方法

推断问题中, 一般会碰到两个问题: 1.参数估计问题: 已知 观测数据集 X, 估计其分布参数 ( heta), 也就是(p( heta|X)) 2. 预测或回归问题: 已知观测数据集 X, 推测新观测数据 ( ilde{x}), 也就是 计算(p( ilde{x}| X )).

数据集 X 可以被认为是独立同分布的随机变量 (mathscr{X}) 的观测值. ( heta) 则是分布参数, 比如, 在高斯分布中: ( heta = {mu, sigma^2}).

根据贝叶斯定理:

[p( heta|X) = frac{p(X| heta)cdot p( heta)}{p(X)} ]

上面的定理可用如下解释:

[posterior = frac{likelihoodcdot prior}{evidence} ]

Maximum likelihood estimation

[L( heta| X) riangleq p(X| heta) = igcap_{xin X}P{mathscr{X} = x| heta} = prod_{xin X} p(x| heta) ]

对上式取log , 可得如下化简的估计式:

[hat{ heta}_{ML} = arg max_{ heta} mathscr{L}( heta|X) = argmax_{ heta} sum_{xin X}log p(x| heta) ]

其中 $mathscr{L} riangleqlog L $.

求解方式也很自然:

[frac{partial mathscr{L}( heta|X)}{partial heta_k} = 0 qquad forall heta_k in heta ]

对于预测问题:

[p( ilde{x}|X) = int_{ hetainTheta}p( ilde{x}| heta)p( heta|X)d hetaapprox int_{ hetain Theta}p( ilde{x}|hat{ heta}_{ML})p( heta|X)d heta = p( ilde{x}|hat{ heta}_{ML}) ]

例子:

有一硬币, 出现正面的概率是p, 重复投掷N次,估计 p

根据上面的ML:

[egin{array}\ mathscr{L} &=& logprod_{i = 1}^N p(X= x_i|p) \ &=& sum_{i = 1}^Nlog p(x_i|p) = sum_{i =1}^Nlog(p^ccdot p^{1-c}) \ &=& sum_{i = 1}^N{log p(c =1|p)+log p(c=0|p)}\ &=& n_1 log p(c=1|p) + n_0log p(c=0|p)\ &=& n_1 log p + n_0 log(1-p) end{array} ]

其中 c取 1(正面), 0(背面). n1, n0 分别为正, 背面出现的次数,显然: n1 + n0 = N.

则:

[frac{partial mathscr{L}}{partial p} = frac{n_1}{p} + frac{n_0}{1-p} = 0 ==> hat{p} = frac{n_1}{N} ]

Maximum a posteriori(MAP) estimation

MAP 在ML的基础上对 参数 加上先验信念(priori belief),操作上,即对参数进行加权(权重即为其出现的概率(先验的) (p( heta))), 虽是这样, 但信念却不等同于概率.

[hat{ heta}_{MAP} = argmax_{ heta} p( heta|X) ]

由贝叶斯定理:

[egin{array}\ hat{ heta}_{MAP} &= &argmax_{ heta}frac{p(X| heta)p( heta)}{p(X)}\ &=&argmax_{ heta}p(X| heta)p( heta) \ &=& argmax_{ heta}{{mathscr{L}( heta|X)}+log p( heta)} \ &=& argmax_{ heta}{sum_{xin X}log p(x| heta) + log p( heta)} end{array} ]

其中, P(X) 因不是( heta)的函数, 故可省略.

在MAP中, ( heta) (一般多维) 被认为是随机变量(列), 正如上面所述, ( heta) 的信念虽是以概率表示,

对于预测问题:

[p( ilde{x}|X) = int_{ hetainTheta}p( ilde{x}| heta)p( heta|X)d hetaapprox int_{ hetain Theta}p( ilde{x}|hat{ heta}_{ML})p( heta|X)d heta = p( ilde{x}|hat{ heta}_{ML}) ]

再次考虑上面的例子, 一般我们会猜, 硬币两面出现的概率d大致相等, 即 p 的概率应该在0.5 附近. 这可表示为p 拥有一个先验分布, 且在 0.5 附近有很高的概率密度. 比如我们可能认为 p 服从 beta分布:

[p(p| alpha, eta) = frac{1}{B(alpha, eta)}p^{alpha-1}(1-p)^{eta - 1} riangleq Beta(p|alpha, eta) ]

其中, (B(alpha,eta) = frac{Gamma(alpha)Gamma(eta)}{Gamma(alpha +eta)}), 而 (Gamma(x) = int_{0}^{infty}t^{x-1}e^{-t}dt).

因此对 (9)式 求(偏)导:

[frac{partial }{partial p}(mathscr{L} + log p(p)) = frac{n_1}{p}+ frac{n_0}{1- p} + frac{alpha - 2}{p} - frac{eta - 1}{1- p} = 0\ ==> hat{p}_{MAP} = frac{n_1 +alpha -1 }{N+alpha+eta - 2} ]

Bayesian estimation

在MAP中,只取了P(θ|X)的峰值作为θ的估计,忽略了θ的其他可能性,可能丢失信息。贝叶斯在MAP的基础上更进一步, 把θ的所有可能取值考虑进来,然后算posterior分布上的期望.

同样的, 根据贝叶斯定理:

[p( heta|X) = frac{p(X| heta)cdot p( heta)}{p(X)} ]

在贝叶斯估计中, P(X) 可能表示成 参数的分布上的所有可能性的期望:

[p(X) = int_{ heta in Theta}p(X| heta)p( heta)d heta ]

预测问题:

[p( ilde{x}|X) = int_{ hetainTheta}p( ilde{x}| heta)p( heta|X)d heta\ approx int_{ hetain Theta}p( ilde{x}|hat{ heta})p( heta|X)d heta\ = int_{ hetain Theta}p( ilde{x}|hat{ heta})frac{p(X| heta)cdot p( heta)}{p(X)} ]

再看上面的例子, 仍令 $ heta $服从Beta 分布:

[egin{array}\ p( heta|X)& =& frac{p(X| heta)cdot p( heta|alpha, eta)}{p(X)}\ &= & frac{p(X| heta)cdot p( heta|alpha, eta)}{int_{ heta in Theta}p(X| heta)p( heta|alpha,eta)d heta}\ &=& frac{prod_{i = 1}^Np(X=x_i|p)p(p|alpha,eta)}{int_0^1 prod_{i = 1}^Np(X=x_i|p)p(p|alpha,eta)dp}\ &=& frac{p^{n_1+alpha-1}(1-p)^{n_0 +eta-1}frac{1}{Beta(alpha,eta)}p^{alpha -1}(1-p)^{eta -1}}{Z}\ &=& Beta(p| n^1+alpha, n^0+eta) end{array} ]

其中Z 为Beta分布的归一化因子.

[E p(p|X) = frac{n^1 + alpha}{N+alpha +eta} ]

共轭分布:

一个似然概率(p(x| heta))的共轭先验分布(p( heta)) 是使参数的后验分布的形式与其相一致的分布, 如上面例子的贝叶斯估计中, 我们令 p 的概率分布服从 beta分布, 经计算p 的后验也是beta分布, 只不过分布的参数由原来的((alpha, eta))变成 ((n^1+alpha,n^0+eta)). 而这个似然概率是二次分布(N次重复的做bernulli 实验). 也即二项分布的共轭分为beta分布.

推广:

多项分布的 共轭分布为 Dirichlet 分布.

多项分布:

[p(n|p,N) = Big(_n^N Big) prod_{k =1}^K p_k^{n(k)} riangleq Mult(n|p,N) ]

Dirichlet分布:

[p(p|alpha) = D(p|alpha) riangleq frac{Gamma(sum_{k=1}^K alpha)}{prod_{k=1}^KGamma(alpha_k)}prod_{k =1}^Kp_k^{alpha_k -1} = frac{prod_{k =1}^Kp_k^{alpha_k -1}}{Delta(alpha)} ]

其中, (Delta(alpha) =frac{prod_{k=1}^KGamma(alpha_k)} {Gamma(sum_{k=1}^K alpha)}).

原文地址:https://www.cnblogs.com/vpegasus/p/8321248.html