作者 | 姜雨帆 编辑 | 唐里
当人工设计的神经网络结构在各项任务上都取得了很好的成绩之后,人类开始思考如何自动设计网络结构。
研究人员在2016年提出了神经网络的结构搜索(NAS),旨在从海量的神经网络结构中通过搜索的方式得到一个最优的网络结构。如果采用随机搜索的策略,搜索代价极高。为此,人们提出了不同的搜索策略来指导网络结构搜索。其中,最成功的策略当属强化学习和演化算法,在图像领域都得到了优秀的网络结构。但这些搜索方法需要的计算资源仍不是普通的研究机构可以负担起的。例如在图像识别任务CIFAR-10上搜索到一个性能优秀的结构需要使用450块GPU搜索3-4天。
最近,研究人员从不同的角度出发,提出了可微分的神经网络结构搜索方法,该方法通过将离散的网络结构参数连续化,在训练过程中使用梯度下降的方法对结构参数进行更新,得到最终的网络结构。该方法极大提高了网络结构搜索的效率。将上述任务的时间缩短至4块GPU 搜索1天。
可微分的网络结构搜索方法将待搜索的单元定义成一个有向无环图。每两个节点之间有多条边相连,每条边代表不同函数操作。为了能让离散的搜索空间可导,我们为每个操作引入一个权重,使用归一化的方法对每种函数操的选择进行松弛。在训练过程中使用梯度下降的方法对权重进行更新,最后选取权重较大的操作作为最终的结构,可参见下图左:
尽管可微分的网络结构搜索在保证网络性能的前提下,大大提高了搜索效率,但该方法仍存在一定的局限。在原方法中,归一化操作仅作用在两个节点之间的操作,而来自不同节点之间的操作不可比。这样的限制可能会导致局部偏置问题,使得网络训练无法收敛。
针对上述问题,本文对可微分的网络结构搜索方法进行改进。我们移除了原方法中存在的局部限制,对每一个节点的所有的输入边进行全局归一化操作,如上图右,减少网络中‘局部偏置’的影响。经过实验分析,我们改进的方法在保证网络性能的前提下,进一步提高网络搜索的效率以及稳定性。后续将对该方法的思想和实现作具体介绍。
方法描述
可微分的网络结构搜索方法面向的是一个单元模块,类似循环神经网络的一个循环单元,或者卷积神经网络的卷积单元,最终将搜索得到的单元堆叠成整个神经网络。针对语言建模的任务,我们对循环神经网络的循环单元进行搜索。
实验分析
我们在语言模型和命名实体识别任务上对改进的可微分结构搜索方法进行验证,实验结果如下图所示。具体的实验配置可参见论文。
为了验证方法的有效性,我们使用四组不同随机种子对网络进行初始化。分别使用改进的方法和原方法进行结构搜索。每10轮对当前时刻的结构性能进行验证,平均性能如下图所示。
以上实验结果可以证明,我们改进的方法在保证网络性能的前提下,进一步提高网络搜索的效率以及稳定性。
最后,我们对搜索得到的网络结构进行了可视化,如下图所示。
图中上方的结构是通过语言模型任务搜索得到的,下面的结构是通过命名实体识别任务得到的。从图中可以看出,每个搜索得到的循环神经单元都是一个有向无环图,图中包含了有顺序的八个节点,节点之间靠不同的激活函数进行连接。我们看到,通过搜索得到的网络结构都十分复杂,无法通过手工设计出来。同时,不同的任务最终搜索得到的结构也是不同的,这可能是因为每个任务都有不同的偏置,这也进一步证明了研究网络结构搜索的必要性。
总结
本文对可微分的网络结构搜索方法进行改进,移除了原方法中归一化操作的局部限制。提高了结构搜索的效率和稳定性,在语言模型任务和命名实体识别任务上搜索到多个优秀的网络结构。在未来的工作中,我们将在更多的任务上进行网络结构的搜索。
论文链接:https://www.aclweb.org/anthology/D19-1367.pdf
姜雨帆,东北大学自然语言处理实验室研究生,研究方向为神经网络结构搜索、神经语言模型。
小牛翻译,核心成员来自东北大学自然语言处理实验室,由姚天顺教授创建于1980年,现由朱靖波教授、肖桐博士领导,长期从事计算语言学的相关研究工作,主要包括机器翻译、语言分析、文本挖掘等。团队研发的支持140种语言互译的小牛翻译系统已经得到广泛应用,并研发了小牛翻译云(https://niutrans.vip)让机器翻译技术赋能全球企业。