Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

田飞作者

ICLR 2018论文 | Learning to Teach:让AI和机器学习算法教学相长

编者按:4月30日至5月3日,ICLR 2018(International Conference on Learning Representations 2018 )正在加拿大温哥华火热进行。此次大会上,微软亚洲研究院机器学习组发表了最新研究成果“Learning to Teach”,他们探索出一种新的让机器学会自动化教学的方法,进而提升数据利用率和模型性能。想看论文原文?请点击文末“阅读原文”。

近年来,“自动学习(AutoML)”已经成为了一个研究热点。通过自动化的方式,机器试图学习到最优的学习策略,从而避免机器学习从业者低效的手动调整方式。经典的自动学习方法包括用于参数调节的贝叶斯优化(Bayesian Optimization),以及用于优化器和网络结构调整的元学习技术(Meta learning/Learning-to-Learn)除了在学术界引起了广泛研究兴趣,自动学习在工业界也已经得到了实际应用,例如微软Azure提供的自定义影像(Custom Vision)服务,能够方便云计算用户自动训练用于计算机视觉机器学习模型。除此之外,还有谷歌云提供的AutoML服务等。

Azure自定义影像服务链接:

https://azure.microsoft.com/zh-cn/services/cognitive-services/custom-vision-service/

不论是传统的机器学习算法还是最近的自动学习算法,它们的重点都是如何让AI更好地学习:两种学习算法的训练过程都是在固定的数据集上,通过最小化固定的损失函数(Loss Function),优化得到位于模型假设空间(Hypothesis Space)里最优的模型。而两者差别仅仅在于优化过程是否是自动进行的,这无疑限制了自动学习技术的潜力。

事实上,当我们回过头来追溯人类社会的智能史,我们会发现“教学”这一行为,对于人类智能的培养和传承起着不可磨灭的重要作用。《礼记·学记》曾云:“是故学然后知不足,教然后知困。知不足然后能自反也,知困然后能自强也。故曰教学相长也。”通过和人类社会的学习机制对比,我们发现传统的机器学习和近年来的自动学习都忽略了一个很重要的方面:它们只学而不教。无论是训练数据、损失函数,还是模型的假设空间,都对应着人类教学过程里的若干重要环节。因此我们试图打破对于训练数据、损失函数和模型假设空间的限制,把教学这一重要的概念集成到机器学习系统中,使得人工智能和机器学习算法得以教学相长。我们将这一框架命名为“学习教学”(Learning to Teach,简写为L2T)。其中涵盖了若干个关键问题:

1.数据教学力图为机器学习过程寻找到最优的训练集。训练数据对应人类教学过程中的教育材料,例如教科书。

2.损失函数教学力图为机器学习过程寻找到最优的损失函数。这类比于人类教学过程中,优秀的教师会通过高质量的测试过程来评估学生的学习质量,并对其进行引导。

3.模型空间教学力图为机器学习过程定义最优的模型假设空间。例如在训练的初期,我们可能会倾向于使用简单的线性模型来尽快学习到数据里的规律,而在训练的末期,我们可能更愿意选择复杂的深度模型来使得性能得到进一步增强。这类比于教师教授给学生的技能集合(Skills Set):小学生只会学习到简单的数字运算,中学生则会学习到基本的代数知识,到了大学,微积分则成为了必备的技能。

为了解决这些问题,我们定义了两个模型:学生模型和教师模型。前者即为通常意义下的机器学习模型,后者则负责为前者提供合适的数据、损失函数,或者模型假设空间。在图1中,我们简单展示了两个模型的完全自动化训练过程:在学生模型训练的每一步t,教师模型得到学生模型的状态向量(用于反映学生模型当前的状态),根据自身参数输出教学策略,诸如当前需要使用的训练数据、损失函数,或者优化的模型空间,反馈给学生模型。学生模型基于此进行一步优化(例如梯度下降),更新其参数。之后学生模型会将一个奖励信号(例如开发集上的准确率)反馈给教师模型。教师模型基于该信号对自己的教学策略进行优化更新。这样的过程循环往复直至教师模型收敛

图1 L2T的训练过程

我们以数据教学的实验为例,来展示L2T在实际中如何帮助更快更好地训练机器学习模型。在我们的实验中,学生模型是用于分类的深度神经网络,使用随机梯度下降来进行优化。教师模型是一个三层的前向网络,其职责是负责为学生模型的每步更新提供合适的批次数据(Mini-batch Data)我们使用强化学习中的REINFORCE算法来进行教师模型的训练更新。

图2 上:训练教师网络使其指导MNIST上的MLP训练,并将其应用于CIFAR-10上的ResNet-32训练;下:训练教师网络使其指导CIFAR-10上的ResNet-32训练,并将其应用于CIFAR-10上的ResNet-110训练。

在图2展示的训练实验中,我们可以清楚地发现通过L2T训练出来的教师模型能够帮助学生模型更快地收敛。尤其需要注意的是,L2T具有良好的可迁移性:在小数据集、小模型上(例如用于MNIST的MLP)训练得到的教师模型可以无缝迁移到大数据集、大模型(例如用于CIFAR-10分类的ResNet-32)上。

