树卷积神经网络Tree-CNN: A Deep Convolutional Neural Network for Lifelong Learning

2018-04-17 08:32:39 看_这是一群菜鸟 阅读数 1906  收藏 更多

分类专栏: 论文解读
 
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。

一、简介:

学习深度学习的人都知道,深度学习有一个严重的问题——“灾难性遗忘”,即一旦使用新的数据集去训练已有的模型,该模型将会失去对原数据集识别的能力。为解决这一问题,本文作者提出了树卷积神经网络Tree-CNN,通过先将物体分为几个大类,然后再将将各个大类依次进行划分,就行树一样不断的开枝散叶,最终叶节点得到的类别就是我们最终所要识别的类别。

二、网络结构及学习策略

1、网络结构

Tree-CNN模型借鉴了层分类器,树卷积神经网络由节点构成,和数据结构中的树一样,每个节点都有自己的ID、父亲(Parent)及孩子(Children),网(Net,处理图像的卷积神经网络),LT("Labels Transform"小编理解的就是每个节点所对应的标签,对于根节点和枝节点来说,可以是对最终分类类别的一种划分,对于叶节点来说,就是最终的分类类别。),其中最顶部为树的根节点。如图1所示,对于一张图像,首先会将其送到根节点网络去分类得到“super-classes”,然后根据所识别到的“super-classes”,然后根据根分类器得到的类别将图像送入对应的节点去作进一步的分类,得到一个更“具体”的类别,依次进行递归,知道分类出我们最终想要的类。其实小编感觉这就和人的识别过程相似,例如有下面一堆物品:数学书、语文书、物理书、橡皮、铅笔。如果要识别物理书,我们可能要经历这样的过程,先在这一堆中找到书,然后可能还要在书里面找到理科类的书,然后再从理科类的书中找到物理书,同样我们要找铅笔的话,我们可能需要先找到文具类的物品,然后再从中找到铅笔。如图1所示。

图 1

2、学习策略

(1)、在识别方面,Tree-CNN的思想基于很简单啦。如图1,主要就是从根节点出发,输出得到一个图像属于各个大类的概率,根据最大概率所对应的位置将识别过程转移到下一节点,这样最终我们能够到达叶节点,叶节点对应得到的就是我们要识别的结果啦。整个过程如图2所示。

图 2

(2)、要说按照上面的思路去做识别,其实并没有什么太大的意义,不仅使识别变得很麻烦,而且在下面的实验中也证明了采用该方法所得到的识别率并不会有所提高,那么这篇论文的意义在哪呢?对,这篇论文最主要的目的就是要解决咱们在前面提到的“灾难性遗忘问题”,即文中所说的达到“lifelong”的效果。

对于新给的类别,我们将这些类的图像输入到根节点网络中,根节点的输出为,其中K、M、I分别为根节点的孩子数、新类别数、每类的图像数。然后利用式(1)来求得每类图像的输出平均值,然后使用softmax来计算概率情况。根据概率情况来表示该类与根节点下面的子类的相似情况。然后按照对于第m类来说,我们按照其概率分布的情况来排列,得到公式(3)。

根据根节点得到的概率值的分布,文中对下面三种情况进行了讨论。

(a)、当输出概率中最大概率大于设置的阈值,那就说明该类别和该位置对应的子节点有很大的关系,因此将该类别加到该子节点上。

(b)、若输出概率中有多个概率值大于设置的阈值,就联合多个子节点来共同组成新的子节点。

(c)、如果所有的输出概率值都小于阈值,那么就为新类别增加新的子节点,这个节点是一个叶节点。

同样,我们将会对别的枝节点继续上面的操作。通过上面的这些操作,实现对新类别的学习,文中称这种学习方式为incremental/lifelong learning。

三、实验设计及分析

在这部分,作者分别针对CIFAR-10及CIFAT-100数据集上进行了测试。

1、实验设计

(1)、CIFAR-10

