第三部分 机器学习(ML)策略2 - 3 笔记

2.7 迁移学习
Transfer learning

神经网络从一个任务中学到的知识可以应用到另一个独立任务中 —— 迁移学习

第三部分 机器学习(ML)策略2 - 3 笔记

阶段1:训练一个神经网络用于识别图像,训练数据是大量的猫、狗、鸟等动物,网络收敛之后保存各层权重及偏置。
阶段2:利用已经训练好图像识别网络继续训练另外的数据集,比如放射科诊断图。首先固定各层参数,由于输出的标签不同,删掉最后一层的权重并随机初始化。
阶段3:在新的数据集上进行最后一层,或者后一两层的训练。如果重新训练所有层参数,则前期训练阶段称为预训练(pre-training),再训练权重更新的过程称为微调(fine tuning)。
在进行迁移学习的过程中,对原始网络结构可以只微调最后一层的权重,也可以删掉最后一层,根据需要以及训练数据的数量增加新的层次再进行训练。
以图像识别为例,迁移学习的意义在于,神经网络可以通过大量的图像数据来学到一些低层次的特征,这些特征普遍适用于图像识别,而到了具体的图像识别任务,譬如放射科影像诊断,此时数据量远远没有那么多,这样可以通过微调网络参数,使得网络从之前学到的知识中迁移过来,进而使网络具备识别放射科影像的能力。
迁移学习的适用场合:
  1. 任务A和B有相同的输入。
  2. 相比于任务B,任务A有更多的数据。
  3. 从任务A中学到的低层次特征对任务B也是有用的。

2.8 多任务学习
Multi-task learning
迁移学习中,从任务A中学到的知识迁移到任务B中,是有一个明显的先后顺序。而在多任务学习中,不同任务的学习是同时进行的,并且希望神经网络对每个任务的学习都能帮助到其他的学习任务。
例子1 无人驾驶物体识别系统
第三部分 机器学习(ML)策略2 - 3 笔记

假设无人驾驶系统需要检查每帧影像中是否有汽车、行人、红绿灯、交通标志牌4种类别。这样神经网络的输入是影像x,输出是标签y,标签y有四个维度分别代表这4种类别的物体。假设训练集有m幅影像,则对应的标签Y应是4xm的矩阵。
第三部分 机器学习(ML)策略2 - 3 笔记

该无人驾驶物体识别系统的网络结构类似上图,输入是x,输出y是一个4维向量。整个训练集的损失函数如下:

第三部分 机器学习(ML)策略2 - 3 笔记

其中L代表logistic损失,具体如下:
第三部分 机器学习(ML)策略2 - 3 笔记

softmax回归不同的是,softmax将单个标签分给每个样本。而在上述多任务学习系统中,每张图像可能包含多种物体,即每个图均有4个标签,整个学习系统相当于完成了4个任务,学习了4种物体识别算法,并且每个任务的学习会对其他任务带来帮助,从工程经验来看,比单独训练4个神经网络的性能要更好。
当遇到一些影像上并未对4种类别均进行标注的情况时,在计算损失函数时,仅需要对带有0/1标签的j值进行求和,忽略未标注的标签。
多任务学习的适用条件:
第三部分 机器学习(ML)策略2 - 3 笔记

  1. 各任务能够共用低层次特征,每个任务的学习会对其他任务带来帮助。
  2. 每个任务的数据量应很接近。(非绝对准则)
  3. 可以训练一个足够大的神经网络去完成多个任务,并且在性能上能够优于单独的神经网络。
总体而言,迁移学习的应用频率要高于多任务学习,不过在计算机视觉、物体检测等任务中,多任务学习应用则较为广泛。