知行编程网知行编程网  2022-05-20 17:00 知行编程网 隐藏边栏 |   抢沙发  25 
文章评分 0 次,平均分 0.0

元学习: 深度阐述元学习的理论模型

来自 | 知乎   作者 | ALme

地址:https://zhuanlan.zhihu.com/p/113701629

编辑 | 深度学习这件小事

本文仅供学术交流,如有侵权,请联系删除。
元学习: 深度阐述元学习的理论模型
元学习是通向真正Life-Long Learning的人工智能的一个可能途径, 与贝叶斯学习、迁移学习、多任务学习以及强化学习都有着深厚的源渊,当时看完ICML的tutorial真的很惊叹。了解一下元学习的思想对思维层次的提升很有帮助。
为了了解和学习元学习,理解元学习的整体理论框架就非常重要了,最近的几年的最火的元学习框架,比如MAML,Neural Process,Matching Network,都可以归纳到一个更抽象的更高层次的模型。
那么本文就介绍一下自己几个月来理解的元学习的理论框架,从一般的监督学习算法开始,将其高度抽象化,之后就很自然地引入元学习的框架。
此文只针对监督元学习,但元学习的思想是想通的,也有针对半监督和无监督的元学习方法,都大同小异,之后的文章再详细介绍。

   对一般监督学习算法的抽象描述
给定数据集  ,其中  ,分割为训练集和测试集:
 ,  ,
监督学习的目标是,通过对训练集的“学习过程”,习得函数  ,其中  为从  映射到  的某函数空间。比如连续函数空间  。
这个学习过程,可以用一个函数 元学习: 深度阐述元学习的理论模型 来抽象表达:
意思是“学习过程”函数 元学习: 深度阐述元学习的理论模型 作用在训练集上,得到学习完毕后的模型  。
如果假设数据集D所在的空间为  ,那么元学习: 深度阐述元学习的理论模型 是从  到  的映射。
一般的用梯度下降进行优化的机器学习算法中,“学习过程”函数 元学习: 深度阐述元学习的理论模型 代表了完整的梯度下降过程。此时有一个初始网络  ,带有初始参数  。
设loss函数为  ,那么一次梯度下降的过程可以表示为当前参数  和训练集  的函数:(这里假设不是SGD,但是SGD的式子类似)
假设进行了T次梯度下降,那么有了一次的梯度下降式子,就可以写出整个学习函数元学习: 深度阐述元学习的理论模型 :
这就是一般的机器学习算法。得到的模型  会在  上测试性能,效果越好,则机器学习算法越优异(关注泛化性能)。
元学习: 深度阐述元学习的理论模型
此图的左边得到  的过程就是一般化的 “学习过程”元学习: 深度阐述元学习的理论模型 。

   从机器学习到元学习
