可解释机器学习-ZFNet
ZFNet算法介绍:
AlexNet的提出使得大型卷积网络开始变得流行起来,但是人们对于CNN网络究竟为什么能表现这么好,以及怎么样能变得更好尚不清楚。
因此为了解决上述两个问题,ZFNet提出了一种可视化技术,用于理解网络中间的特征层和最后的分类器层,并且找到改进神经网络的结构的方法。ZFNet是Matthew D.Zeiler 和 Rob Fergus 在2013年撰写的论文Visualizing and Understanding Convolutional Networks中提出的,是当年ILSVRC的冠军。ZFNet使用反卷积(deconv)和可视化特征图来达到可视化AlexNet的目的,并指出不足,最后修改网络结构,提升分类结果。
特征可视化过程如下流程图:
可视化时每一层的操作如下:
Unpooling:在前向传播时,记录相应max pooling层每个最大值来自的位置,在unpooling时,根据来自上层的map直接填在相应位置上,如上图所示,Max Locations “Switches”是一个与pooling层输入等大小的二值map,标记了每个局部极值的位置。
Rectification:因为使用的ReLU激活函数,前向传播时只将正值原封不动输出,负值置0,“反激活”过程与激活过程没什么分别,直接将来自上层的map通过ReLU。
Deconvolution:使用的是原来正向卷积核的转置(也就是行列互换)。转置卷积没有需要学习的参数,是一个完全无监督的过程。
ZFNET结构:
实践过程:
例如,从第 2 层中选出16个卷积核(左边),找到原图中能够使得这16个卷积核最大激活的图片(每一个卷积核9张图)。能够使得它最大激活的图片是从原始数据中挑出来的,比如说右图第二个数值条纹的图片能够使得左图第二个激活最大
然后,我们把这 9 张图片传到第 2 层的feature map,再使用反卷积的技巧重构回原始输入的像素空间。就得到左边灰色图。
举例说明:
第2个卷积核其实就在提取数字条纹特征
第5个卷积核在提取晚霞色的特征
第8个卷积核在提取1/4圆的这个右下角的圆环+同心圆的特征
第14个卷积核在提取金黄色的特征
第16个卷积核是在提取这样的直角的特征
两边的对应关系:
右边彩色图:是数据中真实存在的小图
左边灰色图:是把右边九张图喂到网络里面,把第 2 层对应的feature map用反卷积技巧重构回原始输入像素空间得到的图。