mkd,MKD【异常检测:Knowledge Distillation】_太简单了的博客-

最后更新 :2022-11-21 15:03:13

前言

以知识蒸馏为主要思想,创新性加入了多尺度蒸馏的方式,使信息传导更充分。

背景

以往的模型仅使用最后一层输出作为知识蒸馏方式,该模型将中间层输出也做了蒸馏。层数越高,图像语义信息越丰富,只用最后一层会导致模型收敛到不相关的区域。知识可以理解为中间层的向量的值和方向。针对值用欧式距离做损失函数(解释见有趣的知识),见原论文公式(1),损失函数设置在激活函数前。针对方向用余弦相似度量做损失函数,见原论文公式(3),这里只用欧式距离会导致激活函数将一些用来提取特征的向量抹掉,解释见公式(2)处for instance后的说明。

VGG网络在分类和迁移任务表现较佳。这里网络选择每个卷积块最后池化层作为关键层。

模型原理

训练时,VGG-16网络在ImageNet大的自然数据集上经过预训练。然后正常图输入VGG源网络以及克隆网络,对比中间关键层的特征图,更新克隆网络(克隆网络通道数更少),完成训练过程。验证时,异常图像输入时,VGG源网络与克隆网络在中间层处的向量,通过距离损失和和方向损失和得到的总损失通过梯度算法(找出对梯度影响最大的像素)结合高斯滤波(消除噪声影响)及开放形态滤波生成分割定位图。

通俗来讲,源网络在大的自然数据集上做过预训练,对异常数据并不敏感,但由于克隆网络没见过异常图,所以克隆网络会对异常数据敏感,两个网络的差异对比将异常区域定位。相当于老师只交了学生一部分知识,遇到变体,老师懂得多,能活学活用,学生只能干瞪眼。

有趣的知识

使用偏差易产生常值函数,使得网络用相似度高的正常图训练时,导致网络不收敛,影响效果,解释见源论文参考文献【33】。所以克隆网络不使用偏差。产生相似输出的层时,将l层权重设置为0,并调整l+1层偏差。

欧几里得距离(两点间的实际距离):在信息或多维空间中,常常用一些相关距离或度量来衡量两点,即向量之间的距离相似度。

??余弦相似度量:基于向量之间夹角做相似度判断,即余弦值越接近于1,夹角度数接近0度。

网络的构成:网络架构、损失函数、可解释性算法(解释出来的损失函数帮助分割定位),训练时,前向传播后出来损失函数,?利用损失函数反向传播更新克隆网络。验证时,前向传播出来损失函数,经可解释性算法定位异常。

对S-T网络(原论文文献【8】)的评价比较:(1)均采用知识蒸馏,但MKD将特征蒸馏到克隆网络,ST用蒸馏做预训练。(2)均采用双网络训练,但MKD对比中间层,ST对比最后一层的输出。(3)均采用预训练网络,利用自然图像的特征。对比缺点:(1)只模仿最后一层,没有充分利用教师网络知识,使模型变得复杂(2)采用补充技术,自监督学习,增加成本(3)依赖小块受大小影响,要搞成不同小块,增加训练成本。

实验

消融实验

选择数量不同的中间层;选择通道数较少和相同的克隆网络做对比,在一些局部区域明显的异常图,通道数较少的网络表现较好,其他类型的异常图二者趋近;选择两个损失函数与分别选择单个损失函数的对比;使用不同的解释性算法(Gradients/SmoothGrad/GBP)与高斯滤波使用与否的对比。

对比实验

不同数据集同一模型之间的对比;不同模型同一数据集之间的对比;值得注意的是利用数据增强后的网络效果要更好一点。

- END -

75b胸围,《头条报》“内衣的模特“性感知多少?

内衣模特内衣模特是指穿内衣的模特。由于内衣模特需要大面积的暴露身体,因此对于模特身材...

尺码xs和s哪个大(衣服尺码xs和s哪个大)-xs和s码哪个大

1、衣服尺码xs和s哪个大。2、尺码xs和s哪个大。3、衣服号码xs和s哪个大。4、Xs和s哪个大...