加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动!
同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流。点击文末“阅读原文”立刻申请入群~
作者:prismformore
来源:https://zhuanlan.zhihu.com/p/34042888
原题目:When Symmetry Meets CNN--从群等变卷积网络(Group Equivariant CNN)到球面卷积网络(Spherical CNNs)
本文试图介绍论文Group Equivariant Convolutional Networks的基本工作:建立对称性在卷积网络里的理论框架,并对后续的一些跟进工作如Spherical CNNs(ICLR 2018 Best Paper)进行简介。主要内容涉及T.S. Cohen的这篇文章:Group Equivariant Convolutional Networks(https://tacocohen.files.wordpress.com/2016/06/gcnn.pdf)
最早关注Cohen的工作是源于The M Tank在2017年推出的2016年度计算机视觉回顾报告。这份报告在盘点CNN等变性质研究的进展时,提到了Taco Cohen& Max Welling一脉相承的两项工作: Group Equivariant Convolutional Networks 以及Steerable CNNS 。现在看来,“可控卷积神经网络”未免有标题党的嫌疑,但是当时确实让一心想探究CNN理论和可控性的我感到兴奋。找到论文一看,更是眼前一亮:作者把图像和卷积网络的对称性放到群论的框架里面来讨论,结果是从理论的角度指导了对卷积网络的改进,使之更适用于具有某些对称性的输入图像。巧合的是,群论正是我本科在物理学院学习开展拓扑光子科研期间所主要使用的数学工具,因此对这套体系倍感亲切。在光子晶体里面,我们寻找(构造)的是可以保护光子拓扑态的晶格结构,而在Cohen的工作里面,我们寻找(构造)的是具有可以处理图像对称性卷积神经层。有了这样的机缘巧合,难免不一次又一次放下手中的活去读这几篇文章。
在这篇文章中,作者以初学者的角度,从最基本的概念开始,解释对称性并通俗地引入群论的理论框架。所谓对称性,就是目标在经历一定变换以后保持不变的性质。而这里用到的对称性群(symmetry group),可理解为一系列满足某些限制条件的对称性变换的集合。下面是文中对对称性群的定义:
而在卷积网络里面涉及到的,最简单的例子就是二维整数平移操作所组成的群 。
接下来,我们简单回顾一下传统卷积网络的等变(Equivariance)性质。平移等变性质是CNN对目标的响应能够不受目标在图像中的位置影响的基础。《深度学习》花书里面是这样描述等变性质:
如果一个函数满足,输入改变而输出也以同样的方式改变的这一性质,我们就说它是等变的。
简单的例子,就是当目标出现在输入图片中的不同位置,输出的feature map应该是只是进行了平移变换。
在深度学习当中,我们更希望卷积网络具有等变性,而不是不变性(Invariance):
接下来作者引入一个结论:
为了证明传统卷积网络里面,平移与卷积操作対易,首先明确定义传统卷积操作和互相关操作:
在这里,filter对输入层的滑动扫描被看做对其平移操作。需要注意的是在传统的卷积网络里面,前向过程事实上用的是互相关操作却被泛泛称为“卷积操作”。
然后文章中很容易证明了互相关操作()和卷积()操作都与平移操作対易(commute):
由这两个操作対易,从而得出结论:卷积是平移操作的等变映射。
另外一方面,作者发现旋转操作与卷积操作是不対易的,“correlation is not an equivariant map for the rotation group”,但是feature map的堆叠却可能是等变的。也正是因为旋转操作不是卷积的等变映射,往传统的CNN里面输入旋转了的图像,图像识别的效果则会大打折扣。为了解决这个问题,最传统直接的方法是数据增强,直接把图像旋转再输入网络进行训练,但是这种方法显然不是最优的。为了改进网络本身来解决这个问题,考虑一个简单的具有四重旋转对称轴的对称性群( https://en.wikipedia.org/wiki/Wallpaper_group#Group_p4_(442) ). 对于这个群,有四种对称性操作:平移,旋转90°,旋转180°,旋转270°。我们要设计一个新的CNN结构,使得当输入图像有以上变换时,网络仍然具有等变性质。
为了这个目的,仿照(2)(3),根据(1)的结论,作者提出的 G-correlation,其定义为:
对于第一层G-CNN(first-layer G-correlation),
对于接下来的G-CNN层(full G-correlation),
由此带来的改变是,作者很容易证明了G-CNN对于群G的变换操作是等变的(“G-correlation is an equivariant map for the translation group”):
(详细推导见文章)
也就是说,G-CNN推广了对feature map的变换操作,从传统的只有平移变换的群
到某个对称性群 G。而且推广以后,G-CNN卷积层对于该群的对称性变换操作具有等变性质。
虽然作者在文中没有提及,不难看到,G-CNN可以自然退化到传统的CNN。当对称性群G只有平移 t 一种对称性操作,也就是时,则G-CNN也就是传统的CNN。
总而言之,当输入图像是按照特定角度旋转的,G-CNN网络的输出结果应该是按照预定规律变化的。因此,G-CNN具备了更强的旋转输入图像特征提取的能力。
这一部分大多数都是直接对文章的意译,仅供参考。
至此,文章定义了G-CNN的核心概念,接下来的部分是从理论上处理非线性和pooling。对于非线性操作,结论是非线性操作与群变换対易,仍然保留等变性质。而G-CNN的池化处理则较为复杂,可分为两部,第一步是不带步长的池化操作,第二步是下采样操作。
G-CNN的max-pooling操作本身可以理解为一个作用在feature map :
就是,如果我们有一个满足p4群的feature map,以为池化域,则得到的池化后的feature map为定义在 上的函数。
举例来说,对于一个满足p4对称性(平移对称性和旋转90°的对称性)的feature map,我们以涉及到旋转操作的子群 作为池化域,对空间中每个点关于四度旋转(90°,180°,270°,360°)各做一次池化,还有一次关于平移变换的池化。陪集池化所得的结果是一个定义在 上的函数。
以上是理论分析,但是具体如何在程序中实现这种看似复杂的池化,文中没有细化。如果有了解细节的朋友,还望告知。
具体G-Correlation的实现方法是把平移变换和旋转变换拆开进行:
是平移操作, 是旋转操作。
可以看到,G-Correlation所增加的时间仅仅是对filter进行变换的时间,而由于filter一般不大,通过矩阵运算可以很快完成这个过程。因此所增加的时间可以近似忽略不计。
文章在Rotated MNIST, CIFAR-10和CIFAR-10+上进行实验。本文实验部分出奇的简单,没有对比太多方法。简而言之就是对于旋转程度较高的数据,网络识别的效果较好。具体实验方法和数据参见论文,这里直接给出文中的两个图。
因此,在实际应用上,G-CNN在一些涉及到图像对称性的问题上,可以作为一个标准卷积的增强工具从而增强效果,若有数据增强则效果更加。
在Group Equivariant Convolutional Networks 这篇文章里面,作者第一次奠定了一个群论作为基础的分析工具,但并没有真正应用太多群和群表达理论,正如ICML审稿人所说,“If one is familiar with group-theoretic notation, I do not think the content of this paper would be new to many practitioners. If one is not familiar, then the paper might be somewhat helpful in introducing the notation, but would not motivate why group theory should be used to describe concepts that are simple enough to not need the heavyweight mathematical framework. ”评价很尖锐。但是,作者接下来的一系列跟进工作却也证明了这一套理论框架的价值。
一方面,作者进一步在理论上拓展深化,引入了更复杂的数学,发表了Steerable CNNS。而另一方面,正如物理中大家尝试各种对称性寻找具有特殊性质的晶体结构一样,作者很自然地把目光投向了六角晶格(正如Xiao Hu一样)——带有六重旋转对称性的结构显然可以更好地让群卷积网络发挥威力(HEXACONV)。
尽管有着这些有趣的理论,由于应用受限,似乎之前并没有特别多学者在关注这个领域(无论是引用,github还是社交媒体的讨论上)。而在2018年的ICLR上,Cohen推出了一篇极具应用潜力的oral paper:球面CNN(Spherical CNN),把卷积网络推广到球面图像的特征提取上,并且巧妙地利用广义傅里叶变换实现快速群卷积(互相关)操作。
在实验部分,作者维持了一惯的简洁风格,但是引入了一个备受关注的应用场景:三维目标识别。因为很多工作对于三维目标识别的第一步都是先把3D模型投影到球面上:从球面上的每个点向球中心发出射线,找到射线与3D模型交汇的点并记录距离与角度。由此得到物体在球面上的投影。而对这样的球面图片,传统CNN对其直接展开的做法显然会带来几何关系的失真:
实验所采用的网络结构:
【S2conv-BN-ReLU】 + 2*【SO(3)conv-BN-ReLU】+ max-pooling + BN + linear
指标没有取得最佳排名,作者的解释是因为实验所用的这个网络没有针对SHREC17数据库设计特征和网络结构,在这种简单的网络和特征设计下能够取得这样的结果足以说明球面CNN的有效性。事实上,ICLR2018审稿人应该也是采信了这种观点,才把这篇文章放作oral。Program Chair的评价是:
solid, well-written paper, which demonstrates the usefulness of group invariance/equivariance beyond the standard Euclidean translation group in real-world scenarios.
Spherical CNNs | OpenReview
(https://openreview.net/forum?id=Hkbd5xZRb)
球面CNN的提出,为Cohen创立的CNN分析框架找到了一个重要的应用场景:对三维目标的理解。未来,一方面随着理论的进一步发展,另一方面随着新的应用场景出现,群等变卷积网络及其各种进化版本相信会找到越来越多的用武之地。比如,由于可以充分挖掘神经网络的空间变换等变性能,Group Equivariant CNN已经被用来处理网络压缩问题*。
写这篇文章的目的是希望有更多人,特别是具备群论、场论(还真有人用对称性破缺理论来分析神经网络https://arxiv.org/abs/1710.06096)等理论知识的年轻理论研究者关注深度学习领域,因为各种花哨的网络其实可以抽象成一个个有待研究的物理模型。也期待像顾正澄这样在理论物理领域赫赫有名的青年学者能在深度学习领域有所建树。另外,希望有朝一日,笔者也能在这方面有所察觉,作出一些有意义的工作。
最后,笔者水平有限,错漏之处在所难免,感谢您的批评指正。
可进一步参考Cohen以下工作:
HEXACONV
(https://openreview.net/pdf?id=r1vuQG-CW)
Steerable CNNS
(https://openreview.net/pdf?id=rJQKYt5ll)
Spherical CNNS
(https://openreview.net/pdf?id=Hkbd5xZRb)
*A Survey of Model Compression and Acceleration for Deep Neural Networks
(https://arxiv.org/pdf/1710.09282.pdf)
*延伸阅读