在科学研究中,从方法论上来讲,都应“先见森林,再见树木”。当前,人工智能学术研究方兴未艾,技术迅猛发展,可谓万木争荣,日新月异。对于AI从业者来说,在广袤的知识森林中,系统梳理脉络,才能更好地把握趋势。为此,我们精选国内外优秀的综述文章,开辟“综述专栏”,敬请关注。
地址:https://zhuanlan.zhihu.com/p/370774775
在机器学习中一般训练样本是随机喂给模型去学习的,甚至假设样本是无序的。然而人与动物在学习时,按照一定的次序循序渐进地学习,往往学习效果会更好。所以能否将这种循序渐进地学习方式应用到机器学习当中呢?这就是本文要介绍地课程学习(Curriculum Learning),它将样本按照由易到难得次序喂给模型去学习,可以使得训练过程收敛得更快,并且可以使模型获得更好得泛化能力。01
由于参数的冗余性与参数空间的高维度,深度学习模型的训练过程是一个庞大的非凸优化问题,求出最优解几乎是不可能的,一般只能得到一个局部最优解。这个局部最优解依赖于不同的参数初始化方式,参数更新方式以及正则化方式。模型的深度越深就能学到更高阶的特征,从而取得更好的效果,但训练的难度也会增加。以前训练深层次的全连接网络几乎是不可能的,后来Hinton提出过用逐层训练的方式,解决了这个问题。后来发明了一些特俗的网络结构如CNN、ResNet、LSTM等,这些网络可以直接用SGD进行训练。为了进一步降低训练难度,出现了预训练与正则化的方式,可以使得网络收敛的更快并且提高泛化能力。课程学习使用由易到难的样本训练模型,可视为一种预训练或者正则化的方式,它可以获得更好的局部最优解。02
延拓法是用于解决非凸优化问题的一种有效优化策略,其基本思想是先优化目标函数的平滑版本,然后逐渐降低平滑程度。这种思想基于一个常识性的直觉,即平滑版本的问题可以揭示该问题的总体轮廓。课程学习可被视为连续学习的一种特殊形式,它是一个优化序列,每次优化都对训练样本用了不同的分布进行加权。假设训练样本的原始分布为 ,第 次优化(或学习)时赋予每个样本的权重为 ,其中 ,并且 ,相应的第 次优化(或学习)时的样本分布为这个定义太过抽象,可以举一个极端的例子,试验分为两个阶段,第一个阶段用的数据是一些容易学的样本,第二个阶段包含了所有的训练样本。由于第一个阶段只使用了部分样本,那么部分样本的权重为1,余下部分样本的权重为0 ,第二个阶段所有样本的权重都是1,所以权重单调非递减的条件得到了满足。由于第二个阶段增加了样本的多样性,所以样本分布的信息熵也就增加了。介绍了课程学习的基本概念与数学定义后,下面介绍两个例子看看其实际应用效果。03
这个例子采用的模型是一个感知机,训练数据是通过公式 产生的。实际输入模型的数据 中的 包括两部分,即 ,其中 的每一位要么是0要么是0到1之间的一个随机数实验一共有200个样本,每次用一个样本更新感知机的权重,总共进行200次的更新,然后再测试集上测试训练效果。课程学习实验方案中样本按照由易到难得次序排列,采用了两种“容易”的度量方式:最终实验效果如下,可以看出在相同的迭代次数下,使用课程学习得到的模型具有更低的错误率。
04
语言模型的建模方式是取一个固定大小位 的滑动窗口,让这个窗口在语料中移动,会得到 个词,将这 个词输入语言模型会得到一个分数。我们期望,如果这 个词是真实从语料中框出来的则分数较高,如果任意某个词被随机替换成词典中其他的词,则分数应该较低,且margin不应该小于1。训练的目标函数如下那么如何定义容易与难学习的样本呢?这里使用的方式是控制词表的大小,一开始使用一个较小的词表,滑动窗口中只要有一个词不在词表中则丢弃该样本。每训练一轮后逐渐扩大词表,测试的指标是测试数据上下一个词的log Rank。最终的学习效果如下,可以看出使用课程学习,经过一定轮数的迭代后会取得比随机学习更好的效果。
05
本文介绍了训练深度学习模型的困难,课程学习作为延拓法的一种特殊形式,借鉴了人或者动物按照循序渐进的方式学习知识可以比按照随机次序学习可以取得更好的学习效果,可以在一定程度上缓解深度学习模型训练的困难。最后还通过两个例子介绍了课程学习的实际使用效果。参考文献
https://www.researchgate.net/publication/221344862_Curriculum_learning
本文目的在于学术交流,并不代表本公众号赞同其观点或对其内容真实性负责,版权归原作者所有,如有侵权请告知删除。
“综述专栏”历史文章
更多综述专栏文章,
请点击文章底部“阅读原文”查看
分享、点赞、在看,给个三连击呗!