神经网络的线性部分 和非线性部分是其构成中的两个核心元素,它们共同决定了模型的能力和行为。让我们分别看一下这两部分:
1. 线性部分
线性部分通常是指神经网络中的加权和操作。这部分可以用以下形式表示:
[
z = W \cdot x + b
]
- W 是权重矩阵,x 是输入向量,b 是偏置项。
- 这个表达式是线性的,因为它是关于输入 x 的线性组合。线性意味着输出是输入的简单加权和变化,没有复杂的弯曲或转折。
在这种线性关系中,如果输入发生小的变化,输出也会有相应的比例变化。这部分的特性是非常简单的,它没有能力去捕捉复杂的数据模式或特征。因此,单靠线性结构的神经网络是无法处理复杂任务的。
2. 非线性部分
非线性部分是通过激活函数引入的。常见的激活函数包括 ReLU(修正线性单元),Sigmoid 和 Tanh 等。以 ReLU 为例,它的定义是:
[
f(z) = \max(0, z)
]
- 这个函数是非线性 的,因为它改变了输入与输出之间的关系:当 z 大于 0 时,输出等于输入;当 z 小于等于 0 时,输出等于 0。
- 非线性函数使得神经网络能够对输入的变化进行复杂的反应,从而捕捉数据中的非线性模式和复杂关系。
线性与非线性的结合
在神经网络中,线性部分(加权求和)和非线性部分(激活函数)是交替结合的。这种结合使得神经网络可以表达非常复杂的函数关系。单纯的线性层虽然简单,但无法解决复杂问题,而非线性层则赋予了模型更强的表达能力。
为什么线性部分会导致对抗样本脆弱性?
论文指出,神经网络对对抗样本的脆弱性并不完全是由其非线性部分造成的,实际上,线性部分在高维空间中的行为已经足以导致这种脆弱性。在高维空间中,线性函数可以被轻微的扰动很容易地推向不同的分类边界,即便扰动是很小的。这解释了为什么生成对抗样本不需要高度复杂的非线性,只要存在线性操作,模型就有可能被攻击。
因此,尽管神经网络的非线性部分使它能够解决复杂任务,但在对抗攻击的情况下,线性部分却成了主要的薄弱点。