医学图像处理医学图像处理-卷积神经网络卷积神经网络_神经网络的可视化解释!...

bda5c504cf7f7e973d6f4b0bc2ef8abe.png

原文链接:https://medium.com/swlh/an-intuitive-visual-interpretability-for-convolutional-neural-networks-9630007c5857

翻译:【计算机视觉联盟】公众号团队

推荐资源

机器学习手推笔记(https://github.com/Sophia-11/Machine-Learning-Notes,直达笔记地址)

笔记预览

aa7b58117923149413307283c692730d.png

025c8493cec0b0437d9fe4f518df4b6a.png

第一个卷积神经网络是Alexander Waibel在1987年提出的时延神经网络(TDNN)[5]。TDNN是应用于语音识别问题的卷积神经网络。它使用FFT预处理语音信号作为输入。它的隐藏层由两个一维卷积核组成,以提取频域中的平移不变特征[6]。在TDNN出现之前,人工智能领域在反向传播(BP)研究中取得了突破性进展[7],因此TDNN能够使用BP框架进行学习。在原作者的对比实验中,在相同条件下,TDNN的性能要优于隐马尔可夫模型(HMM),后者是1980年代语音识别的主流算法[6]。

1988年,张伟提出了第一个二维卷积神经网络转换不变人工神经网络(SIANN),并将其应用于医学图像的检测[1]。Yann LeCun还在1989年,为计算机视觉问题构建了卷积神经网络[2],即LeNet的原始版本中。LeNet包含两个卷积层,两个完全连接层,总共60,000个学习参数,其规模远远超过TDNN和SIANN,其结构非常接近现代卷积神经网络[4]。LeCun(1989)采用[2]随机梯度下降(SGD)进行随机初始化后的权值学习。后来的深度学习学院保留了这一策略。此外,LeCun(1989)在讨论其网络结构[2]时首次使用了卷积一词,并以此命名卷积神经网络。

对于深度卷积神经网络,经过多次卷积和合并后,其最后的卷积层包含最丰富的空间和语义信息。卷积神经网络中的每个卷积单元实际上都扮演着对象检测器的角色,它本身具有定位对象的能力但是其中包含的信息对于人类来说是难以理解的,并且难以以视觉方式显示。

在本文中,我们将回顾类激活映射(CAM),CAM借鉴了著名的论文《网络中的网络》(Network In Network)中的思想,用全局平均池(GAP)代替了全连接层。

所提出的CNN网络具有强大的图像处理和分类功能,同时还可以定位图片的关键部分。

卷积层(Convolution Layers)

卷积神经网络(CNN) ,主要是通过单个过滤器连续提取特征,从局部特征到总体特征,以便进行图像识别等功能。

假设我们需要处理尺寸为6x6像素的单通道灰度图像,将其转换为二维矩阵,如下所示:

5fbbd612241aca8efa7af3ac8290ff47.png
资料来源:https : //mc.ai/my-machine-learning-diary-day-68/

图片中的数字表示该位置的像素值,像素值越大,颜色越亮。图片中间的两种颜色之间的分界线是我们要检测的边界。

我们可以设计一个过滤器(也称为kernel)来检测该边界。然后,将该过滤器与输入图片进行曲面组合以提取边缘信息,可以将图片上的卷积操作简化为以下动画:

dc1adf084be5040f75dc2b9e6645ab28.gif
资料来源:https : //mc.ai/my-machine-learning-diary-day-68/

我们使用此过滤器覆盖图片,覆盖与过滤器一样大的区域,将相应的元素相乘,然后求和。计算一个区域后,移至其他区域,然后计算直到覆盖原始图片的所有区域。

输出矩阵称为特征图(Feature Map),它的中间颜色较浅,两侧颜色较深,反映了原始图像中间的边界。

d7496543080a62f41f607e7a0e5a377d.png
来源:https : //mc.ai/learning-to-perform-linear-filtering-using-natural-image-data/

卷积层主要包含两个部分,一个过滤器和一个特征图,这是数据流经CNN网络的第一个神经层,通过学习使用的过滤器越多,将自动调整CNN的过滤器矩阵,将得到更多的特征。

要设置的常规超参数包括过滤器的数量,大小和步长。

池化层(Pooling)

池化也称为空间池化或子采样。其主要功能是提取特定区域的主要特征并减少参数数量,以防止模型过度拟合。

这里没有我们需要学习的参数。需要指定的超参数包括池化类型,常用的方法包括Maxpooling或Averagepooling,窗口大小和步长。通常,我们更多地使用Maxpooling,并且通常采用大小为(2,2),步长为2的过滤器,因此在合并之后,输入长度和宽度将减少2倍,并且通道不会更改,如下图所示:

144a1fc9bcea1b9cceb8a90cff3e5751.png

最大值在合并窗口内获取,并在特征图矩阵上顺序合并后生成新矩阵。同样,我们也可以使用求平均或求和的方法,但是在通常情况下,使用最大值方法获得的效果相对更好。

经过几次卷积和合并后,我们最终将多维数据展平为一维数组,然后将它们连接到完全连接层。

4b614839e8d18ce1b2df38d3a3af16f4.png
来源:https : //gfycat.com/fr/smoggylittleflickertailsquirrel-machine-learning-neural-networks-mnist

它的主要功能是基于通过卷积层和池化层提取的特征集对处理后的图片进行分类。

诸如GoogleNet [10]之类的全卷积神经网络避免使用全连接层,而使用全局平均池(GAP)。这样,不仅可以减少参数以避免过度拟合,而且可以创建到类别关联的特征图。

全局平均池化层(Global Average Pooling)

长期以来,完全连接的网络一直是CNN分类网络的标准结构。通常,完全连接后将具有用于分类的激活功能。但是完全连接的层具有大量参数,这会降低训练速度,并且容易过拟合。

在网络中的网络 [9]中,提出了全局平均池的概念来代替完全连接的层。

aaad8d3113e4a8470bb2dd8952680c2b.png
资料来源:http : //www.programmersought.com/article/1768159517/

全局平均池和局部平均池之间的区别是池窗口。局部平均池化包括对特征图中的子区域取平均值,而在全局平均池中,我们对整个特征图取平均。

50a76fcf005479b7f119c6c48055c592.png
来源:https : //www.machinecurve.com/index.php/2020/01/30/what-are-max-pooling-average-pooling-global-max-pooling-and-global-average-pooling/

使用全局平均池而不是完全连接的层会大大减少参数的数量。

类激活图(Class Activation Map)

当使用全局平均池化时,最后的卷积层被迫生成与我们所针对的类别数量相同数量的特征图,这将为每个特征图赋予非常清晰的含义,即类别可信度图 [11]。

ce4a5049953f78416edecc980dfac940.png
来源:https : //medium.com/@ahmdtaha/learning-deep-features-for-discriminative-localization-aa73e32e39b2

从图中可以看出,在GAP之后,我们获得了最后一个卷积层的每个特征图的平均值,并通过加权和获得了输出。对于每个类别C,每个特征图k的平均值具有相应的权重w。

训练CNN模型后,我们可以获得一个热图来解释分类结果。例如,如果我们要解释C类的分类结果。我们取出与类C对应的所有权重,并找到它们对应的特征图的加权和。由于此结果的大小与特征图一致,因此我们需要对其进行过采样并将其覆盖在原始图像上,如下所示:

91b056b84714ec6b980ed3217d5d4da4.png
来源:https : //medium.com/@ahmdtaha/learning-deep-features-for-discriminative-localization-aa73e32e39b2

通过这种方式,CAM以热图的形式告诉我们,模型集中在用于确定图片的c类中的像素上。

eb0967e469392287a823dd78d67b5d5f.png
来源:MultiCAM:用于遥感图像中飞机识别的多类激活映射

结论

CAM的解释效果一直很好,但是有一个缺点,那就是它需要修改原始模型的结构,从而导致需要重新训练模型,这极大地限制了它的使用场景。如果模型已经在线,或者培训成本很高,那么我们几乎不可能对其进行再培训。

References

  1. Zhang, W., 1988. Shift-invariant pattern recognition neural network and its optical architecture. In Proceedings of annual conference of the Japan Society of Applied Physics.
  2. . LeCun, Y. and Bengio, Y., 1995. Convolutional networks for images, speech, and time series. The handbook of brain theory and neural networks, 3361(10), 1995.
  3. LeCun, Y., Boser, B., Denker, J.S., Henderson, D., Howard, R.E., Hubbard, W. and Jackel, L.D., 1989. Backpropagation applied to handwritten zip code recognition. Neural computation, 1(4), pp.541–551.
  4. LeCun, Y., Kavukcuoglu, K. and Farabet, C., 2010. Convolutional networks and applications in vision. In ISCAS(Vol. 2010, pp. 253–256).
  5. Waibel, A., 1987. Phoneme recognition using time-delay neural networks. Meeting of the Institute of Electrical, Information and Communication Engineers (IEICE). Tokyo, Japan.
  6. Waibel, A., Hanazawa, T., Hinton, G., Shikano, K. and Lang, K., 1989. Phoneme recognition using time-delay neural networks, IEEE Transactions on Acoustics, Speech, and Signal Processing, 37(3), pp. 328–339.
  7. Rumelhart, D.E., Hinton, G.E. and Williams, R.J., 1986. Learning representations by back-propagating errors. nature, 323(6088), p.533.
  8. LeCun, Y., Bottou, L., Bengio, Y. and Haffner, P., 1998. Gradient-based learning applied to document recognition. Proceedings of the IEEE, 86(11), pp.2278–2324.
  9. Min Lin, Qiang Chen, Shuicheng Yan : Network In Network.
  10. Christian Szegedy, Wei Liu, Yangqing Jia, Pierre Sermanet, Scott E. Reed, Dragomir Anguelov, Dumitru Erhan, Vincent Vanhoucke, Andrew Rabinovich: Going Deeper with Convolutions.
  11. Bolei Zhou andAditya Khosla and Agata Lapedriza andAude Oliva andAntonio Torralba :Learning Deep Features for Discriminative Localization
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【优质项目推荐】 1、项目代码均经过严格本地测试,运行OK,确保功能稳定后才上传平台。可放心下载并立即投入使用,若遇到任何使用问题,随时欢迎私信反馈与沟通,博主会第一时间回复。 2、项目适用于计算机相关专业(如计科、信息安全、数据科学、人工智能、通信、物联网、自动、电子信息等)的在校学生、专业教师,或企业员工,小白入门等都适用。 3、该项目不仅具有很高的学习借鉴价值,对于初学者来说,也是入门进阶的绝佳选择;当然也可以直接用于 毕设、课设、期末大作业或项目初期立项演示等。 3、开放创新:如果您有一定基础,且热爱探索钻研,可以在此代码基础上二次开发,进行修改、扩展,创造出属于自己的独特应用。 欢迎下载使用优质资源!欢迎借鉴使用,并欢迎学习交流,共同探索编程的无穷魅力! 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值