MATLAB环境下可视化卷积神经网络CNN的激活图

  • Post author:
  • Post category:其他


深度学习采用深层网络结构模型实现对目标任务的近似拟合,通常可以分为数据输入层,隐藏层,输出层三个部分,模型构造了一个输出层关于输入层的函数。 现有的很多机器学习方法都属于浅层结构算法,相对于浅层结构的学习算法,深度学习对于复杂的问题有着更强大的泛化能力,能更好的逼近复杂函数。

浅层学习方法通常也需要使用者设计针对特定数据的特征提取方法,能否提取到有效的特征 是这些方法能否成功的关键。靠人工提取特征的方法不能保证特征提取的质量,进而影响到最终学习算法的效果。而深度学习方法的隐层结构实现了对输入的图像、声音、文字等各类型数据从低级到高级的特征自动提取。由深度神经网络隐层提取到的特征非常抽象,人类通常也难以理解。

深度学习“黑盒”的特性限制了其发展。“黑盒”特性类似于面向对象编程 方式的封装特性,是一种不透明的、隐藏了内部运算处理逻辑的模型,仅能提供输入与输出接口供用户测试、检测、观察。但与封装特性还不同的是, 封装的对象内部特性是被对象设计者掌握,对象设计者能够解释封装对象的内部逻辑,而深度学习模型的内部逻辑连设计者也很难解释。伴随着深度神经网络规模 的增大,模型参数增多,网络结构更加优化,其能力不断增强。

在某些领域中,“黑盒”特性可能无关紧要,但是在对可信度要求较高的领域中,如智能医疗诊断、无人驾驶、地震资料解释等领域,提供可解释的模型,来保证使用时的安全非常重要, 人们希望能够让模型的决策可以解释以确保其可靠性,如在医疗诊断的过程中,病人希望计算机的诊断是有充分理由的;在无人驾驶方面,车辆任何一个错误的判断 都可能带来严重的后果;在油气勘探领域中对地质异常体识别应用,由噪声带来的不准确的结果可能会导致成本的损失,会影响到油气勘探与开采的效率和收益。


本文提供的代码主要讲解如何将图像输入到卷积神经网络CNN并显示网络不同层的激活图,并通过将激活图与原始图像进行比较以探索网络学习哪些特征。


注意:程序运行环境为MATLAB R2018A,需要加载预训练的AlexNet 网络。如果Neural Network Toolbox Model _for AlexNet Network_没有安装,则MATLAB会提供下载链接。

部分代码如下:

输出结果如下:

代码如下

mbd.pub/o/bread/mbd-Y5mamJZq


擅长现代信号处理(改进小波分析系列,改进变分模态分解,改进经验小波变换,改进辛几何模态分解等等),改进机器学习,改进深度学习,机械故障诊断,改进时间序列分析(金融信号,心电信号,振动信号等)



版权声明:本文为2301_78829506原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。