AUTOLOSS: LEARNING DISCRETE SCHEDULE FOR ALTERNATE OPTIMIZATION
许多机器学习任务涉及迭代交替优化多个目标。比如GANs交替地优化generator和discriminator。Multi-task learning中,交替优化不同的任务目标。不同的优化策略会导致不同的收敛质量和速度。
这篇文章提出AutoLoss。AutoLoss是元学习的框架,自动选择迭代(iterative)和交替(alternate)的优化策略,以提高优化算法的收敛的质量和速度。AutoLoss定义了一个controller,controller学习历史和当前状态的关系,使用了policy gradient学习controller的参数,目标是最大化任务的性能。
迭代(iterative)和交替(alternate)
下面先来看看迭代(iterative)和交替(alternate)的定义。
Iterative optimization
简单来说就是,迭代优化参数 Θ \Theta Θ直到达到停止标准,在第t步, Θ ( t + 1 ) = Θ ( t ) + ϵ Δ L ( D ( t ) ; Θ ( t ) ) \Theta^{(t+1)}=\Theta^{(t)}+\epsilon \Delta_{L}(D^{(t)};\Theta^{(t)}) Θ(t+1)=Θ(t)+ϵΔL(D(t);Θ(t)), D ( t ) ⊆ D D^{(t)}\subseteq D D(t)⊆D是第t步使用的数据。SGD属于这类方法,对SGD而言, Δ L \Delta_L ΔL是梯度, D ( t ) D^{(t)} D(t)是batch data, ϵ \epsilon ϵ是学习率。
Alternate optimization
假设 L L L包含多个目标 L = { l m } m = 1 M L=\{l_m\}_{m=1}^M L={lm}m=1M,参数分为 Θ = { θ n } n = 1 N \Theta=\{\theta_n\}_{n=1}^N Θ={θn}n=1N。alternate optimization分为t步,每步需要选择 l m t ∈ L , θ t ∈ Θ l_{m_t}\in L, \theta_t\in \Theta lmt∈L,θt∈Θ,使用 l m t l_{m_t} lmt更新 θ t \theta_t θt。
统一描述为:
AutoLoss
AutoLoss的目标是每一步选择
a
q
t
a_{q_t}
aqt,以优化目标任务的性能。
怎么做呢?引入了一个meta model,叫做controller。注意meta model和task model是不同的。controller在task model优化的过程中学习,在积累足够的知识后做决定。
controller学习历史,在第t步,预测一个one-hot的向量
Y
(
t
)
∈
{
0
,
1
}
∣
A
∣
Y^{(t)}\in \{0,1\}^{|\mathcal A|}
Y(t)∈{0,1}∣A∣。
a
q
a_q
aq被选择,如果
Y
(
t
)
Y^{(t)}
Y(t)的第q位为1。预测模型是一个条件概率
p
(
y
∣
x
;
ϕ
)
p(y|x;\phi)
p(y∣x;ϕ),
x
x
x代表历史。在第t步,采样
Y
(
t
)
∼
p
(
y
∣
x
=
X
(
t
)
;
ϕ
)
Y^{(t)}\sim p(y|x=X^{(t)};\phi)
Y(t)∼p(y∣x=X(t);ϕ)。
怎么学习meta model的参数呢?通过最大化任务的性能来学习controller的参数
ϕ
\phi
ϕ。
用
Y
=
{
Y
(
t
)
}
t
=
1
T
\mathcal Y=\{Y^{(t)}\}_{t=1}^T
Y={Y(t)}t=1T表示T步的选择,训练controller的目标是
R是reward function,是采用策略
Y
\mathcal Y
Y后的任务性能。
因为这里面有不可导的采样过程,所以使用强化学习中常用的REINFORCE算法学习。梯度计算如下:
引入B是为了减小variance,定义为moving average of received reward