深度学习|表示学习|卷积神经网络|非线形如何帮助卷积操作|11
如是我闻: “With a non-linearity, we get a detector of a feature at any position in the image”,强调了非线性(non-linearity)在卷积神经网络中扮演的关键作用。
1. 什么是非线性?
非线性指的是在卷积操作后,应用一个非线性激活函数(如 Sigmoid、ReLU、Tanh 等)来对卷积的结果进行变换。
在这个例子中:
- 使用的是 Sigmoid 函数,定义为:
sigm ( x ) = 1 1 + e − x \text{sigm}(x) = \frac{1}{1 + e^{-x}} sigm(x)=1+e−x1
这个函数会将输出值变换到 ([0, 1]) 的范围内。 - 在公式中:
sigm ( 0.02 ⋅ x i ∗ k i j − 4 ) \text{sigm}(0.02 \cdot x_i * k_{ij} - 4) sigm(0.02⋅xi∗kij−4)
步骤:- x i ∗ k i j x_i * k_{ij} xi∗kij 是卷积操作的结果;
- 结果先乘以 0.02 0.02 0.02(一个缩放系数);
- 再减去一个偏置 4 4 4(用于调节激活位置);
- 最后通过 Sigmoid 激活函数变换得到输出值。
为什么这叫非线性?
因为激活函数(比如 Sigmoid)是非线性的,它会对输入值做非线性变换。相比于单纯的线性操作(如卷积和加权求和),非线性使得模型具有更强的表达能力。
2. 为什么卷积操作需要非线性?
卷积操作本质上是一个线性操作,只对图像中的局部区域做加权求和。如果只使用卷积而不引入非线性,那么整个网络的计算过程就会变成一个单一的线性变换,再多层的叠加也不能捕捉复杂的特征。
举个简单的例子:
- 假设有两个卷积层
C
1
C_1
C1 和
C
2
C_2
C2,如果没有非线性函数:
C 2 ( C 1 ( x ) ) = W 2 ⋅ ( W 1 ⋅ x ) = ( W 2 ⋅ W 1 ) ⋅ x C_2(C_1(x)) = W_2 \cdot (W_1 \cdot x) = (W_2 \cdot W_1) \cdot x C2(C1(x))=W2⋅(W1⋅x)=(W2⋅W1)⋅x
结果等价于一个简单的线性变换。再多层也不会改变这个性质。 - 如果引入非线性:
C 2 ( sigmoid ( C 1 ( x ) ) ) C_2(\text{sigmoid}(C_1(x))) C2(sigmoid(C1(x)))
每层的输出都会经过非线性变换,能够捕捉更复杂的特征,网络的表示能力大大增强。
3. 非线性的作用:特征检测器
通过添加非线性,卷积操作可以成为某种特征的检测器:
- 卷积核 k i j k_{ij} kij 用于检测图像中的某种局部特征(比如边缘、角点)。
- Sigmoid 激活函数会将卷积结果转换为 [ 0 , 1 ] [0,1] [0,1] 的概率值,表明某个特征是否存在。
示例解释
- 输入图像 x i x_i xi:包含高亮的像素(255),它们构成一个模式。
- 卷积后的值 x i ∗ k i j x_i * k_{ij} xi∗kij:是线性叠加的结果,但可能有正有负,值域很大。
- 加非线性后的值:
- 如果某个位置的卷积结果高(表明卷积核检测到特征),Sigmoid 会将输出激活为接近 1。
- 如果卷积结果低(未检测到特征),Sigmoid 会将输出压缩到接近 0。
在这个例子中:
- 特定位置(比如亮点区域)被卷积核检测后,输出值(post-activation)在 0.75 附近。
- 未检测到特征的区域输出接近 0.02,表明没有显著特征。
总结:引入非线性后,卷积操作可以将高维特征(边缘、模式等)转换为更有意义的激活值,这使得模型具备了“特征检测器”的能力。
4. 为什么非线性对图像特征检测非常关键?
(1) 捕捉复杂模式
图像中的复杂模式可能是非线性的,比如物体的边缘、纹理、形状等。单纯的线性操作无法充分表达这些特征,而非线性函数能将线性变换的结果变得更灵活。
(2) 去除噪声、强化重要特征
激活函数(如 Sigmoid)可以对高卷积响应的区域进行强化(值接近 1),对低响应区域进行压缩(值接近 0)。这会让检测到的特征更加显著,同时弱化无关区域。
(3) 增加模型的深度和非线性能力
只有引入非线性,叠加多层卷积才能捕捉更复杂的特征,构成深度神经网络。
5. 总的来说
- 增强特征检测能力:在卷积操作后,通过 Sigmoid 激活函数,可以更好地将高卷积响应(检测到特征)与低响应(未检测到特征)区分开。
- 模拟概率输出:Sigmoid 的值域是 ([0, 1]),很适合解释为某特征存在的概率。
- 提升网络表达能力:引入非线性后,网络能够处理更复杂的特征组合。
以上