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 \in \mathbb{R}^{N \times C \times H \times W}\): 输入

\(K \in \mathbb{R}^{M \times C \times k \times k}\): 卷积核

\(Y \in \mathbb{R}^{N \times M \times H' \times W'}\): 输出

\[Y= Conv(K,X)
\]

\(Y=Conv(K,X)\)的俩种表示



\(Y=K\tilde{X}\)

此时\(K\in \mathbb{R}^{M \times Ck^2}\), 每一行相当于一个卷积核, \(\tilde{X} \in \mathbb{R}^{Ck^2 \times H'W'}\), \(Y \in \mathbb{R}^{M \times H'W'}\).

\(Y=\mathcal{K}X\)

此时\(X \in \mathbb{R}^{CHW}\)相当于将一张图片拉成条, \(\mathcal{K} \in \mathbb{R}^{MHW' \times CHW}\), 同样每一次行列作内积相当于一次卷积操作, \(Y \in \mathbb{R}^{MH'W'}\).

kernel orthogonal regularization

相当于要求\(KK^T=I\)(行正交) 或者\(K^TK=I\)(列正交), 正则项为

\[L_{korth-row}= \|KK^T-I\|_F,\\
L_{korth-col}= \|K^TK-I\|_F.
\]

作者在最新的论文版本中说明了, 这二者是等价的.

orthogonal convolution

作者期望的便是\(\mathcal{K}\mathcal{K}^T=I\)或者\(\mathcal{K}^T\mathcal{K}=I\).

用\(\mathcal{K}(ihw,\cdot)\)表示第\((i-1) H'W'+(h-1)W'+w\)行, 对应的\(\mathcal{K}(\cdot, ihw)\)表示\((i-1) HW+(h-1)W+w\)列.

则\(\mathcal{K}\mathcal{K}^T=I\)等价于

\[\tag{5}
\langle \mathcal{K}(ih_1w_1, \cdot), \mathcal{K}(jh_2w_2,\cdot)\rangle =
\left \{
\begin{array}{ll}
1, & (i,h_1,w_1)=(j,h_2,w_2) \\
0, & else.
\end{array} \right.
\]

\(\mathcal{K}^T\mathcal{K}=I\)等价于

\[\tag{10}
\langle \mathcal{K}(\cdot, ih_1w_1), \mathcal{K}(\cdot, jh_2w_2)\rangle =
\left \{
\begin{array}{ll}
1, & (i,h_1,w_1)=(j,h_2,w_2) \\
0, & else.
\end{array} \right.
\]

实际上这么作是由很多冗余的, 可以进一步化为更简单的形式.

(5)等价于

\[\tag{7}
Conv(K, K,padding=P, stride=S)=I_{r0},
\]

其中\(I_{r0}\in \mathbb{R}^{M\times M \times (2P/S+1) \times (2P/S+1)}\)仅在\([i,i,\lfloor \frac{k-1}{S} \rfloor+1,\lfloor \frac{k-1}{S} \rfloor+1], i=1,\ldots, M\)处为\(1\)其余元素均为\(0\).

\[P= \lfloor \frac{k-1}{S} \rfloor \cdot S.
\]

其推导过程如下(这个实在不好写清楚):

\(\mathcal{K}^T\mathcal{K}\)在\(S=1\)特殊情况下的特殊情况下, (10)等价于

\[\tag{11}
Conv (K^T,K^T, padding=k-1, stride=1)=I_{c0},
\]

其中\(I_{c0} \in \mathbb{R}^{C \times C \times (2k-1) \times (2k-1)}\), 同样仅在\((i,i,k,k)\)处为1, 其余非零.\(K^T \in \mathbb{R}^{C \times M \times k \times k}\)是\(K\)的第1, 2坐标轴进行变换.



同样的

\[\min_K \|\mathcal{K}\mathcal{K}^T-I\|_F
\]

\[\min_K \|\mathcal{K}^T\mathcal{K}-I\|_F
\]

是等价的.

另一方面, 最开始提到的kernel orthogonal regularization是orthogonal convolution的必要条件(但不充分)\(KK^T=I\), \(K^TK=I\)分别等价于:

\[Conv(K,K,padding=0)=I_{r0} \\
Conv(K^T, K^T, padding=0)=I_{c_0},
\]

其中\(I_{r0} \in \mathbb{R}^{M \times M \times 1 \times 1}\), \(I_{c0} \in \mathbb{R}^{C \times C \times 1 \times 1}\).

Orthogonal Convolutional Neural Networks的更多相关文章

  1. tensorfolw配置过程中遇到的一些问题及其解决过程的记录(配置SqueezeDet: Unified, Small, Low Power Fully Convolutional Neural Networks for Real-Time Object Detection for Autonomous Driving)

    今天看到一篇关于检测的论文<SqueezeDet: Unified, Small, Low Power Fully Convolutional Neural Networks for Real- ...

  2. Notes on Convolutional Neural Networks

    这是Jake Bouvrie在2006年写的关于CNN的训练原理,虽然文献老了点,不过对理解经典CNN的训练过程还是很有帮助的.该作者是剑桥的研究认知科学的.翻译如有不对之处,还望告知,我好及时改正, ...

  3. 《ImageNet Classification with Deep Convolutional Neural Networks》 剖析

    <ImageNet Classification with Deep Convolutional Neural Networks> 剖析 CNN 领域的经典之作, 作者训练了一个面向数量为 ...

  4. 卷积神经网络CNN(Convolutional Neural Networks)没有原理只有实现

    零.说明: 本文的所有代码均可在 DML 找到,欢迎点星星. 注.CNN的这份代码非常慢,基本上没有实际使用的可能,所以我只是发出来,代表我还是实践过而已 一.引入: CNN这个模型实在是有些年份了, ...

  5. A Beginner's Guide To Understanding Convolutional Neural Networks(转)

    A Beginner's Guide To Understanding Convolutional Neural Networks Introduction Convolutional neural ...

  6. 阅读笔记 The Impact of Imbalanced Training Data for Convolutional Neural Networks [DegreeProject2015] 数据分析型

    The Impact of Imbalanced Training Data for Convolutional Neural Networks Paulina Hensman and David M ...

  7. 读convolutional Neural Networks Applied to House Numbers Digit Classification 的收获。

    本文以下内容来自读论文以后认为有价值的地方,论文来自:convolutional Neural Networks Applied to House Numbers Digit Classificati ...

  8. (转)A Beginner's Guide To Understanding Convolutional Neural Networks Part 2

    Adit Deshpande CS Undergrad at UCLA ('19) Blog About A Beginner's Guide To Understanding Convolution ...

  9. 论文笔记之:Spatially Supervised Recurrent Convolutional Neural Networks for Visual Object Tracking

    Spatially Supervised Recurrent Convolutional Neural Networks for Visual Object Tracking  arXiv Paper ...

随机推荐

  1. javascript的原型与原型链

    首先套用一句经典名言,JavaScript中万物皆对象. 但是对象又分为函数对象和普通对象. function f1(){}; var f2=function(){}; var f3=new Func ...

  2. Shell【常用知识总结】

    一.常用知识总结 1.特殊变量($0,@,#,*,?) $0:当前脚本的文件名. $n:n是一个数字,表示第几个参数. $#:传递给脚本或函数的参数个数. $*:传递给脚本或函数的所有参数.当被双引号 ...

  3. ListView的item不能点击(焦点冲突问题)

    一般这种问题就是item里面有checkbox或button之类抢占焦点的控件,解决方案有2种: 第一种:就是在checkbox或button添加android:focusable="fal ...

  4. GO 定时器NewTimer、NewTicker使用

    package main import ( "fmt" "sync" "time" ) /** *ticker只要定义完成,从此刻开始计时, ...

  5. Spring.DM web开发环境搭建

    作为一个初学者来说,搭建好Spring.DM 的web开发环境还是有些麻烦的.我就遇到了N多麻烦,走了很多弯路.本文介绍了2种比较简单的搭建Spring.DM OSGi web开发环境的搭建.   第 ...

  6. Linux安装软件出错

    1.Delta RPMs disabled because /usr/bin/applydeltarpm not installed. yum provides '*/applydeltarpm' # ...

  7. 【Git】【Gitee】通过git远程删除仓库文件

    安装Git Git安装配置-菜鸟教程 没有安装下载的,请读者自行安装下载. 启动与初步配置 配置用户名与邮箱 git config --global user.name "用户名" ...

  8. 云原生时代之Kubernetes容器编排初步探索及部署、使用实战-v1.22

    概述 **本人博客网站 **IT小神 www.itxiaoshen.com Kubernetes官网地址 https://kubernetes.io Kubernetes GitHub源码地址 htt ...

  9. Wireshark(三):应用Wireshark IO图形工具分析数据流

    原文出处: EMC中文支持论坛 基本IO Graphs: IO graphs是一个非常好用的工具.基本的Wireshark IO graph会显示抓包文件中的整体流量情况,通常是以每秒为单位(报文数或 ...

  10. MySQL慢日志优化

    慢日志的性能问题 造成 I/O 和 CPU 资源消耗:慢日志通常会扫描大量非目的的数据,自然就会造成 I/O 和 CPU 的资源消耗,影响到其他业务的正常使用,有可能因为单个慢 SQL 就能拖慢整个数 ...