写点什么

“不正经”的卷积神经网络

  • 2019-12-05
  • 本文字数:1749 字

    阅读完需:约 6 分钟

“不正经”的卷积神经网络

卷积中的不变性

图像任务,都需要识别出图像中的主体,用于分类,检测,分割,比如下面的验证码识别。



但是同样的目标,在不同的图片中,会存在位置的偏移,角度的旋转,尺度的大小。卷积神经网络要能够应对这些情况,比如分类任务,对于同样的目标在不同图像中的偏移,旋转,尺度,要输出同样的结果。



这便是我们常说的旋转,平移,尺度不变性了


cnn 有这个能力吗?有。


前面我们说过 pooling,它有一定的平移不变性,而且网络越深,越强大。但是,它的这个能力仍然是有限的,受卷积核大小和感受野大小的约束。


尺度不变性和旋转不变性呢?很遗憾,几乎没有,不然 Hinton 也不会搞 capsule。


我们通常做的随机裁剪,旋转,缩放等操作,就是利用了 cnn 强大的学习能力,制造出了各种版本的图片供其学习。为了模型的鲁棒性,需要生成大量的数据。


一句话,网络模型对于物体几何形变的适应能力几乎完全来自于数据本身所具有的多样性。

为什么?

前面我们说了问题,那为什么会这样呢?因为 cnn 就没有显式地学习这些信息,而卷积操作本身具有非常固定的几何结构,标准的卷积操作是一个非常规矩的采样,通常是正方形。


那,能不能不规矩呢?首先我们看什么是不规矩,下图来自于【1】。



a 图大家很熟悉,标准的 3*3 卷积核,而 b,c,d 虽然也是 9 个采样点,但是每个采样点相对于中心点的偏移与 a 很不一样。b 是一个通用的展示,即完全没有规律。c,d 是 b 的特例。


我们将这样的卷积,称为(deformable convolutional networks)可变形卷积,笔者更喜欢称之为“不正经卷积”。


这种“不正经卷积”的特点,1 是采样视野大于对应版本的标准卷积(带孔卷积不算),2 是它的感受野是不规则的形状。

有什么好处?


我们看上面的一张图,假如我们有一个分割任务,要分割出图中的尺度不同的动物。


我们先看左边的图,标准的卷积,感受野必然是一个方方正正的区域。顶图有一个中心像素,它的感受野是 3*3,到了中间的图,周围四个角点又可以进一步扩展感受野,直到底部的图。


所以对于顶部目标的中心像素,经历了两次 33 卷积,它的感受野是固定的 55,与动物本身的形状并不匹配。而同样的两个 3*3 的卷积,右边的“不正经卷积”,则由于灵活的感受野,所覆盖的区域更大,也更匹配了目标本身的形状。


这是一个非常通用的问题,标准卷积对目标的形状感受野不够灵活,卷积的效率自然也就下降。而可变形卷积则利用了不规则可变化的形状,改善了这两个问题。

怎么实现?

可变形卷积这么灵活,实现起来麻烦吗?答案是不麻烦,只需要增加一个偏移量即可,具体来说看下图。



与标准卷积核相比,一个可变形卷积核,用于卷积的像素相对于中心像素各自的 x,y 方向上的偏移没有了规律,如果我们学习到了这个规律(实际就是用卷积核来记录它),就完成这件事情了。



实际实现就是多了一个 offset 层,通过 offset 输出通道数,我们可以控制要学习的变形的种类。当然,这个通道数一定是 2N 的,因为要同时记录 x 和 y 方向。

总结

做一个简单的总结,首先我们说说好处。(1)增加了网络的空间变形适应性,这也是网络要解决的本质问题。(2)不增加额外的标注信息和训练代价,仍然是原来的数据就可以训练,而且同时训练卷积系数和偏移量。(3)对于复杂的任务提升效果明显,具体的实验结果指标,可以至论文中看,也可以自己训着看。


坏处主要是增加了参数量与计算量,不过这个计算量其实不大,可以通过分组进行控制。


值得注意的是,可变形卷积并非是第一个研究这个问题的,在 STN【2】中,已经通过 Spatial Transformer Layer 来实现了对旋转平移缩放等信息的学习。Active Convolution,Atrous convolution 等都曾试图解决类似问题。


参考文献


