深度学习基础—迁移学习、多任务学习和端对端学习

1.迁移学习


1.1.概念

神经网络经过任务A的学习,并将部分学习到的知识迁移到任务B中,从而使任务B的学习得到提升。

1.2.如何进行迁移学习

假设已经训练好一个图像识别的神经网络,这个神经网络的训练数据集是各种各样的图片,比如汽车、动物、花草等,我称之为任务A。现在有任务B,对医院放射科的图片进行识别,就需要把任务A中学习到的网络结构迁移到任务B中,网络结构如下图所示:

如果任务B的数据量较少,可以将网络的最后一层删去,然后重新初始化最后一层的权重(也可以调整最后两层),然后进行训练。如果任务B的数据量较多,也可以对网络整体进行训练,由于网络之前在任务A中已经训练成一个能图像识别的网络了(这个过程也叫预训练),因此在任务B中网络的训练需要再更新参数(这个过程也叫微调)。网络已经在先前任务累计了图像识别的基础,因此在现在的任务就能学习的更快,也需要更少的数据。

1.3.迁移学习的使用场景

****1.任务A和任务B的输入都是x。****比如任务A和任务B的输入都是图像或音频或文字。

****2.任务A的数据量比任务B更多。****因为任务B中的数据更贴近其工作场景,也就是说任务B中单个数据的价值比任务A中单个数据的价值大。

****3.任务A的低层次特征可以帮到任务B。****比如想要学习跑步,就需要先学会走,而任务A的作用就是学走路,可以帮助到任务B学跑步。在具体的图像识别就是任务A已经学习到一些图片的结构特征,比如色块、分辨率、边缘特征等,任务B也是图片,因此这些低层次的特征可以帮助到任务B。

但是注意,如果从数据量少的任务中迁移到数据量多的任务中,可能效果就不是那么好。

2.多任务学习


2.1.概念

神经网络同时学习多个任务,每个任务的学习又能帮助到其他任务,即网络的学习是并行的。

2.2.如何进行多任务学习

假设需要进行无人驾驶汽车模型的训练,对于一个图片,需要同时识别出图片中的汽车、行人、告示牌、交通信号灯,如果不进行多任务学习,就需要训练4个网络,而多任务学习只需要训练1个网络就可以完成4个任务。如下如所示,对于输入的标签,有m个,每个样本的标签为4*1的列向量,这4个位置分别就是4个任务对应识别标签。

网络的损失函数为:

其中对j求和就是对输出的标签那4个分量(汽车、行人、告示牌、交通信号灯)求和,对i求和就是对所有的样本输出求和。

上图所示的就是网络的结构,注意最后一层是4个神经元,每个神经元对应一个任务,同时输出4个任务的结果,因此才被称为多任务学习。实际上,对于输入的标签如果某个y列向量的4个位置有一些不清楚或无效数据,网络也可以运行的很好,因为在计算损失的时候,对于这些无效位置的数据,不计入损失。

2.3.多任务学习的使用场景

****1.多个任务可以共用低层次特征。****比如无人驾驶汽车的识别,道路上交通灯、告示牌,这都是汽车出现的场景中常见的存在,并且经常同时出现。

****2.多个任务的数据量接近(不一定准确)。****多任务之间通常具有一定程度的相似性,因此数据之间也可以提供一定的帮助,比如某个任务只有1000个样本,需要进行100个任务,但如果只专注于第100个任务的学习,那么网络只有1000个样本,利用上其余99个任务的数据,在多任务数据量接近的情况下,就多了99000个样本,对网络的性能就有大幅提升。但是如果任务的数据量参差不齐或者差别较大,可能就出现总数据量较少或某个任务表现不良的情况。就好比多条流水线组装汽车,只有每条流水线的速度相当,整体效率才能又快又没有冗余。

****3.网络的规模大。****多任务学习通常会提升网络的性能,但是如果出现多任务学习降低了网络的性能,只有一种可能就是网络的规模很小。

3.end-to-end learning(端对端学习)


3.1.什么是端对端的深度学习

对于一些数据处理系统或学习系统,可能需要多个阶段,端对端的深度学习就是使用一个神经网络来完成所有阶段的学习。

3.2. 端对端学习 的优缺点

优点:

1.只让数据说话

2.更少的手工设计组件

缺点:

1.需要大量的数据

2.可能排除了一些有用的手工设计组件

3.3. 端对端学习 的使用场景

一个关键的问题是:****是否有足够多的数据可以直接学习x映射到y的足够复杂的函数?****比如在X光判断骨龄的任务中:

处理这个问题目前较好的一种方式就是:1.将图片分割成每个骨头。2.根据不同的骨头部位,对照骨龄和长度对应表,查询年龄。相比之下,采用端对端的学习方式,就会缺少很多数据,因为根据骨相判断年龄常用于刑侦科,这种数据比较少,不足以训练出一个性能良好的网络。

而在语音识别领域,比如识别cat单词,需要经过:1.MFCC算法从音频提取一组特定的人工设计特征。2.应用机器学习算法提取音位。3.把音位串接起来组成单词。4.把词串接起来组成文本。如果较少的语音音频比如3000个小时,使用端对端的学习效果可能不好,但是一旦音频数量达到10000个小时以上,端对端的学习就开始发挥优良的作用。

**总结:**端对端学习通常需要较大的数据量,如果数据量较少,使用多阶段的学习方式效果更好。如果数据量很多,使用端对端学习可以简化学习步骤,一步到位。

相关推荐
羊小猪~~12 分钟前
神经网络基础--什么是正向传播??什么是方向传播??
人工智能·pytorch·python·深度学习·神经网络·算法·机器学习
软工菜鸡38 分钟前
预训练语言模型BERT——PaddleNLP中的预训练模型
大数据·人工智能·深度学习·算法·语言模型·自然语言处理·bert
deephub2 小时前
Tokenformer:基于参数标记化的高效可扩展Transformer架构
人工智能·python·深度学习·架构·transformer
___Dream2 小时前
【CTFN】基于耦合翻译融合网络的多模态情感分析的层次学习
人工智能·深度学习·机器学习·transformer·人机交互
极客代码2 小时前
【Python TensorFlow】入门到精通
开发语言·人工智能·python·深度学习·tensorflow
王哈哈^_^3 小时前
【数据集】【YOLO】【VOC】目标检测数据集,查找数据集,yolo目标检测算法详细实战训练步骤!
人工智能·深度学习·算法·yolo·目标检测·计算机视觉·pyqt
是瑶瑶子啦4 小时前
【深度学习】论文笔记:空间变换网络(Spatial Transformer Networks)
论文阅读·人工智能·深度学习·视觉检测·空间变换
wangyue45 小时前
c# 深度模型入门
深度学习
川石课堂软件测试5 小时前
性能测试|docker容器下搭建JMeter+Grafana+Influxdb监控可视化平台
运维·javascript·深度学习·jmeter·docker·容器·grafana
985小水博一枚呀5 小时前
【深度学习滑坡制图|论文解读3】基于融合CNN-Transformer网络和深度迁移学习的遥感影像滑坡制图方法
人工智能·深度学习·神经网络·cnn·transformer