神经网络 多标签 神经网络 多目标优化_算法

作者 | 张玮玮


神经网络 多标签 神经网络 多目标优化_算法_02

论文动机

设计机器学习系统的关键挑战之一是在几个目标之间的正确平衡,这些目标往往是不可比较和冲突的。例如,在设计深度神经网络(DNNs)时,需要在准确性、能耗和推理时间等多个目标之间进行权衡。通常,没有一种配置对所有目标都具有同样好的性能。尽管已经发展了不同的多目标优化算法来识别帕累托最优配置,最新的多目标优化算法没有考虑到每个目标不同的评估成本。

神经网络 多标签 神经网络 多目标优化_机器学习_03

论文工作

论文提出了一种 FlexiBO(flexible Bayesian optimization)方法来解决上述问题,在改进 Pareto 超体积指标的基础上,提出了一种新的获取函数。获取函数可以选择下一个样本和目标,以提供每单位成本的最大信息增益。

这篇论文受 Pareto Active Learning(PAL)的启发, 与其不同的是,这篇论文使用的不同的帕累托前沿构造方法,将成本考虑在内,引入了一个新的获取函数来采样下一个配置和评估目标。

因此,该方法可以在评估获得的额外信息与获取该信息的成本之间进行权衡,从而确保我们不会为了微小的潜在收益而执行昂贵的评估。通过评估成本较低的目标而不是成本较高的目标,遍历目标空间,并以更高的效率找到接近最优配置。

神经网络 多标签 神经网络 多目标优化_机器学习_04

论文标题:

FlexiBO: Cost-Aware Multi-Objective Optimization of Deep Neural Networks

论文链接:

https://arxiv.org/abs/2001.06588

代码链接:

https://github.com/softsys4ai/FlexiBO

神经网络 多标签 神经网络 多目标优化_算法_05

论文方法

神经网络 多标签 神经网络 多目标优化_算法_06

在多目标优化设置中,每个目标被建模为一个单独的代理模型。在许多应用中,评估不同的目标会产生不同的成本,这其中有很多目标可能会很昂贵。因此,我们希望不计算所有的输入,只通过非支配点来识别帕累托区域 。

更具体地说,FlexiBO 是一种基于成本感知的多目标优化算法,迭代并且自适应地选择一系列点和目标 ,直到达到最大迭代次数 ,其目的是确定一个帕累托区域而不是帕累托前沿。为了识别 中的帕累托最优点来构造 ,论文用

没有被任何目标采样过的点 ,可以被预测为一个向量 ,这种预测的不确定性表示为 。

论文为每个点使用预测值和不确定值来确定不确定区域,这些不确定区域可以来决定 的支配性。接着,非支配点 被用来分类

初始化之后,算法逐步迭代到最大步数。每次迭代包含单个步骤:建模、帕累托区域的构建以及采样。FlexiBO 中每个代理模型的构建都是基于每次迭代的采样点,这些采样点用于预测非采样配置的目标值及其伴随的不确定性。

我们使用这些预测来构建一个新的帕累托前沿,然后选择下一个配置来评估最能改善帕累托前沿(以减少帕累托体积为衡量标准)的配置,每个配置都以衡量特定目标的成本为权重。

算法终止后,将最终迭代中预测为 Pareto 前沿一部分的配置返回为 Pareto 区域,即  。算法 1 给出了用 FlexiBO 实现的贝叶斯优化过程的伪代码:

神经网络 多标签 神经网络 多目标优化_人工智能_07

3.1 建模

在第 个迭代阶段,为了预测平均向量 和标准偏差 ,对于所有的 ,论文使用了单独的代理模型(GP 和 RF)。将每个配置 x E 分配到一个不确定区域 Rt(x),其计算如下(参见图 3):

神经网络 多标签 神经网络 多目标优化_人工智能_08

神经网络 多标签 神经网络 多目标优化_神经网络 多标签_09

其中, β 是一个缩放参数,用于定义不确定区域与 σ 的比例,用于分析探索与开发的权衡。对于迭代步数 的 个目标,定义 ,不确定区域 内的悲观值和乐观值分别由 和

3.2 帕累托区域的构建

在每个迭代步数 ,为了确定帕累托区域,论文使用非支配点集构建了悲观和乐观的前沿。伪代码如算法 2 所示。

神经网络 多标签 神经网络 多目标优化_机器学习_10

首先,对 使用以下规则来定义 :

神经网络 多标签 神经网络 多目标优化_机器学习_11

其次,由每个 的悲观值 来构造悲观帕累托前沿 。如果 小于 ,且 大于 但小于 ,更新已在 中的点 的悲观值 。

这种构建悲观帕累托前沿的过程确保了任何有可能被纳入帕累托区域的点不会因为额外强调不确定性区域中点的悲观值而被抛弃。论文使用已排序的悲观值在一个目标上的排名来构造 ,如算法 2 所示。

如果 大于 ,则每个点 都包含在乐观帕累托前沿 中。最后计算了 和

3.3 采样

