OceaBase开发者大会落地上海!4月20日共同探索数据库前沿趋势!报名戳 了解详情
写点什么

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

  • 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


公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2019-12-05 19:081938
用户头像
刘燕 InfoQ高级技术编辑

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

关注

评论

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

比较简单的ChatGPT体验攻略!

没有用户名丶

ChatGPT会对开发领域有何影响?

FinFish

AI AIGC ChatGPT

开心档之Bootstrap4 自定义表单

雪奈椰子

bootstrap 开心档

会议总结 | 首次 Flink Batch 社区开发者会议

Apache Flink

大数据 flink 实时计算

C#/VB.NET 如何在 Word 文档中添加页眉和页脚

在下毛毛雨

C# .net word文档 页眉页脚

保持热爱,奔赴山海:Apache Calcite PMC 之路

字节跳动开源

flink 开源 技术 社区 Apache Calcite

用javascript分类刷leetcode22.字典树(图文视频讲解)

js2030code

JavaScript LeetCode

GitHub典藏版!腾讯T14级牛人亲码的分布式数据库实践,再次爆火

做梦都在改BUG

Java 数据库 分布式

ChatGPT搜索与推荐之间的匹配问题

图灵教育

搜索引擎 深度学习‘’ ChatGPT

复旦发布国内首个类ChatGPT模型MOSS,和《流浪地球》有关?

这我可不懂

Cadence Allegro如何通过Excel表格创建元器件?

华秋PCB

科普 硬件 元器件

Apache Flink 实时计算在美的多业务场景下的应用与实践

Apache Flink

大数据 flink 实时计算

ChatGPT搜索与推荐之间的匹配问题

图灵社区

搜索引擎 深度学习‘’ ChatGPT

react源码中的fiber架构

flyzz177

React

Teradata 离场,企业数据分析平台如何应对变革?

Kyligence

数据分析 指标中台

ChatGPT背后:从0到1,OpenAI的创立之路

OneFlow

人工智能 深度学习 openai ChatGPT

时代背景下的 ChatGPT,到底能帮助开发者做什么呢?

泰罗凹凸曼

JavaScript ChatGPT

大咖说·阿里云云效|效能治标不治本的三个陷阱的解析

大咖说

通过 Istio、eBPF 和 RSocket Broker 深入探索服务网格

Kian.Lee

istio cncf ebpf sidecar-free rsocket

直播预告 | 嵌入式BI如何将数据分析真正融入业务流程

葡萄城技术团队

前端leetcde算法面试套路之双指针

js2030code

JavaScript LeetCode

ChatGPT能做什么?(内附体验攻略)

FinFish

AI工程化 ChatGPT

RabbitMQ的高可用和高可靠

做梦都在改BUG

Java 高可用 RabbitMQ 消息中间件

横空出世!IDEA 版 API 接口神器来了,一键生成文档!

Liam

Java 后端 IDEA Java 分布式 API文档

数仓专家面对面 | 为什么我选择GaussDB(DWS)

华为云开发者联盟

数据库 后端 华为云 企业号 2 月 PK 榜 华为云开发者联盟

大咖齐聚!OpenHarmony技术峰会豪华嘉宾阵容揭晓

OpenHarmony开发者

OpenHarmony

前端leetcde算法面试套路之二叉树

js2030code

JavaScript LeetCode

流批一体架构在快手的实践和思考

Apache Flink

大数据 flink 实时计算

ThreadPoolExecutor源码细节探索

做梦都在改BUG

Java 多线程 线程池 ThreadPoolExecutor

有趣,在WSL2上运行VSCode

DisonTangor

vscode WSL2

SpringBoot与Loki的那些事

做梦都在改BUG

Java Spring Boot 框架

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