打开神经网络的黑箱子

卷积神经网络

每个卷积核提取不同的特征。每个卷积核对输入进行卷积,生成一个feature map,这个feature map即体现了该卷积核从输入中提取的特征,不同的feature map显示了图像中不同的特征。

  1. 浅层卷积核提取:边缘、颜色、斑块等底层像素特征;
  2. 中层卷积核提取:条纹、纹路、形状等中层纹理特征;
  3. 高层卷积核提取:眼睛、轮胎、文字等高层语义特征。

最后分类输出层输出最抽象的分类结果。

上图就是一个浅层卷积核提取出来的特征,我们可以看到,有的卷积核是提取形状的,有的是提取颜色的。它就是一种类似gabor滤波器的卷积特征。

上图是中层和深层卷积核提取出来的特征,在中层卷积核提取的是较大块的颜色,纹理;在深沉卷积核提取出来的特征可能就有人类或者一些具象化的东西。

CAM可解释性

上图中,输入的原始图像经过层层卷积,到最后一层的时候,会有512个卷积核得到512个通道,即提取了512个深层特征,经过GAP(全局平均池化)将每一个通道特征算出一个平均数,再通过FC(全连接层)层会得到每一个特征值的权重(系数)——\(W_1、W_2、W_3、...、W_n\),每一个类别都可以得到一个分数值(score),它是通过

\(score=W_1*蓝色特征值+W_2*红色特征值+...+W_n*绿色特征值\)

得到的,最后通过softmax来计算一个概率值,这是一个CNN分类的过程,对于CAM热力图而言,主要就体现在特征值权重\(W_1、W_2、W_3、...、W_n\)上,它表示最终的分类结果对不同特征的关注程度

  • CAM的缺点
  1. 必须得有GAP层,否则得修改模型结构后重新训练
  2. 只能分析最后一层卷积层输出,无法分析中间层
  3. 仅限图像分类任务

GradCAM

在GradCAM中可以不使用GAP层,完全可以使用FC层,通过全连接层来输出分数(score),用\(y^c\)表示。

  • 对矩阵求导

一、标量函数对向量的导数:

这是一个二维的标量函数,我们知道该函数的最小值为

\({df(y)\over dy}=0\)

如果这个函数是由两个自变量构成的三维的标量函数,则图像如下

求该二元函数的最小值,联立

  1. \({∂f(y_1,y_2)\over ∂y_1}=0\)
  2. \({∂f(y_1,y_2)\over ∂y_2}=0\)

如果一个标量函数有n个自变量\(f(y_1,y_2,y_3,...,y_n)\),我们定义一个向量

Y=[]

则可以定义函数对向量Y的偏导数

\({∂f(Y)\over ∂Y}=\)\([\)\(]\)

这是一个n*1的列向量,我们发现它的行数与分母Y相同,这样布局称为分母布局

同样我们也可以定义函数对向量Y的偏导数为

\({∂f(Y)\over ∂Y}=[{∂f(Y)\over ∂y_1}{∂f(Y)\over ∂y_2}...{∂f(Y)\over ∂y_n}]\)

这是一个1*n的行向量,我们发现它的行数与分子f(Y)(1*1的标量)相同,这样的布局称为分子布局

分母布局与分子布局互为转置

示例一:\(f(y_1,y_2)=y_1^2+y_2^2\)

分母布局:

令Y=[]

\({∂f(Y)\over ∂Y}=\)[]=[]

分子布局:

\(Y=[y_1 y_2]\)

\({∂f(Y)\over ∂Y}=[​{∂f(Y)\over ∂y_1} {∂f(Y)\over ∂y_2}]=[2y_1 2y_2]\)

二、向量函数对向量的导数

如果我们的函数也是一个向量

F(Y)=[]

这里的每一个\(f_x(Y)\)(x=1,2,3,...,m)都相当于上面的一个标量函数f(Y)(自变量为向量Y),F(Y)是一个m*1的向量函数。

示例一:

  1. Y=[]
  2. F(Y)=[]=[]

向量函数对向量的偏导数,分母布局为

\({∂F(Y)\over ∂Y}=\)[]=[]   

如示例一中,有

\({∂F(Y)\over ∂Y}=\)[]=[]=[]

这是一个3*2的矩阵。

90后程序员开发视频搬运软件、不到一年获利超 700 万,结局很刑! 谷歌证实裁员,涉及 Flutter、Dart 和 Python 团队 中国码农的“35岁魔咒” Xshell 8 开启 Beta 公测:支持 RDP 协议、可远程连接 Windows 10/11 ​MySQL 的第一个长期支持版 8.4 GA 开源日报 | 微软挤兑Chrome;阳痿中年的福报玩具;神秘AI能力太强被疑GPT-4.5;通义千问3个月开源8模型 Arc Browser for Windows 1.0 正式 GA Windows 10 市场份额达 70%,Windows 11 持续下滑 GitHub 发布 AI 原生开发工具 GitHub Copilot Workspace JAVA 下唯一一款搞定 OLTP+OLAP 的强类型查询这就是最好用的 ORM 相见恨晚
{{o.name}}
{{m.name}}

猜你喜欢

转载自my.oschina.net/u/3768341/blog/11086857
今日推荐