【博士每天一篇文献-算法】 PNN网络启发的神经网络结构搜索算法Progressive neural architecture search

本文涉及的产品
文件存储 NAS,50GB 3个月
简介: 本文提出了一种名为渐进式神经架构搜索(Progressive Neural Architecture Search, PNAS)的方法,它使用顺序模型优化策略和替代模型来逐步搜索并优化卷积神经网络结构,从而提高了搜索效率并减少了训练成本。

阅读时间:2023-12-23

1 介绍

年份:2018
:Chenxi Liu,Google DeepMind研究科学家;Barret Zoph,OpenAI;Maxim Neumann,Goolge
会议:B区会议, Proceedings of the European conference on computer vision (ECCV).
引用量:2320
Liu C, Zoph B, Neumann M, et al. Progressive neural architecture search[C]//Proceedings of the European conference on computer vision (ECCV). 2018: 19-34.
本文提出了一种新的卷积神经网络(CNN)结构学习方法。是一种顺序模型优化(Sequential Model-Based Optimization, SMBO)策略,通过逐步增加模型复杂度来搜索结构,并同时学习一个替代模型(surrogate model)来指导搜索过程。与直接搜索完整CNN结构的方法不同,本文方法首先搜索一个好的卷积“单元”(cell),然后根据训练集大小和期望的运行时间,将这个单元堆叠多次形成最终的CNN。从简单的模型开始,逐步过渡到复杂的模型,并在此过程中剪枝掉没有前景的结构。为了减少训练和评估模型的成本,同时训练一个模型或替代函数来预测一个结构的性能,而无需实际训练它。
image.png
image.png
image.png

2 创新点

  1. 渐进式搜索策略:与传统的一次性搜索整个网络结构的方法不同,论文提出了一种渐进式的搜索策略,即从简单的网络结构开始,逐步增加复杂性,这有助于快速获得初步结果并对替代模型进行训练。
  2. 结构化搜索空间:采用了一种结构化的搜索空间,通过搜索卷积“单元”(cell)而不是整个CNN,然后将这些单元堆叠起来构建最终的网络结构,这提高了搜索的效率和模型的可转移性。
  3. 替代模型引导搜索:为了减少实际训练模型的数量,论文提出了使用一个替代模型来预测候选模型的性能。这个替代模型基于已评估模型的性能数据进行训练,并用于指导搜索过程。
  4. 高效的性能预测:论文中使用了LSTM和MLP作为替代模型,通过学习模型结构与性能之间的映射关系,有效预测模型性能,减少了对实际训练的依赖。
  5. 优化的搜索过程:通过扩展当前候选单元并使用替代模型进行评估,选择最有前景的候选者进行训练和评估,这一过程不断迭代,直到达到所需的单元复杂度。
  6. 实验验证:论文在CIFAR-10和ImageNet数据集上进行了广泛的实验,验证了所提出方法的有效性,并且在计算效率和模型性能上均达到了当时的最佳水平。

3 算法步骤

  1. 初始化候选单元集合
    • 从单个块(block)的单元结构开始,构建所有可能的单元结构集合 $ S_1 $​。
  2. 单元转换为CNN
    • 将每个单元结构转换为一个CNN模型,这是通过将单元结构重复堆叠一定次数来完成的。
  3. 训练代理CNN
    • 训练集合 $ S_1 $​中的每个单元结构对应的CNN模型,并在训练集上进行训练。
  4. 评估验证准确率
    • 在验证集上评估每个CNN模型的性能,获取它们的验证准确率。
  5. 训练性能预测模型
    • 使用已评估的单元结构的准确率作为训练数据,训练一个性能预测模型(如LSTM或MLP),用于预测单元结构的性能。
  6. 扩展候选单元
    • 将当前候选单元集合 $ S_b $​中的每个单元扩展一个块,生成新的候选单元集合 $ S'_{b+1} $​。
  7. 预测性能
    • 使用性能预测模型对 $ S'_{b+1} $​中的单元进行评分,预测它们的性能。
  8. 选择最有前景的单元
    • 根据预测模型的评分,选择最有前景的K个单元结构,形成新的候选集合 $ S_{b+1} $​。
  9. 转换和训练
    • 将 $ S_{b+1} $​中的单元结构转换为CNN模型,并在训练集上进行训练。
  10. 更新性能预测模型
  • 使用新训练的CNN模型在验证集上的性能来更新性能预测模型。
  1. 迭代搜索
  • 重复步骤6到10,直到达到所需的最大块数量B。
  1. 选择最终模型
  • 在最终的候选单元集合 $ S_B $​中,选择验证准确率最高的单元结构作为最终的CNN模型。
  1. 进一步训练和评估
  • 将选定的单元结构进一步训练,并在测试集上评估其性能。