在CIFAR-10的实验中,作者选取6类图像作初始训练,其中作者又将六类中的为汽车、卡车、卡车设定为交通工具类,将猫、狗马设为动物类,因此构建出的初始树的结构如图3(a)所示,具体网络结构如图5所示,根节点网络是包含两层卷积两层池化的卷积神经网络,枝节点是包含3层卷积的卷积神经网络。当新的类别出现时(文中将CIFAR-10另外4个类别作为新类别),按照2中的学习策略,我们先利用根节点的网络对四种类别的图片进行分类,得到的输出情况如图4所示,从图中可以看出,在根节点的识别中Frog、Deer、Bird被分类为动物的概率很高,Airplane被分类为交通工具的概率较高。根据二中2的策略,Frog、Deer、Bird将会被加入到动物类节点,同样Airplane将会被加入到交通工具类节点。经过incremental/lifelong learning后的Tree-CNN的结构如图3(b)所示。具体训练过程如图6所示。

图 3

图 4

图 5

图 6

作者为了对比Tree-CNN的效果,作者又搭建了一个包含4层卷积的神经网络,并分别通过微调全连接层、全连接+conv1、全连接+conv1+conv2、全连接+conv1+conv2+conv3、全连接+conv1+conv2+conv3+conv4来进行微调。

(2)、CIFAR-100

对于CIFAR-100数据集来说,作者将100类数据分为10组,每类又分为10类,一类为initial training数据,包含10类。另一部分为incremental learning,包含9组90类。在网络方面,作者将根节点网络的卷积层改为3,此外改变全连接层的输出数目。枝节点也并未对网络进行很大改动。

2、实验结果分析

在这部分,作者通过设置两个参数来衡量Tree-CNN的性能。

其中Training Effort可以表示incremental learning的网络的更改层度,即可以衡量“灾难性遗忘”的程度,参数改变的程度越高,遗忘度越强。

图7(a)比较了在CIFAR-10上微调网络和Tree-CNN的效果对比,可以看出相对于微调策略,Tree-CNN的Training Effort仅比微调全连接层高,而准确率却能超出微调全连接层+conv1。这一现象在CIFAR-100中表现更加明显,从图7(b)及8(a)中可以看出Tree-CNN的准确率已经和微调整个网络相差无几,但是在Training Effort上却远小于微调整个网络。

(a)                                                      (b)

图7

(a)                                                      (b)

图8

此外从图8(b)中可以看出,在各个枝节点中,具有相同的特性的类被分配在相同的枝节点中。这一情况在CIFAR-100所得到的Tree-CNN最终的结构中更能体现出来。如图9所示,除了一些叶节点外,在语义上具有相同特征的物体会在同一枝节点下。

图 9

个人评论

我认为本文虽然在一定程度上减少了神经网络“灾难性遗忘”的问题,但是从整篇文章来看,本文并没能使网络的识别准确率有所提升,反而相对于微调整个网络来说,准确率还有所降低。此外,本文搭建的网络实在太多,虽然各个网络的网络结构比较简单,但是调节网络会很费时。

树卷积神经网络Tree-CNN: A Deep Convolutional Neural Network for Lifelong Learning的更多相关文章

  1. 【转载】论文笔记系列-Tree-CNN: A Deep Convolutional Neural Network for Lifelong Learning

    一. 引出主题¶ 深度学习领域一直存在一个比较严重的问题——“灾难性遗忘”,即一旦使用新的数据集去训练已有的模型,该模型将会失去对原数据集识别的能力.为解决这一问题,本文提出了树卷积神经网络,通过先将 ...

  2. HYPERSPECTRAL IMAGE CLASSIFICATION USING TWOCHANNEL DEEP CONVOLUTIONAL NEURAL NETWORK阅读笔记

    HYPERSPECTRAL IMAGE CLASSIFICATION USING TWOCHANNEL  DEEP  CONVOLUTIONAL NEURAL NETWORK 论文地址:https:/ ...

  3. 1 - ImageNet Classification with Deep Convolutional Neural Network (阅读翻译)

    ImageNet Classification with Deep Convolutional Neural Network 利用深度卷积神经网络进行ImageNet分类 Abstract We tr ...

  4. ISSCC 2017论文导读 Session 14 Deep Learning Processors,A 2.9TOPS/W Deep Convolutional Neural Network

    最近ISSCC2017大会刚刚举行,看了关于Deep Learning处理器的Session 14,有一些不错的东西,在这里记录一下. A 2.9TOPS/W Deep Convolutional N ...

  5. ISSCC 2017论文导读 Session 14 Deep Learning Processors,A 2.9TOPS/W Deep Convolutional Neural Network SOC

    最近ISSCC2017大会刚刚举行,看了关于Deep Learning处理器的Session 14,有一些不错的东西,在这里记录一下. A 2.9TOPS/W Deep Convolutional N ...

  6. 读paper:Deep Convolutional Neural Network using Triplets of Faces, Deep Ensemble, andScore-level Fusion for Face Recognition

    今天给大家带来一篇来自CVPR 2017关于人脸识别的文章. 文章题目:Deep Convolutional Neural Network using Triplets of Faces, Deep ...

  7. ASPLOS'17论文导读——SC-DCNN: Highly-Scalable Deep Convolutional Neural Network using Stochastic Computing

    今年去参加了ASPLOS 2017大会,这个会议总体来说我感觉偏系统和偏软一点,涉及硬件的相对少一些,对我这个喜欢算法以及硬件架构的菜鸟来说并不算非常契合.中间记录了几篇相对比较有趣的paper,今天 ...

  8. 一目了然卷积神经网络 - An Intuitive Explanation of Convolutional Neural Networks

    An Intuitive Explanation of Convolutional Neural Networks 原文地址:https://ujjwalkarn.me/2016/08/11/intu ...

  9. Paper: ImageNet Classification with Deep Convolutional Neural Network

    本文介绍了Alex net 在imageNet Classification 中的惊人表现,获得了ImagaNet LSVRC2012第一的好成绩,开启了卷积神经网络在cv领域的广泛应用. 1.数据集 ...

