540 Chapter 15. 神经机器翻译结构优化 肖桐 朱靖波
机器翻译在内的自然语言处理任务而言,一般会更倾向于使用循环神经网络或
Transformer 模型的相关结构作为搜索空间
[798, 839, 846]
。
• 内部结构。对于内部结构的设计需要考虑到搜索过程中的最小搜索单元,以及
搜索单元之间的连接方式。最小搜索单元指的是在结构搜索过程中可被选择的
最小独立计算单元,在不同搜索空间的设计中,最小搜索单元的颗粒度各有不
同,较小的搜索粒度主要包括如矩阵乘法、张量缩放等基本数学运算
[852]
,更大
粒度的搜索单元包括常见的激活函数以及一些局部结构,如 ReLU、注意力机
制等
[515, 847, 853]
。不过,对于搜索颗粒度的问题,目前还缺乏有效的方法针对不同
任务进行自动优化。
2. 搜索策略
在定义好搜索空间之后,如何进行网络结构的搜索也同样重要。该过程被称为
搜索策略的设计,其主要目的是根据已找到的模型结构计算出下一个最有潜力的模
型结构,为保证模型有效性,在一些方法中也会引入外部知识(如经验性的模型结
构或张量运算规则)对搜索过程进行剪枝。目前常见的搜索策略一般包括基于进化
算法的方法、基于强化学习的方法以及基于梯度的方法等等。
• 进化算法。进化算法最初被用来对神经网络模型结构、以及其中的权重参数进行
优化
[842, 854, 855]
。随着最优化算法的发展,近年来,对于网络参数的学习开始更多地
采用梯度下降的方式,但是进化算法依旧被用于对模型结构进行优化
[856, 857, 858]
。
从结构优化的角度来说,一般是将模型结构看做遗传算法中种群的个体,使用
轮盘赌或锦标赛等抽取方式,对种群中的结构进行取样并将取样得到的结构作
为亲本,之后通过亲本模型的突变产生新的模型结构,最终对这些新的模型结
构进行适应度评估。根据模型结构在校验集上的性能确定是否将其加入种群。
• 强化学习。强化学习方法在第十三章已经进行了介绍,这里可以将神经网络结
构的设计看做是一种序列生成任务,使用字符序列对网络结构进行表述
[839]
。这
种方法的执行过程如图15.30所示。其执行过程为由智能体对模型结构进行生
成,之后将生成的结构应用于对应的任务(如机器翻译、语言建模等),根据
模型在对应任务中的输出以及表现水平来进一步对智能体进行反馈,促使智能
体生成更适用于当前任务的模型结构。
• 基于梯度的方法。这种方法的思想是在连续空间中对模型结构进行表示
[846]
,通
常将模型结构建模为超网络中的结构参数,接下来使用基于梯度的方法对超网
络中的参数进行优化,最终根据其中的结构参数离散出最终的模型结构,达到
结构搜索的目的,整体过程如图15.31所示。基于梯度的方法十分高效,因此也
受到了很多关注
[847, 859, 860]
。