NAS
神经结构搜索(Neural Architecture Search,简称NAS)是一种自动设计神经网络的技术,可以通过算法根据样本集自动设计出高性能的网络结构,在某些任务上甚至可以媲美人类专家的水准,甚至发现某些人类之前未曾提出的网络结构,这可以有效的降低神经网络的使用和实现成本。
NAS的原理是给定一个称为搜索空间的候选神经网络结构集合,用某种策略从中搜索出最优网络结构。神经网络结构的优劣即性能用某些指标如精度、速度来度量,称为性能评估。这一过程如下图所示。
在搜索过程的每次迭代中,从搜索空间产生“样本”即得到一个神经网络结构,称为“子网络”。在训练样本集上训练子网络,然后在验证集上评估其性能。逐步优化网络结构,直至找到最优的子网络。
搜索空间,搜索策略,性能评估策略是NAS算法的核心要素。搜索空间定义了可以搜索的神经网络结构的集合,即解的空间。搜索策略定义了如何在搜索空间中寻找最优网络结构。性能评估策略定义了如何评估搜索出的网络结构的性能。对这些要素的不同实现得到了各种不同的NAS算法,本节将选择有代表性的进行介绍。
基于梯度的神经架构优化算法
前面介绍的NAS算法都存在计算量大的问题,虽然存在改进方案。强化学习、遗传算法等方案低效的一个原因是结构搜索被当作离散空间(网络结构的表示是离散的,如遗传算法中的二进制串编码)中的黑箱优化问题,无法利用梯度信息来求解。
其中一种解决思路是将离散优化问题连续化。文献[6]提出了一种称为可微结构搜索(Differentiable Architecture Search,简称DARTS)的算法,将网络结构搜索转化为连续空间的优化问题,采用梯度下降法求解,可高效地搜索神经网络架构,同时得到网络的权重参数。
DARTS将网络结构、网络单元表示成有向无环图,对结构搜索问题进行松弛,转化为连续变量优化问题。目标函数是可导的,能够用梯度下降法求解,同时得到网络结构和权重等参数。算法寻找计算单元,作为最终网络结构的基本构建块。这些单元可以堆积形成卷积神经网络,递归连接形成循环神经网络。
教师-学生网络
教师—学生网络的方法,属于迁移学习的一种。迁移学习也就是将一个模型的性能迁移到另一个模型上,而对于教师—学生网络,教师网络往往是一个更加复杂的网络,具有非常好的性能和泛化能力,可以用这个网络来作为一个soft target来指导另外一个更加简单的学生网络来学习,使得更加简单、参数运算量更少的学生模型也能够具有和教师网络相近的性能,也算是一种模型压缩的方式。
较大、较复杂的网络虽然通常具有很好的性能,但是也存在很多的冗余信息,因此运算量以及资源的消耗都非常多。而所谓的Distilling就是将复杂网络中的有用信息提取出来迁移到一个更小的网络上,这样学习来的小网络可以具备和大的复杂网络想接近的性能效果,并且也大大的节省了计算资源。这个复杂的网络可以看成一个教师,而小的网络则可以看成是一个学生。
知识蒸馏
一般认为模型的参数保留了模型学到的知识,因此最常见的迁移学习的方式就是在一个大的数据集上先做预训练,然后使用预训练得到的参数在一个小的数据集上做微调(两个数据集往往领域不同或者任务不同)。例如先在Imagenet上做预训练,然后在COCO数据集上做检测。在这篇论文中,作者认为可以将模型看成是黑盒子,知识可以看成是输入到输出的映射关系。因此,我们可以先训练好一个teacher网络,然后将teacher的网络的输出结果 作为student网络的目标,训练student网络,使得student网络的结果 接近 ,因此,我们可以将损失函数写成 。这里CE是交叉熵(Cross Entropy),y是真实标签的onehot编码,q是teacher网络的输出结果,p是student网络的输出结果。
但是,直接使用teacher网络的softmax的输出结果 ,可能不大合适。因此,一个网络训练好之后,对于正确的答案会有一个很高的置信度。例如,在MNIST数据中,对于某个2的输入,对于2的预测概率会很高,而对于2类似的数字,例如3和7的预测概率为 和 。这样的话,teacher网络学到数据的相似信息(例如数字2和3,7很类似)很难传达给student网络。由于它们的概率值接近0。因此,文章提出了softmax-T,公式如下所示:
这里 是student网络学习的对象(soft targets), 是神经网络softmax前的输出logit。如果将T取1,这个公式就是softmax,根据logit输出各个类别的概率。如果T接近于0,则最大的值会越近1,其它值会接近0,近似于onehot编码。如果T越大,则输出的结果的分布越平缓,相当于平滑的一个作用,起到保留相似信息的作用。如果T等于无穷,就是一个均匀分布。
知识蒸馏,可以将一个网络的知识转移到另一个网络,两个网络可以是同构或者异构。做法是先训练一个teacher网络,然后使用这个teacher网络的输出和数据的真实标签去训练student网络。知识蒸馏,可以用来将网络从大网络转化成一个小网络,并保留接近于大网络的性能;也可以将多个网络的学到的知识转移到一个网络中,使得单个网络的性能接近emsemble的结果。
EMD
对于离散的概率分布,Wasserstein距离也被描述为推土距离(EMD)。如果我们将分布想象为两个有一定存土量的土堆,那么EMD就是将一个土堆 转换 为另一个土堆所需的最小总工作量。工作量的定义是 单位泥土 的总量乘以它移动的距离。
有很多种推土的方式,我们的目标是找到其中工作量最少的那一种,这是个优化问题。
BERT
BERT(Bidirectional Encoder Representation from Transformers)