image.png
途中单元结构由5个“块”(blocks)组成,每个块代表网络中的一个操作或一组操作。
image.png
展示了PNAS算法在最大块数 ( B = 3 ) 的情况下的搜索步骤。

  1. 初始化候选单元集合
    • $ S_b $​表示具有b个块的候选单元集合。
    • 搜索从 $ S_1 $​开始,即所有只包含1个块的单元结构集合 $ S_1 = B_1 $​。
  2. 训练和评估
    • 训练并评估 $ S_1 $​中的所有单元,并使用它们的性能数据来更新性能预测模型(预测器)。
  3. 迭代扩展
    • 在第2次迭代中,将 $ S_1 $​中的每个单元扩展为具有2个块的单元,得到 $ S'_2 = B_1:2 $。
    • 使用性能预测模型对 $ S'_2 $​中的所有可能的2块单元进行评分。
  4. 选择和评估
    • 从 $ S'_2 $​中选择预测性能最好的K个单元,形成 $ S_2 $​。
    • 训练并评估 $ S_2 $​中的单元,并再次更新性能预测模型。
  5. 进一步迭代
    • 在第3次迭代中,将 $ S_2 $​中的每个单元扩展为具有3个块的单元的子集,得到 $ S'_3 \subseteq B_1:3 $。
    • 同样地,使用性能预测模型对 $ S'_3 $中的单元进行评分。
  6. 最终选择
    • 从 $ S'_3 $​中选择预测性能最好的K个单元,形成$ S_3 $​。
    • 训练并评估 $ S_3 $中的单元,选择最终的最佳单元作为搜索过程的获胜者。
  7. 搜索树的每个层级
    • 在搜索树的每个层级,“beam size” K 表示在该层级训练和评估的模型数量。这是一个重要的参数,因为它决定了在每一步中考虑的候选模型的数量。
  8. 块的数量
    • $ B_b $​表示在第b层可能的块的数量。随着b的增加,理论上可能的块组合数量会增加,但实际搜索过程中会使用性能预测模型来减少需要考虑的候选数量。

4 实验分析

(1)PNAS算法中使用的MLP集成预测器的准确性
image.png
图中上下部分分别展示了预测器在训练集上和未见过的更大模型集上的表现。

  • 训练集上的准确性:对于训练集,RNN通常比MLP有更高的相关系数,这意味着RNN在训练数据上能够更准确地预测模型的性能排名。
  • 泛化能力:当预测器应用于未见过的更大的模型时,MLP似乎比RNN有更好的表现。这表明尽管RNN在训练集上表现良好,但MLP在新数据上的泛化能力更强。

(2)神经架构搜索(NAS)、渐进式神经架构搜索(PNAS)和随机搜索这三种方法的相对效率
image.png

  • PNAS的效率:PNAS在训练和评估较少模型的情况下,能够快速地获得高性能的模型架构。这表明PNAS在搜索过程中具有很高的效率。
  • NAS的效率:与PNAS相比,NAS在达到相同平均准确率时需要训练和评估更多的模型。这意味着NAS的效率低于PNAS。
  • 随机搜索的效率:随机搜索在图4中作为基线,通常需要更多的尝试才能找到性能良好的模型,因此在效率上不如PNAS和NAS。
  • 性能稳定性:误差条和彩色区域显示了不同方法在多次试验中性能的波动情况。较短的误差条意味着方法的性能更加稳定。
  • 模型训练次数的影响:每个模型都训练了20个周期,这意味着不同方法在模型训练上的投入是相同的,但PNAS在模型选择上更为高效。
  • 搜索策略的重要性:结果强调了有效的搜索策略在神经架构搜索中的重要性,PNAS通过渐进式搜索和性能预测模型的使用,显著提高了搜索过程的效率。

5 思考

借鉴了PNN的结构设计的架构搜索算法。

