Learning to Learn without Gradient Descent by Gradient Descent论文解析(黑箱优化问题)

本篇论文属于元学习和黑箱函数优化的交叉领域,其中将元学习的思想应用于黑箱函数优化。这篇论文发表于2017年。
对于黑箱函数优化方法我了解的不太多,因此本文的不可避免的会有一些理解不到位的地方。

想要了解贝叶斯优化和高斯过程的,可以看我翻译的两篇文章:

1 Introduction

发展心理学表明婴儿具有多个针对核心知识的分散的系统,通过这些系统,他们可以更快地学习新知识和技能。目前最有说服力的观点认为,是进化过程导致了快速学习能力的出现。

因此,很多学者致力于打造能够快速学习的模型。在本文的工作中,元学习的目标是为全局黑箱优化(global black-box optimization)打造一个算法。特别地,这个算法设法解决为一个未知的损失函数ff寻找全局最小值的问题。
x=argminxXf(x) x* = argmin_{x \in X}f(x)
对学习器来说,这个黑箱函数ff在测试阶段是不可知的,但是可以使用一个query点xx来进行评估,从而输出一个确定的或随机的值yRy \in R, 使得 f(x)=E[yf(x)]f(x)=E[y|f(x)]。换句话说,我们只能通过无偏的有噪点观测yy(逐点观测)来观测函数ff

贝叶斯优化通常被用于解决黑箱函数的全局优化问题,本文将用Meta-Learning的方法来解决这个问题,并用来与贝叶斯优化进行对比。

2 Learning Black-box Optimization

黑箱优化算法的一般步骤可以总结如下:

  1. 给定一个当前状态hth_t,提出一个query点xtx_t
  2. 观察到输出yty_t
  3. 更新任何可更新的参数,从而得到新状态ht+1h_{t+1}

在这工作中将使用RNN来定义一个更新参数的方法:
ht,xt=RNNθ(ht1,xt1,yt1), h_t, x_t = RNN_\theta(h_{t-1},x_{t-1},y_{t-1}),

ytp(yxt). y_t \sim p(y|x_t).
模型内部结构如图所示。
在这里插入图片描述

2.1 Loss Function

本文用到的损失函数是Lsum(θ)=Ef,y1,T1[t=1Tf(xt)]L_{sum}(\theta)=E_{f, y_1, T-1}[\sum_{t=1}^Tf(x_t)],通过使用这个损失函数,我们可以在训练优化器时考虑每个时间步上的信息。实际上对Lsum(θ)L_{sum}(\theta)进行优化是很困难的。如Figure 1所示, 在训练优化器时,将使用RNN的参数θ\theta来计算Loss函数的倒数,然后使用SGD进行优化。

此外本文还对比了另外两种损失函数,
LOI(θ)=Ef,y1,T1[t=1TEI(xty1:t1)] L_{OI}(\theta)=-E_{f, y_1, T-1}[\sum_{t=1}^TEI(x_t|y_{1:t-1})]

LOI(θ)=Ef,y1,T1[t=1Tmin{f(xt)mini<t(f(xi)),0}] L_{OI}(\theta)=E_{f, y_1, T-1}[\sum_{t=1}^T\min\{f(x_t) - \min_{i<t}(f(x_i)), 0 \}]

其中,EI(·)是给定从1到t-1的观测值的情况下,query点xtx_t的预期后验改进。后者是观测改进(Observed Improvement, OI)。

2.2 Training Function Distribution

本文没有对训练函数的分布做任何假设,本文的优化算法适用于通用目的的黑箱优化。因此,本文将使用高斯过程作为训练函数的分布。

2.3 Parallel Function Evaluation

并行函数评估是贝叶斯优化中的一个通用技术,常备用于费时但是比较容易模拟的函数。比如,在寻找深度网络的超参数时,我们可以很方便的训练出多个并行的深度神经网络。
在这里插入图片描述
不妨设我们有N个workers,同时推选待评估超参数点的过程比评估超参数要快得多。本文还为我们的RNN优化器的输入增加了一个二元变量oto_t
ht,xt=RNNθ(ht1,ot1,x~,y~t1) h_t, x_t = RNN_\theta(h_{t-1},o_{t-1}, \tilde{x}, \tilde{y}_{t-1})
对前t步中,ot1=0o_{t-1}=0,同时任意地将x~t1,y~t1\tilde{x}_{t-1},\tilde{y}_{t-1}设置为0。只要一个query点被评估好,这个query点和它的评估结果将会通过将ot1=1o_{t-1}=1的形式被反馈给网络,从而得到一个新的query点。Figure 2 展示了这个算法的单个循环过程。

一个训练的很好的优化器必须学会何时生成初始的query点,以及何时生成基于过去的观测结果生成的query点。需要注意的是,考虑到优化器的批处理性质,query点xt+1x_{t+1}有可能比xtx_{t}先评估好。

3 Experiments

本文用LSTM和differentiable neural computers (DNCs)来做实验,因为DNC的效果比LSTM要更好一点,所以本文所有的图表中主要展示DNC模型的结果。本文将元学习的实验结果与当前最先进的贝叶斯优化工具包进行了对比,包括:Spearmint, Hyperopt(TPE), and SMAC。

3.1 Performance on Functions Sampled from the Training Distribution

Figure 3中展示了最佳观测函数值与搜索步骤t的关系,其中RNN取的是在10000个采样的函数中的均值,其他方法取的是100个采样出的函数中的均值。因为RNN优化器的速度很快,所以本文做了10000次。从图中可以看出当函数的维度超过6时,RNN的变现开始明显优于其他优化方法。

Figure 4 展示了不同黑箱优化器在一维的情形下query点的轨迹。
在这里插入图片描述
在这里插入图片描述

3.2 Transfer to Global Optimization Benchmarks

本实验在四个标准benchmark上进行。实验结果如图5所示。
在这里插入图片描述

3.3 Transfer to a Simple Control Problem

本文还考虑将此方法用于简单的强化学习任务上。在此问题中,他们模拟了一个物理系统,该物理系统由许多排斥器组成,这些排斥器影响粒子通过2D空间的下落。目标是通过状态空间的高奖励区域来引导粒子的路径,并使累积的折扣奖励最大化。此问题中的四维状态空间由粒子的位置和速度组成。可以通过设置排斥器来控制颗粒的路径,该排斥器以与颗粒到颗粒的距离成反比的力将颗粒直接推开。在每个时间步,使用简单的确定性物理正向模拟更新粒子的位置和速度。该问题的控制策略包括每个推斥极的3个学习参数:2d位置和推斥极的强度。

Figure 6是实验结果。
在这里插入图片描述

3.4 Transfer to Machine Learning Hyper-parameter Tuning

这组实验考虑的是机器学习中的调参问题。这组实验使用了HPOLib包中的三个标准benchmarks:SVM,online LDA,logistic regression,同时还考虑了在CIFAR-100数据集上训练的残差网络。实验结果如Figure 7所示。
在这里插入图片描述

4 Conclusions

从实验结果来看,RNN优化器的性能可以匹配上高度工程化的贝叶斯优化方案,包括:Spearmint, SMAC 和 TPE。同时这个RNN优化器适用于各类黑箱函数,比如:GP bandits, 控制, 全局优化benckmarks,以及超参数微调。

同时实验结果表明,RNN优化器比贝叶斯优化方案要快得多。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章