在迁移学习 CNN 中我应该替换多少层

数据挖掘 神经网络 深度学习 分类 迁移学习 文本分类
2022-02-17 19:10:18

我正在设计一个卷积神经网络,我认为它需要迁移学习才能在实践中发挥作用。该网络将是用于文本分类的字符级 CNN,更具体地说,是给定未知文本的作者身份识别。初始模型将使用来自数千位作者的数百万篇文本进行训练。在实践中,如果我希望能够确定一个新的给定作者/班级的作者身份,我需要使用迁移学习。

网络结构涉及6个卷积层和3个全连接层。鉴于在大多数情况下新作者/类的数据量将是最小的,我应该为新类替换和重新训练哪些层以使其最有效?或者我可以考虑其他方法来解决这个问题吗?

2个回答

建立在前面的答案:

在迁移学习中,目标是使用预训练模型并调整模型,然后将其专门化以适应特定任务。因此,正如 SrJ 所逃避的那样,我们所做的就是保持主模型的架构完好无损。所以这将是 6 个 CNN 层(可能还有三个线性层,如果它们也参与预训练)。

模型经过预训练后,我们要做的就是向模型添加额外的层,使其适合我们的任务。所以在这种情况下,你至少要做一个最终的输出 softmax 层,它会产生作者的概率分布。
在最终输出层和原始模型的架构之间,如果合适,您可以添加更多层。

使用特定于任务的数据训练此模型时(此阶段称为微调)。我们冻结了原始模型的架构。这实质上意味着模型原始层中的参数不会改变,以防止泛化性能可能下降。我们只允许在微调期间更改附加层的参数。

总体信息是不要替换层,始终添加到现有模型中,以使模型更适合您的分类任务。

您应该重新训练最后的线性层并保持 CNN 层不变。