赞
踩
迁移学习
刚接触迁移学习,看了相关视频,有了初步了解,以下是整理的笔记,希望对初学者有所帮助:
1、将一个场景中学习到知识迁移到另一个场景
前提:当前任务和目标任务可能有某种关联
应用场景:相似领域不同任务
不同领域相似任务
2、为什么需要迁移学习
Ø 使用深度学习技术解决问题时,模型有大量参数需要训练,因此需要海量训练数据做支撑
Ø 面对某一领域的具体问题时,通常可能无法得到构建模型所需规模的数据
Ø 借助迁移学习,在一个模型训练任务中针对某种类型数据获得的关系也可以轻松应用于同一领域的不同问题
3、Model Fine-tune (模型再优化)
基本思想:由源领域的数据训练一个模型,然后在自己目标数据集上调优。
可能的问题: 目标数据集量少时,可能过拟合。
解决方案:Conservative Training
新问题:要避免在新领域过拟合。
方法一:希望保证参数不要在小类目目标领域有很大变化(参考方案:在损失函数基础上加上|w1’-w1|2+....|w10000’-w10000|2进行约束)
方法二:输出保证很接近(参考方案:在损失函数上加|f(w1,....w10000)-f’(w1’,...w1000’)|2)
本质是:在源模型的周边做小的变动。
4、层迁移/Layer Transfer
源领域的层迁移到目标领域时,如果目标领域数据量少,可以固定几层的参数不变(learning rate=0),只是调整某一层或基层,以此防止过拟合。
如果目标领域数据量够,可以fine-tune整个网络,但是学习率也不要太大,调的小一些。
问题:复用那些层???
图像上:通常是开始的一些层(类似是抽取特征)
语音:通常是最后一些层
通常是复用连续的开始或结束的一些层
5、多任务学习/Multitask Learning(目标任务效果要好,但是源任务效果也不能太差;即要考虑A,B两个任务效果)
用的是组合网络
左边的网络可能会更好一点,更靠谱一点;右边不太可能同时保证A,B效果都好。
训练模型一种参考思路:左边交替训练A,B,updateA,然后放到B。可以重复进行。
以上是有监督到有监督的学习。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。