Task08:文本分类;数据增强;模型微调

文本分类是自然语言处理的一个常见任务,它把一段不定长的文本序列变换为文本的类别。也就是 编码器-解码器的运用。

数据增强

通过前面的学习,我们知道有时候数据比算法更重要,也就是当我们拥有足够多的训练集的时候,即使我们的模型构建的不够好,也能够得出较好的预测效果。针对于图像识别模型,我们可以通过图像增⼴(image augmentation)技术来实现数据增强。
而图像增⼴(image augmentation)则是通过对训练图像做⼀系列随机改变,来产生相似但又不同的训练样本,从而扩大训练数据集的规模。如,我们可以对图像进行不同方式的裁剪,使感兴趣的物体出现在不同位置,从而减轻模型对物体出现位置的依赖性。我们也可以调整亮度、色彩等因素来降低模型对色彩的敏感度。

常用的图像增广的方法有:1.翻转和裁剪
2.变化颜色、亮度
3.图像放大缩小

图像增广基于现有训练数据生成随机图像从而应对过拟合。
为了在预测时得到确定的结果,通常只将图像增广应用在训练样本上,而不在预测时使用

模型微调

微调由以下四步组成:

  1. 在源数据集(如ImageNet数据集)上预训练⼀个神经网络模型,即源模型。(或者可以从网上下载别人已构建好的数据模型)
  2. 创建⼀个新的神经网络模型,即目标模型。它复制了源模型上除了输出层外的所有模型设计及其参数。我们假设这些模型参数包含了源数据集上学习到的知识,且这些知识同样适用于目标数据集。我们还假设源模型的输出层跟源数据集的标签紧密相关,因此在目标模型中不予采⽤。
  3. 为目标模型添加⼀个输出大小为目标数据集类别个数的输出层,并随机初始化该层的模型参数。
  4. 在目标数据集上训练目标模型。我们将从头训练输出层,而其余层的参数都是基于源模型的参数微调得到的。
    Task08:文本分类;数据增强;模型微调
    以上引用自 - 《动手学深度学习》

这边我们解释一下,基于CNN模型,我们是通过一层又一层的CNN网络进行学习目标特征的,在比较底层的网络中,学到的特征都是比较基础的,对于大部分数据来说是有共性的,就是基础特征,而越来越高的特征学习是较为针对性的,也就是对于训练集图片模型的特征学习。所以我们可以运用一个已经训练好的大模型如(VGG, ALEXNET等)进行微调,也就是我们直接复制他门训练好的模型以及参数,对底层网络参数进行锁定(即不参加梯度训练),只对输出层或者包括最后几层的训练层进行自己的手动修改,来适应自己的模型。
通过微调,即使我们手上训练数据比较少,也可以得到较好的预测效果。