05 前馈神经网络:感知器与 BP#
1. 本章定位#
这是神经网络部分最容易出计算和公式题的一章。重点是单层感知器、线性可分、BP 误差反传公式和 BP 局限性。
2. 单层感知器模型#
输入向量:
X=(x1,x2,…,xn)T
权向量:
Wj=(w1j,w2j,…,wnj)T
净输入:
netj=i=1∑nwijxi
输出:
oj=sgn(netj−Tj)=sgn(WjTX)
二维分界线:
w1jx1+w2jx2−Tj=0
n 维情况对应一个超平面。
3. 感知器功能与局限#
单计算节点感知器具有分类功能,本质是用一个线性判决面把输入模式分成两类。
局限:
单层感知器只能解决线性可分问题,不能解决异或 XOR。
解决方法:
- 引入隐层,形成多层感知器。
- 采用非线性连续转移函数。
4. 感知器学习规则#
感知器学习属于有导师学习。
权值更新:
Wj(t+1)=Wj(t)+η[djp−ojp(t)]Xp
其中 η 为学习率,通常:
0<η≤1
训练步骤:
- 初始化权值为较小非零随机数。
- 输入样本对 {Xp,dp}。
- 计算输出 ojp(t)=sgn[WjT(t)Xp]。
- 按学习规则调整权值。
- 重复直到所有样本输出等于期望输出。
5. 多层感知器#
多层感知器通过隐层实现更复杂分类。
| 结构 | 分类能力 |
|---|
| 无隐层 | 半平面,线性可分 |
| 单隐层 | 可形成凸域 |
| 双隐层 | 可形成任意复杂形状域 |
6. BP 网络模型#
三层 BP 网络:
输出层:
ok=f(netk),netk=j=0∑mwjkyj
隐层:
yj=f(netj),netj=i=0∑nvijxi
单极性 Sigmoid:
f(x)=1+e−x1
导数:
f′(x)=f(x)[1−f(x)]
7. BP 误差函数#
输出误差:
E=21k=1∑l(dk−ok)2
梯度下降:
Δwjk=−η∂wjk∂E
Δvij=−η∂vij∂E
8. BP 误差信号与权值更新#
输出层误差信号:
δko=(dk−ok)ok(1−ok)
隐层误差信号:
δjy=(k=1∑lδkowjk)yj(1−yj)
输出层权值更新:
Δwjk=ηδkoyj
输入层到隐层权值更新:
Δvij=ηδjyxi
展开式:
Δwjk=η(dk−ok)ok(1−ok)yj
Δvij=η(k=1∑lδkowjk)yj(1−yj)xi
9. BP 算法流程#
- 初始化权值 V,W,设定 Emin 和 η。
- 输入训练样本。
- 正向传播,计算隐层和输出层输出。
- 计算输出误差。
- 反向传播误差,计算各层误差信号。
- 调整权值。
- 判断是否完成一轮训练。
- 判断总误差是否满足要求。
10. BP 网络能力#
- 非线性映射能力。
- 泛化能力。
- 容错能力。
11. BP 局限性#
标准 BP 的缺陷:
- 易陷入局部极小。
- 训练次数多,收敛慢。
- 隐节点个数缺乏理论指导。
- 学习新样本可能遗忘旧样本。
误差曲面问题:
- 平坦区域导致梯度小、下降慢。
- 多个极小点导致局部最小。
权值和阈值参数总数:
nw=m(n+1)+l(m+1)
12. BP 改进方法#
增加动量项:
ΔW(t)=ηδX+αΔW(t−1),α∈(0,1)
自适应学习率:
η=βη,β<1
η=θη,θ>1
引入陡度因子:
o=1+e−net/λ1
当 ΔE 接近 0 而 d−o 仍较大时,可能进入平坦区,可令 λ>1。
13. 本章考点#
必背:
- 感知器模型和学习规则。
- 为什么单层感知器不能解决 XOR。
- BP 正向传播、误差反传流程。
- BP 的 δ 公式和权值更新公式。
- BP 的能力、缺陷和改进方法。