Orthogonal Convolutional Neural Networks
@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=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-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\)等价于
\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\)等价于
\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)等价于
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\).
\]
其推导过程如下(这个实在不好写清楚):



\(\mathcal{K}^T\mathcal{K}\)在\(S=1\)特殊情况下的特殊情况下, (10)等价于
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坐标轴进行变换.

同样的
\]
与
\]
是等价的.
另一方面, 最开始提到的kernel orthogonal regularization是orthogonal convolution的必要条件(但不充分)\(KK^T=I\), \(K^TK=I\)分别等价于:
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的更多相关文章
- 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- ...
- Notes on Convolutional Neural Networks
这是Jake Bouvrie在2006年写的关于CNN的训练原理,虽然文献老了点,不过对理解经典CNN的训练过程还是很有帮助的.该作者是剑桥的研究认知科学的.翻译如有不对之处,还望告知,我好及时改正, ...
- 《ImageNet Classification with Deep Convolutional Neural Networks》 剖析
<ImageNet Classification with Deep Convolutional Neural Networks> 剖析 CNN 领域的经典之作, 作者训练了一个面向数量为 ...
- 卷积神经网络CNN(Convolutional Neural Networks)没有原理只有实现
零.说明: 本文的所有代码均可在 DML 找到,欢迎点星星. 注.CNN的这份代码非常慢,基本上没有实际使用的可能,所以我只是发出来,代表我还是实践过而已 一.引入: CNN这个模型实在是有些年份了, ...
- A Beginner's Guide To Understanding Convolutional Neural Networks(转)
A Beginner's Guide To Understanding Convolutional Neural Networks Introduction Convolutional neural ...
- 阅读笔记 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 ...
- 读convolutional Neural Networks Applied to House Numbers Digit Classification 的收获。
本文以下内容来自读论文以后认为有价值的地方,论文来自:convolutional Neural Networks Applied to House Numbers Digit Classificati ...
- (转)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 ...
- 论文笔记之:Spatially Supervised Recurrent Convolutional Neural Networks for Visual Object Tracking
Spatially Supervised Recurrent Convolutional Neural Networks for Visual Object Tracking arXiv Paper ...
随机推荐
- account, accomplish, accumulate
account account从词源和count(数数)有关,和computer也有点关系.calculate则和'stone used in counting'有关.先看两个汉语的例子:1. 回头再 ...
- Oracle—网络配置文件
Oracle网络配置文件详解 三个配置文件 listener.ora.sqlnet.ora.tnsnames.ora ,都是放在$ORACLE_HOME/network/admin目录下. 1 ...
- 一条查询SQL查询语句的执行原理
先熟悉一下浅而易懂SQL执行的流程图SQL查询过程七步曲 1.查询SQL发送请求 客户端将查询sql按照mysql通信协议传输到服务端.服务端接受到请求后,服务端单起一个线程执行sql 2.判断是否为 ...
- 利用extern共享全局变量
方法: 在xxx.h中利用extern关键字声明全局变量 extern int a; 在xxx.cpp中#include<xxx.h> 再定义 int a; 赋不赋初值无所谓,之后该全局变 ...
- mysql 间隙锁专题
本文研究记录mysql间隙锁,涉及以下情况 唯一索引 非唯一索引 范围更新 等值更新 mysql8 mysql7 RR RC 数据准备 mysql> select * from vodb.tes ...
- zabbix之被动模式之编译安装proxy
#:准备源码包,编译安装 root@ubuntu:/usr/local/src# ls zabbix-4.0.12.tar.gz root@ubuntu:/usr/local/src# tar xf ...
- Javaj基础知识runtime error
遇到的java 运行时错误: NullPointerException空指针 ,简单地说就是调用了未经初始化的对象或者是不存在的对象,这个错误经常出现在创建图片,调用数组这些操作中,比如图片未经初始 ...
- Tomcat(1):安装Tomcat
一,安装Tomcat服务器 1,下载tomcat网址: http://tomcat.apache.org/ 2,找到Download 3,下载 4:下载完成后,解压到任意目录 5:解压完成后得到目录 ...
- sql优化的8种方式 (下)
五.条件列表值如果连续使用between替代in 六.无重复记录的结果集使用union all合并 MySQL数据库中使用union或union all运算符将一个或多个列数相同的查询结 ...
- win10更新后任务栏卡死 的原因和解决办法
@ 目录 现象: 原因: 第一步:断网并关闭资讯和兴趣 第二步:卸载更新 第三步:关闭win10自动更新 第四步:永久关闭资讯和兴趣 现象: win10 更新后,开机任务栏卡死,点开始反应,设置页面无 ...