第四章 神经网络
1. 神经元模型
神经网络:由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实事件物体所做出的交互反应。
神经网络中最基础的成分是神经元模型(neuron)。下图是“M-P神经元模型”。
基本原理:神经元接收到来自n个其他神经元传递过来的输入信号,这些输入信号通过带权重的连接进行传递,神经元接收到的总输入值将于神经元的阈值进行比较,然后通过“激活函数”处理最后输出。
![[U6%T[%$
F%K9_99)~28Y13.png]]
激活函数
激活函数常见的有:
- 阶跃函数
s g n ( x ) = { 1 x ≥ 0 0 x < 0 sgn(x) = \begin{cases} 1 & x \geq 0\\ 0 & x < 0 \end{cases} sgn(x)={10x≥0x<0 - sigmoid函数
s i g m o i d ( x ) = 1 1 + e − x sigmoid(x) = \frac{1}{1+e^-x} sigmoid(x)=1+e−x1
理想中的激活函数是阶跃函数,但是该函数具有不连续、不光滑等性质,实际常用Sigmoid函数作为激活函数。
把多个神经元按一定的层次结构连接起来,就得到了神经网络。
2. 感知机与多层网络
感知机(Perceptron)由两层神经元组成,输入层接收外界输入信号后传递给输出层,输出层是M-P神经元,亦称“阈值逻辑单元”(threshold logic unit)。
感知机很容易实现逻辑与、或、非运算。
给定训练数据集,权重 W i W_i Wi 以及阈值 θ \theta θ 可通过学习得到。 θ \theta θ 可以看做一个固定输入为 -1.0 的“哑结点”(dummy node) 所对应的连接权重,
感知机学习规则如下:
W i ← W i + △ W i W_i \leftarrow W_i + \triangle W_i Wi←Wi+△Wi
△
W
i
=
η
(
y
−
y
)
x
i
\triangle W_i = \eta(y - y)x_i
△Wi=η(y−y)xi
其中
η
\eta
η
∈
\in
∈ (0, 1) 称为学习率(learning rate)。需注意,感知机只有输出层神经元进行激活函数处理,即只拥有一层功能神经元(functional neuron),其学习能力非常有限。
可以证明:若两类模式是线性可分的,即存在一个线性超平面能将它们分开,则感知机的学习过程一定会收敛(converge),否则感知机学习过程将会发生振荡(fluctuation)。
要解决非线性可分问题,需考虑使用多层功能神经元。更一般的,常见的神经网络是形如下图的层级结构,神经元之间不存在同层连接,也不存在跨层连接,称为“多层前馈神经网络”(multi-layer feedforward neural networks)。其中输入层神经元接收外界输入,隐层与输出层神经元(包含功能神经元)对信号进行加工,最终结果由输出层神经元输出。
神经网络学习的结果体现在连接权与阈值中。
3. 误差逆传播算法
3.1 模型定义及模型训练
多层网络的学习能力比单层感知机强得多,因此也需要更强大的学习算法。比如误差逆传播(error BackPropagation, 简称BP)算法,BP算法通常用于训练多层前馈神经网络,但也可用于其他类型的神经网络,如递归神经网络。