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,θt−1),θt=θt−1−γtdt (1)
其中, d t d^t dt为输入样本 i t i^t it时,性能函数 f f f对参数 θ t − 1 \theta^{t-1} θt−1的导数,即梯度。
在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) argmink∈C∑i∈Ck∑P(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)=pk∣Ck∣1,pk=N∣Ck∣。
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)1∇f(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)
pk∝N∣Ck∣∣Ck∣1i∈Ck∑∥∇f(i;θt−1)∥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.