相关实践学习
基于ECS和NAS搭建个人网盘
本场景主要介绍如何基于ECS和NAS快速搭建个人网盘。
阿里云文件存储 NAS 使用教程
阿里云文件存储(Network Attached Storage,简称NAS)是面向阿里云ECS实例、HPC和Docker的文件存储服务,提供标准的文件访问协议,用户无需对现有应用做任何修改,即可使用具备无限容量及性能扩展、单一命名空间、多共享、高可靠和高可用等特性的分布式文件系统。 产品详情:https://www.aliyun.com/product/nas
目录
相关文章
|
1月前
|
机器学习/深度学习 算法 TensorFlow
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
动物识别系统。本项目以Python作为主要编程语言,并基于TensorFlow搭建ResNet50卷积神经网络算法模型,通过收集4种常见的动物图像数据集(猫、狗、鸡、马)然后进行模型训练,得到一个识别精度较高的模型文件,然后保存为本地格式的H5格式文件。再基于Django开发Web网页端操作界面,实现用户上传一张动物图片,识别其名称。
72 1
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
|
1月前
|
机器学习/深度学习 人工智能 算法
深度学习入门:理解神经网络与反向传播算法
【9月更文挑战第20天】本文将深入浅出地介绍深度学习中的基石—神经网络,以及背后的魔法—反向传播算法。我们将通过直观的例子和简单的数学公式,带你领略这一技术的魅力。无论你是编程新手,还是有一定基础的开发者,这篇文章都将为你打开深度学习的大门,让你对神经网络的工作原理有一个清晰的认识。
|
1月前
|
机器学习/深度学习 人工智能 算法
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
植物病害识别系统。本系统使用Python作为主要编程语言,通过收集水稻常见的四种叶片病害图片('细菌性叶枯病', '稻瘟病', '褐斑病', '稻瘟条纹病毒病')作为后面模型训练用到的数据集。然后使用TensorFlow搭建卷积神经网络算法模型,并进行多轮迭代训练,最后得到一个识别精度较高的算法模型,然后将其保存为h5格式的本地模型文件。再使用Django搭建Web网页平台操作界面,实现用户上传一张测试图片识别其名称。
95 22
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
|
1月前
|
机器学习/深度学习 人工智能 算法
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
鸟类识别系统。本系统采用Python作为主要开发语言,通过使用加利福利亚大学开源的200种鸟类图像作为数据集。使用TensorFlow搭建ResNet50卷积神经网络算法模型,然后进行模型的迭代训练,得到一个识别精度较高的模型,然后在保存为本地的H5格式文件。在使用Django开发Web网页端操作界面,实现用户上传一张鸟类图像,识别其名称。
84 12
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
|
6天前
|
机器学习/深度学习 人工智能 算法
【玉米病害识别】Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练
玉米病害识别系统,本系统使用Python作为主要开发语言,通过收集了8种常见的玉米叶部病害图片数据集('矮花叶病', '健康', '灰斑病一般', '灰斑病严重', '锈病一般', '锈病严重', '叶斑病一般', '叶斑病严重'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。再使用Django搭建Web网页操作平台,实现用户上传一张玉米病害图片识别其名称。
18 0
【玉米病害识别】Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练
|
8天前
|
机器学习/深度学习 算法 5G
基于BP神经网络的CoSaMP信道估计算法matlab性能仿真,对比LS,OMP,MOMP,CoSaMP
本文介绍了基于Matlab 2022a的几种信道估计算法仿真,包括LS、OMP、NOMP、CoSaMP及改进的BP神经网络CoSaMP算法。各算法针对毫米波MIMO信道进行了性能评估,通过对比不同信噪比下的均方误差(MSE),展示了各自的优势与局限性。其中,BP神经网络改进的CoSaMP算法在低信噪比条件下表现尤为突出,能够有效提高信道估计精度。
21 2
|
9天前
|
机器学习/深度学习 Python
深度学习笔记(九):神经网络剪枝(Neural Network Pruning)详细介绍
神经网络剪枝是一种通过移除不重要的权重来减小模型大小并提高效率的技术,同时尽量保持模型性能。
25 0
深度学习笔记(九):神经网络剪枝(Neural Network Pruning)详细介绍
|
1月前
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
72 6
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
|
1月前
|
机器学习/深度学习 人工智能 算法
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
文本分类识别系统。本系统使用Python作为主要开发语言,首先收集了10种中文文本数据集("体育类", "财经类", "房产类", "家居类", "教育类", "科技类", "时尚类", "时政类", "游戏类", "娱乐类"),然后基于TensorFlow搭建CNN卷积神经网络算法模型。通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型,并保存为本地的h5格式。然后使用Django开发Web网页端操作界面,实现用户上传一段文本识别其所属的类别。
68 1
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
|
1月前
|
机器学习/深度学习 人工智能 算法
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台。果蔬识别系统,本系统使用Python作为主要开发语言,通过收集了12种常见的水果和蔬菜('土豆', '圣女果', '大白菜', '大葱', '梨', '胡萝卜', '芒果', '苹果', '西红柿', '韭菜', '香蕉', '黄瓜'),然后基于TensorFlow库搭建CNN卷积神经网络算法模型,然后对数据集进行训练,最后得到一个识别精度较高的算法模型,然后将其保存为h5格式的本地文件方便后期调用。再使用Django框架搭建Web网页平台操作界面,实现用户上传一张果蔬图片识别其名称。
44 0
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台

热门文章

最新文章