前面将机器的“学习过程”抽象为了从数据集到模型空间的映射 元学习: 深度阐述元学习的理论模型 。并且得到了梯度下降算法所对应的“学习过程” 元学习: 深度阐述元学习的理论模型 。这样的元学习: 深度阐述元学习的理论模型 实际上是有缺点的。
1.过拟合:我们知道,梯度下降算法旨在降低训练集上的loss,但是机器学习关注的是模型在测试集上的性能,因此很可能因为数据的量太少,或者训练数据非i.i.d采样而导致过拟合的现象。
2.训练慢:梯度下降算法是迭代式算法,为拟合一个数据集,动辄花上几个小时甚至几天的时间。
正是这两个缺点,人们开始在 元学习: 深度阐述元学习的理论模型 上动脑筋,看看能不能找到一个代替梯度下降的元学习: 深度阐述元学习的理论模型 。
但是自己寻找一个 元学习: 深度阐述元学习的理论模型 的替代品一般是不可行的,这就如同瞎猫撞死耗子。
机器学习曾经解放了人们的双手,使免去了手工寻找数据特征的过程,这一次也不例外:我们想要从数据中学习 元学习: 深度阐述元学习的理论模型 。
前面提到, 元学习: 深度阐述元学习的理论模型 是“学习过程”的抽象,那么学习 元学习: 深度阐述元学习的理论模型 ,就是“学习如何学习”!听着好耳熟是不是,对,这就是元学习的思想。
之前学习的函数  ,是一个从 映射到 的函数。为了学习它,需要来自  和  的配对样本组成训练集和测试集。其中 训练集的 作为更新  的标准,测试集的  作为检测  的标准。
现在学习的函数 元学习: 深度阐述元学习的理论模型 ,是一个从数据集  到函数  的函数。和上面对照一下,会发现为了学习f,这次需要的是很多的不同数据集。
现在假设有很多的数据集,组成集合  , 称为元数据集,其中每一个“data“都是一个数据集,且每个数据集都由训练集和测试集构成。
有了数据了,怎么学 元学习: 深度阐述元学习的理论模型 呢?学习  的过程,是将一个个数据  送入模型  中,再以某loss指标更新模型  。那么一样地,学习 元学习: 深度阐述元学习的理论模型 ,就要将一个个数据集  送入模型 元学习: 深度阐述元学习的理论模型 中,再以某指标更新 元学习: 深度阐述元学习的理论模型 。那么指标是什么呢?
我们想要的元学习: 深度阐述元学习的理论模型 ,是能通过作用在训练集  上,得到一个能够在  上良好泛化的模型  的 元学习: 深度阐述元学习的理论模型 。而如果将 元学习: 深度阐述元学习的理论模型 作用在每个数据集的训练集  上,得到函数  ,然后将  作用在测试集  的每个数据x上,将得到的预测值与真实值求loss,这个loss就是衡量 元学习: 深度阐述元学习的理论模型 得到的  的泛化能力的指标,也就是我们用来更新 元学习: 深度阐述元学习的理论模型 的指标  :
和  相同,为了能够更新,函数元学习: 深度阐述元学习的理论模型 也有自己的参数  ,有了上面的损失函数  以及参数  ,就能够用梯度下降的方式更新参数  了。和学习  不一样的是,每次更新,都需要动用一整个数据集,并且每次都应使用不同的数据集进行更新。
换句话说,burden从学习  的过程转移到了学习 元学习: 深度阐述元学习的理论模型 的过程。而一旦 元学习: 深度阐述元学习的理论模型 学习完毕,便能够在一个数据集上快速地通过已学习的 元学习: 深度阐述元学习的理论模型 学习出模型  。
训练完以后,怎么检测模型的性能呢?同样的,元学习的算法也是要提高 元学习: 深度阐述元学习的理论模型 的泛化能力。也就是说,这个抽象的“学习过程”应该能够在普遍的数据集上都能学到泛化能力强的模型。
那么,显然的,我们应该在从来没有见过的数据集上检测 元学习: 深度阐述元学习的理论模型 的性能。因此类似学习  时把数据集分为训练集和测试集,学习元学习: 深度阐述元学习的理论模型 时也应把“元数据集”  分为“元训练集” 和“元测试集"  . 元学习也可以正式分为meta-train和meta-test两个阶段,前者用  更新参数  学习 元学习: 深度阐述元学习的理论模型 ,后者用  检验学习效果,如下图:
元学习: 深度阐述元学习的理论模型
现在回看之前的两个问题。
首先训练慢的问题可以通过合理地选择 元学习: 深度阐述元学习的理论模型 所在的函数范围来解决。
其次,过拟合的现象将不复存在,因为此时与梯度下降不同的是, 元学习: 深度阐述元学习的理论模型 的输出结果不仅仅由训练集决定了, 现在是训练集与参数  共同决定。而参数  是在很多个数据集的训练过程中得到的,包含的是数据集间能够增强 元学习: 深度阐述元学习的理论模型得到的 的泛化能力的“共有信息”,这个信息作为先验注入到了模型的“学习过程” 元学习: 深度阐述元学习的理论模型 中,使得最后得到的是不会导致过拟合的学习方法 元学习: 深度阐述元学习的理论模型 。
<pre style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><p style="max-width: 100%;min-height: 1em;letter-spacing: 0.544px;white-space: normal;color: rgb(0, 0, 0);font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;widows: 1;line-height: 1.75em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><strong style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;letter-spacing: 0.5px;font-size: 14px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><strong style="max-width: 100%;font-size: 16px;letter-spacing: 0.544px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;letter-spacing: 0.5px;box-sizing: border-box !important;overflow-wrap: break-word !important;">—</span></strong>完<strong style="max-width: 100%;font-size: 16px;letter-spacing: 0.544px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;letter-spacing: 0.5px;font-size: 14px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><strong style="max-width: 100%;font-size: 16px;letter-spacing: 0.544px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;letter-spacing: 0.5px;box-sizing: border-box !important;overflow-wrap: break-word !important;">—</span></strong></span></strong></span></strong></p><section style="max-width: 100%;letter-spacing: 0.544px;white-space: normal;font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;widows: 1;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section powered-by="xiumi.us" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="margin-top: 15px;margin-bottom: 25px;max-width: 100%;opacity: 0.8;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="max-width: 100%;letter-spacing: 0.544px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section powered-by="xiumi.us" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="margin-top: 15px;margin-bottom: 25px;max-width: 100%;opacity: 0.8;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><p style="margin-bottom: 15px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;color: rgb(127, 127, 127);font-size: 12px;font-family: sans-serif;line-height: 25.5938px;letter-spacing: 3px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;color: rgb(0, 0, 0);box-sizing: border-box !important;overflow-wrap: break-word !important;"><strong style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;font-size: 16px;font-family: 微软雅黑;caret-color: red;box-sizing: border-box !important;overflow-wrap: break-word !important;">为您推荐</span></strong></span></p><p style="margin-top: 5px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;box-sizing: border-box !important;overflow-wrap: break-word !important;">一个AI PhD的毕业随感<br style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"  /></p><p style="margin-top: 5px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;color: rgb(87, 107, 149);font-size: 14px;box-sizing: border-box !important;overflow-wrap: break-word !important;">MIT最新深度学习入门课,安排起来!</span></p><p style="margin-top: 5px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;color: rgb(87, 107, 149);font-size: 14px;box-sizing: border-box !important;overflow-wrap: break-word !important;">有了这个神器,轻松用 Python 写个 App</span></p><p style="margin-top: 5px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;color: rgb(87, 107, 149);font-size: 14px;box-sizing: border-box !important;overflow-wrap: break-word !important;">「最全」实至名归,NumPy 官方早有中文教程</span></p><section style="margin: 5px 16px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="font-size: 14px;">北大团队成功实现精准删除特定记忆,马斯克脑机接口有望今年人体测试</span><br  /></section></section></section></section></section></section></section></section></section>
元学习: 深度阐述元学习的理论模型

本篇文章来源于: 深度学习这件小事

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享