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. 一文搞懂指标采集利器 Telegraf

    作者| 姜闻名 来源|尔达 Erda 公众号 ​ 导读:为了让大家更好的了解 MSP 中 APM 系统的设计实现,我们决定编写一个<详聊微服务观测>系列文章,深入 APM 系统的产品.架构 ...

  2. day20 系统优化

    day20 系统优化 yum源的优化 yum源的优化: 自建yum仓库 使用一个较为稳定的仓库 # 安装华为的Base源 或者使用清华的源也可以 wget -O /etc/yum.repos.d/Ce ...

  3. Flume(四)【配置文件总结】

    目录 一.Agent 二.Source taildir arvo netstat exec spooldir 三.Sink hdfs kafka(待续) hbase(待续) arvo logger 本 ...

  4. ERROR 1690 (22003): BIGINT UNSIGNED value is out of range in..的错误 [转]

    问题: ERROR 1690 (22003): BIGINT UNSIGNED value is out of range in..的错误 解决方法: 把没被singed的变量临时变更signed去处 ...

  5. Android数据存取

    Android数据存取 一.SharedPreferencesc存取数据 SharedPreferences是使用键值对的方式来存储数据的,也就是在保存一条数据时,需要给这条数据提供一个对应的键,这样 ...

  6. ubantu打开摄像头失败

    摘要-针对ubantu20 sudo apt install v4l-utils v4l2-ctl --list-devices - cv2 install on ubantu20```针对ubant ...

  7. mysql触发器实例说明

    触发器是一类特殊的事务 ,可以监视某种数据操作(insert/update/delete),并触发相关操作(insert/update/delete). 看以下事件: 完成下单与减少库存的逻辑 Ins ...

  8. 编译安装redis之快速增加redis节点

    #: 下载安装包 [root@localhost ~]# wget http://download.redis.io/releases/redis-4.0.14.tar.gz #:解压 [root@l ...

  9. Gitlab安装操作说明书

    一.Gitlab安装操作步骤 登录官方网站https://about.gitlab.com/downloads/根据你所需要的系统版本,作者使用的是centos6, 检查您的服务器是否符合硬件要求.g ...

  10. String.split()与StringUtils.split()的区别

    import com.sun.deploy.util.StringUtils; String s =",1,,2,3,4,,"; String[] split1 = s.split ...