NASNet

通过强化学习自动设计的NASNet网络,在精度和速度上超越了经典人工设计的网络结构。此研究提出了新的搜索空间和正则化技术ScheduledDropPath,实现了网络结构的自动优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

论文:Learning Transferable Architectures for Scalable Image Recognition

github:https://github.com/tensorflow/models/tree/master/research/slim/nets/nasnet

 

cvpr2017 google brain作品,利用强化学习,使用500块p100训练4天多得到的网络结构NASNet,不管在精度还是在速度上都超越了人工设计的经典结构。

 

论文贡献:

(1)设计了新的搜索空间,即NASNet search space,并在实验中搜索得到最优的网络结构NASNet

(2)提出新的正则化技术,ScheduledDropPath,是DropPath方法的改进版,可以大大提高了模型的泛化能力。

DropPath方法在训练过程中以随机概率p进行drop,该概率训练中保持不变。而ScheduledDropPath方法在训练过程线性的提高随机概率p。

 

文章类似resnet和inception一样,进行基本block的堆叠生成最终网络。因此搜索最优网络的时候,只搜索最优block。这样的好处,

(1)可以极大的加快搜索速度

(2)基础block对其他分类,检测问题都具有很好的泛化能力

 

网络整体结构:

上图分别为cifar-10和ImageNet的网络结构,由于cifar-10的网络输入为32*32,而ImageNet的网络输入为299*299,因此,ImageNet网络具有更多的模块堆叠,更大的深度。

网络结构中主要包含2个模块,Normal cell和Reduction cell。然后进行这2个模块的堆叠形成最终的网络。

 

搜索过程:

如上图所示,控制器RNN从搜索空间中以概率p预测网络结构A。worker单元,学习该网络直到收敛,并得到准确性R。最终将梯度p*R传递给RNN控制器进行梯度更新。

控制器依次搜索隐藏状态,隐藏状态,何种操作,何种操作,何种组合方法,这5个方法和操作的组合。其中,每种方法,每种操作都对应于一个softmax损失。这样重复B次,得到一个最终block模块。最终的损失函数就有5B个。实验中最优的B=5。

图右为根据图左得到的一个示例组合,与图左根据颜色一一对应。

其中,黄色的可选的操作包括上图所示的13种操作。

 

最终论文得到了3个网络结构,分别为NASNet-A,NASNet-B, NASNet-C。

NASNet-A

NASNet-B

NASNet-C

搜索策略:

文章进行了布鲁斯-随机搜索(RS)和强化学习(RL)的对比,得出强化学习(红色)可以获得比随机搜索(蓝色)更好的结果。

 

实验结果:

从图中可以看出,不管是乘-加计算量,还是参数量,NASNet都优于目前人工设计的网络结构。

 

总结:

(1)延续NAS论文的核心机制使得能够自动产生网络结构,AutoML以后将会是一个非常具有潜力的研究方向,google,第四范式等都有着方面的研究。

(2)采用resnet和Inception重复使用block结构思想。

(3)利用迁移学习将生成的网络迁移到大数据集上提出新的搜索空间NASNet。

(4)提出新的正则化技术ScheduledDropPath

### NASNet 论文下载链接 NASNet 的论文全名为《Learning Transferable Architectures for Scalable Image Recognition》[^4]。这篇论文详细介绍了如何通过神经架构搜索(Neural Architecture Search, NAS)来设计高效的卷积神经网络结构。 根据已有的资料,可以直接访问以下链接获取原始论文: - **论文地址**: [https://arxiv.org/abs/1707.07012](https://arxiv.org/abs/1707.07012) 此链接指向 ArXiv 平台上的公开版本,读者可以通过点击直接下载 PDF 文件。 此外,在 NAS 方法中,控制器 RNN 负责生成候选网络结构并对其进行优化,最终目标是在验证集上达到更高的性能表现[^5]。这些方法的具体实现细节可以在上述论文中找到。 对于更深入的学习者来说,《ImageNet Classification with Deep Convolutional Neural Networks》也是一篇值得参考的经典文献[^3],尽管它并非直接涉及 NAS 技术,但它奠定了现代 CNN 架构的基础理论框架。 ### 提供的代码片段示例 以下是利用 Python 和 PyTorch 实现的一个简单 NAS 控制器模型骨架: ```python import torch.nn as nn class ControllerRNN(nn.Module): def __init__(self, input_size, hidden_size, output_size): super(ControllerRNN, self).__init__() self.rnn = nn.LSTM(input_size=input_size, hidden_size=hidden_size, batch_first=True) self.fc = nn.Linear(hidden_size, output_size) def forward(self, x): out, _ = self.rnn(x) out = self.fc(out[:, -1, :]) return out ``` 该代码定义了一个基本的 LSTM 结构作为控制器的核心组件,用于生成新的子网参数配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值