PRML第一章读书小结
PRML第一章读书小结
第一章用例子出发,较为简单的引入了概率论、模型、决策、损失、信息论的问题,作为机器学习从业者,读PRML除了巩固已有基础,还受到了很多新的启发,下面将我收到的启发总结如下。
1. 多项式曲线拟合问题
多项式拟合问题作为全书的第一个引例,通过此说明了很多关键的概念。
给定一个训练集,训练集由\(x\)的N次观测组成,记作\(\mathbf{x} \equiv\left(x_{1}, \cdots, x_{N}\right)^{T}\),对应了相应的观测值\(t\),记作\(\mathbf{t} \equiv\left(t_{1}, \cdots, t_{N}\right)^{T}\)。它们拥有了一个内在的规律,这个规律是我们想要学习的,但是同时独立的观察会被随机噪声所干扰。我们的目标是利用这个训练集预测输入变量的新值,我们需要隐式地发现内在的函数\(sin(2\pi x)\),由于有限的观察和噪声的,发现这一函数(\(sin(2\pi x)\))很难。
概率论提供了一个框架,用精确的数学形式描述这种不确定性。决策论让我们能够根据合适的标准,利用这种概率的表示,进行最优的预测。
我们经常用多项式函数进行曲线拟合,即\(y(x, \boldsymbol{w})=w_{0}+w_{1} x+w_{2} x^{2}+\ldots+w_{M} x^{M}=\sum_{j=0}^{M} w_{j} x^{j}\),系数的值\(w\)通过拟合训练数据的方式确定,M作为多项式的阶数是模型对比(model comparison)、模型选择(model selection)的重要问题的一个特例。拟合时,我们通过最小化误差函数(error function)的方法实现,一个简单的最小化误差函数如下:
\[
E(\boldsymbol{w})=\frac{1}{2} \sum_{n=1}^{N}\left\{y\left(x_{n}, \boldsymbol{w}\right)-t_{n}\right\}^{2}
\]
我们发现过小的M拟合效果非常差,而高阶的M完美拟合了数据,但是曲线剧烈震荡,就表达函数\(sin(2\pi x)\)来说表现很差,这便是过拟合。
我们的目标是通过对新数据的预测实现良好的泛化性,于是我们考虑一个额外的训练集,生成方式和之前的训练集完全相同,但是包含的噪声不同,对于每个M的选择,我们可以利用误差函数,或者均方根误差(RMS)衡量:
\[
E_{R M S}=\sqrt{2 E\left(\boldsymbol{w}^{*}\right) / N}
\]
N保证了以相同的基础对比不同大小的数据集,平方根保证了\(E_{RMS}\)与目标变量\(t\)使用相同的规模和单位进行度量。
我们发现M的值适中时,均方根误差较小。M特别大的时候,测试误差很大(即过拟合)。进一步思考这个问题,我们发现,对于一个给定的模型复杂度(M给定),数据集规模增加,过拟合问题变得不那么严重,或者说,数据集规模越大,我们能用来拟合数据的模型就越复杂(灵活)。一个粗略的启发是:数据点的数量不应该小于模型的可调节参数的若干倍。我们根据待解决问题的复杂性来选择模型的复杂性,过拟合现象是极大似然的一个通用属性,而通过贝叶斯方法,过拟合问题可以被避免。
目前,我们使用正则化(regularization)技术控制过拟合, 即增加一个惩罚项,使得系数不会达到一个很大的值,如下例是加入平方惩罚项的误差函数:
\[
\tilde{E}(\boldsymbol{w})=\frac{1}{2} \sum_{n=1}^{N}\left\{y\left(x_{n}, \boldsymbol{w}\right)-t_{n}\right\}^{2}+\frac{\lambda}{2}\|\boldsymbol{w}\|^{2}
\]
正则化后的进行多项式拟合效果就能达到一个理想的值。
之后,作者在重新考察曲线拟合问题时,提到了最大化似然函数和最小化平方和误差函数,而最大化后验概率等价于最小化正则化的误差函数。
2. 概率论
文章首先通过简单的例子说明了概率论的基本思想,然后表示了概率论的两条基本规则:
加和规则sum rule: \(p(X)=\sum_{Y} p(X, Y)\)
乘积规则product rule: \(p(X, Y)=p(Y | X) p(X)\)
这两个规则是机器学习全部概率推导的基础。
根据乘积规则,我们得到贝叶斯定理:
\[
p(Y | X)=\frac{p(X | Y) p(Y)}{p(X)}=\frac{p(X | Y) p(Y)}{\sum_{Y} p(X | Y) p(Y)}
\]
其中,\(p(Y)\)称为先验概率(\(prior\)),即根据先验知识得出的关于变量\(Y\)的分布,\(p(X|Y)\)称为似然函数(\(likelihood\)),\(p(X)\)为变量\(X\)的概率,\(p(Y|X)\)称之为条件概率(给定变量\(X\)的情况下\(Y\)的概率,\(posterior\),后验概率)。
在连续空间中,一个实值变量\(x\)的概率落在区间\((x,x+\delta x)\)的概率由\(p(x)\delta x\)给出(\(\delta x →0\)),那么\(p(x)\)称为\(x\)的概率密度(probability density),\(x\)在区间\((a,b)\)的概率由下式给出:
\[
p(x \in(a, b))=\int_{a}^{b} p(x) \mathrm{d} x
\]
概率密度是处处大于0且归一化的。
离散变量的期望值(expectation)的定义为:
\[
\mathbb{E}[f]=\sum_{x} p(x) f(x)
\]
连续变量的期望值:
\[
\mathbb{E}[f]=\int p(x) f(x) \mathrm{d} x
\]
方差(variance)的定义:
\[
\operatorname{var}[f]=\mathbb{E}\left[(f(x)-\mathbb{E}[f(x)])^{2}\right]
\]
\[
=\mathbb{E}\left[f(x)^{2}\right]-\mathbb{E}[f(x)]^{2}
\]
它度量了\(f(x)\)在均值\(\mathbb{E}[f(x)]\)附近变化性的大小。
协方差(covariance)的定义:
\[
\operatorname{cov}[x, y]=\mathbb{E}_{x, y}[\{x-\mathbb{E}[x]\}\{y-\mathbb{E}[y]\}]
\]
\[
=\mathbb{E}_{x, y}[x y]-\mathbb{E}[x] \mathbb{E}[y]
\]
它表示在多大程度上\(x\)和\(y\)会共同变化,如果独立,协方差为0.
2.1 概率论之贝叶斯学派和频率学派
频率学派试图从自然的角度出发,试图直接为事件建模,即事件A在独立重复实验中发生的频率趋于极限P,那么这个极限就是事件的概率。
贝叶斯学派并不试图刻画事件本身,而是从观察者角度。贝叶斯学派并不认为事件本身是随机的,而是从观察者知识不完备这一出发点开始,构造一套贝叶斯概率论的框架下可以对不确定知识作出推断的方法。即不认为事件本身具有某种客观的随机性,而只是观察者不知道事件的结果。
频率学派广泛使用极大似然进行估计,使得似然函数\(p(\mathcal{D} | \boldsymbol{w})\)达到最大。贝叶斯学派广泛使用先验概率。
补充:根据知乎某大佬所言:频率学派和贝叶斯学派最大差别是产生在对参数空间的认知上。频率学派并不关心参数空间的所有细节,而相信数据都是在某个参数值下产生的,所以频率学派从“那个值最有可能是真实值”出发的。有了极大似然和置信区间。贝叶斯学派关心参数空间的每一个值,我们又没有上帝视角,怎么可能知道哪个值是真的,参数空间的每个值都有可能是真实模型使用的值,只是概率不同。
参考:https://www.zhihu.com/question/20587681
2.2 高斯分布
高斯分布算是模式识别里面的重点难点,在第一章里面简要介绍了其一些简单性质,总结如下:
一元高斯分布:
\[
\mathcal{N}\left(x | \mu, \sigma^{2}\right)=\frac{1}{\left(2 \pi \sigma^{2}\right)^{\frac{1}{2}}} \exp \left\{-\frac{1}{2 \sigma^{2}}(x-\mu)^{2}\right\}
\]
高斯分布满足恒大于0:
\[
\mathcal{N}\left(x | \mu, \sigma^{2}\right)>0
\]
高斯分布是归一化的:
\[
\int_{-\infty}^{\infty} \mathcal{N}\left(x | \mu, \sigma^{2}\right) \mathrm{d} x=1
\]
高斯分布的期望:
\[
\mathbb{E}[x]=\int_{-\infty}^{\infty} \mathcal{N}\left(x | \mu, \sigma^{2}\right) x \mathrm{d} x=\mu
\]
二阶矩:
\[
\mathbb{E}\left[x^{2}\right]=\int_{-\infty}^{\infty} \mathcal{N}\left(x | \mu, \sigma^{2}\right) x^{2} \mathrm{d} x=\mu^{2}+\sigma^{2}
\]
方差:
\[
\operatorname{var}[x]=\mathbb{E}\left[x^{2}\right]-\mathbb{E}[x]^{2}=\sigma^{2}
\]
分布的最大值被称为众数,高斯分布的众数与均值恰好相等。
假定一个观测数据集是独立从高斯分布中抽取(independent and identically distributed, i.i.d.),分布均值\(\mu\)和方差\(\sigma^2\)未知。数据集的概率:
\[
p\left(\mathbf{x} | \mu, \sigma^{2}\right)=\prod_{n=1}^{N} \mathcal{N}\left(x_{n} | \mu, \sigma^{2}\right)
\]
当我们把它看做参数的函数的时候,这就是高斯分布的似然函数。之后我们利用极大似然法寻找似然函数取得最大值的参数值。同时书中提到了:给定数据集下最大化概率的参数和给定参数的情况下最大化数据集出现的概率是相关的。
高斯分布的最大似然解:\(\mu_{M L}=\frac{1}{N} \sum_{n=1}^{N} x_{n}\),\(\sigma_{M L}^{2}=\frac{1}{N} \sum_{n=1}^{N}\left(x_{n}-\mu_{M L}\right)^{2}\)
高斯分布的极大似然估计对均值的估计是无偏的,对方差的估计是有偏的(低估)。
3.模型选择
在曲线拟合中,存在一个最优的多项式阶数。实际情况中,我们可能存在多个控制模型复杂度的参数,同时存在过拟合现象,所以我们需要一个验证集。而数据有限,所以需要交叉验证,S-1组进行训练,1组进行评估,运行S次。但是存在一个问题就是训练本身很耗时。
4. 维数灾难
随着维数的变高,我们需要指数级的训练数据。对于高维数据,高斯分布的概率质量集中在薄球壳上。这对我们的模型产生了极大地困难。
5. 决策论
- 最小化错误分类率。把每个点分在后验概率最大的类别中,那么我们分类错误的概率就会最小。
- 最小化期望损失。损失函数(代价函数)最小。
- 拒绝选项。对于低于阈值的概率,拒绝作出识别,拒绝决策带来的损失可以放在损失矩阵中。
6.信息论
随机变量的熵:\(H[x]=-\sum_{x} p(x) \log _{2} p(x)\)
熵是传输一个随机变量状态值所需的比特位的下界。
相对熵:\(\mathrm{KL}(p \| q)=-\int p(\boldsymbol{x}) \ln \left\{\frac{q(\boldsymbol{x})}{p(\boldsymbol{x})}\right\} \mathrm{d} \boldsymbol{x}\)
相对熵也被称之为KL散度,不对称。当且仅当\(p=q\)时,等号成立。
最小化KL散度等价于最大化似然函数(p为真实分布,q为给定分布)。
互信息:
\[
\begin{aligned}I[\boldsymbol{x}, \boldsymbol{y}] & \equiv \mathrm{KL}(p(\boldsymbol{x}, \boldsymbol{y}) \| p(\boldsymbol{x}) p(\boldsymbol{y})) \\&=-\iint p(\boldsymbol{x}, \boldsymbol{y}) \ln \left(\frac{p(\boldsymbol{x}) p(\boldsymbol{y})}{p(\boldsymbol{x}, \boldsymbol{y})}\right) \mathrm{d} \boldsymbol{x} \mathrm{d} \boldsymbol{y}\end{aligned}
\]
\(I[\boldsymbol{x}, \boldsymbol{y}] \geq 0\),当且仅当\(x\)\(y\)独立时等号成立。我们可以把互信息看成由于知道\(y\)值而造成的\(x\)的不确定性的减少。
7. 一些小的知识点:
- 严格凸函数:每条弦位于函数图像上方,即二阶导数为正
- 变分法
- 高维空间中,球的大部分体积都聚集在表面附近。
- 具体化一个连续变量需要大量比特位。
本文由飞剑客原创,如需转载,请联系私信联系知乎:@AndyChanCD
PRML第一章读书小结的更多相关文章
- PRML 第一章mindmap
PRML读了很长时间了,但是一直没有完全搞明白,很多概念都是不太清楚,于是从第一章开始重读.读的过程中会将这个内容结构用mindmap的形式记录下来,一是通过这种方式帮助自己理清楚思路,二是在之后可以 ...
- 《从Paxos到Zookeeper:分布式一致性原理与实践》第一章读书笔记
第一章主要介绍了计算机系统从集中式向分布式系统演变过程中面临的挑战,并简要介绍了ACID.CAP和BASE等经典分布式理论,主要包含以下内容: 集中式的特点 分布式的特点 分布式环境的各种问题 ACI ...
- 20135320赵瀚青LINUX第一章读书笔记
第一章-Linux内核简介 Unix的历史 依旧被认为是最强大和最优秀的系统 由一个失败的操作系统Multics中产生 被移植到PDP-11型机中 由其他组织进一步开发 重写了虚拟内存系统,最终官方版 ...
- 《Ansible自动化运维:技术与佳实践》第一章读书笔记
Ansible 架构及特点 第一章主要讲的是 Ansible 架构及特点,主要包含以下内容: Ansible 软件 Ansible 架构模式 Ansible 特性 Ansible 软件 Ansible ...
- 《Metasploit渗透测试魔鬼训练营》第一章读书笔记
第1章 魔鬼训练营--初识Metasploit 20135301 1.1 什么是渗透测试 1.1.1 渗透测试的起源与定义 如果大家对军事感兴趣,会知道各国军队每年都会组织一些军事演习来锻炼军队的攻防 ...
- Android深度探索--HAL与驱动开发----第一章读书笔记
1. Android的系统架构有四层,它的发展目前来说 是比较成熟的,流行于目前的市场.其架构包括四层(linux内核.C/C++代码库.Android SDK API.应用程序). 2. 驱动是直接 ...
- Linux第一章读书笔记
一.Linux历史 Unix强大的根本原因: 1.简洁,仅仅提供几百个系统调用并且有一个非常明确的设计目的 2.文件对待所有东西,通过一套相同的系统调用接口来进行对数据和设备的操作 3.由于用C语言编 ...
- 2013337朱荟潼 Linux第一章读书笔记——Linux内核简介
一.Unix历史 二.Linux足迹 类Linux系统.非商业化产品.用途广泛 三.操作系统和Linux内核简介 1.操作系统 (1)是指在整个最基本功能系统中负责完成最基本功能和系统管理的部分. ( ...
- [Android]《Android艺术开发探索》第一章读书笔记
1. 典型情况下生命周期分析 (1)一般情况下,当当前Activity从不可见重新变为可见状态时,onRestart方法就会被调用. (2)当用户打开新的Activity或者切换到桌面的时候,回调如下 ...
随机推荐
- android 数据存储----android短信发送器之文件的读写(手机+SD卡)
本文实践知识点有有三: 1.布局文件,android布局有相对布局,线性布局,绝对布局,表格布局,标签布局等.各个布局能够嵌套的.本文的布局文件就是线性布局的嵌套 <LinearLayout x ...
- 使用jQuery的 autocomplete 实现输入框 自动提示补全
参考网址: https://www.cnblogs.com/jinzhiming/p/6768402.html 插件下载地址: 链接:https://pan.baidu.com/s/1SpP3hixZ ...
- oracle函数 months_between(d1,d2)
[功能]:返回日期d1到日期d2之间的月数. [参数]:d1,d2 日期型 [返回]:数字 如果d1>d2,则返回正数 如果d1<d2,则返回负数 [示例] select sysdate, ...
- mysql数据库之单表查询
单标查询 单表查询语句 关键字执行的优先级 简单查询 where约束 group by 聚合函数 HAVING过滤 order by 查询排序 LIMIT限制查询的记录数 使用正则表达式查询 单表查询 ...
- hdu 3832 Earth Hour(最短路变形)
Earth Hour Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 125536/65536 K (Java/Others)Total ...
- E. Remainder Problem 分块
两个操作 1对x位置的a[x]+y 2对所有i=y(mod x)求a[i]的和 我们肯定不能n^2 跑,稳超时,但是我们可以这样分块考虑. 为什么n^2不行?因为在x比较小的时候,这个求和操作次数太多 ...
- Java变量以及内存分配
Java变量以及内存分配(非常重要) 堆栈 静态存储区域 一个由C/C++编译的程序占用的内存分为以下几个部分 1.栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其操 ...
- Libev源码分析01:Libev中的监视器结构(C结构体实现继承)
在Libev的源码中,用到了一种用C实现类似C++中继承的技巧,主要是用宏和结构体实现. 在Libev中,最关键的数据结构就是各种监视器,比如IO监视器,信号监视器等等.这些监视器的多数成员都是一样的 ...
- 洛谷P1449 后缀表达式 题解 栈
题目链接:https://www.luogu.org/problem/P1449 这道题目我们只需要开一个栈,每次读取到一个数的话就将这个数 push 进栈. 因为提供给我们的时候已经是一个后续序列了 ...
- JS开发常用工具函数 总结
js原生工具库 1.isStatic:检测数据是不是除了symbol外的原始数据 */ function isStatic(value) { return( typeof value === 'str ...