种群进化随机梯度下降深度神经网络优化算法框架
Evolutionary Stochastic Gradient Descent for Optimization of Deep Neural Networks. NeurIPS 2018 (paper link)
本文介绍由IBM Research AI的Xiaodong Cui等作者于NeurIPS 2018发表的一个基于种群的进化随机梯度下降深度神经网络优化算法框架[1]。
随机梯度下降是目前深度学习主流优化方法[2]。与此同时,代表黑盒优化的无梯度进化算法也出现在各种应用中[3]。此类进化优化算法适合于非线形非凸非平滑的优化问题,受生物学研究启发,其对一般优化目标函数不做任何分析形式的假设。在深度学习应用中,遗传算法和进化策略已经被用于深度强化学习和神经网络架构搜索[4],但并没有被有效应用于优化最先进的复杂深度神经网络的大规模参数中。
因为随机梯度下降依赖于显式的目标函数梯度,而无梯度进化算法可以大规模并行优化复杂或知之甚少的目标函数,作者结合两者的优点提出了一个称为进化随机梯度下降的优化方法。简单来说,该算法将种群定义为一个以候选模型参数为个体的集合,并令该种群轮流进行类似生物学的成长和协同进化行为。在成长阶段,每个候选模型参数个体也可以被视为一个物种,其根据一套传统优化方法的参数进行独立成长发育;在协同进化阶段,所有个体允许相互交流并产生下一代种群。细节将会在接下来的章节中展开。
本文接下来的部分组织如下:笔者将先给出一个简洁的问题定义,然后详细展开作者提出的算法细节以及定理,其后附上部分相关实验结果,最后是一些对该算法的优缺点的讨论。
在一个监督学习问题中,假设 X ⊆ R d x , Y ⊆ R d y \mathcal{X} \subseteq \mathbb{R}^{d_x}, \mathcal{Y} \subseteq \mathbb{R}^{d_y} X⊆Rdx,Y⊆Rdy分别为输入和输出空间,问题的学习目标通常为估计一个从输入到输出的映射:
h ( x ; θ ) : X → Y h(x;\theta): \mathcal{X} \rightarrow \mathcal{Y} h(x;θ):X→Y
其中 x ∈ X x \in \mathcal{X} x∈X且 h h h属于由 θ ∈ R d \theta \in \mathbb{R}^d θ∈Rd参数化的函数族。定义在 X × Y \mathcal{X} \times \mathcal{Y} X×Y上的损失函数 ℓ ( h ( x ; θ ) , y ) \ell(h(x;\theta), y) ℓ(h(x;θ),y)衡量预测 h ( x ; θ ) h(x;\theta) h(x;θ)和标签 y y y的相近程度。一个 θ \theta θ的风险函数可以被定义为数据联合分布下的期望损失:
R ( θ ) = E ( x , y ) [ ℓ ( h ( x ; θ ) , y ) ] R(\theta) = \mathbb{E}_{(x, y)}[\ell(h(x;\theta), y)] R(θ)=E(x,y)[ℓ(h(x;θ),y)]
于是目标通常是找到一个最小化该期望风险的函数 h ( x ; θ ∗ ) h(x;\theta^*) h(x;θ∗)。在实际情况下,我们一般只能获得一些独立同分布的训练样本 { ( x i , y i ) } i = 1 n ∈ X × Y \{(x_i, y_i)\}_{i = 1}^n \in \mathcal{X} \times \mathcal{Y} {(xi,yi)}i=1n∈X×Y,而无法获取真实数据分布 p ( x , y ) p(x, y) p(x,y)。所以学习目标转化为最小化如下经验风险:
R n ( θ ) = 1 n ∑ i = 1 n ℓ ( h ( x i ; θ ) , y i ) ≜ 1 n ∑ i = 1 n l i ( θ ) R_n(\theta) = \frac{1}{n}\sum_{i = 1}^n\ell(h(x_i;\theta), y_i) \triangleq \frac{1}{n}\sum_{i = 1}^n l_i(\theta) Rn(θ)=n1∑i=1nℓ(h(xi;θ),yi)≜n1∑i=1nli(θ)
其中 l i ( θ ) ≜ ℓ ( h ( x i ; θ ) , y i ) l_i(\theta) \triangleq \ell(h(x_i;\theta), y_i) li(θ)≜ℓ(h(xi;θ),yi)。随机规划可简化上式为:
R n ( θ ) = E ω [ l ω ( θ ) ] R_n(\theta) = \mathbb{E}_\omega[l_\omega(\theta)] Rn(θ)=Eω[lω(θ)]
其中 ω ∼ U n i f o r m { 1 , … , n } \omega \sim Uniform\{1,\dots,n\} ω∼Uniform{1,…,n}。在传统随机梯度下降的第 k k k次迭代中,通常会随机选取一个样本 ( x i k , x i k ) , i k ∈ { 1 , … , n } (x_{i_k}, x_{i_k}), i_k \in \{1,\dots,n\} (xik,xik),ik∈{1,…,n},计算随机梯度 ∇ l i k \nabla l_{i_k} ∇lik,并根据一个合适的步长 α k > 0 \alpha_k > 0 αk>0更新参数:
θ k + 1 = θ k − α k ∇ l i k ( θ k ) \theta_{k + 1} = \theta_k - \alpha_k \nabla l_{i_k} (\theta_k) θk+1=θk−αk∇lik(θk)
传统随机梯度下降一般只考虑一个单独的参数向量 θ \theta θ。我们不妨假设参数满足一个分布 θ ∼ p ( θ ) \theta \sim p(\theta) θ∼p(θ)并定义如下在 p ( θ ) p(\theta) p(θ)分布上的期望经验风险:
J = E θ [ R n ( θ ) ] = E θ [ E ω [ l ω ( θ ) ] ] J = \mathbb{E}_\theta[R_n(\theta)] = \mathbb{E}_\theta[\mathbb{E}_\omega[l_\omega(\theta)]] J=Eθ[Rn(θ)]=Eθ[Eω[lω(θ)]]
类似地,在实际应用中,考虑 μ \mu μ个候选参数 { θ j } j = 1 μ \{\theta_j\}_{j = 1}^\mu {θj}j=1μ。最终我们对以下种群的平均经验风险感兴趣:
J μ = 1 μ ∑ j = 1 μ R n ( θ j ) = 1 μ ∑ j = 1 μ ( 1 n ∑ i = 1 n l i ( θ ) ) J_\mu = \frac{1}{\mu}\sum_{j = 1}^\mu R_n(\theta_j) = \frac{1}{\mu}\sum_{j = 1}^\mu ( \frac{1}{n}\sum_{i = 1}^n l_i(\theta) ) Jμ=μ1∑j=1μRn(θj)=μ1∑j=1μ(n1∑i=1nli(θ))
通常适应度为越大越好,对应于风险越小越好,这里将风险函数 R n R_n Rn对应种群中一个物种个体的适应性函数。于是,最终的学习目标即为选择 { θ j } j = 1 μ \{\theta_j\}_{j = 1}^\mu {θj}j=1μ的一个子集以最小化 J μ J_\mu Jμ。
此外, m m m-精英平均适应度被定义为前 m m m个最好的个体( 1 ≤ m ≤ μ 1 \leq m \leq \mu 1≤m≤μ)的平均适应度:
J m ˉ : μ = 1 m ∑ k = 1 m f ( θ k : μ ) J_{\bar{m}:\mu} = \frac{1}{m}\sum_{k = 1}^m f(\theta_{k:\mu}) Jmˉ:μ=m1∑k=1mf(θk:μ)
其中 θ k : μ \theta_{k:\mu} θk:μ表示 Ψ μ = { θ 1 , … , θ μ } \Psi_\mu = \{\theta_1, \dots, \theta_\mu\} Ψμ={θ1,…,θμ}中适应度第 k k k最高的个体, f ( θ ) f(\theta) f(θ)为一个适应性度量函数。
进化随机梯度下降算法迭代地优化上节定义的 m m m-精英平均适应度,其伪代码如下:
首先,该算法初始化拥有 μ \mu μ个个体的父种群 Ψ μ ( 0 ) = { θ 1 ( 0 ) , … , θ μ ( 0 ) } \Psi_\mu^{(0)}=\{\theta_1^{(0)}, \dots, \theta_\mu^{(0)}\} Ψμ(0)={θ1(0),…,θμ(0)},这可以采用随机初始化参数或随机扰动已有模型参数。每一代种群交替执行传统随机梯度下降以及无梯度进化算子来改进目标函数 J m ˉ : μ J_{\bar{m}:\mu} Jmˉ:μ,以此逐代进化。在传统随机梯度下降步骤中,每个个体 θ j \theta_j θj选择一个优化器 π j \pi_j πj、超参数及学习安排独立学习更新参数共 K s K_s Ks步。优化器、超参数可以来自一个预设的集合,而个体从集合中随机选择元素并组合。退火策略可以让学习率逐代递减。从进化算法的角度来说,随机梯度下降步骤中,个体之间没有相互交流,对应于物种之间的基因隔离被保留。如果在梯度下降过程中适应度有所下降,则该个体会退回到梯度下降前一步,此策略称为后退。所有个体独立进行随机梯度下降之后,将进行无梯度协同进化步骤。在这一步中,种群中所有个体将被允许交互、组合、产生后代、变异等行为并产生拥有 λ \lambda λ个个体的后代种群 Ψ λ \Psi_\lambda Ψλ。这里可以采用任意进化算法,而原文利用了 ( μ / ρ + λ ) (\mu / \rho + \lambda) (μ/ρ+λ)-进化策略算法。更明确的说,在进化过程中,其首先会从当前种群 Ψ μ ( k ) \Psi_\mu^{(k)} Ψμ(k)中以基于适应度的比例选择算子得到 ρ \rho ρ个物种个体,并以平均重组加高斯噪声的方式产生出 λ \lambda λ个后代:
θ i ( k ) = 1 ρ ∑ j = 1 ρ θ j ( k ) + ϵ i ( k ) \theta_i^{(k)} = \frac{1}{\rho} \sum_{j = 1}^\rho \theta_j^{(k)} + \epsilon_i^{(k)} θi(k)=ρ1∑j=1ρθj(k)+ϵi(k)
其中 θ i ( k ) ∈ Ψ λ ( k ) , θ j ( k ) ∈ Ψ μ ( k ) , ϵ i ( k ) ∼ N ( 0 , σ k 2 ) \theta_i^{(k)} \in \Psi_\lambda^{(k)},\theta_j^{(k)} \in \Psi_\mu^{(k)},\epsilon_i^{(k)} \sim \mathcal{N}(0, \sigma_k^2) θi(k)∈Ψλ(k),θj(k)∈Ψμ(k),ϵi(k)∼N(0,σk2)。类似的, σ k 2 \sigma_k^2 σk2也可以用一种退火策略逐代递减。至此,包括后代的综合种群为 Ψ μ + λ = Ψ μ ∪ Ψ λ \Psi_{\mu + \lambda} = \Psi_\mu \cup \Psi_\lambda Ψμ+λ=Ψμ∪Ψλ。一种称为 m m m-精英策略的物种选择方法会从 Ψ μ + λ \Psi_{\mu + \lambda} Ψμ+λ中选择 m m m( m ≤ μ m \leq \mu m≤μ)个拥有最高适应度的个体,并从剩余的个体中随机选取 μ − m \mu - m μ−m个个体。假设当前为第 k k k代,则上述被选择的个体组成下一代的父种群 Ψ μ ( t + 1 ) \Psi_\mu^{(t + 1)} Ψμ(t+1)。详细算法实现细节请读者参考原文。
该进化随机梯度下降算法具有 m m m-精英平均适应度不退化的性质,即目标函数 J m ˉ : μ ( k ) J_{\bar{m}:\mu}^{(k)} Jmˉ:μ(k)随着 k k k增大不递增。相关定理及推论如下:
定理1. 已知 Ψ μ \Psi_\mu Ψμ为一个拥有 μ \mu μ个物种个体的种群 { θ j } j = 1 μ \{\theta_j\}_{j = 1}^\mu {θj}j=1μ。假设 Ψ μ \Psi_\mu Ψμ根据包含后退策略和 m m m-精英策略的进化随机梯度下降算法进行进化,则对于每一代 k k k,
J m ˉ : μ ( k ) ≤ J m ˉ : μ ( k − 1 ) , k ≥ 1 J_{\bar{m}:\mu}^{(k)} \leq J_{\bar{m}:\mu}^{(k - 1)},k \geq 1 Jmˉ:μ(k)≤Jmˉ:μ(k−1),k≥1
推论1. ∀ m ′ , 1 ≤ m ′ ≤ m \forall m',1 \leq m' \leq m ∀m′,1≤m′≤m,可得
J m ˉ ′ : μ ( k ) ≤ J m ˉ ′ : μ ( k − 1 ) , k ≥ 1 。 J_{\bar{m}':\mu}^{(k)} \leq J_{\bar{m}':\mu}^{(k - 1)},k \geq 1。 Jmˉ′:μ(k)≤Jmˉ′:μ(k−1),k≥1。
尤其是当 m ′ = 1 m' = 1 m′=1,可得
f ( k ) ( θ 1 : μ ) ≤ f ( k − 1 ) ( θ 1 : μ ) , k ≥ 1 f^{(k)}(\theta_{1:\mu}) \leq f^{(k - 1)}(\theta_{1:\mu}),k \geq 1 f(k)(θ1:μ)≤f(k−1)(θ1:μ),k≥1
换言之,种群中适应度最高的个体保证不会退化。以上定理的详细证明可参见原文附录,简而言之,证明的关键点在于后退策略提供的保障。
作者在实验中采用了4个数据集:BN50、SWB300、CIFAR10、PTB,前二者对应大词汇量连续语音识别,后两者分别对应图像识别和语言模型任务。作者同时也实现了两种参照系统作为对照基准。第一种基准系统称为单一基准,是数据集任务对应领域的一种最先进的经过精细设计和调参的模型,其参数、训练方式皆为单一固定的;第二种系统称为种群基准,其随机初始化与提出算法相同数量的个体,并同时训练,不包括协同进化步骤,此为模拟经典深度神经网络训练的超参数调整过程。作者同时将进化算子移除而进行了控制变量实验。主要实验结果如下表:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JMma4P6z-1570084171150)(https://github.com/paper-reader/gatsby-starter-netlify-cms/blob/master/src/pages/blog/result0.png)]
其中WER代表词错误率,SWB和CH分别是SWB300数据集中的两种数据,ppl表示损失函数值的指数。实验结果表明,提出的进化随机梯度下降算法相较于传统优化方法以及无进化模块的简化算法,在最先进的深层神经网络模型以及热门模式识别应用上,有较明显的效果提升。
下图为各个方法的目标函数(适应度)关于当前进化代数的折线图,其中种群基准对照方法和提出的方法以带状表示种群个体的适应度的分布。我们可以看出,进化随机梯度下降算法的下界,即适应度最高的个体,确实是根据定理1不退化的。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ozwkAHGx-1570084195857)(https://github.com/paper-reader/gatsby-starter-netlify-cms/blob/master/src/pages/blog/result1.png)]
作者最后研究了进化步骤中产生的后代在下一代中被选择的比例随进化逐代的变化。结果如下图。我们可以看出,在初始几代,随机梯度下降占主导地位。这主要是因为训练前期参数变化较大,方差较大的平均重组策略不容易得到适应度比父种群较高的个体。而在进化末期几代,不同优化器的超参数之间的交互对产生精英后代有着至关重要的作用。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MmpDLte2-1570082285841)(result2.png)]
原文作者提出了一种结合传统随机梯度下降优化算法和无梯度进化算法的优势的深度神经网络优化算法框架。
该方法优势在于其直观的概念以及简单有效的保证最优个体不退化的定理,其较大的优化算法超参数搜索空间几乎可以保证其最终效果比精细设计模型后单一训练及手动调参训练有一定明显的提升。其一般性的框架可以采用梯度优化算法及基因进化算法领域的最新研究成果。目前来说,所有个体独立进行随机梯度下降及协同进化都有大规模并行的方法[5][6]。
该方法也有一定的局限性。遗传进化算法通常需要足够数量的个体保证多样性及超参数空间覆盖率才能取得较好的效果。对于大规模深度神经网络而言,即使种群中只有几十个个体,完全并行的环境也将需要较大昂贵的计算资源。基于进化策略的黑盒优化算法可以视为利用一定数量的个体计算当前损失函数对于参数的近似梯度,而数量有限的个体产生的梯度与真正的梯度有一定因噪声造成的偏差[7]。当然,随机梯度下降步骤在一定程度上降低了进化步骤的随机性的影响。从算法伪代码及描述中,我们可以看出该算法在实现过程中也需要较多关于进化算子以及预设优化器的超参数的设定。所以总体来说,该算法框架在转换为实现的时候也不能避免较为精细的参数调整过程。原文提出的算法及实验皆假设固定的深度神经网络结构,而事实上神经网络的架构对特定模式识别任务的效果也有较大的影响。如何在该算法基础上增加网络架构搜索而不过多增加随机性和复杂度也是一个有趣的研究方向。
因为排版问题,很多图片和公式无法直接显示,欢迎关注我们的公众号点击目录来阅读原文。
种群进化随机梯度下降深度神经网络优化算法框架