深度学习笔记(一)
一、多层感知机
1.线性不可分问题:无法进行线性分类。Minsky1969年提出XOR问题

解决方法:使用多层感知机
• 在输入和输出层间加一或多层隐单元,构成多层感知器(多层
前馈神经网络)。
• 加一层隐节点(单元)为三层网络,可解决异或(XOR)问题
由输入得到两个隐节点、一个输出层节点的输出:

2.三层感知器可识别任一凸多边形或无界的凸区域。更多层感知器网络,可识别更为复杂的图形。
多层感知器网络,有如下定理:
定理1若隐层节点(单元)可任意设置,用三层阈值节点的网络,可以实现任意的二值逻辑函数。
定理2若隐层节点(单元)可任意设置,用三层S型非线性特性节点的网络,可以一致逼近紧集上的连续函数或按 范数逼近紧集上的平方可积函数。
二、多层前馈网络
1.多层感知机是一种多层前馈网络,由多层神经网络构成,每层网络将输出传递给下一层网络。神经元间的权值连接仅出现在相邻层之间,不出现在其他位置。如果每一个神经元都连接到上一层的所有神经元(除输入层外),则成为全连接网络。

2.多层前馈网络的反向传播 (BP)学习算法,简称BP算法,是有导师的学习,它是梯度下降法在多层前馈网中的应用。
3.BP学习算法由正向传播和反向传播组成:
①正向传播是输入信号从输入层经隐层,传向输出层,若输出层得到了期望的输出,则学习算法结束;否则,转至反向传播。
②反向传播是将误差(样本输出与网络输出之差)按原联接通路反向计算,由梯度下降法调整各层节点的权值和阈值,使误差减小。
三、BP算法基本思想
1. 符号与模型结构定义
假设我们的神经网络包含:
-
输入层(Input Layer): 输入向量为
-
隐藏层(Hidden Layer): 神经元个数为
。
-
权重矩阵为
,偏置为
-
净输入(未激活输出)为
-
激活输出为
(
为激活函数,如 Sigmoid 或 ReLU)
-
-
输出层(Output Layer): 神经元个数为
。
-
权重矩阵为
,偏置为
-
净输入为
-
预测输出为
(
为输出层激活函数)
-
-
真实标签(Target):
损失函数(Loss Function)
对于单组样本,我们使用均方误差(MSE)作为损失函数:
2. 前向传播(Forward Propagation)
在前向传播中,信息从输入层流向输出层。对于特定的隐层神经元 和输出层神经元
:
-
隐层神经元
的净输入与输出:
-
输出层神经元 $k$ 的净输入与输出:
3. 反向传播(Backpropagation)推导
反向传播的目标是计算损失 对所有权重
和偏置
的偏导数(梯度)。
核心技巧:引入误差项(Error Term)
我们定义第
层第
个神经元的误差项为:
。它表示损失函数对该神经元净输入的变化率。
3.1 输出层权重
和偏置
的梯度
我们要计算 。根据链式法则,可以将其拆解为:
-
计算第一项(输出层误差项
):
因为
,所以
。
又因为
,所以
。
合成可得:
-
计算第二项:
因为
,所以对
求偏导得:
-
最终梯度:
同理,对偏置
求偏导:
3.2 隐藏层权重
和偏置
的梯度
我们要计算 。同样利用链式法则:
现在关键是求隐层的误差项 。因为隐层神经元
的输出通过多个通道影响了输出层的每一个神经元 $k$,所以需要使用多元链式法则对输出层所有神经元求和:
-
已知
-
因为
,所以
-
因为
空间,所以
代入上式,得到隐层误差项的递推公式:
有了 ,隐藏层的梯度就很容易写出了:
4. 总结与参数更新
拿到所有梯度后,我们就可以使用梯度下降法(设学习率为 )来更新网络中的所有权重和偏置:
| 层级 | 权重更新公式 | 偏置更新公式 |
| 输出层 (Layer 2) | ||
| 隐藏层 (Layer 1) |
更多推荐




所有评论(0)