购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

5.1 CNN的直观理解

自从神经网络诞生以来,可解释性问题一直伴随其发展始终。曾经一度因为可解释性问题,神经网络的发展遭遇低谷。在很多人看来,深度神经网络除输入和输出之外,中间很深的隐藏层网络就像个黑箱子,很难解释在模型训练过程中这些黑箱子里发生了什么。作为一个尚有争论和正在研究的问题,这里暂且不对神经网络的可解释性做过多的阐述,而是选择从可视化的角度来观察CNN的每一层在图像识别过程中到底都“学”到了什么。

一个合理的猜想就是CNN在学习过程中是逐层对图像特征进行识别和检测的。在深度卷积网络中,前面的一些网络层用于检测图像的边缘特征(包括图像的基轮廓这样的特征),中间的一些网络层用于检测图像物体的部分区域,靠后的一些网络层则用于检测图像中完整的物体。也就是说,深度卷积网络的不同层负责检测输入图像的不同层级的图像特征。

如图5.1所示,CNN在训练过程中,先是检测到横竖这样的较简单的初始级特征,然后中间一些网络层检测到人脸的眼睛和鼻子之类的特征,最后再检测到整张人脸。

图5.1 CNN的人脸检测过程

假设给计算机看一张图片,想让计算机弄清楚这张图片里都有哪些物体。那么CNN的第一步就是要做图像边缘检测。作为图像处理的基本问题,边缘检测的目的就是检测出图像中亮度变化和特征较为明显的点和线。以图5.2为例,卷积网络要对这张图片做边缘检测,一开始可能需要检测到图像的一些垂直边缘特征,然后再检测到图像的一些水平边缘特征。

图5.2 垂直边缘特征和水平边缘特征

假设图5.3中的输入图像大小为6*6*1,即该图像是一个灰度图。下面用一个3*3*1的具备垂直边缘特征检测功能的卷积核对其进行卷积,得到的输出便是具备垂直边缘特征的特征图。

图5.3 垂直边缘特征检测过程

2014年,Zeiler等人在欧洲计算机视觉国际会议(ECCV)上发表了一篇基于可视化角度理解CNN的经典论文,可谓CNN可视化的开山之作。作为学习计算机视觉和深度学习的必读论文,这篇经典论文的引用次数已达7262次(这个数字随机都在变化),如图5.4所示。对CNN可视化感兴趣的读者一定不要错过这篇论文。

图5.4 CNN可视化的开山之作

这篇论文全篇没有一个公式,完全用实验的方式展示了如何通过CNN训练过程中的特征,可视化展示网络训练效果,并可以直观地看到实验过程中对网络的调整是否有效。论文中的卷积网络训练过程中逐层的特征可视化效果,如图5.5所示。从图5.5中可以看出,CNN在图像学习过程中呈现的是一种由简单特征到复杂特征的逐层学习的特点。

图5.5 卷积网络训练过程中逐层的特征可视化效果

以上便是CNN做图像识别训练时逐层的可视化展示。 qlBkFvApOB4RX8YX4IYxprc0FFm1V7aFpwYBmFkqr8q19Tv9RUgtL8KNpFGabetS

点击中间区域
呼出菜单
上一章
目录
下一章
×