机器学习——概率密度估计随笔

概率密度估计笔记

  • 概率与统计关系
  • 参数估计
    • 似然与概率
    • 似然函数与概率函数
    • 极大似然估计
    • 最大后验估计(MAP)
    • 贝叶斯估计
  • 非参数估计
    • 直方图
    • Parzen窗(核密度估计)

概率与统计关系

先捋清楚概率和统计分别是啥意思。

下面的一段话引自LarrB Wasserman的《All of Statistics》,对概率和统计推断的研究内容进行了描述:

The basic problem that we studB in probabilitB is:
Given a data generating process, what are the properities of the outcomes?

The basic problem of statistical inference is the inverse of probabilitB:
Given the outcomes, what can we saB about the process that generated the data?
概率论是在给定条件(已知模型和参数)下,对要发生的事件(新输入数据)的预测。统计推断是在给定数据(训练数据)下,对数据生成方式(模型和参数)的归纳总结。概率论是统计学的数学基础,统计学是对概率论的应用。

参数估计

参数估计就是已经有了一大堆数据,我们先假设这些数据符合什么概率分布(高斯分布?伯努利分布?)。
有了概率分布就有了参数,高斯分布的参数就是协方差矩阵和均值向量,伯努利分布的参数就是硬币朝上的概率p。。。
参数估计最重要的就是极大似然估计

似然与概率

在英文中,似然(likelihood)和概率(probability)是同义词,都指事件发生的可能性。但在统计中,似然与概率是不同的东西。概率是已知参数,对结果可能性的预测。似然是已知结果,对参数是某个值的可能性预测。

似然函数与概率函数

函数 P ( x ∣ θ ) P(x|\theta) P(xθ)从观测角度不同有两种情况:

  1. 当参数 θ \theta θ已知且不变, P ( x ∣ θ ) P(x|\theta) P(xθ)表现为不同x情况下的概率函数
  2. 当x已知且不变时, θ \theta θ为变量, P ( x ∣ θ ) P(x|\theta) P(xθ)就是似然函数。表示不同 θ \theta θ下,x出现的概率,有时候似然函数的表达形式有许多中比如, L ( x ; θ ) L(x;\theta) L(x;θ), L ( θ ∣ x ) L(\theta|x) L(θx), L ( θ ; x ) L(\theta;x) L(θ;x)

极大似然估计

MLE网上讲的很多了,这里我就不码字了。

前提:

  1. 观测样本的存在

  2. 每个样本之间是独立的

  3. 所有样本符合一个概率模型

θ \theta θ为变量根据概率分布函数写出单个 x i x_i xi的似然函数,然后根据独立性假设写出所有样本的联合分布,因为是独立的所以直接连乘即可,然后乘法不好算,取对数转化为加法。
对参数分别求偏导得0,如果有闭式解则得到参数,没有的话可能需要迭代法求解,比如EM算法?
最大似然估计的求解步骤:

  1. 确定似然函数
  2. 将似然函数转换为对数似然函数
  3. 求对数似然函数的最大值(求导,解似然方程)

最大后验估计(MAP)

