计算机视觉深度学习进阶指南
1. 预训练模型的微调
在模型复用方面,除了特征提取,微调是另一种广泛使用的技术。微调的过程是解冻用于特征提取的冻结模型基础的顶部几层,然后将模型新添加的部分(如全连接分类器)与这些顶层一起训练。之所以称为微调,是因为它会对复用模型的更抽象表示进行轻微调整,使其更适用于当前问题。
1.1 微调步骤
微调网络的步骤如下:
1. 在已训练的基础网络之上添加自定义网络。
2. 冻结基础网络。
3. 训练添加的部分。
4. 解冻基础网络中的一些层(注意,不应解冻“批量归一化”层,在VGG16中没有此类层)。
5. 联合训练这些层和添加的部分。
在进行特征提取时,我们已经完成了前三个步骤。接下来进行步骤4,即解冻 conv_base ,然后冻结其中的个别层。
1.2 选择微调层
为什么不微调更多层,甚至整个卷积基础呢?主要有两个原因:
- 卷积基础的早期层编码更通用、可复用的特征,而较高层编码更专门的特征。微调更专门的特征更有用,因为这些特征需要在新问题上重新调整用途,微调较低层的回报会迅速减少。
- 训练的参数越多,过拟合的风险就越大。卷积基础有1500万个参数,在小数据集上尝试训练它是有风险的。
因此,在这种情况下,只微调卷积基础的顶部两三层是一个不错的策略。以下是设置代码:
conv_base.trainable = True
for layer in conv_base.layers[:-
超级会员免费看
订阅专栏 解锁全文
873

被折叠的 条评论
为什么被折叠?



