今天下午从两点一直开会到6点……emmmmmm,脑子都快宕机啦。赶紧趁还有一些记忆的时候记录一下,虽然记录的内容很简单,但是也还是有用的吧。
先祭出一张zxx师兄总结的10篇NAS方向的论文,码住待看。
Multinomial Distribution Learning for Effective Nueral Architecture Search
论文要点:将搜索空间看作一个联合多项式分布,进而提出一种多项式分布学习方法来提高NAS的效率。(They propose a Multinomial Distribution Learning for extremely effective NAS, which considers the search space as a joint multinomial distribution)
经验假设:训练神经网络时,若前期的神经网络表现较好,则该神经网络在后期的表现也会很好。如下图:
算法步骤:如下图:
1) 根据概率分布选择一个operation。
2) 通过前向和反向传播训练当前的网络。
3) 测试并记录当前网络在验证集上的表现。
4)根据提出的分布学习算法更新得到的分布参数。
思路创新:区别于传统的DARTS方法(我的理解就是relation啦,也是需要维护一套参数,不过要将每个参数和operation对应起来,一起参与计算),不用对每一个operation都进行一次计算。通过维护这个概率分布,每次前向和反向传播的时候,只要选择一个operation参与计算,然后根据一定的概率对其他的operation进行采样,如果随机采样获得的op表现比之前的更好,则更新当前的概率分布。这样可以大大减少需要的计算量。
NAT: Neural Architecture Transformer for Accurate and Compact Architectures
论文要点:该论文认为,即便是一个训练好的网络结构中也有冗余的模块(卷积或池化),这些冗余的模块不仅占用内存和计算资源,而且也拉低了模型的表现性能。因此,该论文采用增强学习的方法,将该优化问题映射成一个马尔可夫决策过程,通过学习一个Neural Architecture Transformer,将冗余的操作替换成更高效的skip或zero操作。
算法步骤:1) 训练一个大网络。 2) 在该大网络中选择一个operation,尝试优化。
思路创新:其他的都没怎么听懂。抓住的一个点就是,如下图一样。将一个operation(O)转化成skip(S)或者none(N)操作。貌似论文实际操作的过程中会先加一些操作啥啥的……看实验结果感觉可借鉴性不强,就记个下面的图就好。
Network Pruning via Transformable Architecture Search
论文要点:在不降低网络表现性能的情况下,不限制channel和layer大小(传统的方法都是有限制的),使用NAS来给网络进行剪枝。
算法步骤:
1) 训练未剪枝的大网络。
2) 通过论文中提出的TAS来搜索the depth and width of a small netwrok。
3) 用KD方法,将大网络中的知识转移至搜索得到的小网络中。
思路创新:
a) KD方法的使用。
b) 采用**Gumbel-Softmax**代替论文中不可导的简单softmax操作(?知识盲区,需要补齐)。
c) 不同情况下不同loss函数的设计。 在第2)步时,采用了增加的loss;在第3)步,用专用的KD loss。
Progressive Differentiable Architecture Search: Bridging the Depth Gap between Search and Evaluation
论文要点:可微分的搜索方法可以大幅降低NAS的计算消耗。然而,这些方法应用在评估结果或者transfer到其他数据集时,准确度总是很低。这是因为在搜索和评估场景下的结构深度存在large gap(???又是我的知识盲区,这句话在说啥???)。因此,作者提出了一种鉴定式的搜索过程,可以使搜索的结构在训练过程中逐渐加深。
算法步骤:
a) 去掉概率较小的operation。
b) 更新概率,叠加层,至收敛。
c) 重复几轮a)和b)阶段。【DARTS是一步选出所有的operation】
思路创新:大概就是,把原来一步就得到的结果变成几个阶段了?放慢了去掉operation的速度,来使模型训练的更准确?????
One-Shot Neural Architecture Search via Self-Evaluated Template Network
算法步骤:
a) 选择一个大网络作模板。
b) 在大网络中采样得一个小网络(即子网络)。
c) 设计一个评估器,评估生成的子网络,pass掉评估结果差的网络,提高效率。
思路要点:所有子网络共享参数。(???)
Auto-FPN: Automatic Network Architecture Adaptation for Object Detection Beyond Classification
思路要点:考虑searching a better fusion。
DetNAS: Backbone Search for Object Detection
算法步骤:
a) 在ImageNet数据集上预训练the one-shot supernet。
b) 在detection数据集上采用FPN结构,精调supernet。
c) 使用EA算法,在训练得到的supernet上进行结构搜索。【supernet本身非常复杂】
思路要点:考虑搜索Backbone。
Efficient Neural Architecture Transformation Search in Channel-Level for Object Detection
思路要点:采用了channel-level的operation,区别于path-level,channel-level的operation是针对图像某一区域的某一通道进行操作,同一区域不同channel可以有不同的filter操作,而path-level则对于同一区域所有channel都进行相同的操作。
AutoGAN: Neural Architecture Search for Generative Adversarial Networks
思路要点:该论文第一次尝试用NAS生成GAN。
来源:CSDN
作者:Trizzz
链接:https://blog.csdn.net/weixin_46040552/article/details/103690452