论文在考虑了每个目标 的每个 的评估成本的帕累托体积变化 。为了计算帕累托区域的体积变化,我们将每个 的不确定性区域在每个 上分别收缩到其估计均值 μ ,然后计算 Pareto 体积变化 (伪代码见算法 3)。论文使用以下方法选择下一个样本 和目标 :

神经网络 多标签 神经网络 多目标优化_神经网络 多标签_12

算法在 和

神经网络 多标签 神经网络 多目标优化_计算机视觉_13

3.4 具体工作流程 

Step 1 更新模型

性能测量的输出被反馈到 FlexiBO。FlexiBO 使用这些信息更新其替代模型(即 GP 或 RF)的后验分布。 

Step 2 优化获取函数

一旦更新了代理模型,就可以重新计算获取函数,并通过优化获取函数来确定下一个配置和目标。

Step 3 测量信息增益

在每次探索迭代中,都需要为参数分配适当的值。每个配置选项的值是根据其最大化预期效用的能力来选择的,而要评估的目标的选择是基于特定目标上的预期最大体积变化。

Step 4 训练DNN模型 

在每个新选择的配置中,没有必要训练 DNN 模型。相反,对于没有选择昂贵目标的配置,FlexiBO 使用代理模型来近似网络的准确性。为了测量这些配置的能源消耗,FlexiBO 用随机参数实例化 DNN 架构,然后在目标设备上自动部署架构进行分析。 

Step 5-6 DNN性能测量

性能度量是需要从优化 DNN 的目标资源受限的硬件中收集的。根据当前部署配置的参数设置,为目标架构设置参数,检索训练过的 DNN。一旦优化预算耗尽,将返回 DNN 的帕累托最优配置。 

神经网络 多标签 神经网络 多目标优化_计算机视觉_14

实验 

为了评估 FlexiBO,作者在 3 个不同的领域使用了 8 种不同的架构:目标检测、自然语言处理(NLP)和语音识别。表 1 列出了实验中使用的体系结构、数据集、编译器以及训练和测试集的大小。 

神经网络 多标签 神经网络 多目标优化_神经网络 多标签_15

为了初始化 FlexiBO,从对应的 DNN 系统的配置空间中测量了 15 个随机采样配置的精度和能耗。在实验中,考虑的跨堆栈配置空间如表 2 所示。例如,硬件/操作系统配置选项会影响 DNN 的能耗,而网络选项(例如过滤器大小)会影响准确性和能耗。

神经网络 多标签 神经网络 多目标优化_机器学习_16

实验设置最大迭代次数 T 为 200。然后测量了 10 次能耗,并取了中位数,目的是减少测量噪声。精度测量不受噪声影响,因此不会重复。实验使用了两种版本的 FlexiBO 和两种不同的替代模型 GP(FlexiBO+GP)和 RF(FlexiBO+RF)。作者将本文的方法与随机搜索(RS) 、单目标贝叶斯能耗优化(SOBO, EC)、精度优化(SOBO, Acc)、PAL 进行了对比。

为了与 FlexiBO 进行比较分析,实验设置了一个昂贵目标在 RS 中计 算的次数上限,该上限等于昂贵目标在 FlexiBO 中计算的次数。SOBO(Acc)和 SOBO(EC)通过使用改进的最大概率来获得一个新点,并在每次迭代中进一步测量两个目标,从而独立优化精度和能耗。其实验结果如下图所示:

神经网络 多标签 神经网络 多目标优化_算法_17

神经网络 多标签 神经网络 多目标优化_计算机视觉_18

图 7 显示了目标空间中实验的不同配置,主要是在 Xception+ImageNet 架构上,FlexiBO(GP, RF)对比 SOBO(EC, Acc)、RS 和 PAL 方法。 

另外,实验使用贡献度和多样性质量指标来评估帕累托前沿,当真实帕累托前沿的形状和基数未知时,贡献度特别有用,还可以用来提供使用不同方法获得的帕累托前沿之间的公平比较。具有较大贡献值的帕累托前沿近似更接近估计的实际帕累托前沿。

帕累托前沿的多样性是决定传播程度的另一个有用的质量指标。具有更高多样性的帕累托前沿在优化过程中有更多的使用点,从而确保在多目标环境下更好地控制性能调优。图 8 和图 9 展示了以下不同帕累托前沿的贡献和多样性值。

神经网络 多标签 神经网络 多目标优化_神经网络 多标签_19

神经网络 多标签 神经网络 多目标优化_算法_20

神经网络 多标签 神经网络 多目标优化_机器学习_21

实验 

在本工作中,作者开发了一种新的成本感知贝叶斯多目标优化算法称为 FlexiBO。FlexiBO 近似帕累托区域,并采用了一种新颖的成本感知获取,不仅选函数择下一个样本,而且还选择最具成本效益的目标来收集测量数据。论文使用 7 种不同的 DNN 体系结构来完成目标检测、自然语言处理和语音识别任务,并在一个资源受限的设备上优化了精度和能耗两个目标。