教育 企业 重庆网站建设,微分销系统怎么做,云南省建设系统网站,建站平台在线提交表格作者#xff1a;贾恩东
本文约2700字#xff0c;建议阅读9分钟
本文将使用通俗易懂的语言引导读者入门高斯过程。 高斯过程#xff08;Gaussian Process#xff09;是机器学习中一个相当基础的概念#xff0c;本文中笔者将使用通俗的语言让读者入门高斯过程。 高斯过程贾恩东
本文约2700字建议阅读9分钟
本文将使用通俗易懂的语言引导读者入门高斯过程。 高斯过程Gaussian Process是机器学习中一个相当基础的概念本文中笔者将使用通俗的语言让读者入门高斯过程。 高斯过程顾名思义包含了高斯分布Gaussian Distribution和随机过程Stochastic Process。简单来说高斯过程是一个无限维的高斯分布。 无限维对于未接触过随机过程的读者们来说可能还是难以理解我们可以先从一维的高斯分布说起。 一维的高斯分布即对于一个随机变量 X 来说如果其概率密度函数(probability density function, PDF)如下形式 使用Normal 符号简单记为 那么这个一维变量X 就服从一维高斯分布这个高斯分布里有两个参数均值 和方差。 我们在下图中展示了10个关于 X的采样图中纵轴表示采样的值横轴我们全部放在1的位置表示这是从同一个变量中采样得到的。 import numpy as npimport matplotlib.pyplot as plt
n 1 # 随机变量的维度n
m 10 # 做了m次采样
# 这里简单假设所有维度是独立的# 且每个维度上的均值为0标准差为1# 所以协方差矩阵是一个单位矩阵mean np.zeros(n)
cov np.eye(n)
# 得到随机变量的采样值
f_random np.random.multivariate_normal(mean, cov, m).T
# 把不同维度的值分别指定到对应的横轴上去
Xshow np.linspace(1, n, n).reshape(-1,1)
# 开始绘图
plt.figure(figsize(12,8))
plt.plot(Xshow, f_random, x, linewidth1, markersize5, markeredgewidth2)
plt.show() 图1 多维的高斯分布或者说多元高斯分布multivariate gaussian distribution则是对于一维高斯分布的一个扩展。对于N维变量 X 来说它本身是一个N维向量因此它的参数不仅包括了每一个维度上的均值还包括了每两个维度上的协方差。 这里为了示意我们先简单画一个二元高斯分布的采样过程而且我们先简单将这两个维度认为是独立的即不同的维度协方差为0。如下图 n 2 # 随机变量的维度n
m 10 # 做了m次采样
# 这里简单假设所有维度是独立的# 且每个维度上的均值为0标准差为1# 所以协方差矩阵是一个单位矩阵
mean np.zeros(n)
cov np.eye(n)
# 得到随机变量的采样值
f_random np.random.multivariate_normal(mean, cov, m).T
# 把不同维度的值分别指定到对应的横轴上去
Xshow np.linspace(1, n, n).reshape(-1,1)
# 开始绘图
plt.figure(figsize(12,8))
plt.plot(Xshow, f_random, x, linewidth1, markersize5, markeredgewidth2)
plt.show() 如果进一步增加采样点并且将概率直观的用直方图标记出来大概是如下的感受。 如果我们继续增加维度N到34...看起来依然平平无奇我们只是需要更多的均值和方差的参数需要事先指定先验。这里我们先不急拓展到无限维度我们先想像这样一个场景。 班级里有10个学生每个学生都参加了同一场考试。这些学生在同一场考试的得分刻画了这场考试的试卷难度。如果参加了第二场考试依次类推...我们把学生的数目当作采样次数考试的种类当作随机变量的维度。那么上图就是10个学生在两场考试中的表现。 进一步我们想观察同一个学生随不同考试的分数变化情况我们做一个相邻维度的连接看看。 n 2 # 考试次数n
m 10 # m个学生
# 这里简单假设所有维度是独立的# 且每个维度上的均值为0标准差为1# 所以协方差矩阵是一个单位矩阵mean np.zeros(n)
cov np.eye(n)
# 得到随机变量的采样值
f_random np.random.multivariate_normal(mean, cov, m).T
# 把不同维度的值分别指定到对应的横轴上去
Xshow np.linspace(1, n, n).reshape(-1,1)
# 开始绘图
plt.figure(figsize(12,8))
plt.plot(Xshow, f_random, -x, linewidth1, markersize5, markeredgewidth2)
plt.show() 这时我们增加考试的场数到7n7继续观察。 感觉到哪里不对了吗 如果仍然没有感觉我们进一步增加考试的次数到30。 这下应该感觉了哪里不对劲了吧。 那就是这个图不符合常识为什么学生的考试分数完全没有规律不同学生没有明显的分数差距。 这是因为我们事先做的不同维度独立的假设太理想事实上时间前后相邻的不同维度是通常不独立的。 这里我们使用一种协方差函数径向基函数Radial Basis Function这里先不用深究只需要知道是帮我们生成一种常见先验协方差的用的生成多元高斯分布来替代之前的不同维度独立的多元高斯分布。 如下图。 def kernel(a, b):sqdist np.sum(a**2,axis1).reshape(-1,1) np.sum(b**2,1) - 2*np.dot(a, b.T)return np.exp(-0.5 * sqdist)n 30 # 考试次数n
m 10 # m个学生
# 这里假设所有维度不再独立# 每个维度上的均值为0# 协方差矩阵由kernel函数生成
mean np.zeros(n)# 考虑数值的影响重置横轴scale
Xshow np.linspace(0, 1, n).reshape(-1,1)
cov kernel(Xshow, Xshow)
# 得到随机变量的采样值
f_prior np.random.multivariate_normal(mean, cov, m).T# 开始绘图
plt.figure(figsize(12,8))for i in range(m):plt.plot(Xshow, f_prior, -x, linewidth1)plt.show() 这样看起来有的学生分数在多数考试中均较低有的学生分数在多数考试中均较高还有持续进步和持续退步的学生。很合理 这时候我们可以将维度推广到无限了。假如我们每一个时刻都有一个随机变量当我们取连续的时刻区别于之前的离散维度就得到了无穷维度的高斯分布。值得注意的是因为维度是无限的对于所有维度我们需要得到无穷多个先验的均值和一个无穷维度的协方差矩阵。但是为了简化这个描述我们干脆使用函数来描述均值和协方差。 对于时刻t 这个时刻的均值我们用函数取称为均值函数。 对于任意两个不同时刻t1和t2这两个时刻上的协方差我们也用一个二元函数取称为协方差函数或者核函数cov(t1,t2 ) k(t1,t2)之前用到的RBF函数是一种常用的核函数形式为 其中 和 l 是RBF函数的超参数。这个核函数看起来是合理的因为当这两个不同时刻很接近时这个协方差的值约大相关性也就越大。 到这里我们对于高斯过程的简单介绍就结束了。 关于高斯过程的应用和其他领域相关之后有机会再给读者介绍。 编辑黄继彦 欢迎留言有机会与本文作者互动哦 数据派研究部介绍 数据派研究部成立于2017年初以兴趣为核心划分多个组别各组既遵循研究部整体的知识分享和实践项目规划又各具特色 算法模型组积极组队参加kaggle等比赛原创手把手教系列文章 调研分析组通过专访等方式调研大数据的应用探索数据产品之美 系统平台组追踪大数据人工智能系统平台技术前沿对话专家 自然语言处理组重于实践积极参加比赛及策划各类文本分析项目 制造业大数据组秉工业强国之梦产学研政结合挖掘数据价值 数据可视化组将信息与艺术融合探索数据之美学用可视化讲故事 网络爬虫组爬取网络信息配合其他各组开发创意项目。 点击文末“阅读原文”报名数据派研究部志愿者总有一组适合你~ 转载须知 如需转载请在开篇显著位置注明作者和出处转自数据派THUIDDatapiTHU并在文章结尾放置数据派醒目二维码。有原创标识文章请发送【文章名称-待授权公众号名称及ID】至联系邮箱申请白名单授权并按要求编辑。 未经许可的转载以及改编者我们将依法追究其法律责任。 点击“阅读原文”加入组织~