1.一种基于深度度量学习的中医舌图像腐腻特征分类方法,其特征在于:
1)每次训练时通过数据重组的方式,从数据集每个类别随机选取数量相同的样本,构成本次训练所使用的数据集,并对随机选取的样本进行两两排列组合形成训练数据,其中一对样本为一个训练数据;
2)采用孪生网络框架;首先,把组合后的训练数据样本对送入特征提取网络,提取到对于当前中医舌图像腐腻特征分类任务具有区分度的深度特征,然后,将提取的两个深度特征进行维度拼接,并把拼接后的合并特征送入特征对比网络,自适应的学习出适合当前中医舌图像腐腻特征分类的度量准则;
该方法的整体网络分为两部分:特征提取网络和特征对比网络;以下是分别对特征提取网络和特征对比网络的详细介绍;
特征提取网络的结构:采用孪生网络结构,即两个神经网络建立的组合结构;孪生神经网络以两个样本为输入,输出为提取的样本深度特征,以比较两个样本之间的相似程度;其中两个神经网络权值共享,即网络权重一样,保证提取输入的两幅舌图像相同的深度特征;
特征提取网络采用的是残差网络,主要由残差模块组成;残差模块在网络结构中加入恒等映射,允许前一层的信息可以直接传递到后面的层中;
特征提取网络由一个卷积层和4个残差模块组成;卷积层包括一个卷积操作和一个最大池化,对图像进行降维,其中卷积核大小为7×7;特征提取网络中的每个残差模块都是由两个残差单元组成,一个残差单元包含一个恒等映射;第一个残差模块的残差单元,由两个
3×3的卷积操作,两个卷积之间依次有批归一化和非线性激活函数(ReLU),残差单元之后还有一个ReLU函数;后三个残差模块与第一个残差模块设计上稍有不同,因为后3个残差模块的第一个残差单元输入输出特征维度改变,所以需要额外在跳层连接加入1×1的卷积对跳层连接的输出进行调整;
特征对比网络的结构:采用卷积层和线性层组成,输入为特征特提取网络提取到的深度特征,首先经过128个3×3卷积核对深度特征进行特征降维,之后进过批归一化和非线性激活函数ReLU,增加模型的鲁棒性和表达能力;在经过两个线性层,线性层神经元个数分别为10和1,最后经过sigmoid函数,使输出的相似度的值在0到1之间;
该方法分为两个阶段:训练阶段和测试阶段;
训练阶段具体步骤如下:
第一步,建立训练数据队列;舌图像数据集中腐腻特征分为腻,稍腻,非腐腻3类,每个类别分别有c1,c2,c3个样本;首先从每个类别选出q个样本(其中q<min(c1,c2,c3),则一共2
选出3×q个样本,对3×q个样本进行排列组合,可以形成(3×q) 个样本对,样本对中的两个样本存在先后顺序;把所有产生的样本对作为本次训练时的数据队列,训练时每对样本如果是同一类别的则标签设置为1,否则设置为0,使用样本对和对应标签从而对模型进行训练,需要注意的是每次训练的排列组合样本都是重新选取的;
第二步,利用特征提取网络对样本对提取特征;输入为第一步建立的数据队列中的样本对,输出为对应的舌图像提取到的两个深度特征;为了防止出现过拟合现象,采用预训练模型的参数作为训练时特征提取网络的初始参数,并使用训练数据进行整个网络参数的训练;
第三步,特征对比网络对深度特征计算相似度;输入为特征提取网络输出的两个深度特征的拼接特征,具体为在空间维度上对特征提取网络输出的两个深度特征进行拼接,提取到的深度特征维度为[c×h×w],其中c、h、w分别代表特征图的通道数、高、宽;拼接后的维度为[2c×h×w];输出为特征对比网络计算的相似度大小的值;同一类别的样本应该具有较高的相似度,不同类别的样本之间的相似度较低;在中设置相似度的值越接近1则代表两个深度特征越相似;同理相似度的值越接近0,则代表两个深度特征相似度越低;
整个训练过程的代价损失函数loss被分为两部分;第一部分为输入的样本对否为同类样本,训练时约束网络计算出的同类样本之间的相似度的值接近于1,不同类样本之间的相似度的值接近于0;表示为:
p (1‑p)
loss1=‑(y*log)+(1‑y)*log (1)其中p代表特征对比网络计算出的相似度的值,y代表两个样本类别决定的样本对标签,如果样本对的类别一样则为1,反之为0;第二部分为两个深度特征计算相似度的值时,应该没有拼接顺序的区别;假设特征提取网络的输出的两个深度特征为a和b;假设a&b代表a拼接b后的特征;F_R(a&b)代表计算出的a和b之间的相似度,则F_R(a&b)=F_R(b&a),相同样本对计算出的相似度的值应该相同;同时为了使loss2与loss1之间有相同的数量级,所以同样用交叉熵来计算其损失函数,所以其可以表示为:F_R ‑F_R(b&a) (1‑F_R(a&b)‑F‑R(b&a))loss2=‑(y*log (a&b) )+(1‑y)*log (2)在计算loss2时,可以推出y=0,所以最后loss2化简为:(1‑F‑R(a&b)‑F‑R(b&a))loss2=log (3)所以总损失为loss=loss1+loss2;
测试阶段步骤如下:
第一步,利用训练好的特征提取网络对训练集中所有样本提取对应的深度特征,之后计算出每个类别的中心深度特征,即
使用类别中心深度特征代表该类在度量空间中的位置,得到类别数量的类别中心深度特征;测试样本同样经过特征提取网络提取其深度特征;
第二步,利用学习到的度量准则即对比网络,计算测试样本的深度特征与每个类别中心深度特征之间的相似度的值,之后采用最近邻的思想,把测试样本归为与之计算出相似度的值最大的类别。