0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

深度学习中类别激活热图可视化背后的思想

电子设计 来源:电子设计 作者:电子设计 2022-02-12 16:04 次阅读

作者:Valentina Alto
编译:ronghuaiyang

导读

使用Keras实现图像分类中的激活热图的可视化,帮助更有针对性的改进模型。

类别激活图(CAM)是一种用于计算机视觉分类任务的强大技术。它允许研究人员检查被分类的图像,并了解图像的哪些部分/像素对模型的最终输出有更大的贡献。

基本上,假设我们构建一个CNN,目标是将人的照片分类为“男人”和“女人”,然后我们给它提供一个新照片,它返回标签“男人”。有了CAM工具,我们就能看到图片的哪一部分最能激活“Man”类。如果我们想提高模型的准确性,必须了解需要修改哪些层,或者我们是否想用不同的方式预处理训练集图像,这将非常有用。

在本文中,我将向你展示这个过程背后的思想。为了达到这个目的,我会使用一个在ImageNet上预训练好的CNN, Resnet50。

我在这个实验中要用到的图像是,这只金毛猎犬:

首先,让我们在这张图上尝试一下我们预训练模型,让它返回三个最有可能的类别:

from keras.applications.resnet50 import ResNet50 from keras.preprocessing import image from keras.applications.resnet50 import preprocess_input, decode_predictions import numpy as npmodel = ResNet50(weights='imagenet')img_path = 'golden.jpg' img = image.load_img(img_path, target_size=(224, 224)) x = image.img_to_array(img) x = np.expand_dims(x, axis=0) x = preprocess_input(x)preds = model.predict(x) # decode the results into a list of tuples (class, description, probability) print('Predicted:', decode_predictions(preds, top=3)[0])

pIYBAGAIcnmAW7XHAACQM7Rb8AQ223.png

如你所见,第一个结果恰好返回了我们正在寻找的类别:Golden retriver。

