RCNN:RCNN可以看作是RegionProposal+CNN这一框架的开山之作,在imgenet/voc/mscoco上基本上所有top的方法都是这个框架,可见其影响之大。RCNN的主要缺点是重复计算,后来MSRA的kaiming组的SPPNET做了相应的加速。
Fast-RCNN:RCNN的加速版本,在我看来,这不仅仅是一个加速版本,其优点还包括:
(a) 首先,它提供了在caffe的框架下,如何定义自己的层/参数/结构的范例,这个范例的一个重要的应用是python layer的应用,我在这里支持多label的caffe,有比较好的实现吗? - 孔涛的回答也提到了。
(2) training and testing end-to-end 这一点很重要,为了达到这一点其定义了ROIPooling层,因为有了这个,使得训练效果提升不少。
先验证1次方……
再假设k次方……
最后k+1时改成k次方乘以(a+b)带入上一步假设的利用多项式乘法解决问题。
例:证明:当n=1时,左边=(a+b)1=a+b
右边=C01a+C11b=a+b
左边=右边
假设当n=k时,等式成立,
即(a+b)n=C0nan+C1n a(n-1)b十…十Crn a(n-r)br十…十Cnn bn成立;
则当n=k+1时, (a+b)(n+1)=(a+b)n*(a+b)=[C0nan+C1n a(n-1)b十…十Crn a(n-r)br十…十Cnn bn]*(a+b)
=[C0nan+C1n a(n-1)b十…十Crn a(n-r)br十…十Cnn bn]*a+[C0nan+C1n a(n-1)b十…十Crn a(n-r)br十…十Cnn bn]=[C0na(n+1)+C1n anb十…十Crn a(n-r+1)br十…十Cnn abn]+[C0nanb+C1n a(n-1)b2十…十Crn a(n-r)b(r+1)十…十Cnn b(n+1)]
=C0na(n+1)+(C0n+C1n)anb十…十(C(r-1)n+Crn) a(n-r+1)br十…十(C(n-1)n+Cnn)abn+Cnn b(n+1)]
=C0(n+1)a(n+1)+C1(n+1)anb+C2(n+1)a(n-1)b2+…+Cr(n+1) a(n-r+1)br+…+C(n+1)(n+1) b(n+1)
∴当n=k+1时,等式也成立;
所以对于任意正整数,等式都成立
RCNN:RCNN可以看作是RegionProposal+CNN这一框架的开山之作,在imgenet/voc/mscoco上基本上所有top的方法都是这个框架,可见其影响之大。
RCNN的主要缺点是重复计算,后来MSRA的kaiming组的SPPNET做了相应的加速。 Fast-RCNN:RCNN的加速版本,在我看来,这不仅仅是一个加速版本,其优点还包括: (a) 首先,它提供了在caffe的框架下,如何定义自己的层/参数/结构的范例,这个范例的一个重要的应用是python layer的应用,我在这里支持多label的caffe,有比较好的实现吗? - 孔涛的回答也提到了。
(2) training and testing end-to-end 这一点很重要,为了达到这一点其定义了ROIPooling层,因为有了这个,使得训练效果提升不少。
用一个卷积核滑动图片来提取某种特征(比如某个方向的边),然后激活函数用ReLU来压制梯度弥散。对得到的结果用另一个卷积核继续提取+reLU,然后池化(保留区域最大或者用区域平均来替换整个局部区域的值,保证平移不变性和一定程度上对过拟合的压制)
之后“深度”的话,就会需要对池化后的结果继续用不同的卷积核进行 “卷积+relu”再池化的工作。最后得到的实质是一个图片的深度特征,然后实际分类需要另外加一层,一般是softmax。
(也就是说如果对一个现成的已经训练完毕的卷积神经网络模型,只保留除了最后一层之外的部分,然后输入训练图片,把网络的输出重新送入一个多类的SVM再训练,最后也能得到差不多的结果,取决于svm的参数。)
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
蜀ICP备2020033479号-4 Copyright © 2016 学习鸟. 页面生成时间:3.140秒