ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【学习笔记】xProtoNet和ProtoNet:可解释的图像分类

2021-10-01 12:00:03  阅读:431  来源: 互联网

标签:xProtoNet 分类 训练 ProtoNet 笔记 图像 prototype 就是


xProtoNet和ProtoNet:可解释的图像分类

ProtoNet

论文地址:This Looks Like That: Deep Learning for Interpretable Image Recognition
代码地址:https://github.com/cfchen-duke/ProtoPNet

之前的分类模型

之前的分类模型几乎都Encoder-Decoder的形式,通过Encoder获取图像特征向量之后在通过Decoder进行分类。比如下图,encoder一般是预训练的模型,分类模型主要是训练deocder
encoder-decodr模式
而所谓的可解释也都是在这个部分之外再添加诸如attention的部分,和人的思考模式还是有点区别的。
我们人的思考可能是这样的模式(原文是用鸟来举例子,我觉得很没代入感,我用个二次元的例子):
在这里插入图片描述
我们看到一张图片(左),如果想识别它是不是雷电将军,我们可能会怎么想呢?我们心中肯定有一个雷电将军(右),这个图片说白了是我们心中对于她记忆种特征的一个具象化图。如果和我们心中的将军像到某种程度的话,那她肯定就是将军了。
比如:

  • 左边的刘海和雷电将军的刘海一样;
  • 俩人都用单手剑;
  • 腰部的右侧都有饰品;
  • 俩人的size差不多

所以我们得出结论:芽衣就是雷电将军(误)
以这种思考模式为基础,作者提出了一个模型,其中灰色都不需要训练的或者是预训练的。
在这里插入图片描述
不再是简单的Encoder-Decoder的模式,而是在分类前加了一个对比的过程。也就是刚刚的,和每个类的最典型的特征进行相似度的计算,并且最后通过加权计算出应该归属的类。这个prototypes也就是每个类的典型特征。我在最开始看到这篇文章的时候一直纠结在这个prototype是怎么得到的,看了训练过程才慢慢明白。
在这里插入图片描述
训练过程基本如图,首先是f,也就是一个训练好的encoder。
输入的图像为x,图像的label为y。
经过f以后得到特征图像z=f(x)。z的形状在论文中是(7,7,128/256/512)。
每个类别都会有m个P,这个m是自己设定的,论文中设定为10。也就是对于一个类来说有十个特征来表示。
训练的过程分为三个部分

最后一层h前的随机梯度下降

最关键的其实是P的学习,我想直接从loss的公式来看会比较好理解
在这里插入图片描述
CreEnt也就是比较熟悉的cross entropy loss,在学习P的过程中h是固定的,也就是只通过P的改变来完成识别。
Clst和Sep其实就是两个距离。Clst取正最小,注意min下标是 ∈ \in ∈,也就是寻找特征图像中与该类相似;Sep取负最小其实就是求最大,下标是 ∉ \notin ∈/​,也就是和其他类不相似。
这个loss基本就确定了prototype的意义,也让它的学习成为可能。

prototype的投影

通过流程图可以看到这个prototype是个特征向量啊,电脑能看懂我们可看不懂。我们看懂才是可解释的模型。所以需要把prototype投影到图像上,做到可视化。还是从loss看吧:
在这里插入图片描述
看起来好像和上面的差不多,但可以看到min的下标变了,从p变成了z,也就是说之前是寻找p的过程,现在变成了寻找z的过程,也就是所谓的投影。这部分的数学原理看起来就很复杂,说实话我没看进去,只是大概懂了idea。

h层的学习

结果

在这里插入图片描述
大概就是这种感觉

xProtoNet

论文链接:XProtoNet: Diagnosis in Chest Radiography with Global and Local Explanations

首先protonet是日常生活场景的图片,而xProtoNet将其迁移到了医疗图像领域,去进行CT图像的分类。
我觉得改的地方不多,但很有效果。主要是针对Patch的设计进行了更改。之前的Patch也可以看到大小是固定的,这就带来了一个问题,这个大小该怎么设定,实际的特征是不是真的就这么大。
比如雷电将军身上的特征和鸡蛋的特征肯定大小(或者说是占整体的比例)是差别很大的。所以固定的大小肯定是不行的。作者就设计了动态变化Patch。
在这里插入图片描述
流程图如上,可以看到有两个部分,分别是FeatureMap和OccurrenceMap。OM就是推测的P映射到图片上最有可能出现的区域。文章不再使用单纯的feature而是使用两个的结合来进行比较。(OM的训练过程目前我还有点没看懂)
在这里插入图片描述

标签:xProtoNet,分类,训练,ProtoNet,笔记,图像,prototype,就是
来源: https://blog.csdn.net/qq_39450895/article/details/120575852

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有