码迷,mamicode.com
首页 > 其他好文 > 详细

关于卷积神经网络旋转不变性的一点研究

时间:2017-06-18 20:49:23      阅读:888      评论:0      收藏:0      [点我收藏+]

标签:color   技术   研究   http   doc   neu   lex   人工   img   

今天一直在思考CNN的旋转不变性,众所周知,CNN具有平移不变性,但是是否具有旋转不变性呢。我们来研究下吧。

1 查阅资料

查阅了许多国内外资料,在解释旋转不变性的时候,普遍得出来,CNN具有一定的旋转不变性,但是这个旋转不变性是有一定的角度控制的,当然起作用的是maxpooling 层,当我们正面拍一些照片的时候,在某些地方会得到activation.然后旋转一定的角度之后,这个依然在相同的点得到activation区域。当然决定这个区域的是maxpooling 层,所以说maxpooling越大可以旋转保持抽取特征不变性的角度就越大。现在很多人解决这种问题的方法都是用data augmentation

data augmentation:人工增加训练集的大小. 通过平移, 翻转, 加噪声等方法从已有数据中创造出一批""的数据

当然这位仁兄介绍的比较仔细,传送门:http://www.cnblogs.com/love6tao/p/5841648.html,但是这种方法,很容易导致模型过拟合。有没有一种方法能解决这个问题呢,下面我来介绍一篇CVPR 2016上的文章。

2 论文介绍

论文名字:RIFD-CNN: Rotation-Invariant and Fisher Discriminative Convolutional Neural Networks for Object Detection

当然这篇文章介绍了旋转不变性改进,和判别改进,但是我这里只介绍一种。

R-CNN模型图:

技术分享

它这个模型其实很简答,前面就是data augmentation. 然后放上传统的CNN层(VGGNet,AlexNet).技术分享是传统网络分类层的前一层。本模型是在之间加了技术分享层以保证模型的旋转不变性。

模型分为两层:一层data augmentation 和model training.

Data augmentation:给一些列初始的训练样本技术分享,我们通过旋转变化得到了一系列新的训练样本:技术分享,其中技术分享是正样本,技术分享是负样本,技术分享是一些列的k个旋转角度。

model training:为了达到旋转不变的特性,文章增加了一个旋转不变全连接层技术分享技术分享中的m是除了分类层次的所有层数。不像传统的卷积神经网络,仅仅优化多项逻辑斯蒂回归,即y的值是多项的,是大于2分类的(0,1,2)。具体不多说,传送门,讲的很详细:http://www.docin.com/p-586309778.html

但是本文提出的R-CNN模型,通过加上正则约束项优化一个新的目标函数,以确保训练样本在旋转之前和之后分享相似的特征。

为了减少训练损耗,直接把之前神经网络训练好的参数,带进去。假设技术分享技术分享层的输出,技术分享技术分享的输出。技术分享是分类层技术分享技术分享技术分享的参数。那么我们就可以得到:

技术分享

技术分享

其中技术分享技术分享是RELU 和softmax激活函数。关于激活函数我这里就不说了。

那么给出训练样本技术分享以及他们对应的标签技术分享,假设总的参数为技术分享技术分享.

那么就可以得到下面的优化公式:

技术分享

其中技术分享技术分享为平衡三个目标公式的约束项。其中技术分享为softmax 分类器的损失函数:技术分享. 其中N是训练样本个数,K是每个样本旋转的次数。

第二,技术分享是作为旋转不变正则化约束项。可以表示为:

技术分享

技术分享是RI-CNN旋转之后特征的平均值,表示为:

技术分享

目标函数的第三项作为一个权值衰减组,为了控制权重,防止过拟合。

整个模型的优化都是用随机梯度下降来优化。

下面贴出这个算法:

技术分享

总结:算法不是太难,但是想法很好。

关于卷积神经网络旋转不变性的一点研究

标签:color   技术   研究   http   doc   neu   lex   人工   img   

原文地址:http://www.cnblogs.com/xiaohuahua108/p/7045209.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!