深度学习概念与感知机学习规则的局限性及应对策略
立即解锁
发布时间: 2025-09-09 00:26:28 阅读量: 11 订阅数: 15 AIGC 


深度学习实战:TensorFlow数学解析
### 深度学习概念与感知机学习规则的局限性及应对策略
在深度学习领域,感知机学习规则是一个基础且重要的概念,但它也存在一定的局限性。下面我们将深入探讨感知机学习规则的相关内容,以及如何应对其局限性。
#### 1. 超平面与权重向量可行集
在输入向量空间中,超平面与输入向量有着紧密的联系。例如,超平面 2 由输入向量 x(2) 确定,且 x(2) 垂直于超平面 2。对于第二个数据点,当预测条件 \( w^T x^{(2)} \leq 0 \) 满足时,预测才是正确的。所有与输入向量 x(2) 夹角在 -90 到 +90 度之外的权重向量 w 都能满足该条件,这些权重向量构成了第二个数据点的可行集,就像图 2 - 5 中超平面 2 下方的阴影区域所示。而同时满足两个数据点的权重向量集合,就是两个阴影区域的重叠部分。处于这个重叠区域的任何权重向量 w,都能通过在输入向量空间中定义的超平面将两个数据点线性分开。
#### 2. 感知机学习规则的局限性
感知机学习规则只能对输入空间中线性可分的类别进行分离。以最基本的异或(XOR)门逻辑为例,感知机学习规则就无法实现。异或逻辑的输入和输出标签如下:
| \(x_1\) | \(x_2\) | \(y\) |
| ---- | ---- | ---- |
| 1 | 0 | 1 |
| 0 | 1 | 1 |
| 1 | 1 | 0 |
| 0 | 0 | 0 |
我们初始化权重向量 \( w^T = [0, 0, 0] \),其中权重向量的第一个分量对应偏置项,所有输入向量的第一个分量也设为 1。下面是对每个数据点的预测和权重向量更新过程:
- 对于 \( x_1 = 1, x_2 = 0, y = 1 \):
- 预测 \( w^T x = [0, 0, 0] \begin{bmatrix} 1 \\ 1 \\ 0 \end{bmatrix} = 0 \),数据点被分类为 0,与实际类别 1 不匹配。
- 根据感知机规则,更新后的权重向量 \( w = w + x = \begin{bmatrix} 0 \\ 0 \\ 0 \end{bmatrix} + \begin{bmatrix} 1 \\ 1 \\ 0 \end{bmatrix} = \begin{bmatrix} 1 \\ 1 \\ 0 \end{bmatrix} \)。
- 对于 \( x_1 = 0, x_2 = 1, y = 1 \):
- 预测 \( w^T x = [1, 1, 0] \begin{bmatrix} 1 \\ 0 \\ 1 \end{bmatrix} = 1 \),数据点被正确分类为 1,权重向量保持不变,仍为 \( \begin{bmatrix} 1 \\ 1 \\ 0 \end{bmatrix} \)。
- 对于 \( x_1 = 1, x_2 = 1, y = 0 \):
- 预测 \( w^T x = [1, 1, 0] \begin{bmatrix} 1 \\ 1 \\ 1 \end{bmatrix} = 2 \),数据点被分类为 1,与实际类别 0 不匹配。
- 更新后的权重向量 \( w = w - x = \begin{bmatrix} 1 \\ 1 \\ 0 \end{bmatrix} - \begin{bmatrix} 1 \\ 1 \\ 1 \end{bmatrix} = \begin{bmatrix} 0 \\ 0 \\ -1 \end{bmatrix} \)。
- 对于 \( x_1 = 0, x_2 = 0, y = 0 \):
- 预测 \( w^T x = [0, 0, -1] \begin{bmatrix} 1 \\ 0 \\ 0 \end{bmatrix} = 0 \),数据点被正确分类为 0,权重向量 \( w \) 不更新。
经过第一轮数据点处理后,权重向量为 \( w^T = [0, 0, -1] \)。基于这个更新后的权重向量对数据点进行分类评估:
- 数据点 1:\( w^T x = [0, 0, -1] \begin{bmatrix} 1 \\ 1 \\ 0 \end{bmatrix} = 0 \),被错误分类为类别 0。
- 数据点 2:\( w^T x = [0, 0, -1] \begin{bmatrix} 1 \\ 0 \\ 1 \end{bmatrix} = -1 \),被错误分类为类别 0。
- 数据点 3:\( w^T x = [0, 0, -1] \begin{bmatrix} 1 \\ 1 \\ 1 \end{bmatrix} = -1 \),被正确分类为类别 0。
- 数据点 4:\( w^T x = [0, 0, -1] \begin{bmatrix} 1 \\ 0 \\ 0 \end{bmatrix} = 0 \),被正确分类为类别 0。
经过第一轮迭代,感知机算法只能正确分类负类。如果再次应用感知机学习规则处理数据点,第二轮权重向量的更新如下:
- 数据点 1:\( w^T x = [0, 0, -1] \begin{bmatrix} 1 \\ 1 \\ 0 \end{bmatrix} = 0 \),被错误分类为类别 0。更新后的权重 \( w = w + x = \begin{bmatrix} 0 \\ 0 \\ -1 \end{bmatrix} + \begin{bmatrix} 1 \\ 1 \\ 0 \end{bmatrix} = \begin{bmatrix} 1 \\ 1 \\ -1 \end{bmatrix} \)。
- 数据点 2:\( w^T x = [1, 1, -1] \begin{bmatrix} 1 \\ 0 \\ 1 \end{bmatrix} = 0 \),被错误分类为类别 0。更新后的权重 \( w = w + x = \begin{bmatrix} 1 \\ 1 \\ -1 \end{bmatrix} + \begin{bmatrix} 1 \\ 0 \\ 1 \end{bmatrix} = \begin{bmatrix} 2 \\ 1 \\ 0 \end{bmatrix} \)。
- 数据点 3:\( w^T x = [2, 1, 0] \begin{bmatrix} 1 \\ 1 \\ 1 \end{bmatrix} = 3 \),被错误分类为类别 1。更新后的权重 \( w = w - x = \begin{bmatrix} 2 \\ 1 \\ 0 \end{bmatrix} - \begin{bmatrix} 1 \\ 1 \\ 1 \end{bmatrix} = \begin{bmatrix} 1 \\ 0 \\ -1 \end{bmatrix} \)。
- 数据点 4:\( w^T x = [1, 0, -1] \begin{bmatrix} 1 \\ 0 \\ 0 \end{bmatrix} = 1 \),被错误分类为类别 1。更新后的权重 \( w = w - x = \begin{bmatrix} 1 \\ 0 \\ -1 \end{bmatrix} - \begin{bmatrix} 1 \\ 0 \\ 0 \end{bmatrix} = \begin{bmatrix} 0 \\ 0 \\ -1 \end{bmatrix} \)。
第二轮处理后的权重向量与第一轮相同,都是 \( [0, 0, -1]^T \)。由此可见,无论对数据点进行多少次处理,最终都会得到这个权重向量,而这个权重向量只能正确分类负类。所以,感知机算法无法对异或逻辑进行建模。
#### 3. 非线性的需求及多层感知机的作用
感知机算法只能学习线性决策边界进行分类,无法解决决策边界需要非线性的问题。以异或问题为例,需要两个超平面才能将两个类别分开,而感知机算法学习到的一个超平面无法满足分类要求。在图 2 - 6 中,两个超平面之间的数据点属于正类,另外两个数据点属于负类。需要两个超平面来分离两个类别,这相当于使用非线性分类器。
多层感知机(MLP)可以通过在隐藏层引入非线性来实现类别之间的非线性分离。当感知机根据接收到的总输入输出 0 或 1 时,输出是其输入的非线性函数。但多层感知机权重的学习无法通过感知机学习规则实现。在图 2 - 7 中,通过多层感知机网络实现了异或逻辑。如果隐藏层包含两个感知机,一个能执行或(OR)逻辑,另一个能执行与(AND)逻辑,那么整个网络就能实现异或逻辑。用于或和与逻辑的感知机可以使用感知机学习规则进行训练,但整个网络不能通过感知机学习规则进行训练。异或门的最终输入是其输入的非线性函数,从而产生非线性决策边界。
#### 4. 隐藏层感知机激活函数的重要性
如果隐藏层的激活函数是线性的,那么最终神经元的输出也将是线性的,无法学
0
0
复制全文
相关推荐