随机推荐

  1. 【UVA11987】Almost Union-Find

    题目链接 题目就告诉我们要用并查集了,操作1和3用裸的带权并查集就行了, 操作2相当于将p结点从当前树中删除,再插入到q的树中,直接删除的话比较麻烦,不妨把它的"尸体"留在原来的地 ...

  2. C++2.0新特性(七)——<Smart Pointer(智能指针)之weak_ptr>

    一.weak_ptr出现的意义 上一节提到过shared_ptr,它会自动释放“不再需要使用的对象”的相应的资源,但是它不是万能的,在某些时候(比如说循环引用),它会显得力不从心,这就是weak_pt ...

  3. CTF 文件包含

    目录 一.基本概念 二.本地文件包含 三.远程文件包含 四.具体场景 五.补充 一.基本概念 文件包含 将相同函数写入单独的文件中,需要使用时直接调用 文件包含漏洞 将被包含的文件设置为变量,导致客户 ...

  4. [C++] inline内联函数使用方法

    C++支持内联函数,目的是为了提高函数的执行效率,类似于C语言中的宏定义 内联函数在调用时将它在程序中的每个调用点展开,不用额外分配栈空间 内联函数的定义在一个源文件中出现一次,但在多个源文件中可以同 ...

  5. 用户账户——《Python编程从入门到实践》

    Web应用程序的核心是让任何用户都能够注册账户并能够使用它,不管用户身处何方 1.让用户能够输入数据 建立用于创建用户的身份验证系统之前,我们先来添加几个页面,让用户能够输入数据.当前,只有超级用户能 ...

  6. 【定制开发】经纪人报备软件 全民经纪人系统 房产中介微信小程序分享家恒房通

    信真科技2019年最先扛鼎之作 - 全民经纪人软件系统 1.含有最基础的经纪人注册.客户报备系统功能: 2.可支持定制开发,针对房企售楼部.中介门店: 3.与微信端绑定使用,方便快捷,快速分享: 4. ...

  7. Tracking without bells and whistles

    Tracking without bells and whistles 2019-08-07 20:46:12 Paper: https://arxiv.org/pdf/1903.05625 Code ...

  8. semi-join子查询优化 -- Duplicate Weedout策略

    duplicate weedout是执行semi-join子查询的一种策略. 将semi-join作为一个常规的inner join.然后使用一个临时表,将重复的记录排除. 假设,你有一个查询,你在寻 ...

  9. 007 webpack基本的用法

    1.安装node.js 因为webpack是基于node.js的 2.新建目录 3.需求 列表的隔行变色 4.初始化 在终端中使用npm init命令可以自动创建这个package.json文件  n ...

  10. springMvc将对象json返回时自动忽略掉对象中的特定属性的注解方式

    1.注解使用在 类名,接口头上 @JsonIgnoreProperties(value={"comid"}) //希望动态过滤掉的属性 例 @JsonIgnorePropertie ...