Deep Learning 读书笔记(九)

        这次看的这篇文章的题目是:“Object Bank: A High-Level Image Representation for Scene Classification & Semantic Feature Sparsification” 这是10年NIPS上的一篇文章,我个人的观点觉得它指出了对于场景分类的一种新的方向,感觉还是有很多可以改进的工作可以做的。

        文章在Abstract就提出了,尽管图片low-level的特征在场景分类以及物体识别中有着比较好的应用。但是它的特征是基于像素或是图片的某个部分区域的。这导致了其只含有很少量的semantic meanings。对于更高层次的视觉任务,这种low-level的特征就不是很好了。所以这篇文章就提出了Object Bank这个工作,其主要思想就是“an image is represented as a scale-invariant response map of a large number of pre-trained generic object detectors”.大概意思就是说,每一幅图片的特征已经训练好的那些object detectors共同表示的。不论这个图片是属于哪个数据集的,使用的object detector都是一样的。而且如果使用了稀疏算法,Object Bank对于规模较大的场景数据库能够有更有效的表示和更好的可扩展性。

        在这个工作中,所遇到的最重要的问题就是维度灾难。因为Object Bank所提取出来的特征的维度通常都是很大的。但对于一般的数据集来说,一个类可能只有几十个或是几百个实例以供测试。所以我们需要“structural risk minimization via appropriate regularization of the predictive model is essential.”

        其实可以将Object Bank视作“generalized object convolution”。Object Bank中使用了两种detector作为object detector。一种是“the latent SVM object detector”,用它来识别blobby objects。另一种是“texture classifier”,用来识别texture- and material- based object。

        Object Bank在12个detection scales上使用了200个object detector,有3个spatial pyramid level(L=0,1,2)。这样就产生了No.Objects x No.scales x (1^2+2^2+4^2)个grid。对于每一个object中的每个grid,计算它的maximum response。对于每一个grid就产生了长度为No.objects的特征向量。将这些特征向量串联起来就得到了Object Bank对于一个图像的表示。

        这篇文章中对于object detector的介绍与上一篇博客中提到的那一篇文章中的并不一样,具体的细节还需要通过看代码来明确。这篇文章的代码可以在网上搜到。具体过程可以在本篇文章的Appendix中找到。

        既然一幅图片的特征是由Object Bank中的object detector所产生的,那么使用多少个object detector比较合适呢?理论上应该是越多越好,这样的话产生的特征中能够包含更多的信息。但实际上,在一个nature image中,每一个object的重要性并不是一样的。我们能够使用一小部分的物体来识别很大一部分的图片。

        因为OB产生的特征是超完备的,我们希望找到一种压缩方法是没有semantic salency损失的。这样就跟卷积这样一种压缩方法产生了对比。我们称这样一种压缩方法为基于内容的压缩。

        对于一个分类器来说,其目标函数为:。其中,表示模型的损失函数。是一个正则项,用来避免过拟合。损失函数的一般形式为:。本篇文章所使用的分类器是logistic回归方法,所以。这里不使用SVM的原因是,因为SVM对structured regularization难以区分。现在有l1范式,l1/l2混合范式作为正则项来学习到一个有效且又具有稀疏性的参数

        对于正则项的选择有3种方法:

        1)l1范数,。这样处理的话其实对参数的每一维度是不加任何区别的,也不能将一些相似的特征组合起来。

        2)l1/l2范数,,其中是第j个group,这个是按object来分组的。使用这样的正则项就是为了使同属一个组里的那些参数是稀疏的。这样稀疏性就扩展到了object的层次上。这样做就是为了更好的实现基于内容的压缩。

        3)l1+l1/l2范数,。上述方法虽然实现了组内的稀疏,但却没有实现组间的稀疏。因为在一个图片内,并不是所有的物体都会被包含在内。

        其实关于Object Bank这个方法还有一些比较好的性质,这在文章的实验部分都有提到。但因为我只是想使用这个方法,所以就没有仔细去看那些。

你可能感兴趣的:(deep,learning,深度学习,神经网络,读书笔记)