这里 X 和 Y 分别对应某个任务的输入空间和输出空间,在计算 X 和 Y 的联合概率分布时有两种分解方法,既可以分解成 P(x)P(y|x; f) ,也可以分解成 P(y)P(x|y; g)。这里,P(y|x; f) 对应了一个机器学习模型,当我们知道输入 x 时,通过这个模型可以预测输出 y 的概率,我们把这个模型叫主任务的机器学习模型,P(x|y; g) 则是反过来,称之为对偶任务的机器学习模型。
有了这个数学联系以后,我们既可以做有效的无监督学习,也可以做更好的有监督学习和推断。比如我们利用这个联系可以定义一个正则项,使得有监督学习有更好的泛化能力。再比如,根据 P(x)P(y|x; f) 我们可以得到一个推断的结果,反过来利用贝叶斯公式,我们还可以得到用反向模型 g 做的推断,综合两种推断,我们可以得到更准确的结果。我们把以上提到的对偶学习技术应用在了机器翻译上,取得了非常好的效果,在中英新闻翻译任务上超过了普通人类的水平。 解决机器学习对大计算量的依赖
第四个研究方向也非常有趣,我们管它叫 Learning to Teach,中文我没想到特别好的翻译,现在权且叫做“教学相长”。
我们提出 Learning to Teach 这个研究方向,是基于对现在机器学习框架的局限性的反思。这个式子虽然看起来很简单,但它可以描述一大类的或者说绝大部分机器学习问题。这个式子是什么意思?首先 (x, y) 是训练样本,它是从训练数据集 D 里采样出来的。 f(ω) 是模型,比如它可能代表了某一个神经网络。我们把 f(ω)作用在输入样本 x 上,就会得到一个对输入样本的预测。然后,我们把预测结果跟真值标签 y 进行比较,就可以定义一个损失函数 L。
现在绝大部分机器学习都是在模型空间里最小化损失函数。所以这个式子里有三个量,分别是训练数据 D,损失函数 L,还有模型空间 Ω。 这三个量都是超参数,它们是人为设计好的,是不变的。绝大部分机器学习过程,是在这三样给定的情况下去做优化,找到最好的 ω,使得我们在训练数据集上能够最小化人为定义的损失函数。即便是这几年提出的 meta learning 或者 learning2learn,其实也没有跳出这个框架。因为机器学习框架本身从来就没有规定最小化过程只能用梯度下降的方法,你可以用任何方法,都超不出这个这个式子所表达的框架。
但是为什么训练数据集 D、损失函数 L 和模型参数空间 Ω 必须人为预先给定?如果不实现给定,而是在机器学习过程中动态调整,会变成什么样子?这就是所谓的 Learning to Teach。我们希望通过自动化的手段,自动调节训练数据集 D、损失函数 L 和模型参数空间 Ω,以期拓展现有机器学习的边界,帮助我们训练出更加强大的机器学习模型。
要实现这件事情其实并不简单,我们需要用全新的思路和视角。我们在今年连续发表了三篇文章,对于用自动化的方式去确定训练数据、函数空间和损失函数,做了非常系统的研究。
[attach]805910[/attach]
我给大家形象地描述一下我们的研究。 比如我们怎么用自动化的方式去选择合适的数据?其实很简单。除了原来的机器学习的模型以外,我们还有一个教学模型 teacher model。这个模型会把原来的机器学习的过程、所处的阶段、效果好坏等作为输入,输出对下一阶段训练数据的选择。这个 teacher model 会根据原来的机器学习模型的进展过程,动态选择最适合的训练数据,最大限度提高性能。同时teacher model也会把机器学习在交叉验证集上的效果作为反馈,自我学习,自我提高。
[attach]805911[/attach]
同样 model teaching 的环路中也存在一个 teacher model ,它会根据原来的机器学习过程所处的阶段、训练的效果,选择合适的函数空间,让原来的机器学习扩大自己的搜索范围,这个过程也是自适应的、动态的。原来的机器学习模型我们叫 student model,和我们引入的教学模型 teacher model 之间进行互动,就可以将学习过程推向一个新的高度。
[attach]805912[/attach]
同样,teacher model也可以动态调整原来student model 所要优化的目标。 比如,我们的学习目标可以从简到难,最开始的时候,一个简单的学习目标会让我们很快学到一些东西,但是这个学习目标可能和我们最终问题的评价准则相差很远。我们不断把简单平滑的目标,向着问题评价的复杂的非连续函数逼近,就会引导 student model 不断提高自己的能力,最后实现很好的学习效果。
总结一下,当我们有一个 teacher model,它可以动态地设计训练数据集、改变模型空间、调整目标函数时,就会使得原来“student model”的训练更宽泛、更有效,它的边界就会被放大。 我们在三篇论文里面分别展示了很多不同数据集上的实验结果。
[attach]805913[/attach]
我自己认为 Learning to Teach 非常有潜力,它扩大了传统机器学习的边界。我们的三篇论文仅仅是抛砖引玉,告诉大家这件事情可以做,但前面路还很长。
到此为止,我把最近这一两年微软亚洲研究院在机器学习领域所做的一些研究成果跟大家做了分享,它们只是我们研究成果的一个小小的子集,但是我觉得这几个方向非常有趣,希望能够启发大家去做更有意义的研究。 展望未来
第三个方向关乎的是我们人类到底是如何学习的。到今天为止,深度学习在很多领域的成功,其实都是做模式识别。模式识别听起来很神奇,其实是很简单的一件事情。几乎所有的动物都会模式识别。人之所以有高的智能,并不是因为我们会做模式识别,而是因为我们有知识,有常识。基于这个理念,Yann LeCun 一个新的研究方向叫 Predictive Learning(预测学习)。它的思想是什么?就是即便我们没有看到事物的全貌,因为我们有常识,有知识,我们仍然可以做一定程度的预测,并且基于这个预测去做决策。这件事情已经比传统的模式识别高明很多,它会涉及到人利用知识和常识去做预测的问题。
但是,反过来想一想,我们的世界真的是可以预测的吗?可能一些平凡的规律是可以预测的,但是我们每个人都可以体会到,我们的生活、我们的生命、我们的世界大部分都是不可预测的。所以这句名言很好,The only thing predictable about life is its unpredictability(人生中唯一能预测的就是其不可预测性)。