Roy D , Panda P , Roy K . Tree-CNN: A Hierarchical Deep Convolutional Neural Network for Incremental Learning[J]. Neural Networks, 2018.

今天阅读的这篇论文的名字有两个版本,分别为Tree-CNN: A Deep Convolutional Neural Network for Lifelong LearningTree-CNN: A Hierarchical Deep Convolutional Neural Network for Incremental Learning。后面的是最终发表在Neural Networks上的版本。明显,第一个名字有点太浮夸了,Lifelong Learning。我个人对这篇论文的评价是一般,一直觉得Neural Networks是机器学习顶级期刊,但这篇论文让我觉得Neural Networks也不是高高在上的白月光。当然,专门记录不是为了吐槽这篇论文。论文里的思想与翁巨扬教授的IHDR有点像,这一点会在笔记中指出。抱着很高的期待看这篇论文,中间却发现工作还很简陋,还有许多需要(或者说可以)填补的坑。


1. 问题背景

深度学习存在灾难性遗忘问题:也即对新数据的学习会造成历史知识的遗忘。例如,对于一个已经学会识别苹果、梨、香蕉的深度学习网络,我现在用橘子的数据集来继续训练这个网络,学习完成后,我们发现,它虽然能够识别橘子了,但是对苹果、梨、香蕉的识别正确率却大大降低。

深度学习灾难性遗忘的原因主要是因为,深度神经网络是一种全局网络。对新数据的训练可能会大幅修改对其它类别重要的神经元的参数。当前应对该问题,主要存在三类方法:1)combining old and new data and retraining;2)knowledge distill;3)Synaptic Intelligence。

1)combining old and new data and retraining

目前为止,这是解决深度学习灾难性遗忘问题最有效的方法,没有之一。当然,它也是最暴力、最没有技术含量、成本最高的方法。它把序列学习问题变成了深度学习擅长的离线batch学习问题。改变了应用背景,灾难性遗忘问题自然就不存在了。但是,这种方法一旦遇到新的数据,就需要将新数据加入历史数据集中,打乱后,对神经网络进行重训练。对于一个时时刻刻会遇到新场景、新案例的在线学习应用,整个训练数据随着新场景的增加而增大,重训练所需要的时间与空间成本也会愈来愈大。

2) knowledge distill

知识蒸馏技术是面向于模型压缩,满足像手机上运行深度学习应用的需求,后面被应用于解决深度学习灾难性遗忘的问题。知识蒸馏技术是逆向利用了神经网络模型的一个典型案例,即然利用输入与输出数据能够得到表示某一类知识的模型,随机输入的状态到该训练好的网络中,所得到的输出肯定是包含了那个类别的知识,这个过程与蒸馏的过程很相似,被形像的称为知识蒸馏技术。基于知识蒸馏技术的方法,不需要存储历史数据。它利用当前的新状态产生对应的输出,这些输入输出(保留着历史知识)与新的数据一起对网络进行训练。它们就像是绳子的两端的拔河队员,尽力保证网络即不遗忘历史知识,又能学到新知识。

3)Synaptic Intelligence

突触智能其实说白点就是利用收集训练过程中神经元与任务相关性信息来限制与历史任务重要的神经元的修改来达到缓解灾难性遗忘问题的方法。想了解更多,可以看看Synaptic Intelligence。

2. Tree-CNN方法

理论层面没有多少创新,该论文唯一值得一说的就是它的idea,很像翁巨扬教授的IHDR的简化版本在深度神经网络中的应用版本,所以说,我个人真觉得这篇论文创新点不明显。下面,我用论文中第一个实验的训练构造过程来介绍Tree-CNN的核心思想。

人类天生就具有分类的能力来避免信息爆炸,生活处处能看到分类。万事万物在人类定义的属性空间下,是能够分类的,先粗分类,然后将大类再细分类,就像一棵树一样。例如,CIFAR-10是一个包含10个类别的数据集,为了构造成一个增量式学习问题,作者先选取其中6类作为初始训练集,预留4类作为新数据,在之后加入。

6类可以人为的分成两个大类:1)动物;2)车辆。这个6类可以一起训练出一个ROOT网络模型,然后各个大类的数据集又可以分类训练两个子网络模型(ANIMAL与VEHICLE)。最后就是利用各类数据集训练叶子网络模型。

在利用6类数据集构造出如下图左边所示的网络模型树之后,需要接受4类新数据。论文中是这么做的,原文如下:

Once the new classes have been assigned locations in the Tree-CNN, we begin the re-training of the network. The root node is re-trained using all 10 classes, divided into to subclasses. The branch node “animal” is retrained using training data from 6 classes, 3 old and 3 new added to it. Similarly, branch node “vehicles” is retrained with training data from 4 classes, 3 old, 1 new.

简译一下就是:新加入的类与历史数据一起对网络重新训练!!!

吐槽时刻:啥呀,这不是解决灾难性遗忘最没有技术含量(combining old and new data and retraining)的作法吗!!!搞这么多,又是TREE,又是增量式学习,又是neural networks的,结果你告诉我,你用的就是这种简单粗暴的方法?感觉被戏弄了,这真的不是在这里刷存在感,真的有感觉被人耍了一般。


