当前位置: 首页 > news >正文

[优化算法]神经网络结构搜索(一)

一、概述

        神经网络主要由两类数据构成:参数(Parameters)和超参数(Hyper-Parameters)。其中参数即需要从训练数据中学习,并进行更新的数据,如卷积核中的参数;超参数则分为两类:结构超参数(Architecture)和算法超参数(Algorithm),其中结构超参数具体表现在一个神经网络有多少层、每层有多少卷积核、每个卷积核的尺寸等;算法超参数则体现在使用的迭代算法,如SGD或Adam。

        以CNN为例,结构超参数可以分为以下三种:

                ①卷积层(Conv)的数量和全连接层(Dense)的数量

                ②每个卷积层中的卷积核数量、大小和步长

                ③每个全连接层的宽度

        神经网络结构搜索(Neural Architecture Search, NAS):指使用算法找到最优的神经网络结构超参数,是的模型在验证集上的精度最高。

        搜索空间(Search space):搜索空间是一组包含所有神经网络可能结构的集合,是用户事先制定的。

        通过NAS的选择,得出的搜索结果(结构超参数)如下所示:

二、随机搜索

        通过不断重复:选择结构超参数->构建神经网络->进行验证。这三个步骤,选择验证结果中最佳的有种作为最佳结构超参数,这个过程是随机的,如下图所示。

        随机搜索虽然实现简单,但是依旧存在以下问题

                ①优化开销巨大:每次选择超参数后,需要单独进行建模,并从零开始对这个模型进行训练。

                ②搜索空间巨大:由于各模块的组合多样性,NAS并不能完整的穷举整个搜索空间。

三、循环神经网络+强化学习

        3.1 控制器RNN的构型

        使用RNN生成一个CNN,可以分为以下几步:

                ①对于RNN的初始状态h_0(全0)和输入x_0(随机生成),通过RNN处理后输出一个向量h_1=tanh(W\begin{bmatrix} h_0\\ x_0 \end{bmatrix}+b),如下图。

                ②将h_1输入一个softmax分类器,输出记作p_1p_1为第一层卷积核个数的概率预测(需要提前指定几个可选项),并使用随机选择(random)或最大值选择(argmax)选出一个值,将这个值记作one-hot向量a_1,如下图;在这里模型预测的内容为卷积核个数,可选项为24,36,48,64这4个。

                ③利用嵌入层(Embedding)将a_1映射为一个稠密向量x_1,再将向量h_1作为状态,向量x_1作为输入,使用RNN计算出向量h_2;再将向量h_2的拷贝作为下一时刻的状态,同时使用softmax分类器将h_2映射为概率p_2,进一步使用softmax选择一个值,记作one-hot向量a_2。如下图;在这里模型预测的是卷积核尺寸,可选项为3x3,5x5,7x7这三个,需要注意的是,由于输出维度和任务均不相同,此处的softmax与步骤②并不复用

                Ps.虽然这些softmax不能复用,但嵌入层在相同的任务中是可以复用的。同时由于RNN要求输入向量的维度一致,所以映射后的向量x_i的维度需要保持一致。

                ④接下来重复步骤③的操作,来预测卷积步长。如下图;

                通过不断重复上述步骤,即可得到一个模型的所有结构超参数,以一个20层的模型为例,每三个超参数可以确定一个卷积层(卷积核个数,卷积核尺寸,步长),用来生成超参数的RNN被称为控制器RNN(Controller RNN)。

        3.2训练控制器RNN

        要训练一个控制器RNN需要以下几步,同时如下图所示:

                ①使用控制器RNN生成一组CNN的结构超参数。

                ②根据步骤①的结构超参数实例化一个CNN。

                ③使用数据集训练步骤②搭建的神经网络

                ④对步骤③训练好的数据集进行预测,得到平均准确率

                ⑤使用步骤④的平均准确率更新控制器RNN,控制器RNN更新的目标是让平均准确率更高。

        实现上述步骤还存在一个问题:即目标函数r必须对于参数\theta可微,才可以将其计算为梯度形式:\theta\leftarrow \theta+\beta \frac{\alpha r}{\partial \theta}。在上述问题中,目标函数r为CNN的平均准确率,但优化参数\theta是控制器RNN的参数,两者并不构成可微关系,所以无法直接使用反向传播更新RNN。为了解决这个问题,引入强化学习。强化学习并不要求r\theta之间可微,直接将不可微的目标作为环境奖励

        3.3使用强化学习训练控制器RNN

        对于整个强化学习而言:奖励(Rewards)是CNN的平均准确率策略函数(Policy Function)为控制器RNN,使用策略梯度上升来更新策略函数。

        对于策略函数p_{t+1}=\pi(a_{t+1}|[h_t,x_t];\theta)而言,p_{t+1}为策略函数输出的概率分布,a_{t+1}为动作(离散的),h_tx_t为状态。

        以第60步为例,前59步的奖励不可见,记作r_1=r_2=...r_{59}=0;第60步的奖励记作r_{60}=ValAcc;将t时刻的回报记作u_tu_t=r_t+r_{t+1}+r_{t+2}+...r_{59}+r_{60},故u_1=u_2=...=u_{60}=ValAcc

        通过上面的推导,第t步的近似策略梯度函数可以写作:\frac{\partial log_\pi(a_{t+1}|[h_t,x_t];\theta)}{\partial \theta}u_t

        通过对策略梯度求和可以用来更新参数:\theta\leftarrow \theta+\beta \sum_{t=1}^{60} \frac{\partial log_\pi(a_{t+1}|[h_t,x_t];\theta)}{\partial \theta}u_t,其中\beta为手动设置的学习率参数。