现在我们的目标是识别出我们的照片中最能激活黄金标签的部分。为此,我们将使用一种称为“梯度加权类别激活映射(Grad-CAM)”的技术(官方论文:https://arxiv.org/abs/1610.02391)。

这个想法是这样的:想象我们有一个训练好的CNN,我们给它提供一个新的图像。它将为该图像返回一个类。然后,如果我们取最后一个卷积层的输出特征图,并根据输出类别对每个通道的梯度对每个通道加权,我们就得到了一个热图,它表明了输入图像中哪些部分对该类别激活程度最大。

让我们看看使用Keras的实现。首先,让我们检查一下我们预先训练过的ResNet50的结构,以确定我们想要检查哪个层。由于网络结构很长,我将在这里只显示最后的block:

from keras.utils import plot_model plot_model(model)

o4YBAGAIcr2AB_55AAFPjDgG7Bk409.png

让我们使用最后一个激活层activation_49来提取我们的feature map。

golden = model.output[:, np.argmax(preds[0])] last_conv_layer = model.get_layer('activation_49') from keras import backend as K grads = K.gradients(golden, last_conv_layer.output)[0] pooled_grads = K.mean(grads, axis=(0, 1, 2)) iterate = K.function([model.input], [pooled_grads, last_conv_layer.output[0]]) pooled_grads_value, conv_layer_output_value = iterate([x]) for i in range(pooled_grads.shape[0]): conv_layer_output_value[:, :, i] *= pooled_grads_value[i] heatmap = np.mean(conv_layer_output_value, axis=-1) import matplotlib.pyplot as plt heatmap = np.maximum(heatmap, 0) heatmap /= np.max(heatmap) plt.matshow(heatmap)

这个热图上看不出什么东西出来。因此,我们将该热图与输入图像合并如下:

import cv2 img = cv2.imread(img_path) heatmap = cv2.resize(heatmap, (img.shape[1], img.shape[0])) heatmap = np.uint8(255 * heatmap) heatmap = cv2.applyColorMap(heatmap, cv2.COLORMAP_JET) merged= heatmap * 0.4 + imgplt.imshow(merged)

如你所见,图像的某些部分(如鼻子部分)特别的指示出了输入图像的类别。

英文原文:https://valentinaalto.medium.com/class-activation-maps-in-deep-learning-14101e2ec7e1
本文转自:AI公园,作者:Valentina Alto,编译:ronghuaiyang,
转载此文目的在于传递更多信息,版权归原作者所有。

审核编辑:何安

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 深度学习
    +关注

    关注

    73

    文章

    5485

    浏览量

    120937
收藏 人收藏

    评论

    相关推荐

    三维可视化运用的主要技术

    介绍三维可视化运用的主要技术,涵盖渲染技术、建模技术、交互技术以及数据处理技术等方面。 首先,渲染技术是三维可视化至关重要的一环。渲染是指将模型转化为图像或动画的过程,使其能够在屏幕上显示。在三维
    的头像 发表于 07-19 13:56 230次阅读

    如何实现园区大屏可视化

    孪生可视化 构建平台利用Web三维可视化技术对现实场景进行仿真,实现园区级业务场景 的可视化呈现,助力企业快速完成项目的实施。实现园区场景立体可先,极致可视。那么,今天古河云科技就来给
    的头像 发表于 06-19 15:39 373次阅读
    如何实现园区大屏<b class='flag-5'>可视化</b>?

    态势数据可视化技术有哪些

    的一些主要类型及特点: 智慧华盛恒辉网络安全态势指标可视化分析系统: 基于地理信息系统、网络拓扑、攻击路径等的安全态势可视化分析系统方法。 通过可视化技术将安全态势数据以多视图、多角
    的头像 发表于 06-11 15:47 347次阅读

    智慧大屏是如何实现数据可视化的?

    智慧大屏,作为数据可视化的重要载体,已在城市管理、交通监控、商业运营等领域广泛应用。本文旨在阐述智慧大屏实现数据可视化的关键技术和方法,包括数据源管理、数据处理、视觉编码、用户界面与交互设计等。
    的头像 发表于 06-04 15:02 541次阅读
    智慧大屏是如何实现数据<b class='flag-5'>可视化</b>的?

    大屏数据可视化的作用和意义

    大屏数据可视化是指利用大屏幕设备展示数据信息,通过图表、图像、动画等视觉手段将数据呈现出来,以便用户能够直观、清晰地理解数据背后的含义和关联。在信息化时代,数据已经成为企业决策和运营的重要依托,而
    的头像 发表于 06-03 17:56 615次阅读

    大屏数据可视化是什么?运用了什么技术

    解数据、发现规律和趋势,从而支持决策制定和问题解决。 在大屏数据可视化,常用的技术包括: 数据采集与处理: 数据从各种来源(数据库、传感器、API等)采集后,经过清洗、转换、处理等步骤,以符合可视化需求的格式呈现。 可
    的头像 发表于 05-24 15:35 787次阅读

    智慧城市-可视化,进一步提高信息建设水平

    信息量化、可视化、互动的特点,直观地展示城市管理、服务、交通、环境等方面的数据。   数据视觉平台 数据可视化主要是将城市发展过程遇到的问题和数据,通过数据采集、数据处理和变换、可视化
    的头像 发表于 05-22 16:49 411次阅读

    请问freertos可视化调试打印任务信息是不是只可以打印一次?

    在freertos,使用可视化调试打印任务消息,但是打印不全,还只能打印一次,使用IAR自带的调试插件看,显示可视化调试任务的堆栈顶全是a,这事怎么回事?
    发表于 05-07 06:16

    数据可视化:企业数字建设效果的呈现

    数据可视化即通过图表的形式将数据的内在信息有逻辑性地呈现给用户,使用户更容易发现数据蕴藏的规律,找出问题,进而做出决策;另一方面,数据可视化项目也是一张重要的名片,是企业数字建设效
    的头像 发表于 04-29 10:18 404次阅读
    数据<b class='flag-5'>可视化</b>:企业数字<b class='flag-5'>化</b>建设效果的呈现

    深入探讨机器学习可视化技术

    机器学习可视化(简称ML可视化)一般是指通过图形或交互方式表示机器学习模型、数据及其关系的过程。目标是使理解模型的复杂算法和数据模式更容易,使技术和非技术利益相关者更容易理解它。
    发表于 04-25 11:17 359次阅读
    深入探讨机器<b class='flag-5'>学习</b>的<b class='flag-5'>可视化</b>技术

    FUXA基于Web的过程可视化软件案例

    FUXA——基于Web的过程可视化软件
    发表于 04-24 18:32 0次下载

    态势数据可视化技术有哪些

    确,计算方法不实用,可视化效果不直观等技术问题,设计并实现了基于地理信息系统,网络拓扑,攻击路径等的安全态势可视化分析系统方法, 通过可视化技术将安全态势数据以多视图,多角度,多层次
    的头像 发表于 04-22 15:17 371次阅读

    数字孪生可视化系统在农业智能管理的应用案例

    案例,来探讨讯维数字孪生可视化系统在农业智能管理的应用。 一、案例背景 某大型农业园区面临着土地资源有限、种植结构复杂、生产管理效率低下等问题。为了提升园区的智能管理水平,提高农
    的头像 发表于 03-19 15:42 493次阅读

    可视化全程追溯,可视化资产管理系统

    摘要:本文将从应用价值、系统功能、资产盘点、资产出入库、资产定位以及系统实现能效等几个方面,阐述新导物联可视化资产管理系统为企业提供的优势,以提升资产管理的效率和准确度。 一、应用价值 可视化资产
    的头像 发表于 01-11 13:54 454次阅读
    <b class='flag-5'>可视化</b>全程追溯,<b class='flag-5'>可视化</b>资产管理系统

    一键生成可视化图表/大屏 这13款数据可视化工具很强大

    前言 数字经济时代,我们每天正在处理海量数据,对数据可视化软件的需求变得突出,它可以帮助人们通过模式、趋势、仪表板、图表等视觉辅助工具理解数据的重要性。 如果遇到数据集需要分析处理,但是你不又知道
    的头像 发表于 12-19 17:27 5177次阅读
    一键生成<b class='flag-5'>可视化</b>图表/大屏 这13款数据<b class='flag-5'>可视化</b>工具很强大