您当前的位置:首页 > IT编程 > 深度学习
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch |

自学教程:基于Keras的卷积神经网络(CNN)可视化 详解

51自学网 2020-11-13 10:11:45
  深度学习
这篇教程基于Keras的卷积神经网络(CNN)可视化 详解写得很实用,希望能帮到您。

基于Keras的卷积神经网络(CNN)可视化 详解

卷积层的主要目的是滤波。
注意事项:
卷积运算后的输出无论在宽度上还是高度上都比原来的小
核和图片窗口之间进行的是线性的运算
滤波器中的权重是通过许多图片学习的
池化:
池化层和卷积层很类似,也是用一个卷积核在图上移动。唯一的不同就是池化层中核和图片窗口的操作不再是线性的。
最大池化和平均池化是最常见的池化函数。最大池化选取当前核覆盖的图片窗口中最大的数,而平均池化则是选择图片窗口的均值。

卷积核输出的可视化:
第一层卷积层类似边缘检测的功能,在这个阶段里,卷积核基本保留图像所有信息
随着层数的加深,卷积核输出的内容也越来越抽象,保留的信息也越来越少。
越深的层数,越多空白的内容,也就说这些内容空白卷积核没有在输入图像中找到它们想要的特征

卷积核的可视化:
卷积核到底是如何识别物体的呢?想要解决这个问题,有一个方法就是去了解卷积核最感兴趣的图像是怎样的。我们知道,卷积的过程就是特征提取的过程,每一个卷积核代表着一种特征。如果图像中某块区域与某个卷积核的结果越大,那么该区域就越“像”该卷积核。
基于以上的推论,如果我们找到一张图像,能够使得这张图像对某个卷积核的输出最大,那么我们就说找到了该卷积核最感兴趣的图像。
具体思路:输入一张随机内容的图像II, 求某个卷积核FF对图像的梯度 G=∂F/∂IG=∂F/∂I,用梯度上升的方法迭代更新图像 I=I+η∗GI=I+η∗G,ηη是类似于学习率的东西。
代码中,使用以及训练好的VGG16模型,可视化该模型的卷积核
结论:
低层的卷积核似乎对颜色,边缘信息感兴趣。
越高层的卷积核,感兴趣的内容越抽象(非常魔幻啊),也越复杂。
高层的卷积核感兴趣的图像越来越难通过梯度上升获得(block5_conv1有很多还是随机噪声的图像)

热度图可视化:
在图像分类问题中,假设网络将一张图片识别成“猫”的概率是0.9,我想了解到底最后一层的卷积层对这0.9的概率的贡献是多少。换句话时候,假设最后一层卷积层有512个卷积核,我想了解这512个卷积核对该图片是”猫”分别投了几票。投票越多的卷积核,就越确信图片是“猫”,因为它们提取到的特征趋向猫的特征。

参考:https://www.meiwen.com.cn/subject/enabfqtx.html#r9

类激活图”(CAM)可视化:
作用:我们将介绍另一种可视化技术,它有助于理解给定图像的哪些部分引导convnet做出最终的分类决策。这有助于“调试”convnet的决策过程,特别是在分类错误的情况下。它还允许您在图像中定位特定对象。
详细:
https://blog.csdn.net/qq_43433255/article/details/94412867

类激活图(CAM,class activation map)是与特定输出类别相关的二维分数网格,对于输入图像的每个位置进行计算,它表示每个位置对该类别的重要程度。
网络认为预测向量中最大激活的元素对应是“非洲象”类别的元素,索引编号386


SENet(Squeeze-and-Excitation Networks)网络详解
keras CNN卷积核可视化,热度图 python源代码
51自学网,即我要自学网,自学EXCEL、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。
京ICP备13026421号-1