【1】Dai J, Qi H, Xiong Y, et al. Deformable convolutional networks[J]. CoRR, abs/1703.06211, 2017, 1(2): 3.


【2】Jaderberg M, Simonyan K, Zisserman A. Spatial transformer networks[C]//Advances in neural information processing systems. 2015: 2017-2025.


作者介绍


言有三,真名龙鹏,曾先后就职于奇虎 360AI 研究院、陌陌深度学习实验室,6 年多计算机视觉从业经验,拥有丰富的传统图像算法和深度学习图像项目经验,拥有技术公众号《有三 AI》,著有书籍《深度学习之图像识别:核心技术与案例实战》。


原文链接


https://mp.weixin.qq.com/s/aLvlLi97JTd_cCfCZfraIg


2019-12-05 19:082253
用户头像
刘燕 InfoQ高级技术编辑

发布了 1112 篇内容, 共 568.1 次阅读, 收获喜欢 1978 次。

关注

评论

发布
暂无评论
发现更多内容

MySQL查询重写插件

TimeFriends

8月月更

极简云上分析,释放数据价值|Kyligence 邀您参加2022秋季线上论坛

Kyligence

数据分析 数据价值 数据管理 智能多维数据库

在window下使用 VScode 搭建 ARM 开发环境

矜辰所致

开发工具 开发环境 arm 8月月更

Docker 镜像构建可以分享的快乐

霍格沃兹测试开发学社

Tapdata 获阿里云首批产品生态集成认证,携手阿里云共建新合作

tapdata

阿里云 Tapdata

Git实战(四)| Git分支管理实操,搞定在线合并和本地合并

霍格沃兹测试开发学社

编程小白也能快速掌握的ArkUI JS组件开发

HarmonyOS开发者

HarmonyOS

Jenkins 踩坑 | job 创建、参数化、定时构建及时区偏差问题解决

霍格沃兹测试开发学社

超大规模跨域集群统一监控实践

移动云大数据

Rancher 2.6 全新 Logging 快速入门(2)

Rancher

Kubernetes k8s rancher

BAT 大厂最流行的性能压测、监控、剖析技术体系解析

霍格沃兹测试开发学社

BAT大厂都在用的Docker。学会这三招,面试、工作轻松hold住

霍格沃兹测试开发学社

佛山复星禅诚医院黄汉森:云边协同,打造线上线下一体化智慧医疗

阿里云弹性计算

弹性计算 分布式云 云盒 异地双活

如何通过经纬度坐标获取附近的地址信息?

HarmonyOS SDK

定位

Selenium 中的 JUnit 注解

FunTester

直播预告丨阿里云佐井:关注预警6要素,帮助用户实现精准监控和告警

阿里云弹性计算

监控 预警

面试突击79:Bean 作用域是啥?它有几种类型?

王磊

Java 常见面试题

混迹职场10多年的数据开发老鸟,居然被一个职场新人上了一课

雨果

数据工程师

Spring Security系列教程17--注销登录的实现及原理分析

一一哥

spring security spring-boot 注销登录

SUSE 加速汽车行业智能化发展

Rancher

Kubernetes k8s rancher

技术分享 | 黑盒测试方法论—场景法

霍格沃兹测试开发学社

Tapdata 杨哲轩:如何在零售行业实施主数据治理?

tapdata

Tapdata

Git 实战(三) | Github 必会高频基础命令与 IDE 的 Git 集成

霍格沃兹测试开发学社

Git实战(五)| 让工作更高效,搞定Git的分支管理

霍格沃兹测试开发学社

什么?MySQL的等值查询竟然出错了??

转转技术团队

MySQL

云原生(三十一) | Kubernetes篇之平台基本预装资源

Lansonli

云原生 k8s 8月月更

LED显示屏行业未来是如果发展的?市场怎么样?

Dylan

LED显示屏 led显示屏厂家

记录一次数据库CPU被打满的排查过程

京东科技开发者

数据库 cpu cpu飙满 调优 慢SQL

开源,无禁止即可为

Databend

开源社区 大数据 开源 #开源 databend

30 分钟轻松搞定正则表达式基础

霍格沃兹测试开发学社

App自动化之dom结构和元素定位方式(包含滑动列表定位)

霍格沃兹测试开发学社

“不正经”的卷积神经网络_AI&大模型_言有三_InfoQ精选文章