葫芦书笔记----采样

#采样

采样在机器学习中有着非常重要的应用:它可以将复杂分布简化为离散的样本点;可以用重采样对样本集进行调整以更好地适应后期的密模型学习;可以用于随机模拟以进行复杂模型的进行求解或推理。

采样的作用

采样时从特定的概率分布中抽取对应的样本点。

举例说明采样在机器学习中的应用

速记:通过采样,可以模拟随机事件;采样得到训练集和测试集;利用重采样来处理分类模型的训练样本不均衡问题;利用采样方法进行随机模拟,从而对这些复杂模型进行近似求解或推理。

详细:采样本质上时对随机现象的模拟,根据给定的概率分布,来模拟产生一个对应的随机事件。

均匀分布的随机数

###如何编程实现均匀分布随机数生成器?

速记:线性同余法。

详细:计算机程序只能产生伪随机数。一般可以采用线性同余法来生成离散均匀分布伪随机数,计算公式为:
x t + 1 = a ⋅ x t + c ( m o d m ) x_{t+1}=a \cdot x_t + c(mod \quad m) xt+1=axt+c(modm)
也就是根据当前生成的随机数 x t x_t xt来进行适当变换,进而残生下一次的随机数 x t + 1 x_{t+1} xt+1。初始值 x 0 x_0 x0称为随机种子。上式得到的式区间 [ 0 , m − 1 ] [0,m-1] [0,m1]上的随机整数,如果想要得到区间 [ 0 , 1 ] [0,1] [0,1]上的连续均匀分布随机数,用 x t x_t xt除以m即可。

常见的采样方法

###抛开那些针对特定分布而精心涉及的采样方法,说一些你所知道的通用采样方法或采样策略,简单描述它们的主要思想以及具体操作步骤。

速记:函数变换法;逆变换采样法。拒绝采样;重要性采样。

详细;几乎所有的采样方法都是以均匀分布随机数作为基本操作。均匀分布随机数一般用线性同余法来产生。

很多分布不好直接进行采样,可以考虑函数变换法。一般地,如果随机变量 x x x u u u存在变换关系 u = φ ( x ) u=\varphi(x) u=φ(x),则它们的概率密度函数有如下关系:
p ( u ) ∣ φ ′ ( x ) = p ( x ) p(u)|{\varphi}'(x)=p(x) p(u)φ(x)=p(x)
如果x不好采样,可以构造一个变化 u = φ ( x ) u=\varphi(x) u=φ(x)这样就可以通过先对u进行采样,再通过反函数 x = φ − 1 ( u ) x=\varphi ^{-1}(u) x=φ1(u)来间接得到x。

还有拒绝采样以及重要性采样,较简单,看书。

高斯分布的采样

如何对高斯分布进行采样?

速记:Box-Muller算法;Marsaglia polar method(Box-Muller的改良版,避开了三角函数的计算,因而更快);拒绝采样。

详细:看书。

马尔可夫蒙特卡洛采样法(MCMC)

速记:针对带采样的目标分布,构造一个马尔可夫链,使得马尔可夫链的平稳分布就是目标分布;然后,从任何一个初始状态出发,沿着马尔可夫链进行状态转移,最终的稻草的状态转移序列会收敛到目标分布,由此可以得到目标分布的一系列样本。

详细:蒙特卡洛法是指居于采样的数值型近似求解方法,而马尔可夫链则用于进行采样。在实际操作中,核心点是如何构造合适的马尔可夫链。

简单介绍几种常见的MCMC采样法。

速记:MCMC采样法的核心点是构造合适的马尔可夫链,不同的马尔可夫链对应着不同的MCMC采样法,常见的有Metropolis-Hastings采样法和吉布斯采样法。

详细:

Metropolis-Hastings采样法

对于目标分布 p ( x ) p(x) p(x),首先选择一个容易采样的参考条件分布 q ( x ∗ ∣ x ) q(x^*|x) q(xx),并令
A ( x , x ∗ ) = m i n 1 , p ( x ∗ ) q ( x ∣ x ∗ ) p ( x ) q ( x ∗ ∣ x ) A(x,x^*)=min{1,\frac{p(x^*)q(x|x^*)}{p(x^)q(x^*|x)}} A(x,x)=min1,p(x)q(xx)p(x)q(xx)
然后根据如下过程进行采样:

(1)随机选一个初始样本 x ( 0 ) x^{(0)} x(0)

(2)For t = 1,2,3,…:

  • 根据参考条件分布 q ( x ∗ ∣ x t − 1 ) q(x^*|x^{t-1}) q(xxt1)抽取一个样本 x ∗ x^* x
  • 根据均匀分布 U ( 0 , 1 ) U(0,1) U(0,1)产生随机数 u u u
  • u < A ( x t − 1 , x ∗ ) u<A(x^{t-1},x^*) u<A(xt1,x),则令 x ( t ) = x ∗ x^{(t)}=x^* x(t)=x,否则 x ( t ) = x ( t − 1 ) x^{(t)}=x^{(t-1)} x(t)=x(t1)

