SGD中的自适应采样法

SGD中的自适应采样法


SGD是一种广泛使用的优化算法,在其优化过程中,更新规则如下:
d t = ∇ f ( i t , θ t − 1 ) , θ t = θ t − 1 − γ t d t    ( 1 ) d^t=\nabla f(i^t,\theta^{t-1}), \theta^t=\theta^{t-1} -\gamma ^t d^t \space \space (1) dt=f(it,θt1),θt=θt1γtdt  1
其中, d t d^t dt为输入样本 i t i^t it时,性能函数 f f f对参数 θ t − 1 \theta^{t-1} θt1的导数,即梯度。
在SGD更新过程中,需要随机选择一个样本 i t i^t it计算梯度。自然,很容易产生这样的一个问题,相对于随机选择,有没有一种更为科学或者更为优秀的选择方法呢?今天,我们介绍一种基于side information(辅助信息)的自适应选择方法。
首先解释一下side information的概念,side information可以理解为样本的某些属性值,比如分类苹果与梨,我们的side information可以是颜色,可以是形状,也可以是口感等等一系列与样本相关的属性。
接下来,介绍一种基于side information与梯度相结合的自适应采样方法,首先定义 C k C_k Ck为样本集中side information等于k的实例集合,SGD最小化经验风险可以写为:

a r g m i n ∑ k ∈ C ∑ i ∈ C k P ( i ) f ( i ; θ )    ( 2 ) argmin \sum_{k \in C} \sum_{i \in C_k} P(i)f(i;\theta) \space \space (2) argminkCiCkP(i)f(i;θ)  (2)

式中, P ( i ) = p k 1 ∣ C k ∣ , p k = ∣ C k ∣ N P(i)=p_k \frac{1}{|C_k|}, p_k=\frac{|C_k|}{N} P(i)=pkCk1,pk=NCk P ( i ) P(i) P(i)的计算包含两个步骤:1)计算采样一个 C k C_k Ck的概率;2)计算从 C k C_k Ck中采样一个实例的概率 p k p_k pk
对于单个实例,(2)式对参数 θ \theta θ求导为:

d t = 1 N 1 P ( i ) ∇ f ( i ; θ )    ( 3 ) d^t=\frac{1}{N}\frac{1}{P(i)}\nabla f(i;\theta) \space \space (3) dt=N1P(i)1f(i;θ)  (3)

由上式可知,梯度 d t d^t dt的计算与采样一个实例的概率 P ( i ) P(i) P(i)相关,而 P ( i ) P(i) P(i)与采样一个 C k C_k Ck的概率的相关。因此,可以得出一个疑问,能否通过设置概率 p k p_k pk来调整SGD的优化过程呢?答案是当然可以。
现在,建立这样一个模型:
m i n p 1 , p 2 , . . . , p k V ( d t ) = E [ d t T d t ] − E [ d t ] T E [ d t ]    ( 4 ) min_{p_1,p_2,...,p_k} V(d^t)=E[d^{tT}d^t]-E[d^t]^TE[d^t] \space \space (4) minp1,p2,...,pkV(dt)=E[dtTdt]E[dt]TE[dt]  (4)
该式中,第二项与 p k p_k pk没有关系,可以忽略。最后,可以发现 p k p_k pk其实仅与 E [ d t T d t ] E[d^{tT}d^t] E[dtTdt]相关,即最小化梯度方差与每一个 C k C_k Ck中样本梯度的和的均值相关。将梯度 d t d^t dt带入(4)式可以发现:
p k ∝ ∣ C k ∣ N 1 ∣ C k ∣ ∑ i ∈ C k ∥ ∇ f ( i ; θ t − 1 ) ∥ 2    ( 5 ) p_k \propto \frac{|C_k|}{N}\sqrt{\frac{1}{|C_k|}\sum_{i \in C_k}\|\nabla f(i;\theta^{t-1})\|^2} \space \space (5) pkNCkCk1iCkf(i;θt1)2   (5)
即,采样 C k C_k Ck的概率其实与 C k C_k Ck中样本的梯度大小相关。
因此在SGD中利用side information自适应采样步骤可以总结如下:
1). 确定数据集的side information,利用side information将数据集划分成k组;
2). 根据公式5计算每个组对应的选择概率 p k p_k pk;
3). 根据 p k p_k pk计算采样单个实例的概率 P ( i ) P(i) P(i);
4). P ( i ) P(i) P(i)带入公式(3)计算梯度 d t d^t dt
5). 利用公式(1)更新模型参数 θ \theta θ
参考文献:[1] Siddharth Gopal,Adaptive Sampling for SGD by Exploiting Side Information,ICML,2016.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智能黄大仙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值