有人会说,它构造了这样一棵网络树,这是它最大的IDEA。慢着,可能真的是孤陋寡闻了,下图是翁巨扬教授提出的IHDR树,是不是很像。但是你Tree-CNN只是一个简单的没有多少理论的树,人家IHDR树里面要理论有理论的,而且人家解决的是回归问题。


未完待续

PRN(20200816):A Hierarchical Deep Convolutional Neural Network for Incremental Learning [Tree-CNN]相关推荐

  1. HD-CNN: HIERARCHICAL DEEP CONVOLUTIONAL NEURAL NETWORK FOR IMAGE CLASSIFICATION(泛读)

    一.文献名字和作者    HD-CNN: HIERARCHICAL DEEP CONVOLUTIONAL NEURAL NETWORK FOR IMAGE CLASSIFICATION, 2014 二 ...

  2. 【农业害虫识别论文一】Crop pest classification based on deep convolutional neural network and transfer learning

    本论文发布于2019年,主要基于三个数据集进行农业害虫的识别.文章不是简单的翻译,而是类似自己的读书笔记,基本记录了下,做后续回顾所用.望各位看官不要吐槽 哈哈! 论文题目 Crop pest cla ...

  3. 文献阅读(63)NIPS2012-ImageNet Classification with Deep Convolutional Neural Networks

    本文是对<ImageNet Classification with Deep Convolutional Neural Networks>一文的浅显翻译与理解,如有侵权即刻删除. 更多相关 ...

  4. PRN(20200908):Frosting Weights for Better Continual Training

    Zhu, Xiaofeng, et al. "Frosting Weights for Better Continual Training." 2019 18th IEEE Int ...

  5. A Deep Convolutional Neural Network for segmenting and classifying epithelial and stromal regions

      文章全名:<A Deep Convolutional Neural Network for segmenting and classifying epithelial and stromal ...

  6. 深度学习论文阅读图像分类篇(五):ResNet《Deep Residual Learning for Image Recognition》

    深度学习论文阅读图像分类篇(五):ResNet<Deep Residual Learning for Image Recognition> Abstract 摘要 1. Introduct ...

  7. PRN(20210421):Task-Free Continual Learning

    写这篇博客前,我又重新阅读了之前的博客( 利用突触智能实现连续学习|从原理到代码解析(人生好难呀!))的内容,以及文后的那段笔(tu)记(cao).一直没有放弃关注增量式学习的近况,比如:最近ICLR ...

  8. AlexNet论文翻译(中英文对照版)-ImageNet Classification with Deep Convolutional Neural Networks

    图像分类经典论文翻译汇总:[翻译汇总] 翻译pdf文件下载:[下载地址] 此版为中英文对照版,纯中文版请稳步:[AlexNet纯中文版] ImageNet Classification with De ...

  9. 3D Human Pose Estimation from Monocular Images with Deep Convolutional Neural Network(2014)

    Deep network for 3D pose estimation(2014) 本文提出两种策略去训练deep convolutional neural network以进行3D pose est ...

最新文章

  1. android 开启一个定时线程_Android中定时执行任务的3种实现方法
  2. mybatis中ResultSetHandler的设计与实现
  3. DNS(3)- 详解DNS的资源记录
  4. 机器学习算法的基础知识
  5. Git命令,合并分支到master,并提交远程仓库,将本地分支推送到远程仓库
  6. python为mysql设置id自增长_postgresql如何设置id自增长
  7. [JavaWeb-JavaScript]JavaScript变量
  8. 如何批量查问PR值、百度权重、百度快照及收录量,用BlueCatTools批量网站查询工具
  9. 计算map代码_大数据系列之计算框架MapReduce
  10. 阶梯式的岗位技术培训认证体系
  11. java io教程_Java IO教程
  12. Moya网络层 + ObjectMapper数据转模型
  13. VBA实战技巧精粹014:关于Range总结
  14. 麒麟案例 | 传统企业偶遇“麒麟计划” 相见恨晚 ,却恰逢其时!
  15. matlab指南针的例子,小米指南针源码
  16. 此计算机 未识别的网络,未识别的网络无网络访问解决方法(图文)
  17. 蜗牛学院:中国人,努力获得了荣誉却要压抑克制
  18. SEM竞价推广创意快速撰写的方法,智能创意制作
  19. python自动化测试面试题代码_Python自动化测试面试题-编程篇
  20. 蓝桥杯必备算法二:二分搜索

热门文章

  1. java split函数的用法_java中split函数用法以及注意事项
  2. Oracle 12C RAC关闭MGMT
  3. 实现TI Am335x对TSC2046触摸的支持
  4. 行政区划数据方案设计
  5. 键盘长按,响应非常慢,长按backspace响应慢
  6. 我们为什么需要图数据库?
  7. Echarts3之字符云按照给定形状显示
  8. Exchange信箱迁移(只适用于DC和exh不在同一服务器上)
  9. 手机相机专业模式介绍
  10. RTC 与RCC 之间的关系