首页 理论教育MobileNet和迁移学习的模型优化设计

MobileNet和迁移学习的模型优化设计

【摘要】:表6-4MobileNet模型中一个DSC模块的结构2.顶端模块设计顶端模块的主要作用是对基端模块提取的纹理图像特征进行降维,并计算当前样本对所有类别的归属概率,最后根据归属概率的大小判断输入样本的类别标签。表6-5本节构造的基于MobileNet的迁移学习模型

利用深度CNN进行图像识别的过程可分为特征提取和分类输出两个阶段,其中特征提取是通过深度CNN模型前端卷积层、池化层和激活层等实现的,分类输出是通过深度CNN模型后端的softmax层输出分类概率实现的,模型输出端的个数等于需要分类的样本类别个数。

为了将预先训练好的深度CNN模型迁移应用到纹理图像识别任务中,需要对预训练的深度CNN模型进行重新构建,本节采用一种“基端模块(base model)+ 顶端模块(top model)”的结构,如图6-16所示,其中基端模块主要用于提取不同层次的纹理图像特征,顶端模块主要用于对基端模块提取的特征进行降维,并预测样本类别。

图6-16 基于MobileNet模型和迁移学习的整体结构

1.基端模块(base model)设计

预训练深度CNN模型的前端部分(包括卷积层、池化层和激活层等)具有特征提取的功能,并且在ImageNet数据集上训练过,已经具备了较好的初始化参数值,因此可将预训练深度CNN模型的前端部分迁移过来作为本节模型初始的基端模块,用于提取不同层次的纹理图像特征。

本节选择识别性能较好,参数规模也非常小的MobileNet模型来构造本文的基端模块,MobileNet模型的体积只有16 MB,方便应用于多种工程场景。MobileNet模型采用深度可分离卷积(Depth-wise Separable Convolution,DSC)的结构来降低参数规模,该模型一共包含13个DSC模块,每个DSC模块又由一个depth-wise卷积模块和一个point-wise卷积模块构成,DSC模块的结构如表6-4所示;同时,MobileNet模型采用了小尺寸卷积核代替大尺寸卷积核的策略,进一步缩小了参数规模;另外,为了获得较高的识别性能,MobileNet模型采用多个尺寸的卷积核来提取更加丰富的图像特征。本节利用MobileNet模型构建基端模块的具体方法:首先导入在ImageNet数据集上预先训练好的MobileNet模型,然后去掉最后的FC层和softmax输出层,只保留卷积模块用于提取纹理图像特征,将其作为本节迁移学习模型的基端模块。

表6-4 MobileNet模型中一个DSC模块的结构

2.顶端模块(top model)设计

顶端模块的主要作用是对基端模块提取的纹理图像特征进行降维,并计算当前样本对所有类别的归属概率,最后根据归属概率的大小判断输入样本的类别标签。很多深度CNN模型在最后阶段都采用FC层来实现特征降维和分类概率的计算,但是FC层的参数规模非常大,通常占据整个CNN模型的大部分参数,因此为了减小模型的参数规模,并提高模型的计算效率,在本节模型中尽量减少FC层的使用,从而简化顶端模块的复杂度。本节设计的顶端模块仅包含三层:

(1)全局平均池化(Global Average Pooling, GAP)层。用GAP层代替传统CNN模型最后阶段的FC层,不但显著减小了参数规模,而且降低了特征维度,进一步提高了计算效率。

(2)FC层。利用FC层将输出端个数调整为当前纹理库的类别个数,并输出当前样本对所有类别的分类得分。

(3)softmax输出层。利用softmax层将当前样本对所有类别的分类得分转换为分类概率值,即实现分类得分的归一化

3.将基端模块和顶端模块对接,构建迁移学习模型

本节构造的深度CNN迁移学习模型结构非常简洁,属于直筒状的级联结构,如表6-5所示。其中,第0~81层为基端模块,主要用于提取纹理图像特征,基端模块一共含有13个DSC模块,每个DSC模块的具体结构如表6-4所示,即每个DSC模块包含6层;第82~84层为顶端模块,主要作用是对基端模块提取的特征进行降维,并输出分类概率和类别标签。

表6-5 本节构造的基于MobileNet的迁移学习模型