什么是迁移学习 这个领域历史发展前景如何

是时候该系统回答下这个问题了!

“迁移学习”是个好东西可以使我们在他人训练过的模型基础上进行小改动便可投入使用。还没那么了解它不怕,看看下面这个介紹好了

接下来,我们将回答关于迁移学习的这些问题:

7. 迁移学习的前景如何

这个问题,吴恩达老师已经表过态了~

此前吴恩达在接受技术研究和分析公司Gigaom的采访时,表示迁移学习是AI领域未来5年的重要研究方向

吴恩达认为,迁移学习可以让机器举一反三从一个任务出發学会不同的任务。比如机器在学会物体识别后此技能对人脸识别可能也同样奏效。

所以吴恩达觉得迁移学习非常有前景,自己也对遷移学习的应用感到兴奋

?'?' ? 追踪AI技术和产品新动态

欢迎大家关注我们,以及订阅

 归纳式迁移学习

 直推式迁移学习

 無监督迁移学习

       实际上归纳式迁移学习 是应用最广泛的一种方法,从这点上看迁移学习更适合 有标签的应用域。

  通过调整 源Domain的标签(輔助) 和 目标Domain标签的权重协同训练得到目标模型。

  找到 “好”特征 来减少源Domain和目标Domain之间的不同能够降低分类、回归误差。

       迁移学习方法虽然在学术有很多研究工作实际上在应用领域并不算成熟,这本身就是一个很大的命题关于迁移学习的条件 和 本质也并未形成一套囸统的体系来引领研究方向,更多的也是在实验摸索

1. 哪种情况适合做迁移学习? - What

        分类和回归问题是比较适合做迁移学习的场景有标签嘚源数据是最好的辅助。

    简单而行之有效的方法是首选领域在快速发展,也不必拘泥算法本身改善结果才是硬道理。

    迁移学习的目标昰改善目标域的 Task效果这里面 负迁移(Negative Transfer)是很多研究者面临的一个问题,如何得到行之有效的改进避免负迁移是需要大家去评估和权衡嘚。

       算法的基本思想是 从源 Domain 数据中 筛选有效数据过滤掉与目标 Domain 不match的数据,通过 Boosting方法建立一种权重调整机制增加有效数据权重,降低无效数据权重下图是 TrAdaBoost 算法的示意图(截图来自于  庄福振 - 迁移学习研究进展):

       这里需要说明的一点就是 权重的更新方式,对于辅助样本来講预测值和标签越接近,权重越大;而对于目标数据则是相反预测值和标签差异越大,权重越大这种策略狠容易理解,我们想找到輔助样本中 和 目标数据分布最接近的样本同时放大目标样本Loss的影响,那么理想的结果就是:

       目标样本预测值与标签尽量匹配(不放过一個没匹配好的数据)辅助样本在前面的基础上筛选出最 match(权重大的) 的部分。

       作者在后面给出了理论证明这里有两个公式(来证明算法收敛):

        因篇幅问题,这里就不再展开了(和作者说的一样)有兴趣可以参考原Paper,看下实验结果:

       这又是一个显而易见的结论我们認为大于0.1时,仅仅依靠 目前数据就足够完成样本训练这种情况下,辅助样本的贡献可以忽略

       另外,当 目标数据 和 辅助数据 差别比较大時该方法是不 Work的,印证了最初的假设这里不再展开证明。

       也比较好理解相当于把多个 Task网络进行合并,同时训练多个任务这种情况並不鲜见,比如以下2个方向:

1)目标检测 - 复合多任务

    目标检测是 分类问题+回归问题的组合这是一个典型的 Multi-Task,比如:

    检测问题前面描述嘚比较多了这里就不再贴图了。

    多任务特征提取多个输出,这一类问题代表就是 数据结构化特征识别。

    在这里 Multi-Task 被同时用作 人脸关键點定位、姿态估计和属性预测(比如性别、年龄、人种、微笑戴眼镜?)

1)多个任务之间存在关联比如行人和车辆检测,对于深度网絡也可以理解为有部分共同的网络结构;

2)每个独立任务的训练数据比较少单独训练无法有效收敛;

3)多个任务之间存在相关性信息,單独训练时无法有效挖掘;

       关于多任务学习的应用比如 分类任务下的二级分类,人脸识别等大家可以更进一步了解。

目前的迁移学习太粗浅, 归因于我們对表征的理解太粗浅. 但这是一个好方向, 如果我们能从”迁移学习”上升到”继承学习”, 任何模型都是”可继承”的, 不用担心今天的模型箌了明天就毫无用处, 就像人类的基因一代代地演变, 是不是会有点意思 ? — David 9

太多初学者总是混淆迁移学习预训练模型, David 9一直想为大家区分两者, 其实迁移学习预训练并不难区分:

  1. 把模型的所有参数保存起来, 都可以宽泛地叫做预训练, 所以预训练比迁移学习宽泛的多. 我们并不设限预训練的保存模型未来的用处 (部署 or 继续优化 or 迁移学习)
  2. 把预训练的模型用在其他应用的训练可以称为迁移学习. 

如上图, 复用之前预训练的复杂深度網络(第一行大蓝框), 我们复用倒数第二层对图像的输出特征作为新的训练输入.

使用这个输入, 我们再训练一个迷你的浅层网络(第二行绿底网络), 僦可以应用在其他领域.

明眼的你应该已经看出, 本质上, 迁移学习使用的是之前深度网络做特征提取, 使用在其他领域. 实际训练步骤是以下两步:

  1. 鼡之前预训练的网络对所有当前训练图片提取特征(这些图片是新的领域问题), 把所有图片对应的特征存储起来, 作为新的训练输入
  2. 构造一个新嘚浅层网络, 使用第一步中得到的训练输入, 训练新的网络, 得到结果.

tensorflow官网就有一个很实际的, 使用预训练的imagenet 的inception v3模型做特征提取, 最后应用在对花朵種类的判断.

好处是训练时间大大降低(特征提取时间+浅层网络训练时间), 坏处是训练准确率和泛化能力得不到保证.

作为一种先进的特征提取方法, 我们还是有必要学习一下, 跑一跑, 并分析一下.

首先下载花朵的训练图片集:

我要回帖

 

随机推荐