线性回归与贝叶斯推理——漫谈机器学习
1. 从观察出发——回归问题
在统计学中,我们认为一个变量是服从某种理想分布的,称为理想变量。而为了获得理想变量的值,我们需要去观察这个世界,并得到观察数据,称为观察变量。观察变量与理想变量之间的函数关系被称为观察模型。
设观察数据为xi∈Rpx_i \in R^pxi∈Rp,理想数据为yi∈Ry_i \in Ryi∈R,观察模型为线性模型
yi=xiTβ+ηi(1)y_i = x_i^T \beta + \eta_i \tag{1} yi=xiTβ+ηi(1)
其中β∈Rp\beta \in R^pβ∈Rp为参数向量,ηi∈R\eta_i \in Rηi∈R是独立同分布的随机变量。在应用中,ηi\eta_iηi代表观察噪声。且通常假定它服从正态(高斯)分布:
ηi∼N(0,σ2)(2)\eta_i \sim N(0, \sigma^2) \tag{2} ηi∼N(0,σ2)(2)
上面的观察模型可以引出两个问题:
- 已知理想和观察变量yi,xiy_i,x_iyi,xi,求模型参数β,σ\beta,\sigmaβ,σ。这被称为参数估计(Paremeter Estimation)问题。
- 已知观察变量xix_ixi和模型参数β,σ\beta,\sigmaβ,σ,求理想变量yiy_iyi。这被称为回归(Regression)问题。如果观察模型是线性的,例如(1),则称为线性回归问题。
回归的概念非常宽泛,它泛指研究一组变量和另一组变量之间的关系的统计分析方法。考虑变量和参数之间的对称性,不难发现,参数估计也是回归问题。
2. 参数估计——也是回归问题
在统计学习中,参数估计是一个学习样本所蕴含信息的过程。而学习的结果,就是观察模型(包括最优参数)。
2.1 从物理直观出发
先考虑模型(1)下如何求解参数β\betaβ。从物理直观理解,参数β\betaβ应该使得观察变量xix_ixi和yiy_iyi应当充分接近。写成数学表达,就是
minβ∑i∥yi−xiTβ∥22(3)\min_{\beta} \sum_i \Vert y_i - x_i^T \beta \Vert_2^2 \tag{3} βmini∑∥yi−xiTβ∥22(3)
写成矩阵形式,就是
minβ∥y−XTβ∥22(4)\min_{\beta} \Vert y - X^T \beta \Vert_2^2 \tag{4} βmin∥y−XTβ∥22(4)
其中矩阵X=(x1,⋯,xn)X = (x_1, \cdots, x_n)X=(x1,⋯,xn), 向量y=(y1,⋯,yn)Ty = (y_1, \cdots, y_n)^Ty=(y1,⋯,yn)T,而nnn为观察次数。当数据维度p≤np \leq np≤n并且观察数据xix_ixi线性无关(线性相关的xix_ixi没有信息量,可以直接去掉),这就是经典的线性最小二乘问题,有唯一解。它的解可以通过对β\betaβ求微分直接得到
β^=(XTX)−1XTy(5)\hat{\beta} = (X^T X)^{-1} X^T y \tag{5} β^=(XTX)−1XTy(5)
其中(XTX)−1XT(X^T X)^{-1} X^T(XTX)−1XT称为矩阵XXX的Moore-Penrose伪逆,记为X+X^+X+。
值得注意的是,当p>np > np>n,这是一个欠定问题。也就是说已知条件不足,没有唯一解。如果非要求解,那么必须引入新的数据假设,称为先验(Prior)。先验来自对数据统计规律的抽象。这种加入先验的过程有一个学术名称:正则化(Regularization)。这种问题在应用中非常常见,在本文最后还会出现。
2.2 从贝叶斯推理的角度看
上面是从物理直观出发求解参数估计问题,下面我们从贝叶斯推理的角度看同样的问题。
贝叶斯推理的核心是三个概念:
- 先验。对应前面的观察数据XXX(注意:不同于第1、3节先验的概念)。
- 条件概率。对应观察模型。
- 后验(posterior)。对应理想数据yyy。
贝叶斯三要素与前面说的观察变量、观察模型、理想变量是一致的。但是观察模型是概率密度函数(p.d.f.)的形式:
p(y∣X,β,σ2)∝(σ2)−n/2exp(−12σ2(y−Xβ)T(y−Xβ))(6)p( y | X,\beta,\sigma^2) \propto (\sigma^2)^{-n/2} \exp (-\frac{1}{2\sigma^2} (y - X\beta)^T (y -X\beta)) \tag{6} p(y∣X,β,σ2)∝(σ2)−n/2exp(−2σ21(y−Xβ)T(y−Xβ))(6)
这是一个略去了常数系数的多元高斯分布的概率密度函数。也就是说,贝叶斯理论假设观察变量XXX也是服从高斯分布的(这个假设来自大数定律和中心极限定理),并且这个高斯分布的均值向量为μ=Xβ\mu = X\betaμ=Xβ,方差矩阵为
Σ=[σ2σ2⋱σ2]=σ2I\Sigma = \left[\begin{matrix} \sigma^2 & & &\\ & \sigma^2 & &\\ & & &\ddots & \\ & & & & \sigma^2 \end{matrix}\right] = \sigma^2 I Σ=⎣⎡σ2σ2⋱σ2⎦⎤=σ2I
这个高斯分布概率密度函数的完整形式为
p(y∣X,β,σ2)=1(2π)n∣Σ∣exp(−12(x−μ)TΣ−1(x−μ))=1(2πσ2)nexp(−12σ2(x−μ)T(x−μ))∝(σ2)−n/2exp(−12σ2(y−Xβ)T(y−Xβ))(7)\begin{aligned} p( y | X,\beta,\sigma^2)& = \frac{1}{\sqrt{ (2\pi)^n \vert \Sigma \vert}} \exp (-\frac{1}{2} (x-\mu)^T \Sigma^{-1}(x-\mu )) \\ & = \frac{1}{\sqrt{ (2\pi \sigma^2)^n }} \exp (-\frac{1}{2\sigma^2} (x-\mu)^T (x-\mu)) \\ & \propto (\sigma^2)^{-n/2} \exp (-\frac{1}{2\sigma^2} (y - X\beta)^T (y -X\beta)) \end{aligned} \tag{7} p(y∣X,β,σ2)=(2π)n∣Σ∣1exp(−21(x−μ)TΣ−1(x−μ))=(2πσ2)n1exp(−2σ21(x−μ)T(x−μ))∝(σ2)−n/2exp(−2σ21(y−Xβ)T(y−Xβ))(7)
其中表达式(x−μ)TΣ−1(x−μ)\sqrt{(x-\mu)^T \Sigma^{-1}(x-\mu )}(x−μ)TΣ−1(x−μ)称为Mahalanobis距离,度量观察变量xxx与均值μ\muμ的相似性。
当X,yX, yX,y已知,通过求ppp的极值点,可以求解出最优参数β\betaβ和σ\sigmaσ:
maxβ,σp(β,σ2∣y,X)(8)\max_{\beta, \sigma} p( \beta,\sigma^2 | y, X) \tag{8} β,σmaxp(β,σ2∣y,X)(8)
它等价于
maxβ,σlogp(β,σ2∣y,X)(9)\max_{\beta, \sigma} \log p( \beta,\sigma^2 | y, X) \tag{9} β,σmaxlogp(β,σ2∣y,X)(9)
由于优化的是概率密度函数,这个过程称为期望最大化(Expectation Maximization, EM)。
现在我们仅考虑对β\betaβ的偏导,则(9)的最大化等价于一个最小化问题
minβ(x−μ)T(x−μ)(10)\min_{\beta} (x-\mu)^T (x-\mu) \tag{10} βmin(x−μ)T(x−μ)(10)
这个问题就是(3),也就是我们通过物理直观得到的最小化模型。这说明了从贝叶斯角度看来,最优参数估计模型与物理直观一致。
贝叶斯推理是回归分析的一般方法。在贝叶斯框架下,观察变量服从什么样的概率分布决定了观察模型。进而决定了回归分析的具体优化模型。
3. 观察模型的应用——还是回归问题
当我们学习好了参数β,σ\beta, \sigmaβ,σ,有了观察模型和观察变量XXX,对于理想变量yyy的计算还是回归问题。这时,从物理直观出发,我们可以得到yyy应当满足
miny∥y−Xβ∥22(11)\min_y \Vert y - X\beta \Vert_2^2 \tag{11} ymin∥y−Xβ∥22(11)
从贝叶斯推理的角度出发,仿照上一节参数估计的方法,我们最终会得到同样的优化模型。
我们会发现一个非常有意思的结论:
- 参数估计是统计学习中从数据学习知识的过程。这种知识我们通常又称为先验。注意这里的“先验”与贝叶斯推理中的“先验”不一样。那个先验是指观察数据。而这里的先验是指蕴含在观察数据和观察模型中的知识。
- 观察模型应用是应用观察数据、观察模型和先验恢复理想数据的过程。
- 参数估计和观察模型应用的数学本质竟然是一样的——回归。
从数据学习模型,用模型恢复数据。这就是统计学习,或者机器学习,要干的两件事。这两件事,对应着我们开始提出了两个问题:参数估计和变量回归。
4. 正则化逆问题
仔细看(11),不禁让人想,这有什么好算的呢?y=Xβy = X \betay=Xβ多么明显。这体现了观察数据XXX对理想数据yyy的约束。可是仔细回过头去看观察模型(1),你会发现少了一项:噪声η\etaη。在“观察”过程中,噪声的出现不可避免,因此y=Xβy = X \betay=Xβ不能得到最优的解。这也表明,用标准的高斯概率密度函数建模不能很好解决这个问题。
我们在求解过程中,还必须考虑yyy本身有什么性质,并体现在模型中。也就是在优化模型中添加一个先验函数p(y)p(y)p(y),从而
miny∥y−Xβ∥22+p(y)(12)\min_y \Vert y - X\beta \Vert_2^2 + p(y) \tag{12} ymin∥y−Xβ∥22+p(y)(12)
新的优化模型:数据项+先验函数p(y)p(y)p(y)对应着新的概率密度函数,不难推出,它是在高斯概率密度的指数上修改而来。
我们可以用这个新的概率密度函数去做参数估计,从而得到p(y)p(y)p(y)的具体表达式。当然,p(y)p(y)p(y)也可以由统计经验来人工设计。但有一个结论是不变的:从贝叶斯的角度看,任何数据项+先验函数都对应着一个概率密度函数。
而优化模型的改进过程也就是前面提到过的正则化;问题(12)称为模型(1)的正则化逆问题。
参考文献
[1] 维基百科——贝叶斯线性回归
[2] 维基百科——多元正态分布
线性回归与贝叶斯推理——漫谈机器学习相关推荐
- 贝叶斯推理和机器学习中文版_机器学习如何使AI忘记知识表示和推理
贝叶斯推理和机器学习中文版 In my early days working as a data scientist in AI, I was taught one thing above all: ...
- 漫谈机器学习的【泛化能力】【模型能力】【调参技巧】_CodingPark编程公园
漫谈机器学习 完成第一幅初稿 完成终稿 1945年12月5日 1946年1月17日 前言 上面的画就是20世纪最著名的抽象派画家毕加索于1946年1月17日完稿的画作--公牛,寥寥几笔,勾勒出公牛的& ...
- 机器学习经典-贝叶斯推理与机器学习
我们生活在一个数据量巨大,规模不断增加的世界中.这些数据来自科学(生物信息学,天文学,物理学,环境监测)和商业(客户数据库,金融交易,引擎监测,语音识别,监视,搜索)的许多不同来源.因此,掌握有关如何 ...
- 1.2 线性回归与梯度下降-机器学习笔记-斯坦福吴恩达教授
线性回归 首先,我们明确几个常用的数学符号: 特征(feature):xix_ixi , 比如,房屋的面积,卧室数量都算房屋的特征 特征向量(输入):xxx ,一套房屋的信息就算一个特征向量,特征向 ...
- 逻辑回归和线性回归的区别_机器学习简介之基础理论- 线性回归、逻辑回归、神经网络...
本文主要介绍一些机器学习的基础概念和推导过程,并基于这些基础概念,快速地了解当下最热技术AI的核心基础-神经网络. 主要分为三大部分:线性回归,逻辑回归,神经网络. 首先看下机器学习的定义及常用的分类 ...
- python线性回归算法简介_Python机器学习(二):线性回归算法
机器学习研究的问题分为分类问题和回归问题.分类问题很好理解,而回归问题就是找到一条曲线,可以最大程度地拟合样本特征和样本输出标记之间的关系.当给算法一个输入时,这条曲线可以计算出相应可能的输出.回归算 ...
- 机器学习线性回归学习心得_机器学习中的线性回归
机器学习线性回归学习心得 机器学习中的线性回归 (Linear Regression in Machine Learning) There are two types of supervised ma ...
- 机器学习 线性回归算法_探索机器学习算法简单线性回归
机器学习 线性回归算法 As we dive into the world of Machine Learning and Data Science, one of the easiest and f ...
- 线性回归-预测房价(机器学习)
机器学习-线性回归-预测房价 导入我们需要的模块包 import pandas as pd import numpy as np import matplotlib as plt import sea ...
最新文章
- CentOS 下 rpm包与 yum 安装与卸载
- JavaScript 仿LightBox内容显示效果
- linux环境下安装多个任意版本的python环境
- logback-spring.xml 文件路径 相对路径_Web前端必会知识点:VUE路径问题解析-Web前端教程...
- oracle 分组 top10 sql,oracle sql 合龙 分组 聚合函数
- 嵌入式软件设计第10次实验报告
- Linux 增加swap空间大小
- HGE引擎写的俄罗斯方块程序(附vc源码)[r]
- 路由重分布 rip,eigrp,和ospf
- 基于16QAM调制的OFDM系统仿真实现
- nodejs、express下载和配置
- python爬携程_Python crawler:对携程的航班数据进行抓取,python,爬虫,爬取
- PC版Android系统声卡驱动,android下调试声卡驱动之概述
- 0068 terra vista 4.0安装包及破解教程
- 基于yolov3的水下目标检测(百度飞浆实现)
- 谜底是计算机病毒的谜语,有关于安全的谜语及谜底答案解析|谜底是粽子的谜语...
- BUPT Summer Journey #test11 A
- Android源码层修改默认时区
- Arduino宿舍门禁,实现刷卡(NFC)开门
- 代数几何:Affine Variety 和 Groebner Basis