大家好,欢迎来到专栏《AutoML》,在这个专栏中我们会讲述AutoML技术在深度学习中的应用。这一期讲述在激活函数设计中的应用。
作者&编辑 | 言有三
激活机制是一个网络非线性表达能力的来源,早期研究人员已经设计出了不少的激活函数,从sigmoid到relu系列,关于详细解读可以查看往期文章。
随着AutoML技术的发展,现在研究人员开始使用搜索技术来进行设计,本文简介相关技术发展。
1 从Relu到Swish
Google Brain是AutoML的先驱,从自动设计网络的NAS到自动数据增强的AutoAugment,因此很自然也最早做自动搜索最优的激活函数工作。
文[1]就在一系列一元函数和二元函数组成的搜索空间中,进行了比较细致的组合搜索实验。
结论是好用的激活函数都比较简单,不会超过两个基本函数的乘的组合。搜到了一些比Relu表现更好的函数,最好的是一个这样的函数:x · σ(βx),被称为Swish,它在某个特定的参数下也和ReLU及其变种类似,看看图就知道了。
该方法做实验时的一元函数和二元函数的搜索空间已经覆盖我们能想到的一些简单的函数了。
后来研究者们[2]验证了Swish甚至在很多的NLP任务中都非常有效。
在Swish的基础上,后续的研究人员设计了EliSH,HardEliSH[3],并针对不同的任务学习到了最好的激活函数。
2 Hybrid DNN
每一个网络层都使用同样的激活函数,这是最优的配置吗?显然不是。Hybrid DNN[4]的研究人员就研究了对不同的网络层进行不同激活函数机制的搜索问题,其流程如下:
从流程上来看,就是有一个激活函数库,然后每次从中选择配置到每一个网络层,使用验证集精度来进行最优配置搜索。
关于每一个网络层配置不同的策略,以后我们还会讲到不同的归一化层等配置,这也是一个小的研究方向吧。
参考文献
[1] Ramachandran P, Zoph B, Le Q V. Searching for activation functions[J]. arXiv preprint arXiv:1710.05941, 2017.
[2] Eger S, Youssef P, Gurevych I. Is it time to swish? comparing deep learning activation functions across NLP tasks[J]. arXiv preprint arXiv:1901.02671, 2019.
[3] Basirat M , Roth P M . The Quest for the Golden Activation Function[J]. 2018.
[4] Marchisio A, Hanif M A, Rehman S, et al. A Methodology for Automatic Selection of Activation Functions to Design Hybrid Deep Neural Networks[J]. arXiv preprint arXiv:1811.03980, 2018.
[5] Nwankpa C , Ijomah W , Gachagan A , et al. Activation Functions: Comparison of trends in Practice and Research for Deep Learning[J]. 2018.
总结
本次我们讨论的内容不涉及到一些学习参数的激活函数如Prelu,而是集中于全新的激活函数形式的探索以及逐层自适应的方案。研究点虽小,也有可以关注一下的。