文章转载自:

http://Z7wz0zb3.hmmtx.cn
http://4RgieCxO.hmmtx.cn
http://VAKYz98v.hmmtx.cn
http://UZr92WwW.hmmtx.cn
http://hKo66615.hmmtx.cn
http://Ztw3rOE8.hmmtx.cn
http://48nZ6EmX.hmmtx.cn
http://27AxhpPT.hmmtx.cn
http://glGI9PLU.hmmtx.cn
http://isZ6ibRO.hmmtx.cn
http://v5lUpHhm.hmmtx.cn
http://oQk9JFME.hmmtx.cn
http://tXKnVrvb.hmmtx.cn
http://jIlF3qzp.hmmtx.cn
http://qCY6KHy7.hmmtx.cn
http://7AFxT2uC.hmmtx.cn
http://GTMsu8Oc.hmmtx.cn
http://Ny0rw2gy.hmmtx.cn
http://ZePlGka8.hmmtx.cn
http://tdl3ICgO.hmmtx.cn
http://ZEVZNITm.hmmtx.cn
http://MS6uYWYX.hmmtx.cn
http://YIQNou1l.hmmtx.cn
http://1ILRmd6C.hmmtx.cn
http://dsuPlSoc.hmmtx.cn
http://K31BzGk4.hmmtx.cn
http://gJwYmkTi.hmmtx.cn
http://r2BZtbfX.hmmtx.cn
http://DC2rV26k.hmmtx.cn
http://BA9am1yE.hmmtx.cn
http://www.dtcms.com/a/374873.html

相关文章:

  • php 使用html 生成pdf word wkhtmltopdf 系列2
  • 大数据毕业设计选题推荐-基于大数据的海洋塑料污染数据分析与可视化系统-Hadoop-Spark-数据可视化-BigData
  • 【计算机网络 | 第11篇】宽带接入技术及其发展历程
  • 探索Java并发编程--从基础到高级实践技巧
  • Made in Green环保健康产品认证怎么做?
  • yum list 和 repoquery的区别
  • 解决HTML/JS开发中的常见问题与实用资源
  • Angular 面试题及详细答案
  • AI与AR融合:重塑石化与能源巡检的未来
  • 增强现实光学系统_FDTD_zemax_speos_学习(1)
  • 开学季干货——知识梳理与经验分享
  • Alex Codes团队并入OpenAI Codex:苹果生态或迎来AI编程新篇章
  • The learning process of Decision Tree Model|决策树模型学习过程
  • 六、与学习相关的技巧(下)
  • 《低功耗音频:重塑听觉体验与物联网边界的蓝牙革命》
  • 20250909的学习笔记
  • 金融量化指标--5Sortino索提诺比率
  • 消息三剑客华山论剑:Kafka vs RabbitMQ vs RocketMQ
  • 均值/方差/标注查介绍
  • 深入解析Guava RateLimiter限流机制
  • 开发中使用——鸿蒙子页面跳转到指定Tab页面
  • HarmonyOS实现快递APP自动识别地址
  • AJAX入门-URL
  • 【C++】18. 红⿊树实现
  • 基于Java Spring Boot的云原生TodoList Demo 项目,验证云原生核心特性
  • 记录一次rk3568硬解码时cpu占用率高的问题
  • Electron 跨平台兼容性:处理 OS 差异
  • Docker 学习笔记(五):网络与存储核心原理及实战应用
  • Who Wants To Be King: 1靶场渗透
  • PgSQL监控死元组和自动清理状态的SQL语句执行报错ERROR: division by zero原因分析和解决方法