首页 理论教育基于MobileNet与迁移学习的实现步骤优化

基于MobileNet与迁移学习的实现步骤优化

【摘要】:首先,载入预训练的MobileNet模型,去掉最后的多个FC层,将剩下的卷积层部分作为特征提取器;其次,设计后面的分类器模块,包括一个全局平均池化层、一个FC层和一个Softmax分类概率输出层;最后,将特征提取模块和分类器模块级联起来,作为本节设计的基于MobileNet模型和迁移学习的模型。在初步训练分类器模块时,设置学习率为0.001,初步训练的轮数设为两轮。

第一步:对图像进行预处理,并对训练样本进行数据增强。由于纹理图像的训练样本数量较少,为了抑制模型的过拟合,对每个样本进行随机缩放和旋转,利用随机生成的样本来扩充训练样本集的数量。

第二步:设计本章的迁移学习模型。首先,载入预训练的MobileNet模型,去掉最后的多个FC层,将剩下的卷积层部分作为特征提取器;其次,设计后面的分类器模块,包括一个全局平均池化(Global Average Pooling,GAP)层、一个FC层和一个Softmax分类概率输出层;最后,将特征提取模块和分类器模块级联起来,作为本节设计的基于MobileNet模型和迁移学习的模型。

第三步:设置模型训练的超参数值。主要包括指定优化器、损失函数、批尺寸、初始学习率、最大训练轮数等超参数的值。

第四步:对分类器模块进行初步训练。因为分类器模块的参数值是随机初始化的,在开始训练时会产生较大的梯度更新,这会破坏特征提取模块已经预先训练好的参数值,所以在对整个迁移学习模型进行微调训练之前,需要先对分类器模块进行初步的训练,即先冻结特征提取模块的参数,仅将分类器模块的参数设为可训练,然后利用现有的纹理图像训练样本对模型进行较少次数的训练,从而使分类器模块获得较好的初步训练参数值。在初步训练分类器模块时,设置学习率为0.001,初步训练的轮数设为两轮。

第五步:对整个模型进行微调训练。根据模型的结构特征,随机指定模型中需要冻结的层数和可训练的层数,然后利用训练集对整个模型进行训练,即不断调节可训练层的参数值,每完成一轮训练,就利用验证数据集对训练的模型进行验证。以验证数据集上的损失值为监测指标,当验证损失进入平台期时,可将学习率调低到原来的一半继续进行训练,最后保存验证损失最小的模型作为当前的优选模型。

第六步:对当前的优选模型进行测试。在测试数据集上运行上述第五步保存的当前优选模型,计算在测试集上的识别精度。

第七步:获得最佳的模型。为了确定最合适的冻结层数,逐步调节模型中需要冻结的层数和可训练的层数,重复上述第五、六步的训练和测试过程,当在测试集上的识别精度达到最高时,此时的冻结层数和可训练层数为最佳层数,将此时的模型作为最佳的深度CNN模型。