PRML Chapter2
参考文献:PRML2
参数方法和非参数方法
机器学习上的方法分为参数方法(根据先验知识假定模型服从某种分布,然后利用训练集估计出模型参数,也就弄清楚了整个模型,例如感知器)和非参数方法(基于记忆训练集,然后根据训练集预测,例如kNN)。
参数方法
参数方法根据先验知识假定模型服从某种分布,然后利用训练集估计出模型参数,也就弄清楚了整个模型。
那么,估计模型参数到底是一个客观存在的参数还是一个概率密度分布,这个分歧就引出了贝叶斯学派和非贝叶斯学派的不同之处。
非贝叶斯学派:
非贝叶斯学派认为先验知识是指一组数据服从某个分布,那么分布的参数是客观存在的,可以利用数据做出估计,进而获得后验估计。典型代表方法是最大似然估计。贝叶斯学派:
贝叶斯学派认为,先验知识是数据服从某个分布和这个分布参数的先验概率密度,模型的参数本来就是一个概率分布,数据集可以获得参数的后验概率密度,进而获得后验估计。这种方法称为贝叶斯估计。
参数估计的泛化误差
泛化误差由方差和偏倚组成。欠训练时,方差小,偏倚大,欠拟合。过训练时,方差大,偏倚小,过拟合。
参数方法和非参数方法
Conjugate prior-共轭先验
假设有这样几类概率:
p(θ)(先验分布)
p(θ|X)(后验分布)
p(X)
p(X|θ)(似然函数)
它们之间的关系可以通过贝叶斯公式进行连接: 后验分布 = 似然函数* 先验分布/ P(X)(贝叶斯公式)。之所以采用共轭先验的原因是可以使得先验分布和后验分布的形式相同,这样一方面合符人的直观(它们应该是相同形式的);另外一方面是可以形成一个先验链,即现在的后验分布可以作为下一次计算的先验分布,如果形式相同就可以形成一个链条。为了使得先验分布和后验分布的形式相同,我们定义:如果先验分布和似然函数可以使得先验分布和后验分布有相同的形式,那么就称先验分布与似然函数是共轭的。所以共轭是指:先验分布和似然函数共轭。
- 常见的先验分布及其共轭分布:

- 补充知识:


- 符号:
∝表示正比于,表示符号左侧的量与右侧的量成正比,∞表示无穷大,∽表示相似于
多元高斯分布(也即多元正态分布)
- 正定:
若对于任意的非零向量X,恒有f(x1,x2,...,xn)=XTAX>0,则称二次型f为正定二次型,对应矩阵A为正定矩阵。
正定矩阵的充要条件:
矩阵A正定<=>A=DTD,其中D是可逆矩阵(非奇异矩阵)
<=>A的全部特征值大于0
<=>A的顺序主子式大于0
多元正态分布
协方差矩阵
指数分布族exponential family
指数分布族定义:

