DeepMind提出架构搜索新方法:使用分层表示,时间短精度高
2017-11-16 06:42
453 查看
DeepMind 联合 CMU 近日提出一种结合模型结构分层表示和进化策略的高效架构搜索方法,通过比较人工设计的架构、使用强化学习找到的架构、使用随机或进化搜索找到的架构的实验结果,研究者发现这种搜索方法能有效找到性能超越人工设计的架构。
论文链接:https://arxiv.org/abs/1711.00436
我们探索了多种高效的神经架构搜索方法,介绍了一种简单而强大的进化算法,该算法可以发现达到当前最佳结果的新架构。我们的方法结合了一种新型分层遗传表示体系(hierarchical genetic representation),可以模仿人类专家常用的模块化设计模式,和支持复杂拓扑的表达能力很强的搜索空间。我们的算法能够高效地发现性能超越大量人工设计的图像分类模型的架构,在 CIFAR-10 上获得了 top-1 误差率 3.6% 的结果,在 ImageNet 上取得了 20.3% 的结果。该算法相对于当前最好的神经架构搜索方法是很有竞争力的,并且在这个任务上展示了新的当前最佳的进化策略。我们还展示了使用随机搜索的结果,在 CIFAR-10 上获得的结果仅比 top-1 准确率少 0.3%,在 ImageNet 上获得的结果仅比 top-1 准确率少 0.1%,而且我们的算法还将架构搜索的时间从 36 个小时减少到了 1 个小时。
我们的主要贡献总结如下:
我们提出了描述神经网络架构的分层架构表示;
我们的研究发现,即使用过分简化的随机搜索也能找到性能不错的图像分类架构,这体现了选择搜索空间的重要性;
我们展示了进化搜索的一种高效、可扩展的变体,可以进一步提升结果,并达到进化架构搜索技术的最佳已发表结果。
图 1. 三级分层架构表示图示。下行展示了 1 级的初始操作
如何组合成一个 2 级 motif
,上行展示了 2 级 motif
如何组合成一个 3 级的 motif
。
图 2. 使用架构搜索优化过的单元(cell)构建的图像分类模型。左上:在 CIFAR-10 上进行架构搜索使用的小型模型。右上:在 CIFAR-10 上用于学得单元评估的大型模型。下方:在 ImageNet 上用于学得单元评估的模型。
图 3. 水平表示(flat representation)和分层表示的拟合度与参数数量分别与进化步的对比结果图示。左:每个进化步生成的遗传型拟合度。中间:每个进化步之前的所有遗传型的最大拟合度。右:在 CIFAR-10 中,使用每个进化步中生成的遗传型来构建的小型模型的参数数量。
图 4. 进化过程中的准确率提升,根据第一个随机遗传型进行度量。小型模型用于在进化过程中计算拟合度(图中红线展示了其绝对拟合度)。大型模型使用进化单元架构用于训练和评估。
表 1. 使用多种表示和搜索方法找到的架构在 CIFAR-10 测试集和 ILSVRC 验证集上的分类结果。
表 2. 使用当前最佳模型和利用我们提出的架构搜索框架找到的最佳架构在 CIFAR-10 测试集上取得的分类误差结果。现有模型按以下方式排列(从上到下):人工设计的架构,使用强化学习方法找到的架构,使用随机或进化搜索找到的架构。
表 3. 使用当前最佳模型和利用我们提出的架构搜索框架找到的最佳架构在 ImageNet 验证集上取得的分类误差结果。
论文链接:https://arxiv.org/abs/1711.00436
我们探索了多种高效的神经架构搜索方法,介绍了一种简单而强大的进化算法,该算法可以发现达到当前最佳结果的新架构。我们的方法结合了一种新型分层遗传表示体系(hierarchical genetic representation),可以模仿人类专家常用的模块化设计模式,和支持复杂拓扑的表达能力很强的搜索空间。我们的算法能够高效地发现性能超越大量人工设计的图像分类模型的架构,在 CIFAR-10 上获得了 top-1 误差率 3.6% 的结果,在 ImageNet 上取得了 20.3% 的结果。该算法相对于当前最好的神经架构搜索方法是很有竞争力的,并且在这个任务上展示了新的当前最佳的进化策略。我们还展示了使用随机搜索的结果,在 CIFAR-10 上获得的结果仅比 top-1 准确率少 0.3%,在 ImageNet 上获得的结果仅比 top-1 准确率少 0.1%,而且我们的算法还将架构搜索的时间从 36 个小时减少到了 1 个小时。
我们的主要贡献总结如下:
我们提出了描述神经网络架构的分层架构表示;
我们的研究发现,即使用过分简化的随机搜索也能找到性能不错的图像分类架构,这体现了选择搜索空间的重要性;
我们展示了进化搜索的一种高效、可扩展的变体,可以进一步提升结果,并达到进化架构搜索技术的最佳已发表结果。
图 1. 三级分层架构表示图示。下行展示了 1 级的初始操作
如何组合成一个 2 级 motif
,上行展示了 2 级 motif
如何组合成一个 3 级的 motif
。
图 2. 使用架构搜索优化过的单元(cell)构建的图像分类模型。左上:在 CIFAR-10 上进行架构搜索使用的小型模型。右上:在 CIFAR-10 上用于学得单元评估的大型模型。下方:在 ImageNet 上用于学得单元评估的模型。
图 3. 水平表示(flat representation)和分层表示的拟合度与参数数量分别与进化步的对比结果图示。左:每个进化步生成的遗传型拟合度。中间:每个进化步之前的所有遗传型的最大拟合度。右:在 CIFAR-10 中,使用每个进化步中生成的遗传型来构建的小型模型的参数数量。
图 4. 进化过程中的准确率提升,根据第一个随机遗传型进行度量。小型模型用于在进化过程中计算拟合度(图中红线展示了其绝对拟合度)。大型模型使用进化单元架构用于训练和评估。
表 1. 使用多种表示和搜索方法找到的架构在 CIFAR-10 测试集和 ILSVRC 验证集上的分类结果。
表 2. 使用当前最佳模型和利用我们提出的架构搜索框架找到的最佳架构在 CIFAR-10 测试集上取得的分类误差结果。现有模型按以下方式排列(从上到下):人工设计的架构,使用强化学习方法找到的架构,使用随机或进化搜索找到的架构。
表 3. 使用当前最佳模型和利用我们提出的架构搜索框架找到的最佳架构在 ImageNet 验证集上取得的分类误差结果。
相关文章推荐
- 因为前段时间特别的忙现在针对很多朋友提出的.net中架构设计分层问题
- 排列搜索 庞果网(C语言版,虽实现了,但未通过测试,时间超过3s,使用的是全排序方法,愿大神指导)
- 在J2EE架构中各层的数据表示方法
- 获取系统时间几种方法 和 使用CPU时间戳进行高精度计时
- Lucene搜索结果排序问题(按时间倒序排的替代解决方法)
- [转]C/C++时间函数使用方法
- J2EE架构中各层的数据表示方法
- 使用Javascript动态创建表格,不同的方法,巨大的运行时间差异!
- C/C++时间函数使用方法介绍(2)
- 关于ORACLE中时间表示方法
- 获取系统时间几种方法 和 使用CPU时间戳进行高精度计时收藏
- MFC中List Control控件的使用及实时显示系统时间的方法
- 使用动态代理记录方法执行的时间
- 使用DateDiff方法来获取系统时间与指定时间的间隔数
- 使用connect by生成时间列表的方法
- Java日期时间处理的简要使用方法
- 昨天写了利用时间序列搜索方法预测股票价格程序
- 在从池中获取连接之前超时时间已过,所有池连接都已被使用并已达到最大池大小的问题解决方法
- linux grep搜索命令的使用方法
- 关于存储过程中一个参数表示多个查询条件使用方法的简单处理