作者karco (karco)
看板DataScience
标题[问题] 迁移学习如何不破坏在原问题上学习的成果
时间Thu Feb 6 23:54:55 2020
作业系统:
win10
问题类别:
DL, 迁移式学习
使用工具:
python, pytorch
问题内容:
各位好,小弟正在使用pytorch训练一个分类模型
这个分类问题的难题在於不是所有类别都会在同一个数据集出现
数据集A可能出现类别1~5
数据集B可能只会出现类别4-7
因此为了可以学习到所有的类别,决定采用迁移式学习的方式
先在数据集A上训练模型
让模型可以很好的分辨类别1~5
接着将保存好的模型引入数据集B中进行训练
过程中两边的模型设定都保持一致
而输出的类别数目都是保持总数目
以例子来看的话就是都分类为7个类别
然而在数据集B训练一阵子之後
拿保存的模型去预测数据集A
发现效果变的非常差
好像原本在数据集A上学习的参数在训练过程中已经被洗掉了一样
想请教为什麽会导致这样的现象呢?
在迁移学习的过程中,模型的引入有什麽需要特别注意的地方吗
或是有什麽方式可以较好的解决此类问题吗?
并不考虑合并数据集,因为数据集非常的庞大,实际类别也不只7类
所以想先从迁移式学习的方向上着手
感谢Data Science版的各位大大
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.113.226.153 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/DataScience/M.1581004497.A.8F6.html
※ 编辑: karco (140.113.226.153 台湾), 02/07/2020 00:00:28
感谢大大,明天会找时间好好阅读
2F:→ chang1248w: 就是被洗掉了不用怀疑 02/07 00:43
那有没有方法可以避免被洗掉呢?
※ 编辑: karco (140.113.226.153 台湾), 02/07/2020 00:44:44
3F:→ chang1248w: 要嘛就打散一起学,不然就切成三个分辨器,先分AB再 02/07 00:45
4F:→ chang1248w: 分细项 02/07 00:45
5F:→ chang1248w: 数据集够大抽出一部分也会有足够的代表性 02/07 00:50
6F:→ roccqqck: 原资料也一起学 02/07 01:25
8F:→ youngman77: continual learning, catastrophic forgetting 02/07 11:29
9F:→ youngman77: lifelong learning; these tags may help 02/07 11:30
10F:推 sxy67230: 基本上就是被洗掉了,你可以想像transfer learning就是 02/07 12:42
11F:→ sxy67230: 在既有有限的空间上去学习新的任务。如果新的任务学好了 02/07 12:42
12F:→ sxy67230: ,那就很容易遗忘掉旧有的内容。想要做到不会遗忘可以 02/07 12:43
13F:→ sxy67230: 考虑EWC、GEM、progressive network,比较新的研究还有D 02/07 12:43
14F:→ sxy67230: ynamically expandable network。或是直接拿旧有资料混 02/07 12:43
15F:→ sxy67230: 合去train、或是考虑到记忆体可以去train 一个generativ 02/07 12:43
16F:→ sxy67230: e model来生成旧资料再去train。如果任务不复杂,也可以 02/07 12:43
17F:→ sxy67230: 考虑把A、B task顺序调换可能就有不错的效果。 02/07 12:43
18F:→ yoyololicon: 合并啊 数据不是越多越好?还是合并会有啥问题 02/07 14:17
19F:→ chang1248w: 爆ram 02/07 17:19
20F:推 goldflower: 有可能B是会一直变的吧 比如一直增加的类别之类的 导 02/08 16:35
21F:→ goldflower: 致全部重新训练很没有效率 02/08 16:35
22F:推 goldflower: 另外一个方法 找Out of Distribution Detection的相 02/08 16:47
23F:→ goldflower: 关技术 分两段训练 02/08 16:47
24F:→ goldflower: 不过如果类别真的会一直长 这招可能也是治标不治本XD 02/08 16:48
25F:→ yoyololicon: 爆ram就checkpoints 设起来R 02/09 20:10
26F:→ yoyololicon: batch太大就gradient accumulate起来 很多招可以用 02/09 20:12
27F:→ yoyololicon: ㄉ 02/09 20:12
28F:→ hippo130: 雪崩式的忘记 02/14 00:56
29F:→ catxfish: 在训练样本的抽样上多下功夫比较实际吧 02/14 00:56
30F:→ catxfish: 一般分类器用不平衡的训练样本怎麽可能会有好效果呢 02/14 01:01
31F:推 andy5656: 这就Continual Learning 的范畴 02/14 11:34