可以证明,上述过程得到的样本序列 { . . . , x ( t − 1 ) , x ( t ) } \{...,x^{(t-1)},x^{(t)}\} {...,x(t1),x(t)}最总会收敛到目标分布p(x)。

吉布斯采样

吉布斯采样时Metropolis—Hastings算法的一个特例,其核心思想时每次只对样本的一个维度进行采样和更新。对于目标分布 p ( x ) p(x) p(x),其中 x = ( x 1 , . . . , x d x=(x_1,...,x_d x=(x1,...,xd是多维向量,按如下过程进行采样:

(1) 随机选择初始状态 x ( 0 ) = ( x 1 ( 0 ) , x 2 ( 0 ) , . . . , x d ( 0 ) ) x^{(0)}=(x_1^{(0)},x_2^{(0)},...,x_d^{(0)}) x(0)=(x1(0),x2(0),...,xd(0))

(2) For t = 1,2,3,…:

  • 对于前一步产生的样本 x ( t − 1 ) = ( x 1 ( t − 1 ) , x 2 ( t − 1 ) , . . . , x d ( t − 1 ) ) x^{(t-1)}=(x_1^{(t-1)},x_2^{(t-1)},...,x_d^{(t-1)}) x(t1)=(x1(t1),x2(t1),...,xd(t1)),依次采样和更新每个维度的值,即依次抽取分量 x 1 ( t ) ∼ p ( x 1 ∣ x 2 ( t − 1 ) , x 3 ( t − 1 ) , . . . , x d ( t − 1 ) ) x_1^{(t)}\sim p(x_1|x_2^{(t-1)},x_3^{(t-1)},...,x_d^{(t-1)}) x1(t)p(x1x2(t1),x3(t1),...,xd(t1)) x 2 ( t ) ∼ p ( x 2 ∣ x 1 ( t − 1 ) , x 3 ( t − 1 ) , . . . , x d ( t − 1 ) ) x_2^{(t)}\sim p(x_2|x_1^{(t-1)},x_3^{(t-1)},...,x_d^{(t-1)}) x2(t)p(x2x1(t1),x3(t1),...,xd(t1)),…, x d ( t ) ∼ p ( x 1 ∣ x 2 ( t − 1 ) , x 3 ( t − 1 ) , . . . , x d − 1 ( t − 1 ) ) x_d^{(t)}\sim p(x_1|x_2^{(t-1)},x_3^{(t-1)},...,x_{d-1}^{(t-1)}) xd(t)p(x1x2(t1),x3(t1),...,xd1(t1))
  • 形成新的样本 x ( t ) = ( x 1 ( t ) , x 2 ( t ) , . . . , x d ( t ) ) x^{(t)}=(x_1^{(t)},x_2^{(t)},...,x_d^{(t)}) x(t)=(x1(t),x2(t),...,xd(t))

同样可以证明,上述过程得到的样本序列 { . . . , x ( t − 1 ) , x ( t ) } \{...,x^{(t-1)},x^{(t)}\} {...,x(t1),x(t)}最总会收敛到目标分布p(x)。另外,步骤2中对样本每个维度的抽样和更新操作,不是必须按下标顺序进行的,可以是随机顺序。

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

速记:同时运行多条马尔可夫链,不同链上的样本是独立的;或者在同一条马尔可夫链上每隔若干个样本才选取一个。

贝叶斯网络的采样

较好理解,看书即可

不均匀样本集的重采样

对于二分类问题,当训练集中正负样本非常不均衡时,如何处理数据以更好地训练分类模型?

速记:重采样(拿了又拿),改目标函数(加权重)

详细:基于数据的方法:

对数据进行重采样,对少数类样本集进行有放回抽取,多抽点。对多数类样本有放回或无放回抽取较少的样本。

这样虽然可以使样本集变得均衡,但存在一些问题,如容易造成过拟合;因为欠采样的缘故,可能导致部分有用信息丢失。

为解决上述问题,通常在过采样时并不是简单地复制样本,而是采用一些方法生成新的样本。如SMOTE算法。从它 在Smin中的K近邻中随机选一个样本y,然后在x,y连线上随机选取一点作为新合成的样本(根据需要的过采样倍率重复上述过程若干次)。这种合成新样本的过采样方法可以降低过拟合的风险。

对于欠采样,可以用Informed Undersampling来解决由于随机欠采样带来的数据丢失问题。

基于算法的方法:

在样本不均衡时,也可以通过改变模型训练时的目标函数(如代价敏感学习中不同类别有不同的权重)来矫正这种不平衡性;当样本数极其不平衡时,也可以将问题转化为单类学习、异常检测。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值