Deep Learning 读书笔记(八)

        这篇文章的题目太长了,标题写不下,我就些这里吧:Unsupervised and Transfer Learning under Uncertainty: from Object Detections to Scene Categorization.

        前段时间因为要准备考试,所以博客一直落下都没有写,考完了也是想放松下自己。也是堕落的不行。从今天起开始好好学习吧。

        这篇文章呢,其实还是比较简单的。它主要是借助了“Object Bank: A High-Level Image Representation for Scene Classification & Semantic Feature Sparsification”这篇文章所提出的Object Bank的工作。Object Bank的主要思想就是提取出一张图片中尽可能多的物体的信息,将其组合起来,使其有助于场景的分类。而本篇文章的工作主要就是将Object Bank所提取出的特征利用PCA和Contractive Auto-Encoder(CAE)进行再一次的组合,使其达到更好的效果。文章标题中所提及的迁移学习的概念则是:将从一个环境中学习到的知识用来帮助新环境中的学习任务,而且数据是服从不同分布的。

        对于一些复杂场景的识别问题来说,基于属性的方法被证明是一种比较有效的方法。这里的属性指的就是场景中的物体。这种方法的主要思想就是通过组合low-level的特征来得到对于一个场景来说high-level的表示。本文所使用的关于物体识别的特征是由177个object detector所产生的,直接使用的话会产生两个问题:(1)维度灾难的问题,177个object detector产生的特征维数是44604,这个特征向量太过于庞大,本文使用了PCA的方法对其进行降维。(2)每一个object detector的正确率其实不高,最多只有30%。所以产生的特征其实并不是特别好。所以文章使用了CAE对原有的特征进行进一步的组合,以产生更优的结果,同时也能起到降维的效果。

        对于每一个object detector都有两个root filter,每一个表示物体的不同角度,共有177x2=354个part-based filters。对于每一个filter,在6个不同的scale上被卷积,the max-response among 1+4+16=21 positions is kept, response map的维度为21x6=126,共有177x2x126=44604维。

        PCA的部分就直接略过了吧,网上资料也很多。这篇文章在这里提到了一个知识点我觉得还是挺好的:“a linear auto-encoder with k hidden units, trained to minimize squared reconstruction error, will learn projection directions that span the same subspace as a k component PCA.”水平不够,就不翻译成中文了。

        接下来就来讨论下Contractive Auto—Encoders(CAE),这本质上也是一种自编码器,只不过是在目标函数中加了一项,目标函数的具体形式为:,其中h(x)表示的是自编码器的隐层,g(h(x))就表示的是对输入的重构。添加的一项就是h(x)的雅可比矩阵每一项平方的和。模型能够通过添加的这一惩罚项学习到图片局部的变化的方向。乍一看,其实模型并不复杂,添加的这一项也比较简单,但是却能够达到不错的学习效果。

        特征在由object bank输出,再输入到CAE中,还是经过了一些处理的。第一类处理方法就是使用池化的方法。每一个object detector的输出是252维的,通过池化将其降低到1维,这样池化过程之后就是177维的特征。这里的池化方法还是有两种:平均池化和最大池化。另一类的处理方法就是PCA,这里又有分成了3中方法。第一种是whole-PCA方法,它是将object bank的输出直接使用PCA进行降维,降维之后的结果是1300维。第二种是pose-PCA方法,每一个object detector的输出是252维,通过PCA降维到15维。第三种是object-PCA方法,每一个object detector是由2个pose-detector组成的,每一个的输出是126维德,通过PCA降维到5维。之上三种方法通过PCA降维之后的维数是由5-fold交叉验证所得到的。

        对于PCA的输出还需要对其进行进一步的正则化处理:。这样是为了保证所有输出的特征都在同一个范围之内。

        CAE的使用只是建立在pose-PCA这一方法之上。在试验中,其他PCA方法都只是直接输入到分类器中观察分类结果的质量。模型的结构如图所示:

        文章标题中所提到的transfer learning在试验中的体现是:将整个网络在某一个数据集上训练好之后,并不改变模型的参数,将其用来训练另一个数据集,发现能够取得不错的效果。这只是最简单的迁移学习的一个例子。

        在实验部分,文章关于非监督学习还有一个比较有意思的知识点:“the features learned through unsupervised learning could be improved upon by fine-tuning them through a supervised training stage.”

        实验部分所使用的分类器基本上都是svm,但还使用了一个比较有意思的分类器,使用的是Multi-Layer Perception(MLP)。它是构建在CAE之上的,初始的权值与CAE是相同的。在调参的时候,是将CAE与MLP同时进行调整的。试验中也正是这个模型取得了state-of-the-art效果。

        对于这篇文章,我个人感觉还是有些工作可以继续深入下去的。最近也正想做做试验,验证下我的想法。


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值