1. 前言
作者认为传统的CNN,通过卷积操作将输入的不同通道相加的方式存在一些先天的不足:
- 简单的相加忽视了通道之间的复杂的联系
- 可能会丢失一些重要的结构信息
-
相加的方式给予了卷积核非常大的自由度,容易导致过拟合
为此,作者提出了QCNN。如下图:
在一张彩色图片中,每一个像素点使用一个四元数来表示。四元数(Quaternion)是一个数据结构,在机器人运动学中,通常会使用一个四元数来表示一个旋转变换矩阵,它由三个角度值和一个长度值来表示一个三维空间中的变换。三个角度值定义了旋转的轴,另外一个值定义了旋转的距离。
因此,作者将一个图片,也就是三个通道的矩阵,表示为了一个四元数矩阵。为此,作者还设计了四元数卷积层,四元数全联接层。
作者认为,传统的CNN只支持缩放变换,然而四元数的操作还支持颜色空间的旋转,这提供了一种对颜色更加合理的表示。
2. Quaternion-based color image processing
数学上,我们可以如下表示一个四元数
那么一个N维的四元数表示为。
它支持加法,标量乘法,乘法,共轭,等如下图:
3. Proposed Quaternion CNNs
3.1 Quaternion convolution layers
使用如下方式来将一个彩色图片表示为四元数矩阵:
四元数矩阵:
其中
四元数卷积如何进行呢?
假设我们有一个四元数卷积核:
我们使用来表示卷积,论文中使用的是
四元数卷积核的元素可以表示为:
卷积表示为:
和传统的卷积相比,上面定义的卷积方式实际上是对原来的四元数进行了旋转和缩放操作,旋转轴为,旋转角度为,缩放因子为。
3.2 Quaternion fully-connected layers
3.3 Typical nonlinear layers
在三个复数域上分别做非线性变换。