机器学习论文笔记(二):Practical Block-wise Neural Network Architecture Generation

(机器学习论文笔记二)Practical Block-wise Neural Network Architecture Generation

实用的基于块的神经网络体系结构生成
论文地址:https://arxiv.org/pdf/1708.05552

简介:这篇文章介绍了一种通过强化学习的方法自动的生成神经网络,来到的一直在向强人工智能向迈进的过程。笔者认为这篇文章最大的意义在于它完善了我们“造轮子的过程”,在本文中,我们提供了一 个基于块的网络生成管道,称为BlockQNN,它使用具 有epsilon-greedy探索策略的Q-Learning范式自动构 建高性能网络。

主要的优点有:

1)与手工制作的最先进的图像分类网络 相比,它具有竞争性的结果,另外,BlockQNN生成的 最佳网络实现了3.54%的top-1错误在CIFAR-10上打败 了所有现有的自动生成网络。

(2)同时,它在设计 网络中的搜索空间大大减少,仅花费3天32 GPUs;

(3) 此外,它具有很强的普遍性,即建立在CIFAR上的网络 在较大规模的网络上也表现良好,规模较大的 ImageNet数据集。

介绍产生背景

为了适应CNN在CV中飞速的发展,传统的人工搭建网路的方法已经有些力不从心,我们提出来一种可以吧网路的各个组件模块化的方法来实现网络的自动生成

比较:与NAS相比,37]和MetaQNN,

NAS:https://www.google.com.hk/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&uact=8&ved=0ahUKEwjj_PD4hOfaAhVBKpQKHcVXA3EQFgg3MAE&url=%68%74%74%70%73%3a%2f%2f%6f%70%65%6e%72%65%76%69%65%77%2e%6e%65%74%2f%70%64%66%3f%69%64%3d%72%31%55%65%38%48%63%78%67&usg=AOvVaw0tJjG8YIWsFY75XlJFQztw

MateQNN:https://www.google.com.hk/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&uact=8&ved=0ahUKEwiouLzChefaAhUFFpQKHcBLATEQFggvMAE&url=%68%74%74%70%73%3a%2f%2f%6f%70%65%6e%72%65%76%69%65%77%2e%6e%65%74%2f%70%64%66%3f%69%64%3d%53%31%63%32%63%76%71%65%65&usg=AOvVaw2s-bVKLoGp1A6LhDjRygSH

这里写图片描述
上面这张图反映了一个比较的过程
BlockQNN(红色框右侧)与黄色手工制作的网络和绿色的现有自动生成网络相比较。 自动生成普通网络[2, 37]标 记为蓝色需要较大的计算成本来搜索每个单层的最佳层类型和超参数,而块式网络大大降低了仅仅为一个块搜索结构的成本。 然后通过堆叠生成的块来构建整个网络。 类似的区块概念已被证明在手工制作的网络中的优越性,例如以红色标记的起始块 和残留块。

同时我们加入了一个提前终止的策略和分布式异步计算。
这里写图片描述
我们设计出来的网络是基于现代inception ,resnet等等架构
这里写图片描述
我们可以看到他每一个模块。有一个自己的是否有标签以及他所在的成熟。还有一个就是卷积核的大小。如果没有的话,不是卷积核,那么它的size就是零。还有一个,就是pred1,pred2分别是他的前驱1和前驱2,我们假定只有两个我们可以生成。有一个自己的是否有标签以及他所在的成熟。还有一个就是卷积核的大小。如果没有的话,不是卷积核,那么它的size就是零。我们假定只有两个前驱。然后如果超过了两个的,我们会用concat的来连接多个块。
这里写图片描述
在这里我们定义了一个五元组。第一个元素是指他所在的块的编号,第二个是指他这个块会所代表的含义,一共有七种。第三个是他卷积核的大小,第四个,第五个是他的前驱。
这里写图片描述
这篇文章就提供了一种方法我们通过学习这样的一个网络然后达到生成一个我们需要的网络的目的,上图就是我们搜索这个生存的网络的一个这篇文章就提供了一种方法,我们通过学习这样的一个网络,然后达到深层一个,我们需要的网络的目的。上图就是我们搜索这个生存的网络的一个过程,然后我们通过。下面的一个方法来打扰我们,生成网络的训练的收敛。
我们通过Agent samples,然后通过这个采样生成的网络进行一个任务的训练,训练之后更新这个Q值用更新的,然后继续来采样更新,达到一个循环的过程。这个循环了之后我的q不断的优化然后我的生成的网络也越来越好。
这里写图片描述
其中α是确定新获得的信息如何覆盖旧信息的学习率,γ是衡量未来奖励重要性的折扣因子。 rt表示当前状态st观察到的中间奖励,而sT表示最终状态,即终 端层。 rT是相应的验证准确度。

提前终止 Early Stop Strategy

引入分块代确实提高了效率。 但是,完成搜索过程 仍然很耗时。 为了进一步加快学习过程,我们引入了 早期停止策略。好的块在早期停止训练时不幸地表现得比坏块差。 同时,我们注意到相应块的FLOP和密度具有负相关性
这里写图片描述

分布式异步框架Framework and Training Details

这里写图片描述
Distributed :它由三部分组成:主节点,控制器节 点和计算节点。 代理首先在主节点中采样一批块结构。 之后,我们将它们存储在一个控制器节点中,该控制 器节点使用块结构来构建整个网络并将这些网络分配 给计算节点。
https://arxiv.org/pdf/1412.1710.pdf

训练策略:贪心

这里写图片描述
Block-A,Block-B是无限参数设置,block-c是有限参数设置的,
这里写图片描述
他的优点主要体现在对资源的极大优化上。并且具有不错的泛化能力,这一点可以从CIFAR学习 的块结构转移到Ima-geNet数据集看出来。

summary

*使用分布式异步Q- learning框架和早期停止策略,专注于快速块结构搜索。
*在一定程度上Block-QNN网络在图像分类任务中 胜过现代手工制作的网络以及其他自动生成的网络。
*在CIFAR上实现最先进的性能的最佳模块结构可以轻松转移到大型数据集ImageNet,并且与最佳手工网络相比,还可以产生具有竞争力的性能。

Ps:加一下个人的感受吧,首先这篇paper是我导师的师弟在自动化所读博写的,我觉得我觉得这是一个非常有意义的工作。和以前的工作比起来,她更智能化了,她把我们的人工智能推向了更高的一个层次,就是通过人工智能他这个网络的学习能力来优化网络,就好像让机器学会自己给自己编程一样的道理,如果我们能把这个优化网络的过程做得更好。那么我们觉得在未来我们强人工智能的梦想并不是那么的遥远。而且借助这种生成网络的能力,我们可以更快的加速我们研究的过程,为我们将来的发展增加更多的一种助力。现在我们还只是在一种。比较原始的自己造轮子的过程可是有一天到了我们可以让机器随着我们的意志去造轮子的时候那么我们的发展速度肯定会有一个更大的飞跃。所以我也希望我能亲历那样的一天。

5月4日深夜12:36,陈扬在宿舍的走廊外写完。

猜你喜欢

转载自blog.csdn.net/weixin_41313407/article/details/80189362