NAS 概述

一.基础知识

https://www.youtube.com/watch?v=voWgnMpFaW8

  1. 参数  & 超参数

参数:权重

超参数:结构参数(卷积层数,卷积核数,卷积尺寸)& 优化参数(优化器类型,学习率,batchsize,epoch等)

  1. CNN结构

  1. NAS

NAS:最优验证集,对应的模型的最优结构。

此处不一定是验证集的准确率,对于移动端设备,还可以是:计算量&存储开销。

  1. 搜索空间

超参数的搜索空间太大,不能一一搜索。因此,需要手动设置一些指定值。(事先由用户指定)

搜索结果如下:

二.随机搜索

(如下为:交叉验证)

缺点:搜索空间太大,而搜索过的神经网络太小,所以随机搜索,很难找到最优的NN。

搜索神经网络最大几万组(几滴水),与搜索空间(海洋)相比,小很多。

三,NAS via RNN + RL

https://www.youtube.com/watch?v=AmitvRzmvv0

RNN来生成NN,RL来训练RNN。

本文主要理解思想和方法,不要纠结细枝末节。因为已经没有人使用了。

  1. 课前储备

  1. 算法细节

H0:初始状态的向量,一般为全0;

X0:随机生成的向量,(非均匀分布,也非正态分布)

RNN输入h0和x0,输出h1,h1作为下一个状态,

RNN运行很多步,每步都会有h向量输出。

H1然后送入fc + softmax。(此处的fc + softmax不会复用,因为任务不同)

H1经过运算,输出p1,表征:元素概率分布。(均<1,和为1)

RNN每一步都有一个任务,例如第一步是CNN中第一个conv的卷积核的数量。(用户需要指定n个可选择的卷积核数量24-36-48-64)

选择卷积核的方式有:(1)随机选择;(2)argmax(确定性选择)

然后介绍embedding层:

Embedding层:将one-hot a向量映射到稠密向量上,把embedding结果集记为x1.

Embedding有一个参数矩阵,(随机初始化,之后从训练数据集中学习)。

Embedding可在相同任务中重复利用。例如:每一个conv层都需要指定卷积核的数量。One-hot向量a1,a4,a7,a10都是预测卷积核的数量的,则可用相同的embedding层。把a向量映射到x向量。

不同任务,不可以使用不同的embedding层,如,下一个任务预测卷积核大小,则不能使用此处的embedding层。

H1作为状态,x1作为输入,rnn输出h2.

此处,p1和p2不会共享参数。(因为:任务不同,分别为卷积核的数量,卷积核的尺寸的预测,此外维度不同)

(两个任务不同,使用相同的embedding层不合理,另外维度不同a1为4维,a2为3维)

《此时,确定了第一个卷积核的超参数》

 用户自行设计层的数量,例如20.每一层有3个超参数,则一共有60个超参数。

即:RNN一共需要运行60步。终止RNN。返回生成的超参数。

上述,生成的RNN为controller RNN,训练controller RNN,目标:生成的CNN将最大化val的准确率。

以下部分,如何训练controller rnn。

  1. 训练controller RNN

  1. RNN运行60步,输出20个卷积层的超参数。
  2. 搭建CNN(只搜索cnn,其他类型的层,手动设置)
  3. 用不同的数据集,训练CNN.如果数据集越大,最优的NN就越大,每层的filters就越多。
  4. 计算val的准确率;
  5. 用val的准确率更新 RNN的参数。(包含:循环参数,embedding参数,fc参数)

目标:val的准确率最高。

解析:如果r对于theta可微分的话,则可以采用梯度下降法,更新参数。

但是,如果r对于theta不可微分的话,就不能这样求解。

R与theta的关系,都无法进行表达,更别说进行可微分了。

由于问题的特殊性,无法使用BP,因此只能采用RL。不要求最大化目标是可微分函数。

RL把不可微分的目标,作为环境给的奖励,但是RL并不好,有很大的*** policy,需要收集大量的奖励,才能让RL收敛。每收集一个奖励,都需要付出很大的代价。(需要从头开始训练CNN,直到收敛,才能计算val acc)。

如何采用RL来训练controller RNN.

目标函数:优化rnn,直到val acc最大;

奖励:val acc

策略函数:controller rnn

采用策略梯度上升,来更新策略函数。

策略函数如上。

看第t步,发生了什么?

Ht和xt唯一确定p(t +1)

Ht和xt是RL的状态state。

P(t+1)是策略函数输出的概率分布,a(t + 1)是根据p(t+1)抽样得到的action。

π介于【0,1】

 选中卷积核的大小,有三种方案:3,5,7.(此为动作集合)

在60步之前,其奖励全部为0;第60步的奖励为:val acc。

T时刻的回报为ut,他是从t时刻开始,所有奖励的加和。注意,除了最优一个时刻,其余的奖励全部为0.

已经直到π和u,近似策略梯度为:。。。。。。

用策略梯度的上升来更新π中的theta。

用Reinforce策略梯度,用回报ut来近似动作价值函数theta(pai)

每一轮有60个回报,共有60个近似策略梯度。

关于策略梯度:

RL:根据奖惩信息,来学习正确的行为。

学习奖惩的值,根据最大价值来选择行为,即:Q-learning/DQN

不通过分析奖惩值,直接输出行为,即:策略梯度。

其加入nn,来输出预测的动作。好处,在连续的空间内选择动作。

误差的反向传递:没有误差,但是确实在进行传递,目标:使此次迭代中的行为更有可能在下一次发生。但是,行为是否增加被选中的概率?由reward决定。

观察信息,通过NN,选中左边的行为,进行BP,使其下次选中的概率增加,但是奖惩信息说,此次行为不好,动作可能会的幅度会降低。使用奖励来左右BP。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值