1.本发明涉及计算机视觉和深度学习可解释性领域,特别是涉及一种基于像素梯度加权的卷积神经网络特征可视化方法及系统。
背景技术:2.目前,以卷积神经网络为主的深度学习技术为计算机视觉带来了革命性的进步,在很多任务上取得了远超传统算法的重大突破,比如图像识别、物体检测、语义分割、图像检索等。但卷积神经网络(cnn)目前仍然存在缺陷,其中最大的问题就是解释性差。虽然存在较为公认的理解是,cnn模型对于计算机视觉处理上模拟了人类大脑神经元不同层次的互相连接,卷积滤波提取图像局部信息的模型也与人类感受野模型较为相近,不同神经元获取部分信息,处理得到响应然后向更深层级传递。这种方式也确实有效,让cnn能够自动地提取到潜在特征,但是我们仍然很难从人类的视角去认识和解释它学出的特征究竟是什么样的。解释性弱使得深度神经网络莫模型通常类似于一个黑箱,我们知其然而难知其所以然,这也限制了我们尽可能地利用人类先验去设计网络模型,以追求更好的性能,更强的鲁棒性和迁移性。
3.因此,增加卷积神经网络解释性的研究意义重大,而特征可视化研究正对此起重要作用。特征可视化方法把深度网络内部特征转化为人类视觉可感知的模式加以展现,提升了人们对深度网络内部语义和特征的直观理解。一类最常用的技术可以归纳为类别激活映射可视化,对于给定的网络和输入,一般从高层语义分量出发,通过反向计算得到期望网络层级上的显著性图,结果多以热力图形式呈现,最主要的就是guided bp(导向反向传播可视化)、cam(类激活图)、 grad
‑
cam(基于梯度的类激活图)及其泛化版本(grad
‑
cam++等)。这类方法可以揭示高层语义和特征空域位置的关联性,计算简单,得出的可视化热力图可以看作不同任务不同语义下的显著性图,从而具有判别性定位能力,可以解释模型具体偏好哪些空域信息以及学到了哪些特征,也可以进一步用于弱监督定位和分割等具体任务。
4.然而,当前类激活图及其变种方法,目前均存在许多缺陷:首先,它们对网络层级适用范围窄,一般只适用于网络深层的可视化,但是深层特征分辨率低,上采样后对原图的定位不够细腻,而在分辨率较高的浅层可视化图则通常高响应区域杂乱,难以分析和利用;另外,它们对单幅图多类物体的情况可视化效果欠佳,容易产生对其它无关类别的高响应,从而对给定类别的显著性结果不够具有判别性。
技术实现要素:5.针对现有技术存在的问题,本发明提出的一种基于像素梯度加权的卷积神经网络特征可视化方法及系统实现在保证高分辨率的情况下,改善类激活映射可视化的解释性定位能力。
6.第一方面,本发明保护一种基于像素梯度加权的卷积神经网络特征可视化方法,该方法包括如下步骤s1至s8:
7.s1,输入类别激活可视化计算过程中的需求参量,包括cnn模型、待可视化图像、类别索引和网络层级;
8.s2,利用数据集对cnn模型进行训练,优化参数,得到训练好的cnn模型;
9.其中,数据集为事先采集用于训练的样本集合,主要用来训练神经网络中的参数。
10.s3,利用训练好的cnn模型对输入图像进行前向传播计算;
11.s4,利用网络层级,获取目标层级前向传播计算输出的特征图;
12.s5,基于类别索引生成对应的单位向量并进行反向传播;
13.s6,利用网络层级,获取目标层级反向传播得到的梯度图;
14.s7,对上述得到的特征图和上述得到的梯度图进行像素级加权融合;
15.s8,经过后处理得到类别激活可视化输出结果。
16.进一步地,输入类别激活可视化计算过程中的需求参量具体为:
17.cnn模型:用于解决数据分类,可以使用常用的经典架构,如vgg、resnet、 inception、squeezenet等及其组合结构;
18.类别索引:记为c,用于分析模型在判别类c时对各个图像空间位置的依赖程度;
19.网络层级:用于对网络模型的某一给定的中间层进行特征提的取利用和分析,其中提取的特征图和梯度图输出维度均为c
×
h
×
w,其中,c代表通道数,h、 w分别代表二维空域的宽、高。
20.进一步地,前向传播计算方法为:
21.首先初始化得到零向量[0,0,
…
,0]∈r
n
,根据类别索引c,将零向量的第c 维分量置1,得到该类别所对应的单位向量e
c
;
[0022]
将e
c
作为网络输出logits的导数初始值,根据链式法则,从该导数初始值开始逐层反向求特征图的偏导;
[0023]
其中,n表示分类网络学习的类别总数,e
c
∈r
n
与网络输出logits的维度一致。
[0024]
进一步地,具体的像素级加权方法为:
[0025]
首先,记上述得到的特征图为a∈r
c
×
h
×
w
,其中表示特征图第k个通道、第i行、第j列像素位置的值,同理记上述得到的梯度图为g
c
,其中,其中然后对特征图每个像素位置进行权值计算,权值矩阵w的(i,j)像素位置的权重为:
[0026][0027]
其中,在利用特征图和梯度图参与计算前,对其进行线性整流的预处理,其中预处理使用的线性激活函数为relu函数。
[0028]
然后,经过加权融合,可得到对类别c的类激活可视化图l
c
=∑
k
w
kc
·
a
k
。
[0029]
其中,类激活图l
c
∈r
h
×
w
,每个像素位置的激活值为:
[0030]
进一步地,后处理包括如下步骤:
[0031]
首先,进行齐次化,对类激活可视化图l
c
做空域范围内的齐次化,每个像素位置的
值线性归一到[0,1]区间;
[0032]
然后,进行上采样,将可视化图上采样到输入图像同等维度,提升可视化分辨率,其每个位置的值可以表示网络对输入原图做判别时所对应位置的显著性;
[0033]
其中,优选地,上采样方式选择双线性插值上采样。
[0034]
最后,进行伪彩转化,将灰度色彩空间的可视化图转化到彩色空间,输出伪彩图像。
[0035]
其中,优选地,伪彩转化选择jet映射方案。
[0036]
第二方面,本发明保护一种基于像素梯度加权的卷积神经网络特征可视化系统,该系统包括如下模块:
[0037]
特征图提取模块,用于使用训练后的cnn模型对输入的图像进行前向传播计算,进行特征提取,并利用网络层级获取特征图,输出提取的特征和特征图;
[0038]
梯度图获取模块,用于将所述提取到的特征输入类别索引中进行处理,利用网络层级获取梯度图并输出;
[0039]
像素级加权融合模块,用于将输入图像的特征图和梯度图进行像素级加权融合,输出c类激活可视化图;
[0040]
特征可视化模块,用于处理得到类别激活可视化输出结果。
[0041]
本发明的有益效果:1、利用新的融合特征图和梯度图的cnn可视化方法,得到的类激活可视化图对图像中不同类别物体的区分度更高,解释性定位能力更强;2、本发明对网络层数适用范围广,在网络浅层到深层同时具有良好的效果; 3、本发明可用于对cnn模型做判别的依据进行解释,分析网络倾向于学到的特征模式,亦可用于弱监督定位、分割等实际应用;4、对于单幅图中存在多类物体的情形,可以实现对不同的类别分别求取网络的类激活映射下的显著性图,反映模型在判别该类时对输入图像对应像素位置的依赖程度。
附图说明
[0042]
图1为基于像素梯度加权的卷积神经网络特征可视化方法的流程图;
[0043]
图2为基于像素梯度加权的卷积神经网络特征可视化系统的架构示意图;
[0044]
图3为本发明与grad
‑
cam及grad
‑
cam++,在测试图片下的可视化效果对比图。
具体实施方式
[0045]
下面结合附图和具体实施方式对本发明作进一步详细的说明。本发明的实施例是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显而易见的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
[0046]
实施例1
[0047]
一种基于像素梯度加权的卷积神经网络特征可视化方法,如图1所示,该方法包括如下步骤s1至s8:
[0048]
s1,输入类别激活可视化计算过程中的需求参量,包括cnn模型、待可视化图像、类别索引和网络层级;
[0049]
其中,cnn模型:用于解决数据分类,可以使用常用的经典架构,如vgg、 resnet、inception、squeezenet等及其组合结构;待可视化图像:输入任意需要可视化的图像;类别索引:记为c,用于分析模型在判别类c时对各个图像空间位置的依赖程度;网络层级:用于对网络模型的某一给定的中间层进行特征提的取利用和分析,其中提取的特征图和梯度图输出维度均为c
×
h
×
w,其中,c 代表通道数,h、w分别代表二维空域的宽、高。
[0050]
s2,利用数据集对cnn模型进行训练,优化参数,得到训练好的cnn模型;
[0051]
其中,数据集为事先采集用于训练的样本集合,主要用来训练神经网络中的参数。
[0052]
s3,利用训练好的cnn模型对输入图像进行前向传播计算;
[0053]
s4,利用网络层级,获取目标层级前向传播计算输出的特征图;
[0054]
s5,基于类别索引生成对应的单位向量并进行反向传播;
[0055]
s6,利用网络层级,获取目标层级反向传播得到的梯度图;
[0056]
s7,对上述步骤s4得到的特征图和上述步骤s6得到的梯度图进行像素级加权融合;
[0057]
s8,经过后处理得到类别激活可视化输出结果。
[0058]
上述步骤s5的具体的反向传播计算方法为:
[0059]
s5.1,首先初始化得到零向量[0,0,
…
,0]∈r
n
,根据类别索引c,将零向量的第c维分量置1,得到该类别所对应的单位向量e
c
;
[0060]
s5.2,将e
c
作为网络输出logits的导数初始值,根据链式法则,从该导数初始值开始逐层反向求特征图的偏导;
[0061]
其中,n表示分类网络学习的类别总数,e
c
∈r
n
与网络输出logits的维度一致。
[0062]
上述步骤s7的具体的像素级加权方法为:
[0063]
s7.1,首先,记s4步骤得到的特征图为a∈r
c
×
h
×
w
,其中表示特征图第k个通道、第i行、第j列像素位置的值,同理记s6步骤得到的梯度图为g
c
,其中然后对特征图每个像素位置进行权值计算,权值矩阵w的 (i,j)像素位置的权重为:
[0064][0065]
其中,在利用特征图和梯度图参与计算前,对其进行线性整流的预处理,预处理使用的线性激活函数为relu函数。
[0066]
s7.2,经过加权融合,可得到对类别c的类激活可视化图l
c
=∑
k
w
kc
·
a
k
。
[0067]
其中,类激活图l
c
∈r
h
×
w
,每个像素位置的激活值为:
[0068]
具体地,步骤s8中的后处理包括如下步骤s8.1至s8.3:
[0069]
s8.1,齐次化,对类激活可视化图l
c
做空域范围内的齐次化,每个像素位置的值线性归一到[0,1]区间;
[0070]
s8.2,上采样,将可视化图上采样到输入图像同等维度,提升可视化分辨率,其每个位置的值可以表示网络对输入原图做判别时所对应位置的显著性;
[0071]
其中,优选地,上采样方式选择双线性插值上采样。
[0072]
s8.3,伪彩转化,将灰度色彩空间的可视化图转化到彩色空间,输出伪彩图像。
[0073]
其中,优选地,伪彩转化选择jet映射方案。
[0074]
实施例2
[0075]
如图2所示,与上述基于像素梯度加权的卷积神经网络特征可视化方法相对应,本发明实施例还提供了一种基于像素梯度加权的卷积神经网络特征可视化系统,该系统包括如下模块:
[0076]
特征图提取模块201,用于使用训练后的cnn模型对输入的图像进行前向传播计算,进行特征提取,并利用网络层级获取特征图,输出提取的特征和特征图;
[0077]
梯度图获取模块202,用于将所述提取到的特征输入类别索引中进行处理,利用网络层级获取梯度图并输出;
[0078]
像素级加权融合模块203,用于将输入图像的特征图和梯度图进行像素级加权融合,输出c类激活可视化图;
[0079]
特征可视化模块204,用于处理得到类别激活可视化输出结果。
[0080]
下面以cnn模型选用resnet50网络,作用的目标层级选择为layer4、layer3、 layer2和layer1为例,将本发明与grad
‑
cam(基于梯度的类激活图)及grad
‑
cam++ (基于梯度的类激活图的泛化版本)进行比较,说明本发明的优势。如图3所示,输入一张“猫狗”的测试图片,可以发现,本发明的方法对“猫”和“狗”的激活映射可视化效果更好,并且本方法对网络层级适用范围较宽,深层特征分辨率高,对于单幅图中存在多类物体的情形,可以实现对不同的类别分别求取网络的类激活映射下的显著性图,反映模型在判别该类时对输入图像对应像素位置的依赖程度。
[0081]
一种基于像素梯度加权的卷积神经网络特征可视化方法及系统,可以控制需求参量,实现对期望网络的任何目标层级进行分析,并对不同输入图片和类别进行类激活可视化;本发明在保证高分辨率的情况下,改善了类激活映射可视化的解释性定位能力。
[0082]
显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域及相关领域的普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域及相关领域的普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。