关于 CNN,我有几个问题让我感到困惑。
1)使用CNN提取的特征是尺度和旋转不变的?
2)我们用来与我们的数据进行卷积的内核已经在文献中定义了吗?这些内核是什么样的?每个应用程序都不同吗?
关于 CNN、内核和尺度/旋转不变性
1)使用CNN提取的特征是尺度和旋转不变的?
CNN 中的特征本身不是尺度或旋转不变的。有关更多详细信息,请参阅:深度学习。Ian Goodfellow 和 Yoshua Bengio 和 Aaron Courville。2016: http ://egrcc.github.io/docs/dl/deeplearningbook-convnets.pdf ;http://www.deeplearningbook.org/contents/convnets.html:
卷积自然不会与其他一些变换等变,例如图像缩放或旋转的变化。处理这些类型的转换需要其他机制。
引入这些不变量的是最大池化层:
2)我们用来与我们的数据进行卷积的内核已经在文献中定义了吗?这些内核是什么样的?每个应用程序都不同吗?
内核是在 ANN 的训练阶段学习的。
我认为有几件事让你感到困惑,所以首先要做的事情。
给定一个信号和一个核(也称为滤波器),那么与的卷积写成,并通过滑动点积计算,数学上由下式给出:
以上是针对一维信号的情况,但对于只是二维信号的图像也可以这样说。在这种情况下,等式变为:
从图片上看,这就是正在发生的事情:
无论如何,要记住的是,内核实际上是在训练深度神经网络 (DNN) 期间学习的。内核将成为您对输入进行卷积的内容。DNN 将学习内核,从而带出图像(或先前图像)的某些方面,这将有利于降低目标目标的损失。
这是要理解的第一个关键点:传统上人们设计了内核,但在深度学习中,我们让网络决定最好的内核应该是什么。然而,我们指定的一件事是内核维度。(这称为超参数,例如 5x5 或 3x3 等)。
许多作者,包括 Geoffrey Hinton(他提出了 Capsule net)试图解决这个问题,但是是定性的。我们试图定量地解决这个问题。通过在 CNN 中使所有卷积核对称(8 阶二面对称 [Dih4] 或 90 度增量旋转对称等),我们将为每个卷积隐藏层上的输入向量和合成向量提供一个旋转的平台同步具有相同的对称属性(即 Dih4 或 90 增量旋转对称等)。此外,通过在第一个展平层上为每个滤波器具有相同的对称属性(即,完全连接但权重共享相同的对称模式),每个节点上的结果值将在数量上相同并导致 CNN 输出向量相同也是。我称它为transformation-identical CNN(或TI-CNN-1)。还有其他方法也可以使用对称输入或 CNN 内部的操作来构造变换相同的 CNN (TI-CNN-2)。在 TI-CNN 的基础上,可以由多个 TI-CNN 构建一个齿轮旋转相同的 CNN(GRI-CNN),输入向量旋转一个小步距角。此外,还可以通过将多个 GRI-CNN 与各种变换后的输入向量相结合来构建组合的数量相同的 CNN。
“通过对称元素算子的转换相同和不变的卷积神经网络” https://arxiv.org/abs/1806.03636(2018 年 6 月)
“通过组合对称操作或输入向量的转换相同和不变的卷积神经网络” https://arxiv.org/abs/1807.11156(2018 年 7 月)
“齿轮旋转相同和不变的卷积神经网络系统” https://arxiv.org/abs/1808.01280(2018 年 8 月)
我认为最大池化可以只为小于步幅大小的平移和旋转保留平移和旋转不变性。如果更大,则没有不变性