Wang J, Chen Y, Chakraborty R, et al. Orthogonal Convolutional Neural Networks.[J]. arXiv: Computer Vision and Pattern Recognition, 2019.
@article{wang2019orthogonal,
title={Orthogonal Convolutional Neural Networks.},
author={Wang, Jiayun and Chen, Yubei and Chakraborty, Rudrasis and Yu, Stella X},
journal={arXiv: Computer Vision and Pattern Recognition},
year={2019}}
概
本文提出了一种正交化CNN的方法.
主要内容
符号说明
X∈RN×C×H×W: 输入
K∈RM×C×k×k: 卷积核
Y∈RN×M×H′×W′: 输出
Y=Conv(K,X)
Y=Conv(K,X)的俩种表示
Y=KX~
此时K∈RM×Ck2, 每一行相当于一个卷积核, X~∈RCk2×H′W′, Y∈RM×H′W′.
Y=KX
此时X∈RCHW相当于将一张图片拉成条, K∈RMHW′×CHW, 同样每一次行列作内积相当于一次卷积操作, Y∈RMH′W′.
kernel orthogonal regularization
相当于要求KKT=I(行正交) 或者KTK=I(列正交), 正则项为
Lkorth−row=∥KKT−I∥F,Lkorth−col=∥KTK−I∥F.
作者在最新的论文版本中说明了, 这二者是等价的.
orthogonal convolution
作者期望的便是KKT=I或者KTK=I.
用K(ihw,⋅)表示第(i−1)H′W′+(h−1)W′+w行, 对应的K(⋅,ihw)表示(i−1)HW+(h−1)W+w列.
则KKT=I等价于
⟨K(ih1w1,⋅),K(jh2w2,⋅)⟩={1,0,(i,h1,w1)=(j,h2,w2)else.(5)
KTK=I等价于
⟨K(⋅,ih1w1),K(⋅,jh2w2)⟩={1,0,(i,h1,w1)=(j,h2,w2)else.(10)
实际上这么作是由很多冗余的, 可以进一步化为更简单的形式.
(5)等价于
Conv(K,K,padding=P,stride=S)=Ir0,(7)
其中Ir0∈RM×M×(2P/S+1)×(2P/S+1)仅在[i,i,⌊Sk−1⌋+1,⌊Sk−1⌋+1],i=1,…,M处为1其余元素均为0.
P=⌊Sk−1⌋⋅S.
其推导过程如下(这个实在不好写清楚):
KTK在S=1特殊情况下的特殊情况下, (10)等价于
Conv(KT,KT,padding=k−1,stride=1)=Ic0,(11)
其中Ic0∈RC×C×(2k−1)×(2k−1), 同样仅在(i,i,k,k)处为1, 其余非零.KT∈RC×M×k×k是K的第1, 2坐标轴进行变换.
同样的
Kmin∥KKT−I∥F
与
Kmin∥KTK−I∥F
是等价的.
另一方面, 最开始提到的kernel orthogonal regularization是orthogonal convolution的必要条件(但不充分)KKT=I, KTK=I分别等价于:
Conv(K,K,padding=0)=Ir0Conv(KT,KT,padding=0)=Ic0,
其中Ir0∈RM×M×1×1, Ic0∈RC×C×1×1.