在MLE求解时,将 θ \theta θ看作一个固定的值, θ \theta θ的值就是使似然函数达到最大时候(即偏导=0)的值。MAP就是认为 θ \theta θ不是固定值,而是一个随机变量, θ \theta θ也有某种概率分布,称之为先验分布 P ( θ ) P(\theta) P(θ)
现在我们要同时考虑 P ( x ∣ θ ) P ( θ ) P(x|\theta)P(\theta) P(xθ)P(θ),使 P ( x ∣ θ ) P ( θ ) P(x|\theta)P(\theta) P(xθ)P(θ)达到最大的值的 θ \theta θ就是最好的 θ \theta θ
此时要最大化的函数变为 P ( X ∣ θ ) P ( θ ) P(X|\theta)P(\theta) P(Xθ)P(θ),由于X的先验分布P(X)是固定的(可通过分析数据获得,其实我们也不关心X的分布,我们关心的是 θ \theta θ,因此最大化函数可变为 P ( X ∣ θ ) P ( θ ) P ( X ) \frac {P(X|\theta)P(\theta)} {P(X)} P(X)P(Xθ)P(θ),根据贝叶斯法则,要最大化的函数 P ( X ∣ θ ) P ( θ ) P ( X ) = P ( θ ∣ X ) \frac {P(X|\theta)P(\theta)} {P(X)}=P(\theta|X) P(X)P(Xθ)P(θ)=P(θX),因此要最大化的函数是 P ( θ ∣ X ) P(\theta|X) P(θX),而 P ( θ ∣ X ) P(\theta|X) P(θX) θ \theta θ的后验概率。最大后验概率估计可以看作是正则化的最大似然估计,当然机器学习或深度学习中的正则项通常是加法,而在最大后验概率估计中采用的是乘法, P ( θ ) P(\theta) P(θ)是正则项。在最大似然估计中,由于认为 θ \theta θ是固定的,因此 P ( θ ) = 1 P(\theta)=1 P(θ)=1。(这一部分我也是似懂非懂)
下面是个掷硬币的实例:
a r g m a x θ P ( θ ∣ X ) = a r g m a x θ P ( X ∣ θ ) P ( θ ) P ( X ) ∝ a r g m a x θ P ( X ∣ θ ) P ( θ ) \mathop{argmax}_{\theta}P(\theta|X)=\mathop{argmax}_{\theta}\frac {P(X|\theta)P(\theta)} {P(X)}\propto \mathop{argmax}_{\theta}P(X|\theta)P(\theta) argmaxθP(θX)=argmaxθP(X)P(Xθ)P(θ)argmaxθP(Xθ)P(θ)
在抛硬币的例子中,通常认为 θ = 0.5 \theta=0.5 θ=0.5的可能性最大,因此我们用均值为0.5,方差为0.1的高斯分布来描述 θ \theta θ的先验分布,当然也可以使用其它的分布来描述 θ \theta θ的先验分布。 θ \theta θ的先验分布为
1 2 π σ e − ( θ − μ ) 2 2 σ 2 = 1 10 2 π e − 50 ( θ − 0.5 ) 2 \frac {1} {\sqrt{2\pi}\sigma}e^{-\frac {(\theta-\mu)^2} {2\sigma^2}} = \frac {1} {10\sqrt{2\pi}}e^{-50(\theta-0.5)^2} 2π σ1e2σ2(θμ)2=102π 1e50(θ0.5)2
在最大似然估计中,已知似然函数为 P ( X ∣ θ ) = θ 6 ( 1 − θ ) 4 P(X|\theta)=\theta^6(1-\theta)^4 P(Xθ)=θ6(1θ)4,因此: P ( X ∣ θ ) P ( θ ) = θ 6 × ( 1 − θ ) 4 × 1 10 2 π × e − 50 ( θ − 0.5 ) 2 P(X|\theta)P(\theta)=\theta^6\times (1-\theta)^4\times \frac {1} {10\sqrt{2\pi}}\times e^{-50(\theta-0.5)^2} P(Xθ)P(θ)=θ6×(1θ)4×102π 1×e50(θ0.5)2转换为对数函数: l n ( P ( X ∣ θ ) P ( θ ) ) = l n ( θ 6 × ( 1 − θ ) 4 × 1 10 2 π × e − 50 ( θ − 0.5 ) 2 ) = 6 l n ( θ ) + 4 l n ( 1 − θ ) + l n ( 1 10 2 π ) − 50 ( θ − 0.5 ) 2 ln(P(X|\theta)P(\theta))=ln(\theta^6\times (1-\theta)^4 \times \frac {1} {10\sqrt{2\pi}}\times e^{-50(\theta-0.5)^2})=6ln(\theta)+4ln(1-\theta)+ln(\frac {1} {10\sqrt{2\pi}})-50(\theta-0.5)^2 ln(P(Xθ)P(θ))=ln(θ6×(1θ)4×102π 1×e50(θ0.5)2)=6ln(θ)+4ln(1θ)+ln(102π 1)50(θ0.5)2

l n ( P ( X ∣ θ ) P ( θ ) ) ′ = 0 ln(P(X|\theta)P(\theta))\prime=0 ln(P(Xθ)P(θ))=0,可得: 100 θ 3 − 150 θ 2 + 40 θ + 6 = 0 由 于 0 ≤ θ ≤ 1 100\theta^3-150\theta^2+40\theta+6=0由于0\le\theta\le1 100θ3150θ2+40θ+6=00θ1,解得: θ ^ ≈ 0.529 。 P ( X ∣ θ ) P ( θ ) \hat{\theta}\approx0.529。P(X|\theta)P(\theta) θ^0.529P(Xθ)P(θ)
最大后验概率估计的求解步骤:

  1. 确定参数的先验分布以及似然函数
  2. 确定参数的后验分布函数
  3. 将后验分布函数转换为对数函数
  4. 求对数函数的最大值(求导,解方程)

贝叶斯估计

贝叶斯估计比MAP更复杂,MLE和MAP最好求出的都是参数 P ( θ ) P(\theta) P(θ)的具体值,贝叶斯估计则是估计 P ( θ ) P(\theta) P(θ)的分布。
与MAP的不同之处就是,不能省略X的先验分布 P ( X ) P(X) P(X)
如果X为连续型随机变量,求 P ( X ) P(X) P(X)需要积分,一般情况下,积分不可求,需要选择合适的 θ \theta θ先验分布,一般取样本概率分布的共轭先验分布。
注:二项分布参数的共轭先验是Beta分布,多项式分布参数的共轭先验是Dirichlet分布,指数分布参数的共轭先验是Gamma分布,⾼斯分布均值的共轭先验是另⼀个⾼斯分布,泊松分布的共轭先验是Gamma分布。
然后求出 θ \theta θ的分布,根据 θ \theta θ后验分布的期望可以作为 θ \theta θ的值。
贝叶斯估计的求解步骤:

  1. 确定参数的似然函数
  2. 确定参数的先验分布,应是后验分布的共轭先验
  3. 确定参数的后验分布函数
  4. 根据贝叶斯公式求解参数的后验分布

非参数估计

有参数估计就是根据假设的模型,就参数估计概率密度。
没有参数,我们思路就可以从概率密度本身定义出发进行密度估计。
概率密度就是一个区间内的概率大小的问题。在标准高斯分布 中,在0附近区间的概率比其他区间的要大(发生的次数要多)。
因此我们把所有可能取值的区间等分成一个一个的小间隔,然后统计下间隔里面有多少个数据。这不就是熟悉的小学学过的直方图嘛!

直方图

这个就不多说了,数一数要求x的同组距中的点,除以总个数N和组距就是密度了。
具体了理论推导可以参见机器学习的经典Duda写的《模式分类》

Parzen窗(核密度估计)

假如我想估计x处的密度函数,我们就取一个小区间 ϵ \epsilon ϵ为[x-h,x+h],然后数一下这个 ϵ \epsilon ϵ区间内的出现次数,除以总个数N再除以2h(区间长度)。就得到某一点的密度。
那么很自然的问题来了,表示区间长度的h该如何选取?
给定样本容量N,h如果选的太大,肯定不符合h趋向于0的要求。h选的太小,那么用于估计f(x)的点实际上非常少。这也就是非参数估计里面的bias-variance tradeoff:如果h太大,用于计算的点很多,可以减小方差,但是方法本质要求h→0,bias可能会比较大;如果h太小,bais小了,但是用于计算的点太少,方差又很大。
所以理论上存在一个最小化mean square error的一个h。h的选取应该取决于N,当N越大的时候,我们可以用一个比较小的h,因为较大的N保证了即使比较小的h也足以保证区间内有足够多的点用于计算概率密度。因而,我们通常要求当N→∞,h→0。比如,在这里可以推导出,最优的h应该是N的-1/5次方乘以一个常数,也就是。对于正态分布而言,可以计算出c=1.05×标准差。 h称为窗宽(band width)
最初的Parzen窗是方窗函数(直观理解就是在h范围i内的权重为1,不在范围内的权重为0)在这里插入图片描述
机器学习——概率密度估计随笔_第1张图片
又叫核函数密度估计是因为窗函数可以变成各种核函数,比如高斯核(直观理解就是近大远小的加权平均)

[1]: https://www.cnblogs.com/simon6666/p/11009510.html [2]:https://blog.csdn.net/pragma_g/article/details/79333224
[3]:https://www.zhihu.com/question/27301358/answer/105267357

你可能感兴趣的:(机器学习)