卷积神经网络可视化
2019-12-04樊帆康兵义
文/樊帆 康兵义
1 人工智能时代的到来
在当今社会中,互联网已经与我们的日常生活和学习紧密结合在一起,我们当前处于互联网的社会,而现在,我们又将迎接一个全新的时代——AI 的时代。在人工智能时代里,一切都将发生改变:通信方式,思维形式,甚至伦理道德都将与以往不同。人工智能是一门综合各种学科各种专业且被用于模拟人类思维并自主学习的一门新兴学科。随着人工智能技术的进一步成熟以及各行各业对于人工智能产业投入规模的日益增长,人工智能与云计算的结合将不断加速,全球人工智能产业规模在未来10年将进入高速增长期。咨询公司埃森哲在有关人工智能进化和分析领域报告中明确指出,预计到2035年,在人工智能领域深耕的国家的经济规模将到达一个难以想象的高度。2018年麦肯锡公司的研究报告预测,到2030年,约70%的公司将采用至少一种形式的人工智能,人工智能新增经济规模将达到一个新的高度。
2 卷积神经网络可视化的研究
2.1 理论背景
在人工智能蓬勃发展的各个领域中,最受人瞩目的莫过于深度学习,而在深度学习的不同分类中,卷积神经网络则占了主导作用。卷积神经网络的定义是:具有一定深度表达的,包含卷积、池化等一系列计算的神经网络。卷积神经网络仿造生物的视知觉(visual perception)机制构建,可以进行监督学习和非监督学习,其隐含层内的卷积核参数共享和层间连接的稀疏性使得卷积神经网络能够以较小的计算量对格点化(grid-like topology)特征,例如像素和音频进行学习、有稳定的效果且对数据没有额外的特征工程(feature engineering)要求。
对卷积神经网络的研究始于二十世纪80至90年代,时间延迟网络和LeNet-5 是最早出现的卷积神经网络。在二十一世纪后,随着深度学习理论的提出和数值计算设备的改进,卷积神经网络不断更迭自身基础理论并得到了快速发展,在机器视觉,手写体识别,自然语言处理NLP 等方向得到了广泛应用。
神经网络可视化的理论基础来自于2014年在ECCV 上的经典论文:《Visualizing and Understanding Convolutional Networks》,作者首先介绍了CNN 在诸多领域取得的成功,并提出取得更好的成功的三种可能:
(1)更大的训练集;
(2)更加powerful 的GPU;
(3)更好的模型正则化策略( 如Dropout)。
接下来作者提出了上面提到的问题,当前仍然不能知道CNN 模型内部是如何工作的,也不清楚到底学到了什么样的特征,因此提出可以通过使用反卷积神经网络对网络进行可视化。最后通过AlexNet 的模型进行可视化,并根据可视化结果对其进行改进,从而得到了更优的结果。文献中详细的论述了CNN 网络中每一层所学习到的特征,并将其可视化,同时描述了可视化的具体操作。
2.2 实施过程
首先搭建AlexNet 模型进行实施过程前准备,这是实施所必需的步骤,并研究卷积、池化、下采样、全连接各层的算法实现,并对图像进行卷积、池化等处理以得到各层的特征图;将特征图进行分类并裁剪成固定大小并保存在本地数据库或云数据库中以备后用。
接着通过论文中的Deconvoluted 模型对AlexNet 中每一卷积、池化和全接连层生成一个大小相同且具有相反功能的神经网络层,在进行反卷积过程中,记录邻近层在进行卷积操作时输出的数据位置和大小,并在反卷积层中相同位置填充相同大小的数据以进行反卷积、反池化等算法,随后对反卷积、反池化算法生成的图像进行微调以符合实验要求并还原出原始图像,此时的图像与原图内在差异度已经很小,可用于后续操作的显示。
最终,显示所有还原的图像,并根据原始图像的类别对还原图像进行分类并分别显示于卷积层、池化层、全连接等层。在显示过程中,可根据使用习惯显示多个层或单一层,以及在显示微调过的图片同时,探究卷积神经网络中每一个卷积核设置参数的调整对于输入图片分类精度的影响,最终实现卷积神经网络的可视化。
3 总结
卷积神经网络长期以来是图像识别领域的核心算法之一,并在学习大量数据时有稳定的表现。对于大规模图像分类问题,卷积神经网络可用于构建阶层分类器(hierarchical classifier) 或精细分类识别(fine-grained recognition)来用于提取图像的判别特征以供其它分类器进行学习;对于后者,特征提取可以人为地将图像的不同部份分别输入卷积神经网络,也可以由卷积神经网络通过非监督学习自行提取。
卷积神经网络可视化的研究,不仅是对于卷积神经网络内部结构的一次探索,更是对未来神经网络应用方向的一次拓展。可视化的实现,使得人们对于神经网络内部的结构不再是懵懵懂懂,同时,可视化的实现也使得研究人员对于神经网络调整参数问题有了有力的证据支撑,在诸如手写体识别,人脸识别等深度学习领域均有较大的作用。综上所述,神经网络可视化的实现,对于深度学习的研究具有较好的辅助作用。