欢迎来到《图像分类》专栏,今天讲述分类模型可视化问题,进入网络内部,让我们一探究竟!
1 简介
一直以来,深度学习 被认为缺乏可解释性和基础理论支撑,往往被人们看做一个“黑匣子”。为了展现神经网络的内部特征并构建相应的理解过程,使神经网络更加可靠,相关的网络可视化研究越来越受人们重视。
现阶段,网络可视化的研究内容基本上围绕经典的分类网络展开,是图像分类的延伸和升华,大体上可以分为层可视化、卷积核可视化、类激活图可视化三种,本篇文章我们就走进神经网络的内部,了解那些千姿百态的可视化知识。
2 方法汇总
2.1 层可视化
众所周知,神经网络由若干卷积层、池化层、非线性激活层等构成,层可视化就是对构成网络的各层结果进行可视化,以观测图像在网络中的传播过程。
层可视化的对应操作比较简单,我们只需要获取网络的各层输出结果,也就是将图像由 tensor 形式转换为 numpy 对应的矩阵形式即可。
如上图中的蜘蛛,可以输出每层的结果如下:
在层数较低时,网络关注的重点在整幅图片,随着层数的加深,关注的重点则放在了某些轮廓边缘区域,说明网络会随着学习的深入关注更加细节的部分,这一过程也符合人们由整体到局部的认知方式。
层可视化可以很好的解释网络学习的大致流程,呈现了网络在图像传播过程中关注区域的变化过程。
2.2 卷积核可视化
图像分类网络的本质是对卷积核的参数进行学习,不同的卷积核代表对应的类别特征,是分类的核心基准。因此,如何呈现出卷积核的内容,也是评判网络学习能力的方法之一。
在进行卷积核可视化时,我们需要对网络中各层学习到的参数进行提取,同样需要由 tensor 转化为转换为 numpy 对应的矩阵形式。
仍然以蜘蛛的图片为例,可以看到不同层的卷积核可视化如下:
可以看出浅层的卷积核大多学习点、颜色等基础特征;随着层数的增加开始学习到线段、边缘等特征。层数越深,学习到的特征就越具体越抽象。
2.3 类激活图可视化
层可视化和卷积核可视化所关注的重点在图像的局部特征,需要通过提取每层的参数才可以获得对应的可视化图,并不能反应整幅图像的完整响应。
如果能得出整幅图像对其类别的整体响应值,即每个像素在分类所做出的贡献,我们便可以得到特征在网络学习过程中的重要程度占比。
在此基础上,类激活图的概念被提出。
通过对特征图作全局平均值池化可以获得特征图的整体均值,并移除全连接层,以此作为基准进行分类,可以保留特征的空间位置信息,从而反应图像中任意位置特征的重要程度。
如上图中的花朵图像,通过类激活图我们可以看到网络关注的重点区域,这也是判定网络学习是否准确的一种全新思路。
总结
以上就是关于网络可视化的内容,目前许多关于可视化的研究仍在开展当中,这有助于我们更深入的了解网络各部分的作用,更有助于对网络模型进行优化,希望大家可以重视这部分内容,深入的去了解整个过程。
作者介绍
郭冰洋,公众号“有三 AI”作者。该公号聚焦于让大家能够系统性地完成 AI 各个领域所需的专业知识的学习。
原文链接
https://mp.weixin.qq.com/s/gH85ZbJh_rnm3n6FSm9TSw
评论