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

2023-05-16

今天一直在思考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旋转之后特征的平均值,表示为:

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

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

下面贴出这个算法:

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

转载于:https://www.cnblogs.com/xiaohuahua108/p/7045209.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • MyBatis分页插件PageHelper自定义分页逻辑实现

    因为PageHelper对于MySQL的分页逻辑采用的是SQL后面追加limit子句的方式 xff0c 这样在小数据量情况下是没有问题的 但是对于大数据量的时候 xff0c 比如limit 100000 10 xff0c MySQL的运作机
  • 使用estimatedRowHeight的优缺点

    使用estimatedRowHeight的优缺点 1 优点 1 gt 可以降低tableView heightForRowAtIndexPath 方法的调用频率 2 gt 将 计算cell高度的操作 延迟执行了 xff08 相当于cell高
  • 用红蓝3D眼镜在PC上观看3D影片效果并不好

    如题 xff0c 最近试了一下买了副红蓝分色3D眼镜 结果戴上以后放3D蓝光盘只有在画面的静态部分才能正确融像 xff0c 画面上的物体一动起来马上两个像就不能正确融合 xff0c 而是红色部分和蓝色部分直接混在一起闪来闪去 网上找了一圈
  • python----面向对象

    一 面向过程和面向对象优缺点 面向过程 xff1a 优点 xff1a 极大的降低了写程序的复杂度 xff0c 只需要顺着要执行的步骤 xff0c 堆叠代码即可 缺点 xff1a 一套流水线或者流程就是用来解决一个问题 xff0c 代码牵一发
  • Sublime Text Build 3176 安装图文详细教程

    1 著作权声明 1 1 本图文详细教程为 推优创意 原创教程 xff0c 推优创意 拥有著作权 xff0c 未经本人许可 xff0c 谢绝任何形式的全部或部分转载 xff01 违者必究 xff01 1 2 所有文章在 微信公众号 64 推优
  • iOS开发——纯代码界面(UITableViewController)

    创建UITableViewController xff08 表视图控制器 xff09 创建一个类TableViewController继承UITableViewController 1 AppDelegate m中代码如下 xff08 记得
  • iOS-CoreData详解与使用

    上面已经说完了SQLite和FMDB以及两者的区别 xff0c 本篇将讲述iOS中另一个存储方式 xff0c CoreData的使用 通读下来大约10分钟 xff0c 后续还会根据项目中问题 xff0c 不断更新 一 预备知识 在了解Cor
  • Verilog中变量位宽注意

    Verilog中 xff0c 变量定义方式可以为 xff1a reg 位宽 1 0 数据名 xff1b reg 位宽 1 数据名 其他变量也类似 以reg变量cnt为例 xff0c 当cnt位宽为4时 xff0c 可定义为reg 3 0 c
  • 使用PaintCode便捷地实现动画效果

    ViewController m paintCodeTestOC Created by LongMa on 2019 7 25 import 34 ViewController h 34 64 interface ViewControlle
  • 定位地图

    1 在iOSApp开发中 xff0c 尤其是O2O类型的的App往往包含着定位或地图这两项功能 xff0c 所以说定位和地图是iOS开发中一种常用的第三方 xff08 iOS自带高德地图 xff09 2 定位 xff1a 首先我们先来说说定
  • EXCEL中,将十六进制转换为十进制

    一 背景 1 在EXCEL表格中 xff0c 将十六进制转换为十进制的常用方法是 xff1a 使用HEX2DEC函数 2 在EXCEL的一个单元格中 xff0c 如果输入形如 34 12E36 34 之类的可以被成功识别为 科学计数法 的文
  • 关于Linux CentOS 7 中文字体安装过程心得

    一 CentOS 7 中查看现有字库 1 查看系统正在使用的语言 echo LANG en US UTF 8 2 查看系统当下所有语言环境 locale LANG 61 en US UTF 8 LC CTYPE 61 34 en US UT
  • 通过 edu 邮箱登录 Office 365 获得 1 TB 的 OneDrive 空间的方法

    要求 xff1a 你是在读大学生或高校 科研院所的教职员 1 在你就读或就业的高校或科研机构的官方网站上注册 edu 邮箱 2 登录 https www office com xff0c 用该邮箱登录 3 登录后即可启用 Office 教育
  • sqlserver 插入 更新 删除 语句中的 output子句

    官方文档镇楼 xff1a https docs microsoft com zh cn previous versions sql sql server 2008 ms177564 v 61 sql 100 从sqlserver 2005开
  • codeblocks常用快捷键

    codeblocks常用快捷键 CodeBlocks常用操作快捷键 编辑部分 xff1a Ctrl 43 A xff1a 全选 Ctrl 43 C xff1a 复制 Ctrl 43 X 剪切 Ctrl 43 V xff1a 粘贴 Ctrl
  • 1605 迷宫

    难度 xff1a 普及 题目类型 xff1a 深搜 提交次数 xff1a 1 涉及知识 xff1a 深搜 题目背景 迷宫 问题描述 给定一个N M方格的迷宫 xff0c 迷宫里有T处障碍 xff0c 障碍处不可通过 给定起点坐标和 终点坐标
  • Python3列表(list)比较操作教程

    一 相等比较 1 1 同顺序列表比较 顺序相同直接用 61 61 进行比较即可 list1 61 34 one 34 34 two 34 34 three 34 list2 61 34 one 34 34 two 34 34 three 3
  • 知识点 channel的使用

    package demo channel import 34 fmt 34 34 time 34 func main 无缓存chan ch 61 make chan int go func fmt Println 34 执行 34 ch l
  • 第五周课程总结&试验报告(三)

    实验三 String类的应用 实验目的 掌握类String类的使用 xff1b 学会使用JDK帮助文档 xff1b 实验内容1 已知字符串 xff1a 34 this is a test of java 34 按要求执行以下操作 xff1a
  • 花了快一天,才搞出来的一个client-go的demo

    用来直接获取所有service的annotaion里有ambassador的东东 或者 xff0c watch集群事件 package main import 34 fmt 34 34 os 34 34 time 34 34 strings

随机推荐