2019-12-02 吴恩达深度学习笔记:迁移学习、多任务学习、端到端学习

一、迁移学习

1.Finetune 

在一个数据集上训练完神经网络后(pre_training预训练),在另一个数据集上再训练

再训练方法:

1)前面的层不动(冻结),重新初始化最后一层的权重,并把y值改为新数a据的y,然后训练最后一层

2)前面的层不动(冻结),删除最后一层,在后面加入新的几层,并把y值改为新数据的y,然后训练新加入的几层

如果数据量较充足的情况下,以上方法前面的层也可以重新训练,可以使用之前训练的结果做参数初始化

2.Finetune什么时候可以用:

1)源域数据量比目标域数据量充足

2)源域前面层学到的基础特征对目标域学习有帮助(eg.识别不同领域的图像)

3)两个域的输入特征是一样的(这个是finetune所以有这个要求,其实迁移学习也包含输入特征不同的情况下的研究)

二、多任务学习:

idea:各任务的学习有互相帮助的作用

1.方法:

最后一层从1维输出改为多维输出,每个node代表一个任务(1,1,0,1)

注意:与softmax不一样的地方,softmax是只有一个node可以是1,多任务学习可以同时多个为1

**如果多任务学习的标签打标的时候有些标签的有些任务有缺失值,仍然可以使用这些数据,算loss的时候这一条数据不算缺失标签的任务的loss就可以了

2.什么时候可以用多任务学习;

1) 这些任务之间存在共性可以被基础层学到

2)(经验)每个任务的数据量差不多,并且如果想在多个任务中的一个任务上比单一训练有所提升,那么其他所有任务加在一起的数据量应该远超过单个任务的数据量

3)使用多任务学习方法后可以建一个更大且足够大的神经网络

3.多任务学习用的比迁移学习少很多

三、端到端学习

什么是端到端学习:

有些机器学习目标传统上需要分多个步骤学习,端到端就是不用人工设计中间步骤,直接从一开始的输入学最后的目标输出;

有点:

省事儿,不用人工设计了,并且人工设计不合理的话不如直接让数据说话

缺点:

1.需要端到端数据量大

1)人工设计的每一步数据量都够,但是端到端的不够

2)本身训练端到端就需要较大的数据才能学到

2.人工部分的帮助就没了

总而言之,看看数据量够不够学端到端复杂度的东西

你可能感兴趣的:(2019-12-02 吴恩达深度学习笔记:迁移学习、多任务学习、端到端学习)