Skip to content

神经网络

首先,神经网络是一种机器学习的算法模型,以人脑和神经系统为模型。神经网络在模式识别等领域表现突出。

复习一下,机器学习指的是:计算机通过“阅读”训练数据提炼“意义”的过程,即计算机执行学习所需分析推理的算法。除了神经网络,机器学习五大反例还包括:基于案例推理、遗传算法、规则归纳和分析学习。

人工神经网络的思想来源于人脑和神经系统。学习是通过修改神经元之间连接的强度实现的,人工神经网络通过改变权重呈现这样的适应性。

模型

一个抽象的神经元具有:输入 \(x\)、权重 \(w\)、输出 \(y\)。我们用数学把它表达为:

\[ y=f(g(\overline{x}, \overline{w})) \]

其中 \(g\) 称为激励函数(一般是点乘),\(f\) 是输出或激活函数。

人工神经网络就是抽象神经元按某种拓扑排列的集合,从数学上看作从 \(R^n\)\(R^m\) 的映射 \(F\)

接下来我们思考:为了让网络对某个输入产生特定的输出,如何让其调整权重?

McCulloch-Pitts 网络

在该种网络中,神经元的输入、输出都是二进制的。输入通道称为边(edge),它可以是兴奋或抑制的。它的表现如下:

  • 如果有抑制输入,那么输出为 0。
  • 否则,当总激励大于阈值时,输出为 1。

可以看出,该神经元中激活函数 f 是一个阶跃函数。

书中展示了 McCulloch-Pitts 神经元实现的双输入门,如 AND、OR、NOR 和最小项的解码器,尝试回忆一下?

很显然,该网络因为没有权重而不能自适应。

感知器学习规则

一个神经网络,给出一个输入向量 \(x\),存在一个期望的输出向量 \(t\)。网络按照学习规则调整权重,以最小化 \(t\)\(y\) 之间的差异。

人工神经网络的学习规则主要有三种:感知器学习规则、增量规则和反向传播规则,其中反向传播能够用于多层网络。

TLU(Threshold Logic Unit)叫做阈值逻辑单元,它的输入输出同样是二进制的,具有以下参数:

  • 输入向量
  • 权重向量
  • 阈值函数

神经网络的输入称为模式(pattern),表示所有输入的 \(n\) 维空间称为模式空间。以双输入 TLU 为例,它的模式空间是平面上的四个点。我们也可以在模式空间中画出 TLU 在激励等于阈值时的直线。

相同输出的模式称为一个模式类,上面画出的直线就将两个模式类分开了。当模式空间维度为 \(n\) 时,判别式的维数将会是 \(n-1\),神经网络通过生成判别式,将 \(n\) 维模式空间分割成以判别式超平面为边界的凸子空间,执行模式识别。

感知器学习规则通过迭代矫正来生成判别式。

将所有模式输入来训练神经网络,这一过程称为一个 epoch。如果处理完整个 epoch 而权重没有发生变化,则学习规则可以停止。

反向传播

感知器学习规则和增量规则要求:所实现的函数必须是线性可分离的。对于复杂的模式空间,应当使用反向传播规则,它可以工作在多层网络上。

神经网络的层数:输入层、输出层、隐藏层。一般来说,输入层仅作为输入点(没有权重),因此神经网络层数是隐藏层的层数加一,即权重的层数。

前馈(feed forward)网络:层 i 的神经元只与层 i+1 的神经元连接,无层内连接。

在完全连接的前馈网络中,每一层的权重都是一个矩阵。

反向传播要求激活函数是连续可微的,Sigmoid 函数 \(S_c\) 常用于反向传播网络:

\[ f(x)=\frac{1}{1+e^{-cx}} \]

如果 \(c\) 较大,这个函数类似于阶跃函数。

Sigmoidal 单元的输入是

反向传播的训练过程

  1. 将模式输入到网络中,计算输出,计算输出误差 \(e\)
  2. 重复 \(N\) 次(\(N\) 是模式的数目),得到平均误差 \(E\)
  3. 计算 \(E\) 对于每一个权重的偏导数。
  4. 给网络的每一个权重分配责任