元学习

其实就是教机器learn to learn。教会机器学会学习。比如如果
机器已经学会了图像识别和语音识别,之后可以很好的完成文字识别。(有点像迁移学习和预训练)但是预训练是一个模型可以被用于不同的任务,但是元学习是,不同任务还是对应于不同模型。
在这里插入图片描述元学习的过程是这样的,比如下面这个图,如果是传统的机器学习,输入是数据,输出是标签,学习的是输入和输出的映射函数F(Learning Algorithm)。元学习也是要学习一个函数F,但是输出是另一个f*。这里的f就是一个需要得到的网络。
在这里插入图片描述元学习是先定义一组的F(learning algorithm),然后定义一个loss函数可以知道哪个F比较好,最后找到一个最好的F。
元学习的过程是这样的,可以看下面这个图, θ 0 \theta ^{0} θ0是刚开始初始化的参数,然后使用第一个训练数据计算gradient,并且对于初始的 θ 0 \theta ^{0} θ0进行更新,一直重复这个过程,直到最后输出训练后的参数 θ \theta θ
下面就是一个F(learning algorithm)。其中的红色的框里面就是我们人为自己定义的,所以Meta Learning元学习就是为了学习得到一个最好的红框里面的参数,也就是得到一个最好的F(learning algorithm)。
在这里插入图片描述所以元学习需要一个损失函数来定义F(learning algorithm)的好坏。就可以直接拿一个task来评估F输出的f
是不是可以很好的对这个task做分类等。但是一个task是不能完全衡量好坏的,所以要使用多个task来衡量。对于每一个task都算一个loss,并且计算loss的和作为最后的损失函数。整个过程如下所示:
在这里插入图片描述
所以传统的机器学习是需要准备训练数据和测试数据分别做训练和测试,但是元学习Meta Learning是需要准备很多的任务,其中每个任务都有自己的训练数据(训练得到F)和测试数据(衡量F的好坏)。需要注意的是,训练的时候用的是训练任务,测试的时候用的是测试任务。无论是训练任务还是测试任务,都是有训练数据和测试数据的。

补充

以上内容和图都是基于李宏毅老师的课程https://www.bilibili.com/video/BV1vE411h7p8?p=59&spm_id_from=pageDriver 有精力的同学建议自己把课程听一遍,讲的非常好非常清楚,十分推荐!!

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