PRML 学习笔记(2)
2016-03-29 21:12
183 查看
2 Probability Distribution
概述
本章讨论的内容包括对限定观察数据集中的随机变量的概率分布进行建模,即密度估计(density estimation),这里假设所有的数据点都是独立同分布的。对于有限的观测数据集来说,有无数种可能的概率分布和其对应。关键就是要找到一种合适的分布,这就是模型选择问题,也是模式识别中的中心问题。接下来要讨论的是离散随机变量的二项式分布和多项式分布以及连续型随机变量的高斯分布,这些都是参数分布的具体例子。之所以这么叫,是因为它们被一小部分可调整的参数控制着。要想把这些模型应用到密度估计的问题中,我们需要在被观测数据集给定的情况下,通过一个程序决定这些参数合适的值。从频率派的观点来看,就是要优化一些标准,比如似然函数。从贝叶斯的观点来看,则要找到相对观测数据的后验概率分布。在这里,共轭先验扮演了重要角色,极大地简化了贝叶斯分析。
使用参数方法的一大缺陷就是其为分布假定了一个具体的函数形式,对于特定的应用来说可能不适合。另一种方法则是无参数密度估计,其分布的形式依赖于数据集的大小,其中也有参数,但是其控制的是模型的复杂度而不是分布的形式。
2.1 Binary Variables
伯努利分布:相应的期望与方差为:
我们目前假设有一个关于xx的观测数据集
我们能够建立关于μμ的似然函数,其中观测数据均独立于p(x|μ)p(x|μ),因此有:
从频率派的观点出发,我们可以通过最大化似然函数或者最大化其对数来估计μμ的值,即
对其求关于μμ的导数,令其为零,得到
其中NN观察数据的次数
上式相当于求平均值,如果假设x=1x=1的结果出现了mm次,那么有
但是最大化似然函数存在一个问题,当我们抛了三次硬币,三次均朝正面时(假设x=1x=1表示正面),就会得到
,这也是过拟合的一个特例。
我们对NN次抛硬币中出现mm次正面朝上的情况继续分析就可以得到二项分布:
其中
进而我们可以求出二项分布的期望和方差:
2.1.1 The beta distribution
正如上文提到的针对小数据集,使用最大化似然函数会出现过拟合结果,为了解决这个问题,我们介绍先验分布。我们在这里选择了和似然函数有相似结构形式的先验分布——beta分布:
其中
同时有
这里a,ba,b被称为超参数,用来控制参数μμ的分布
下图是对于不同的a,ba,b相应的μμ的分布
现在我们可以将betabeta先验与二项式似然函数相乘归一化得到后验分布
我们可以看到上式拥有和先验分布一样的函数形式,这体现了共轭性质。
最终我们通过归一化得到了后验分布:
我们可以发现,从先验到后验,正面朝上的次数在a−1a-1上增加了mm,同样反面朝上的次数在b−1b-1上增加了ll。这里对超参数a,ba,b有一个相对简单的解释,在先验中的a,ba,b作为x=1,x=0x=1,x=0时观测有效数字,且a,ba,b可以不是整数。
当我们随后再次观测额外的数据时,之前的后验分布就变成了先验分布,在加入新的观测数据之后又得到了新的后验分布。
下图是一个简单示例:
这种按次序的方式独立于先验与似然函数的选择,只依赖于独立同分布的数据假设。这种方法一次利用一小部分数据,在下一次观测数据到来之前丢掉它们,可以用在实时学习脚本中。
如果我们的目标是预测下一次抛硬币实验的结果的话,那我们必须要在以观测到的数据集DD上估计xx的预测分布,即:
得到
我们可以发现,当m,lm,l趋于无穷时,上式的结果就会变成
对于有限的数据集来说,μμ值介于先验与最大似然估计之间。
我们也可以从上边Figure2.2中看到,随着观测次数的增加,后验分布变得越来越尖锐。
事实上,当我们观察的数据越来越多时,后验分布的不确定性将逐步消失。
2.2 Multinominal Variables
使用KK维向量表示KK件事情中的一种可能,例如K=6K=6时,
,有
上式满足
其中
相应的有
其中
表示
被观察到的次数
为了找到关于
的最大似然函数值,我们来最大化其对数
这里使用拉格朗日乘数λλ来最大化
对上式求关于
的导数并取零,得到
得到
进而我们可以得到多项式分布:
其中
2.2.1 The Dirichlet distribution
对于多项式分布中的一族参数我们可以得到共轭先验的形式
这里
是先验分布的参数
由于
所以
的空间压缩到了K−1K-1维的simplex(这个单词有点不会翻-_-#)
下图为K=3K=3时候的情况
归一化后的狄利克雷分布为:
其中
对于
去不同的值时候,相应的变化为:
先验与似然相乘就得到了后验:
其中
而且可以发现beta分布是K=2K=2时的Dirichlet分布
相关文章推荐
- 20159217《网络攻防实践》第五周学习总结
- 复利计算-单元测试
- 3.26课堂笔记——linux基础入门
- 【剑指 offer】—— 为公司员工的年龄排序
- javascript 几种常见设计模式
- Swift 2.0 裁剪字符串以及Int和String转化
- 深入理解 Java 虚拟机-多态性实现机制——静态分派与动态分派
- 【C#】日期转换函数<机房重构>
- JQ中的动画
- IP地址格式转换(htonl、ntohl;inet_addr、inet_ntoa)
- leetcode :315. Count of Smaller Numbers After Self :归并排序应用
- 最简单的手风琴效果
- 作业4:结对编程—词频统计(二)
- UML类图关系
- Activity的启动模式
- 输入数据得平均值
- 1.5算法入门之兔子产仔问题
- 纳税服务投诉受理模块中投诉与回复中的级联查询等细节
- 本机上搭建虚拟机的网络玩法
- Android---加载图片 解决图片过大导致的内存溢出问题