zoukankan      html  css  js  c++  java
  • ICCV 2015 B-CNN细粒度分类

    哈哈,好久没写博客了。。。。最近懒癌发作~~主要是因为心情不太好啊,做什么事情都不太顺心,不过已经过去啦。最近一直忙着公司的项目,想用这个网络,就给大家带来了的这篇文章。可能比较老,来自ICCV 2015的一篇关于细粒度分类的文章,文章:B-CNN。由于文章比较简单,我就不介绍的那么详细啦~

    科普下:粗粒度与细粒度分类

    粗粒度:比如猫狗猪这种差别比较大的。

    细粒度:狗类别中,识别是什么品种的狗,这就是细粒度分类。

    B-CNN框架:

    从图中可以看出,其实就是两个卷积神经网络对图像进行特征抽取,然后用一个bilinear pooling 函数把CNN 抽取的两组特征进行结合,最后代入softmax层进行分类。

    在一般的深度学习模型中,都是由一个神经网络构成的,在这里,有两个神经网络 A

    和 B,输入图像首先被调整到448 × 448大小,然后用这两个网络分别提取该幅图像的特征,在图像的每一个位置,两个网络分别生成1 × 512大小的特征,在每一个位置 对两个网络提取的特征A(l)和B(l)做外积操作:

    得到这个位置的双线性特征,大小为512X512。

    接下来采用求和池化方式,将所有位置得到的双线性特征进行求和作为本幅

    图像的特征:

    它的大小也为 512 × 512,接下来对该双线性特征进行如下计算:

    得到它的带符号平方根,并进行正则化:

    以此作为该幅图片的特征,并用来分类。这个双线性特征比单个卷积网络提

    取的特征在分类中获得更好的效果,两个卷积神经网络的作用在这里分别相当于

    区域检测和特征提取。因此,它一方面避免了传统方法中大量的人工标记操作,

    同时也获得了较高的准确率。

    在训练过程中,两个网络可以同时被训练,并且整个训练过程是端到端的,

    已知 X的损失函数梯度为,A和 B 的损失函数梯度由链式法则求得:

    这里的网络 A和网络 B 可以是两个对称的网络,也可以是两个不对称的网

    络.文中分别用了VGG-16 和VGG-19两种网络。

    关于为什么用向量的外积,我想是吸收两组CNN 抽取的特征,然后进项特征融合,其实在这一步,我们可以做就很多东西。我现在发的有一篇文章,也有类似的思想。

     

    首先说说内外积的几何意义

    向量ab的内积是长度为 |a||b|cosθ的标量,是向量a在向量b方向上的分量

    而向量ab的外积是长度为 |a||b|sinθ、并垂直于向量ab的矢量

    这就说明向量ab的外积和向量ab是不在同一平面内,或者说,向量ab在平面上被我们看到了的话,外积我们是看不到的,他应该是一个旋转过程,

    所以说,外积在物理上(我感觉运动学会用到)可以说是,对运动产生作用的。

     

  • 相关阅读:
    jQuery-1.样式篇---属性与样式
    jQuery-1.样式篇---选择器
    jQuery-1.样式篇
    随机数
    UIButton
    UILabel
    webView
    气泡聊天
    下拉和上拉刷新
    LimitDemo
  • 原文地址:https://www.cnblogs.com/xiaohuahua108/p/9199392.html
Copyright © 2011-2022 走看看