高斯分布
我们定义一个将输入x映射到输出y的函数,在统计学中,我们使用随机模型来定义这种关系的概率分布。例如,一个3.8 gpa的学生可以获得平均$60k的薪水,方差(σ2)为$10k。
p(salary=x|gpa=3.8)(一个均值为$60k,方差为$10k的高斯分布)
概率密度函数(probability density function,pdf)
在下面的图表中,p(x=x) 服从高斯分布:
在高斯分布中,68%的数据在距离μ 1σ之内,95%的数据在距离μ 2σ之内。我们可以根据概率分布来进行数据采样。从分布中采样数据的符号表示为:
在现实生活中,许多数据都遵循高斯分布。
例如,让我们建立旧金山居民身高和体重之间的关系模型。我们从1000名成年居民中收集信息,并将数据绘制如下图所示,每个红点代表1个人:
对应的三维概率密度函数(pdf)如下图所示:
让我们首先将模型推广到多元高斯分布,即概率密度函数取决于多个变量。
一个多元向量:
多元高斯分布的概率密度函数定义如下:
其中,σ表示协方差矩阵:
让我们回到身高和体重的例子中,来说明这个公式的应用。
从我们的训练数据中,我们计算得到=190,=70:
协方差矩阵σ是用来做什么的?协方差矩阵中的每个元素都代表着两个变量之间的关系。例如,表示身高()与体重()的相关性。如果体重随身高的增加而增加,那么为正值。
让我们详细介绍如何计算上述的。为了简化,我们假设我们只有两个数据点(150磅,66英寸)和(200磅,72英寸)。
在计算了所有1000个数据之后,协方差矩阵σ的值如下所示:
协方差矩阵σ中的正元素值表示两个变量呈正相关关系。不出所料,是正值,因为体重随身高的增加而增加。如果两个变量彼此独立,则值应为0,如下所示:
计算的概率
计算在给定的条件下的概率:
其中,φ是累积分布函数(cumulative distribution function,cdf):
我们将协方差变量σ重写为以下形式:
代码
我们从一个二元高斯分布中采样数据。从协方差矩阵中,我们可以看出x和y呈正相关关系,因为和是正的。
mean = [0, 2]cov = [[1, 2], [3, 1]]x, y = np.random.multivariate_normal(mean, cov, 5000).tplt.plot(x, y, 'x')plt.axis('equal')plt.show()
下面绘制(y,x)的概率分布图:
from scipy.stats import multivariate_normalx, y = np.mgrid[-1:1:.01, -1:1:.01] # x (200, 200) y (200, 200)pos = np.empty(x.shape + (2,))pos[:, :, 0] = x; pos[:, :, 1] = y # pos (200, 200, 2)mean = [-0.4, -0.3]cov = [[2.1, 0.2], [0.4, 0.5]]rv = multivariate_normal(mean, cov)p = rv.pdf(pos) # (200, 200)plt.contourf(x, y, p)plt.show()
多元高斯分布定理
给定一个高斯分布:
后验条件概率的计算公式如下所示。这个公式在后面的高斯过程中非常重要。例如,如果我们有1000个毕业生的gpa和薪水样本,我们可以使用这个定理通过1000个训练数据点创建一个高斯分布模型来预测给定gpa情况下的薪水p(salary|gpa),
这里不详细介绍公式的推理过程。但是假设x服从高斯分布。和之间的相关性由μ和σ定义。因此,给定的值,我们可以计算出的概率分布:p(|)。
例如,我们知道旧金山居民的身高服从高斯分布。在下一节中,我们将应用高斯过程来预测在给定身高的情况下体重的值。
高斯过程
高斯过程(gaussian process,gp)的直观理解很简单。如果两个点具有相似的输入,那么它们的输出也应该相似。对于有两个数据点的情况,如果一个数据点比另一个数据点更接近已知的训练数据点,那么它的预测结果会更加可靠。
例如,如果一个gpa为3.5的学生一年挣$70k,那么另一个gpa为3.45的学生应该会挣类似的薪水。在高斯过程中,我们使用训练数据集来构建高斯分布,以进行预测。对于每个预测,我们输出一个均值和一个σ。例如,使用高斯过程,我们可以预测一个gpa为3.3的学生可以挣到μ=$65k,σ=$5k,而一个gpa为2.5的学生可以挣到μ=$50k和σ=$15k。σ衡量了我们预测的不确定性。因为3.3 gpa更接近于我们的3.5 gpa训练数据,所以我们对于3.3 gpa学生的薪水预测比2.5 gpa学生更有信心。
在高斯过程中,我们不是计算σ,而是计算k来衡量数据点和之间的相似性。
其中,核函数k是一个度量两个数据点相似性的函数(值为1表示相同)。有许多可能的核函数,我们将使用指数平方距离作为核函数。
注意:上面的表示数据点的体重。表示数据点1。
有了所有的训练数据,我们可以创建一个高斯模型:
让我们再次用两个训练数据点(150磅,66英寸)和(200磅,72英寸)来演示。这里我们正在为我们的训练数据构建一个高斯模型。
其中175是体重的平均值,衡量了数据点和之间身高的相似性。上面的符号表示我们可以在体重上采样一个向量f。
从由数据点(150,66)和(200,72)建模的中进行采样。
现在假设我们要预测输入,时的,。模型变为:
让我们再次理解一下这是什么意思。例如,我们有一个包含4个人身高的向量:
我们可以使用来采样这些人可能的体重:
我们知道前两个值来自训练数据,我们尝试计算出和的分布(它们的μ和σ是多少)。现在,我们不仅可以预测2个值,还可以对一系列输入值进行预测。
然后使用来采样向量:
例如,我们从中采样的第一个输出样本是:
如何DIY一个带遥控器的红外 (IR) 遥控车
荣耀9最新消息:荣耀9发布会直播图竟然是小米手机6
一站式定制芯片及IP供应商灿芯半导体加入UCIe产业联盟
蓬佩奥威胁下架不可信任中国App_意阻止华为预装美国App
宁德时代公开多项电池专利
机器学习笔记之高斯过程(上)
随着汽车智能化发展 智能车灯已然成为大势所趋
微软收购AI创企Bonsai 将与Azure云服务相结合
区块链如何影响身份管理的自我主权
什么决定了压电传感器的输出信号?
电流传感器有哪些型号
rfid天线有哪一些重要参数
智能继电器模块的作用与安装
等效电阻是什么意思
新一代印制电路板的核心技术是什么?
!!销售/收购! HP8657B HP8657B 信号源 H
RT9173D应用电路及参数资料
讯飞扫描词典笔获ZOL年度推荐产品奖:英语学习烦恼,一笔横扫
Home键消失,面容ID将至_iPad Pro该如何进行人机交互
GD32开发实战指南(基础篇) 第4章 GD32启动流程详解(Keil版)