同时,为了进一步验证L2T框架的效果,我们也在用于IMDB情感分类数据集的LSTM网络上进行了实验,在网络训练过程中引入L2T训练出来的教师模型能够显著提高网络模型的准确率(如下表所示)。

表1 使用不同教学策略训练LSTM得到的IMDB数据集分类准确率

总结来说,我们展示了一个新的让机器学会自动化教学的方法。初步的实验验证了该方法在提升数据利用率、提升模型性能方面有着良好的表现未来我们计划将该方法应用于损失函数和模型假设空间的自动学习 ,以期对机器学习模型的性能有更大的提升,为机器学习技术使用者提供更方便、更高效的自动化工具。

想要了解更多细节的读者,欢迎阅读我们发布在今年ICLR 2018上的论文:

Learning to Teach, Yang Fan, Fei Tian,Tao Qin, Xiang-Yang Li, Tie-Yan Liu, Proceedings of Sixth International Conference on Learning Representations (ICLR 2018)

论文链接:https://openreview.net/forum?id=HJewuJWCZ

微软研究院AI头条
微软研究院AI头条

专注科研19年,盛产黑科技

入门ICLR 2018机器学习自动学习
相关数据
机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

分类数据技术

一种特征,拥有一组离散的可能值。以某个名为 house style 的分类特征为例,该特征拥有一组离散的可能值(共三个),即 Tudor, ranch, colonial。通过将 house style 表示成分类数据,相应模型可以学习 Tudor、ranch 和 colonial 分别对房价的影响。 有时,离散集中的值是互斥的,只能将其中一个值应用于指定样本。例如,car maker 分类特征可能只允许一个样本有一个值 (Toyota)。在其他情况下,则可以应用多个值。一辆车可能会被喷涂多种不同的颜色,因此,car color 分类特征可能会允许单个样本具有多个值(例如 red 和 white)。

收敛技术

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

超参数技术

在机器学习中,超参数是在学习过程开始之前设置其值的参数。 相反,其他参数的值是通过训练得出的。 不同的模型训练算法需要不同的超参数,一些简单的算法(如普通最小二乘回归)不需要。 给定这些超参数,训练算法从数据中学习参数。相同种类的机器学习模型可能需要不同的超参数来适应不同的数据模式,并且必须对其进行调整以便模型能够最优地解决机器学习问题。 在实际应用中一般需要对超参数进行优化,以找到一个超参数元组(tuple),由这些超参数元组形成一个最优化模型,该模型可以将在给定的独立数据上预定义的损失函数最小化。

元学习技术

元学习是机器学习的一个子领域,是将自动学习算法应用于机器学习实验的元数据上。现在的 AI 系统可以通过大量时间和经验从头学习一项复杂技能。但是,我们如果想使智能体掌握多种技能、适应多种环境,则不应该从头开始在每一个环境中训练每一项技能,而是需要智能体通过对以往经验的再利用来学习如何学习多项新任务,因此我们不应该独立地训练每一个新任务。这种学习如何学习的方法,又叫元学习(meta-learning),是通往可持续学习多项新任务的多面智能体的必经之路。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

梯度下降技术

梯度下降是用于查找函数最小值的一阶迭代优化算法。 要使用梯度下降找到函数的局部最小值,可以采用与当前点的函数梯度(或近似梯度)的负值成比例的步骤。 如果采取的步骤与梯度的正值成比例,则接近该函数的局部最大值,被称为梯度上升。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

随机梯度下降技术

梯度下降(Gradient Descent)是遵循成本函数的梯度来最小化一个函数的过程。这个过程涉及到对成本形式以及其衍生形式的认知,使得我们可以从已知的给定点朝既定方向移动。比如向下朝最小值移动。 在机器学习中,我们可以利用随机梯度下降的方法来最小化训练模型中的误差,即每次迭代时完成一次评估和更新。 这种优化算法的工作原理是模型每看到一个训练实例,就对其作出预测,并重复迭代该过程到一定的次数。这个流程可以用于找出能导致训练数据最小误差的模型的系数。

强化学习技术

强化学习是一种试错方法,其目标是让软件智能体在特定环境中能够采取回报最大化的行为。强化学习在马尔可夫决策过程环境中主要使用的技术是动态规划(Dynamic Programming)。流行的强化学习方法包括自适应动态规划(ADP)、时间差分(TD)学习、状态-动作-回报-状态-动作(SARSA)算法、Q 学习、深度强化学习(DQN);其应用包括下棋类游戏、机器人控制和工作调度等。

深度神经网络技术

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

优化器技术

优化器基类提供了计算梯度loss的方法,并可以将梯度应用于变量。优化器里包含了实现了经典的优化算法,如梯度下降和Adagrad。 优化器是提供了一个可以使用各种优化算法的接口,可以让用户直接调用一些经典的优化算法,如梯度下降法等等。优化器(optimizers)类的基类。这个类定义了在训练模型的时候添加一个操作的API。用户基本上不会直接使用这个类,但是你会用到他的子类比如GradientDescentOptimizer, AdagradOptimizer, MomentumOptimizer(tensorflow下的优化器包)等等这些算法。

推荐文章
暂无评论
暂无评论~