对采样的理解

1. 什么是采样

我们知道了一个变量的分布,要生成一批服从这个分布的样本,这个过程就叫采样。
听起来好像很简单,对一些简单的分布函数确实如此,比如,均匀分布、正太分布,但只要分布函数稍微复杂一点,采样这个事情就没那么简单了。

2. 为什么要采样

在讲具体的采样方法之前,有必要弄清楚采样的目的。为什么要采样呢?有人可能会这样想,样本一般是用来估计分布参数的,现在我都知道分布函数了,还采样干嘛呢?其实采样不只是可以用来估计分布参数,还有其他用途,比如说用来估计分布的期望、高阶动量等。其实在机器学习中,采样的主要用途是用来估计某个函数在某个分布上的期望,比如在EM算法中,计算E步的时候,已知隐变量的分布,用采样的方法估计对数似然的期望。

3.采样的作用

采样本质上是对随机线性的模拟,根据给定的概率分布,来模拟产生一个对应的随机事件。也可以理解为用较少的样本点来近似总体分布,可以算是一种信息降维。

可以快速了解总体分布中数据的结构和特性。

通过重采样可以充分利用已有数据集,挖掘更多信息,如自助法,刀切法。

4. 常用的采样方法

几乎所有的采样方法都是以均匀分布随机数作为基本操作的。

逆变换采样法:第一步,从均匀分布中产生一个随机数;第二步,根据一个累计分布函数的逆函数进行计算。如果待采样的目标分步的累计分布函数的逆函数无法求得或不易求,则不适合使用逆变换采样法。

拒绝采样:接受/拒绝采样,对于目标分布p(x),选取一个容易采样的参考分布q(x),使得对于任意p(x)都小于等于M*q(x)。第一步,从参考分布q(x)中随机抽取一个样本;第二步,从均匀分布中产生一个随机数;第三步,如果 [公式] 大于随机数,则接受样本,如果小于则拒绝样本。

自适应拒绝采样:在目标函数是对数凹函数时,用分段函数来覆盖目标分布的对数。

重要性采样:就是用于计算函数在目标分布上的积分,如果只想从目标分布中采样出若干样本,可以使用重要性重采样。

在实际应用中,高维空间的随机向量,拒绝采样和重要性重采样经常难以找到合适的参考分布,采样效率比较低,可以考虑马尔科夫蒙特卡罗采样法。

5. 基本采样方法

首先,最基本的方法是变换法,大概思想是这样的,比如我们要对分布a采样,但是只有分布b的采样器,我们可以通过对b采样的结果进行一些变换,使变换后的结果服从分布a,举个例子,对0到1的均匀分布的结果进行tan函数变换得到的结果就服从柯西分布,大家可以试想下怎么变换能得到指数分布和高斯分布。
在这里插入图片描述
在这里插入图片描述

5.1 高斯分布的采样

逆变换法:第一步,生成均匀分布随机数;第二步,把随机数带入一个服从正态分布的公式。也可以用Box-Muller算法生成两个独立的均匀分布的随机数,计算三角函数。还可以用Marsaglia polar method加速运算。

拒绝采样法:先模拟一个均匀分布的随机数,并得到指数分布样本;再产生另一个随机数,进行比较,大于这个随机数接受,小于拒绝,并回到上一步重新采样;最后再生产一个随机数,随机数小于0.5,转换为负,大于0.5,保持不变。有时效率会比较低,可以用Ziggurat算法提高效率。

5.2 马尔科夫链蒙特卡洛采样(Markov Chain Monte Carlo)

马尔科夫蒙特卡罗MCMC,蒙特卡罗是指基于采样的数值型近似求解方法,马尔科夫链则用于采样。

要理解MCMC,有几个关键要点:
在这里插入图片描述
MCMC基本思想,针对待采样目标分布,构造一个马尔科夫链,使得该马尔科夫链的平稳分布就是目标分布,然后从任何一个初始状态出发,沿着马尔科夫链进行状态转移,最终得到的状态转移序列会收敛到目标分布,由此可以得到目标分布的一系列样本。

几种常见的MCMC

Metropolis-Hastings采样法:第一步,随机选一个初始样本;第二步,比较参考条件分布与随机数的大小,并进行赋值。

吉布斯采样法:每次只对样本的一个维度进行采样和更新。随机选择初始状态,每次更新一个维度,多次后形成新样本。
吉布斯采样的牛逼之处在于只需要知道条件概率的分布,便可以通过采样得到联合概率分布的样本,LDA的求解可以说是吉布斯采样的一个绝妙应用例子,通过采样的方法就完成了整个模型的求解,确实很巧妙。另一个很好的例子是玻尔兹曼机的训练,哪天有时间把这两个例子展开讲讲。

MCMC采样如何得到相互独立的样本

可以同时运行多条马尔科夫链,或者在一条马尔科夫链上间隔几个样本才选一个。

5.3 贝叶斯网络的采样

祖先采样:根据有向图的顺序,先对祖先节点进行采样,只有当某个节点的所有父节点都已完成采样,才对该节点进行采样。

逻辑采样:利用祖先采样的取值,如果这个取值与观测值相同,则接受,否则拒绝,重新采样。采样效率可能很低。实际中参考重要性采样的思想,不再对观测变量进行采样,只对非观测变量进行采样。

MCMC采样法:在随机向量上选择一个概率转移矩阵,按照概率转移矩阵不断进行状态转移,每次转移有一定概率接受或拒绝,最终得到的样本序列会收敛到目标分布。

