一、 引出主题

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

二、网络结构及学习策略

1. 网络结构

Tree-CNN模型借鉴了层分类器,树卷积神经网络由节点构成,和数据结构中的树一样,每个节点都有自己的ID、父亲(Parent)及孩子(Children),网(Net,处理图像的卷积神经网络),LT("Labels Transform",就是每个节点所对应的标签,对于根节点和枝节点来说,可以是对最终分类类别的一种划分,对于叶节点来说,就是最终的分类类别。),其中最顶部为树的根节点。本文提出的网络结构如下图所示,对于一张图像,首先会将其送到根节点网络去分类得到“super-classes”,然后根据所识别到的“super-classes”,将图像送入对应的节点做进一步分类,得到一个更“具体”的类别,依次进行递推,直到分类出我们想要的类。

图 1

其实这就和人的识别过程相似,例如有下面一堆物品:数学书、语文书、物理书、橡皮、铅笔。如果要识别物理书,我们可能要经历这样的过程,先在这一堆中找到书,然后可能还要在书里面找到理科类的书,然后再从理科类的书中找到物理书,同样我们要找铅笔的话,我们可能需要先找到文具类的物品,然后再从中找到铅笔。

2. 学习策略

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

图 2

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

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

根据根节点得到的概率分布,文中分别对下面三种情况进行了讨论: (a) 当输出概率中最大概率大于设定的阈值,则说明该类别和该位置对应的子节点有很大的关系,因此将该类别加到该子节点上; (b) 若输出概率中有多个概率值大于设定的阈值,就联合多个子节点来共同组成新的子节点; (c) 如果所有的输出概率值都小于阈值,那么就为新类别增加新的子节点,这个节点是一个叶节点。

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

三、实验方法与结果分析

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

1、实验方法

(1) CIFAR-10 在CIFAR-10的实验中,作者选取6类图像作为初始训练集,又将6类中的为汽车、卡车设定为交通工具类,将猫、狗、马设为动物类,因此构建出的初始树的结构如图3(a)所示

图 3

具体网络结构如图4所示,根节点网络是包含两层卷积、两层池化的卷积神经网络,支节点是包含3层卷积的卷积神经网络。当新的类别出现时(文中将CIFAR-10另外4个类别作为新类别)

图 4

按照文中的学习策略,我们先利用根节点的网络对四种类别的图片进行分类,得到的输出情况如图5所示,从图中可以看出,在根节点的识别中Frog、Deer、Bird被分类为动物的概率很高,Airplane被分类为交通工具的概率较高。

图 5

根据文中的策略,Frog、Deer、Bird将会被加入到动物类节点,同样Airplane将会被加入到交通工具类节点。经过incremental/lifelong learning后的Tree-CNN的结构如图3(b)所示。 具体训练过程如图6所示。

图 6

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

(2) CIFAR-100

对于CIFAR-100数据集,作者将100类数据分为10组,每组包含10类样本。在网络方面,作者将根节点网络的卷积层改为3,并改变了全连接层的输出数目。

2、实验结果分析

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

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

图7比较了在CIFAR-10上微调网络和Tree-CNN的识别效果对比,可以看出相对于微调策略,Tree-CNN的Training Effort仅比微调全连接层高,而准确率却能超出微调全连接层+conv1。

 图 7

这一现象在CIFAR-100中表现更加明显。

图 8

从图7、图8中可以看出Tree-CNN的准确率已经和微调整个网络相差无几,但是在Training Effort上却远小于微调整个网络。

从图9所示分类结果中可以看出,在各个枝节点中,具有相同的特性的类被分配在相同的枝节点中。这一情况在CIFAR-100所得到的Tree-CNN最终的结构中更能体现出来。

除了一些叶节点外,在语义上具有相同特征的物体会被分类到同一支节点下,如图10所示。

图 10

四、总结与分析

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

【转载】论文笔记系列-Tree-CNN: A Deep Convolutional Neural Network for Lifelong Learning的更多相关文章

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

    树卷积神经网络Tree-CNN: A Deep Convolutional Neural Network for Lifelong Learning 2018-04-17 08:32:39 看_这是一 ...

  2. 论文笔记《ImageNet Classification with Deep Convolutional Neural Network》

    一.摘要 了解CNN必读的一篇论文,有些东西还是可以了解的. 二.结构 1. Relu的好处: 1.在训练时间上,比tanh和sigmod快,而且BP的时候求导也很容易 2.因为是非饱和函数,所以基本 ...

  3. 论文笔记:(CVPR2019)Relation-Shape Convolutional Neural Network for Point Cloud Analysis

    目录 摘要 一.引言 二.相关工作 基于视图和体素的方法 点云上的深度学习 相关性学习 三.形状意识表示学习 3.1关系-形状卷积 建模 经典CNN的局限性 变换:从关系中学习 通道提升映射 3.2性 ...

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

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

  5. 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 ...

  6. 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 ...

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

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

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

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

  9. 读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 ...

随机推荐

  1. POJ 2728 Desert King (01分数规划)

    Desert King Time Limit: 3000MS   Memory Limit: 65536K Total Submissions:29775   Accepted: 8192 Descr ...

  2. hystrix实战之javanica

    spingboot2.0.3集成hystrix的,访问dashboard的另外一种方式: https://blog.csdn.net/qq_38455201/article/details/80783 ...

  3. 关于shared_ptr与weak_ptr的使用(good)

    shared_ptr是带引用计数的智能指针,可以说大部分的情形选择用shared_ptr不会出问题.那么weak_ptr是什么,应该怎么用呢? weak_ptr也是智能指针,但是比较弱,感觉没什么用. ...

  4. 【清北学堂2018-刷题冲刺】Contest 6

    Task 1:子集 [问题描述]  若一个集合S中任意两个元素x和y,都满足x⊕y<min⁡(x, y) ,则称集合S是"好的".其中⊕为按位异或运算符.现在给定一个大小为n ...

  5. TeamViewer 安装

    TeamViewer 安装 ----------- 免费版的安装 安装后打开使用 ------------------------------------

  6. awk 处理文本:行转列,列转行

    [root@centos ~]# cat f 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 51 2 3 4 5 awk '{for(i=1;i<=NF;i++)a ...

  7. 面向对象【day07】:面向对象使用场景(十)

    本节内容 1.概述 2.知识回顾 3.使用场景 一.概述 之前我们学了面向对象知识,那我们在什么时候用呢?不可能什么时候都需要用面向对象吧,除非你是纯的面向对象语言,好的,我们下面就来谈谈 二.知识回 ...

  8. Unity 如何检测鼠标双击事件

    代码如下: void OnGUI(){ Event e=Event.current; )) Debug.Log("用户双击了鼠标"); }

  9. Linux 检查 外部设备 是否存在

    以 USB 为例,如果移植了udev,那么在usb插入的时候,/dev下面会出现usb有关的设备,同时,自动挂载到文件系统的某个节点 如果以文件系统usb对应的挂载点来检测USB是否插入,是不够严谨的 ...

  10. HDU 1041(01展开 大数)

    题意是将 1 展开成 01 ,将 0 展开成 10 ,问这样展开 n 次后序列中有多少对 0. 手写发现:0,1,1,3,5,11 ... 即 a[ i ] = a[ i -1 ] + a[ i - ...