其中pdf指probability density function, pmf指probability mass function,都是概率密度函数。其中θ叫做自然变量(natural parameters),Φ(x)叫做充分统计量,Z(θ)是归一化因子。之所以使用以e为底的指数形式,是因为e可以把乘法运算转换为加法运算。指数分布族有以下性质:
- 伯努利分布,高斯分布,均匀分布,gamma分布,t分布都可以转化为exponential family的形式。
- 在一定条件下,exponential family是唯一具有充分统计量的分布家族。(一定条件指的是the support of the distribution not be dependent on the parameter)
- exponential family 是唯一具有共轭先验的分布。
- exponential family是在给定限制条件下,做出最少假设的分布家族(所以最大熵模型是exponential family形式!解释通了!)
- exponential family是通用线性模型(generalized linear models)的核心。(可以解释logistic回归中的映射函数为f(x)=1/(1+ex))
- exponential family是variational inference的核心。
文献1:指数分布族
文献2:指数分布族
文献3:指数分布族
无信息先验
在概率推理过程中,我们经常需要先验概率分布。然而很多时候,这样的先验知识并不容易获取,在这种情况下,无信息先验被提出,那么什么是无信息先验呢? 顾名思义,无信息先验是在没有任何信息的情况下给
出的一个先验概率分布,常用P(λ)=C(C是常数)表示。理解无信息先验并不困难,在没有任务信息的情况,认为各个点的概率或概率密度相等是合理的,我们没有理由让任意一点的概率大于其它点的概率。无信息先验试图给出一个对后验概率影响尽可能少的分布,一切让数据说话。
详细的书中例子:
PRML笔记-无信息先验
无信息先验
Nonparameter method
- 核密度估计
- kNN
参见:非参数方法
PRML Chapter2的更多相关文章
- PRML
PRML 学习之 第一章 介绍 Introduction #欢迎共同学习和讨论,由于本文将不断修改,谢绝转载 模式识别问题具有重要且久远的历史.比如,16世纪开普勒发现行星运动定律,又如20世纪出发现 ...
- PRML读书会第十四章 Combining Models(committees,Boosting,AdaBoost,决策树,条件混合模型)
主讲人 网神 (新浪微博: @豆角茄子麻酱凉面) 网神(66707180) 18:57:18 大家好,今天我们讲一下第14章combining models,这一章是联合模型,通过将多个模型以某种形式 ...
- PRML读书会第十三章 Sequential Data(Hidden Markov Models,HMM)
主讲人 张巍 (新浪微博: @张巍_ISCAS) 软件所-张巍<zh3f@qq.com> 19:01:27 我们开始吧,十三章是关于序列数据,现实中很多数据是有前后关系的,例如语音或者DN ...
- PRML读书会第十二章 Continuous Latent Variables(PCA,Principal Component Analysis,PPCA,核PCA,Autoencoder,非线性流形)
主讲人 戴玮 (新浪微博: @戴玮_CASIA) Wilbur_中博(1954123) 20:00:49 我今天讲PRML的第十二章,连续隐变量.既然有连续隐变量,一定也有离散隐变量,那么离散隐变量是 ...
- PRML读书会第十一章 Sampling Methods(MCMC, Markov Chain Monte Carlo,细致平稳条件,Metropolis-Hastings,Gibbs Sampling,Slice Sampling,Hamiltonian MCMC)
主讲人 网络上的尼采 (新浪微博: @Nietzsche_复杂网络机器学习) 网络上的尼采(813394698) 9:05:00 今天的主要内容:Markov Chain Monte Carlo,M ...
- PRML读书会第十章 Approximate Inference(近似推断,变分推断,KL散度,平均场, Mean Field )
主讲人 戴玮 (新浪微博: @戴玮_CASIA) Wilbur_中博(1954123) 20:02:04 我们在前面看到,概率推断的核心任务就是计算某分布下的某个函数的期望.或者计算边缘概率分布.条件 ...
- PRML读书会第九章 Mixture Models and EM(Kmeans,混合高斯模型,Expectation Maximization)
主讲人 网络上的尼采 (新浪微博: @Nietzsche_复杂网络机器学习) 网络上的尼采(813394698) 9:10:56 今天的主要内容有k-means.混合高斯模型. EM算法.对于k-me ...
- PRML读书会第八章 Graphical Models(贝叶斯网络,马尔科夫随机场)
主讲人 网神 (新浪微博: @豆角茄子麻酱凉面) 网神(66707180) 18:52:10 今天的内容主要是: 1.贝叶斯网络和马尔科夫随机场的概念,联合概率分解,条件独立表示:2.图的概率推断in ...
- PRML读书会第七章 Sparse Kernel Machines(支持向量机, support vector machine ,KKT条件,RVM)
主讲人 网神 (新浪微博: @豆角茄子麻酱凉面) 网神(66707180) 18:59:22 大家好,今天一起交流下PRML第7章.第六章核函数里提到,有一类机器学习算法,不是对参数做点估计或求其分 ...
随机推荐
- erlang的Socket参数含义
http://blog.csdn.net/pkutao/article/details/8572216 {ok, Listen} = gen_tcp:listen(?defPort, [binary, ...
- python 多线程拷贝单个文件
# -*- coding: utf-8 -*- # @author: Tele # @Time : 2019/04/04 下午 12:25 # 多线程方式拷贝单个文件 import threading ...
- android studio的模拟器waiting for target device to come online原因
android studio的模拟器一直waiting for target device to come online,demo也运行不上去 如图所示: 你很可能运行的android 6.0 (AP ...
- ADO.NET- 中批量添加数据的几种实现方法比较
在.Net中经常会遇到批量添加数据,如将Excel中的数据导入数据库,直接在DataGridView控件中添加数据再保存到数据库等等. 方法一:一条一条循环添加 通常我们的第一反应是采用for或for ...
- vs中添加MySql实体集流程
默认情况下只有下图: 首先需要下载mysql为vs和ef提供的驱动(可以去官网下载对应的版本) 然后打开vs开始添加实体类 首先在NuGet中安装MySql.Data和MySql.Data.Entit ...
- 在WPF窗体中重绘
原文:在WPF窗体中重绘 写这篇主要是为了验证任何元素自身都具备绘图功能. 在默认Window中重写OnRender方法 protected override void OnRender(Draw ...
- Android中SQLite数据库操作(2)——SQLiteOpenHelper类
如果开发者对SQL语法不熟悉,我要告诉你一个好消息,Android提供了一个SQLiteOpenHelper类. 在实际项目中很少使用SQLiteDatabase的方法(请看:http://blog. ...
- Java并发编程:synchronized和Lock
转自 : http://www.tuicool.com/articles/qYFzUjf
- Windows10内置ubuntu子系统安装后中文环境设置
原文:Windows10内置ubuntu子系统安装后中文环境设置 第一开启相关设置,使用小娜(Win键+c)直接查找关键字打开更快. ①设置→查找"针对开发人员"→开发人员模式 ...
- linux 下Eclipse for C/C++的不常见设置
设置1:build project的时候,让编译器支持 三字母词. 项目文件右击--> Properties-->C/C++ Build--> Settings 如图设置: 再 C ...