5.4 不均衡样本集的重采样

(1)基于数据的方法

对数据进行重采样,是原本不均的样本变得均匀。具体方法:过采样和欠采样。

过采样会造成过拟合,欠采样会损失部分有用信息。

对此改进,SMOTE算法,对少数类样本集中的每个样本,从它到K个近邻中随机选一个样本点,然后在连线上随机选一个点作为新合成的样本。可以降低过拟合风险。但可能会增大类间重叠度,并且会生成一些不能提供有益信息的样本。

再改进,Borderline-SMOTE算法,只给那些处在分类边界上的少数类样本合成新样本;ADASYN算法,给不同的少数类样本合成不同个数的新样本。

欠采样,改进算法有Easy Ensemble算法、Balance Cascade算法、NearMiss、One-sided Selection

(2)基于算法的方法

在样本不均衡时,可以通过改变模型训练时的目标函数来矫正不平衡性;当样本数目极其不平衡时,也可以将问题转化为单类学习、异常检测。

https://zhuanlan.zhihu.com/p/46096712
https://zhuanlan.zhihu.com/p/125648419

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/345722.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何避免Java线程中的死锁?

如何避免Java死锁? 是Java面试中最受欢迎的问题之一,也是本季多线程的风格,主要是在高层提出,并带有很多后续问题。 尽管问题看起来很基础,但是一旦您开始深入研究,大多数Java开发人员就会陷入困境。 面试…

Approximation and fitting、Statistical estimation

一、Approximation and fitting 1. 拟合与回归的区别 回归分析:是一种统计学上分析数据的方法,目的在于了解两个或多个变量间是否相关、相关方向与强度,并建立数学模型以便观察特定变量来预测研究者感兴趣的变量。 拟合:是一种把…

Probability(概率) vs Likelihood(似然)

1. 先验概率,条件概率与后验概率 2. Probability(概率) vs Likelihood(似然) Probabiity(概率):给定某一参数值,求某一结果的可能性 Likelihood(似然):给定某一结果,求某…

线性回归 逻辑回归

分类就是到底是1类别还是0类别。 回归就是预测的不是一个类别的值,而是一个具体的值,具体借给你多少钱哪? 一、回归分析 回归分析(英语:Regression Analysis)是一种统计学上分析数据的方法,目…

rmi full gc问题_RMI强制Full GC每小时运行一次

rmi full gc问题在我职业生涯中进行的所有故障排除练习中,我都感觉到,随着时间的推移,我所追寻的错误在不断演变,变得越来越卑鄙和丑陋。 也许仅仅是我的年龄开始了。这个特别的Heisenbug –看起来像这篇帖子一样,再次…

联邦学习 Federated Learning

应该很多人听过但是始终都没懂啥是联邦学习?百度一下发现大篇文章都说可以用来解决数据孤岛,那它又是如何来解决数据孤岛问题的? 1、联邦学习的背景介绍 近年来人工智能可谓风风火火,掀起一波又一波浪潮,从人脸识别、…

优化器算法Optimizer详解(BGD、SGD、MBGD、Momentum、NAG、Adagrad、Adadelta、RMSprop、Adam)

本文将梳理: 每个算法的梯度更新规则和缺点 为了应对这个不足而提出的下一个算法 超参数的一般设定值 几种算法的效果比较 选择哪种算法 0.梯度下降法深入理解 以下为个人总结,如有错误之处,各位前辈请指出。 对于优化算法,优化…

gradle构建_指定Gradle构建属性

gradle构建属性是用于轻松自定义Gradle构建和Gradle环境的宝贵工具。 我将在本文中演示一些用于指定Gradle构建中使用的属性的方法。 Gradle支持项目属性和系统属性 。 这篇文章中有趣的是两者之间的主要区别是如何访问它们。 项目属性更有助于按名称直接访问,而系…

线性代数之——行列式及其性质

https://zhuanlan.zhihu.com/p/50912180

Cauchy-Schwarz不等式

1. Cauchy不等式 ##2. 推广:HolderH\ddot{o}lderHolder不等式 3. Cauchy-Schwarz不等式 结论:任意两个向量的内积(点乘)的模平方,必定小于或等于这两个向量各自的模的乘积。 https://www.jianshu.com/p/77f9607d88d…

StevenBoyd--Convex optimization--0. Contents-catalog

把自己最近学习的Steven Boyd的convex optimization的内容整理一下,将思维导图发出来供自己学习及参考。

串行内存消耗 并行内存_如何估算内存消耗?

串行内存消耗 并行内存这个故事可以追溯到至少十年之前,当时我第一次接触PHB时遇到一个问题:“在生产部署中,我们需要购买多大服务器”。 我们正在构建的新的,闪亮的系统距离生产开始还有9个月的时间,显然该公司已承诺…

Java,JavaFX的流畅设计风格滑块

JMetro的Java,JavaFX主题版本刚刚提高到4.2版。 此版本为Slider控件带来了新样式。 除此之外,您现在还可以看到一个弹出窗口,向您显示滑块的当前值。 新滑块样式 以下是旧的JMetro Slider样式: 滑块OLD JMetro灯光主题 滑块OLD…

如何利用ide进行跟踪调试_使用调试器进行事后跟踪

如何利用ide进行跟踪调试我最近一直在使用的大多数调试器的好功能是能够在断点上记录信息。 这对于理解代码而无需修改是非常有用的,因为它涉及字节码修改。 让我们考虑一下这种非常琐碎且效率低下的函数实现,以返回斐波那契数列中的第n个数字。 publi…