ZeroHour's Site

Back

05 前馈神经网络:感知器与 BP#

1. 本章定位#

这是神经网络部分最容易出计算和公式题的一章。重点是单层感知器、线性可分、BP 误差反传公式和 BP 局限性。

2. 单层感知器模型#

输入向量:

X=(x1,x2,,xn)TX=(x_1,x_2,\ldots,x_n)^T

权向量:

Wj=(w1j,w2j,,wnj)TW_j=(w_{1j},w_{2j},\ldots,w_{nj})^T

净输入:

netj=i=1nwijxinet_j=\sum_{i=1}^{n}w_{ij}x_i

输出:

oj=sgn(netjTj)=sgn(WjTX)o_j=\operatorname{sgn}(net_j-T_j)=\operatorname{sgn}(W_j^TX)

二维分界线:

w1jx1+w2jx2Tj=0w_{1j}x_1+w_{2j}x_2-T_j=0

nn 维情况对应一个超平面。

3. 感知器功能与局限#

单计算节点感知器具有分类功能,本质是用一个线性判决面把输入模式分成两类。

局限:

单层感知器只能解决线性可分问题,不能解决异或 XOR。

解决方法:

  1. 引入隐层,形成多层感知器。
  2. 采用非线性连续转移函数。

4. 感知器学习规则#

感知器学习属于有导师学习。

权值更新:

Wj(t+1)=Wj(t)+η[djpojp(t)]XpW_j(t+1)=W_j(t)+\eta[d_j^p-o_j^p(t)]X^p

其中 η\eta 为学习率,通常:

0<η10<\eta\le 1

训练步骤:

  1. 初始化权值为较小非零随机数。
  2. 输入样本对 {Xp,dp}\{X^p,d^p\}
  3. 计算输出 ojp(t)=sgn[WjT(t)Xp]o_j^p(t)=\operatorname{sgn}[W_j^T(t)X^p]
  4. 按学习规则调整权值。
  5. 重复直到所有样本输出等于期望输出。

5. 多层感知器#

多层感知器通过隐层实现更复杂分类。

结构分类能力
无隐层半平面,线性可分
单隐层可形成凸域
双隐层可形成任意复杂形状域

6. BP 网络模型#

三层 BP 网络:

输入层 -> 隐层 -> 输出层
text

输出层:

ok=f(netk),netk=j=0mwjkyjo_k=f(net_k),\quad net_k=\sum_{j=0}^{m}w_{jk}y_j

隐层:

yj=f(netj),netj=i=0nvijxiy_j=f(net_j),\quad net_j=\sum_{i=0}^{n}v_{ij}x_i

单极性 Sigmoid:

f(x)=11+exf(x)=\frac{1}{1+e^{-x}}

导数:

f(x)=f(x)[1f(x)]f'(x)=f(x)[1-f(x)]

7. BP 误差函数#

输出误差:

E=12k=1l(dkok)2E=\frac{1}{2}\sum_{k=1}^{l}(d_k-o_k)^2

梯度下降:

Δwjk=ηEwjk\Delta w_{jk}=-\eta\frac{\partial E}{\partial w_{jk}} Δvij=ηEvij\Delta v_{ij}=-\eta\frac{\partial E}{\partial v_{ij}}

8. BP 误差信号与权值更新#

输出层误差信号:

δko=(dkok)ok(1ok)\delta_k^o=(d_k-o_k)o_k(1-o_k)

隐层误差信号:

δjy=(k=1lδkowjk)yj(1yj)\delta_j^y=\left(\sum_{k=1}^{l}\delta_k^ow_{jk}\right)y_j(1-y_j)

输出层权值更新:

Δwjk=ηδkoyj\Delta w_{jk}=\eta\delta_k^oy_j

输入层到隐层权值更新:

Δvij=ηδjyxi\Delta v_{ij}=\eta\delta_j^yx_i

展开式:

Δwjk=η(dkok)ok(1ok)yj\Delta w_{jk}=\eta(d_k-o_k)o_k(1-o_k)y_j Δvij=η(k=1lδkowjk)yj(1yj)xi\Delta v_{ij}=\eta\left(\sum_{k=1}^{l}\delta_k^ow_{jk}\right)y_j(1-y_j)x_i

9. BP 算法流程#

  1. 初始化权值 V,WV,W,设定 EminE_{\min}η\eta
  2. 输入训练样本。
  3. 正向传播,计算隐层和输出层输出。
  4. 计算输出误差。
  5. 反向传播误差,计算各层误差信号。
  6. 调整权值。
  7. 判断是否完成一轮训练。
  8. 判断总误差是否满足要求。

10. BP 网络能力#

  1. 非线性映射能力。
  2. 泛化能力。
  3. 容错能力。

11. BP 局限性#

标准 BP 的缺陷:

  1. 易陷入局部极小。
  2. 训练次数多,收敛慢。
  3. 隐节点个数缺乏理论指导。
  4. 学习新样本可能遗忘旧样本。

误差曲面问题:

  • 平坦区域导致梯度小、下降慢。
  • 多个极小点导致局部最小。

权值和阈值参数总数:

nw=m(n+1)+l(m+1)n_w=m(n+1)+l(m+1)

12. BP 改进方法#

增加动量项:

ΔW(t)=ηδX+αΔW(t1),α(0,1)\Delta W(t)=\eta\delta X+\alpha\Delta W(t-1),\quad \alpha\in(0,1)

自适应学习率:

η=βη,β<1\eta=\beta\eta,\quad \beta<1 η=θη,θ>1\eta=\theta\eta,\quad \theta>1

引入陡度因子:

o=11+enet/λo=\frac{1}{1+e^{-net/\lambda}}

ΔE\Delta E 接近 0 而 dod-o 仍较大时,可能进入平坦区,可令 λ>1\lambda>1

13. 本章考点#

必背:

  1. 感知器模型和学习规则。
  2. 为什么单层感知器不能解决 XOR。
  3. BP 正向传播、误差反传流程。
  4. BP 的 δ\delta 公式和权值更新公式。
  5. BP 的能力、缺陷和改进方法。
05 前馈神经网络:感知器与 BP
https://zerohour.fun/blog/intelligent_control/05-%E5%89%8D%E9%A6%88%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C-%E6%84%9F%E7%9F%A5%E5%99%A8%E4%B8%8Ebp
Author ZeroHour
Published at 2026年5月12日
Comment seems to stuck. Try to refresh?✨