跳转至

Chapter 5: 神经网络

约 2039 个字 1 张图片 预计阅读时间 7 分钟

1. 神经元模型

2. 感知机和多层网络

给定训练数据集,权重 \(w_i\) \((i=1,2,\ldots,n)\) 以及阈值 \(\theta\) 可通过学习得到。阈值 \(\theta\) 可以看作一个固定输入为 \(-1.0\) 的“哑结点”(dummy node)所对应的连接权重 \(w_{n+1}\)。这样,权重和阈值的学习就统一为权重的学习。

感知机的学习规则非常简单:对训练样例 \((\boldsymbol{x},y)\),若当前感知机的输出为 \(\hat{y}\),则感知机权重将按如下方式调整:

\[\begin{aligned} w_i &\leftarrow w_i + \Delta w_i,\\ \Delta w_i &= \eta(y-\hat{y})x_i. \end{aligned}\]

其中 \(\eta \in (0,1)\) 称为学习率(learning rate)。

从上式可以看出:

  • 当感知机对训练样例预测正确时,即 \(y=\hat{y}\),感知机不会发生变化
  • 当预测错误时,则通过调整权重来纠正错误

感知机只有输出层神经元进行激活函数处理,也就是只有一层功能神经元/Functional Neuron,其学习能力十分有限。事实上,与、或、非问题都是线性可分问题,而异或问题是非线性可分问题。可以证明,如果两类模式是线性可分的,那么存在一个线性超平面可以将其分开。对于线性可分问题,感知机的学习过程一定会收敛/Converge,否则感知机学习过程将会发生震荡/Fluctuation。

要解决非线性可分问题,就需要使用多层功能神经元,使用简单的两层感知机就可以解决异或问题,其中输入层与输出层之间还有一层神经元,其被称为隐层或者隐含层/Hidden Layer。隐含层神经元和输出层神经元都是具有激活函数功能的功能神经元

5-1

更一般的,常见的神经网络具有层级结构,每层神经元和下面一层神经元完全互连,神经元之间不存在同层连接,也不存在跨层连接.这样的神经网络结构通常称为多层前馈神经网络/Multi-layer Feedforward Neural Networks,其中其中输入层神经元接收外界输入,隐层与输出层神经元对信号进行加工,最终结果由输出层神经元输出。

神经网络的学习过程,就是根据训练数据来调整神经元之间的连接权/Connection Weight 以及每个功能神经元的阈值;换言之,神经网络学习到的东西,蕴涵在连接权与阈值中。

3. 误差反向传播算法

给定训练数据集 \(D = \{(\boldsymbol{x}_1, \boldsymbol{y}_1), (\boldsymbol{x}_2, \boldsymbol{y}_2), \cdots, (\boldsymbol{x}_m, \boldsymbol{y}_m)\}\),其中 \(\boldsymbol{x}_i \in \mathbb{R}^d\)\(\boldsymbol{y}_i \in \mathbb{R}^l\),即输入示例由 \(d\) 个属性描述,输出 \(l\) 维实值向量。

对于一个拥有 \(d\) 个输入节点、\(l\) 个输出节点、\(q\) 个隐层节点的多层前馈网络:

  • 输入层第 \(i\) 个神经元与隐层第 \(h\) 个神经元之间的连接权为 \(v_{ih}\)
  • 隐层第 \(h\) 个神经元与输出层第 \(j\) 个神经元之间的连接权为 \(w_{hj}\)
  • 隐层第 \(h\) 个神经元接收到的输入为 \(\alpha_h = \sum\limits_{i=1}^d v_{ih}x_i\)
  • 输出层第 \(j\) 个神经元接收到的输入为 \(\beta_j = \sum\limits_{h=1}^q w_{hj}b_h\)

其中 \(b_h\) 为隐层第 \(h\) 个神经元的输出。假设隐层和输出层神经元都使用 Sigmoid 函数。

对训练样例 \((\boldsymbol{x}_k,\boldsymbol{y}_k)\),假设神经网络的输出为 \(\hat{\boldsymbol{y}}_k = (\hat{y}_1^k,\hat{y}_2^k,\ldots,\hat{y}_l^k)\),即

\[\hat{y}_j^k = f(\beta_j - \theta_j)\]

其中 \(f\) 为 Sigmoid 函数。则网络在 \((\boldsymbol{x}_k,\boldsymbol{y}_k)\) 上的均方误差为

\[E_k = \frac{1}{2}\sum_{j=1}^l(\hat{y}_j^k - y_j^k)^2\]

反向传播算法基于梯度下降策略,以目标的负梯度方向对参数进行调整,以对隐层和输出层之间的链接权为例,对上面的均方误差 \(E_k\),给定学习率 \(\eta\),有:

\[\Delta w_{hj} = -\eta\frac{\partial E_k}{\partial w_{hj}}\]

4. 全局最小与局部最小

现实任务中,人们经常使用一下策略来试图跳出局部最小,从而进一步接近全局最小:

  • 以多组不同参数值初始化多个神经网络,按照标准方法训练后,取其中误差最小的解作为最终参数。这相当于从多个不同点开始搜索,这样就可能陷入不同的局部最小,从中选择有可能获得更接近全局最小的结果。
  • 使用模拟退火/Simulated Annealing 技术,即在每一步都以一定的概率接受比当前解更差的结果,从而有助于跳出局部最小(也有可能跳出全局最小)。在每步迭代过程中,接收次优解的概率要随着时间的推移而逐渐降低,从而保证算法稳定。
  • 使用随机梯度下降/Stochastic Gradient Descent。与标准梯度下降法精确计算梯度不同,随机梯度下降法在计算梯度时加入了随机因素。即便陷入局部极小点,它计算出的梯度仍可能不为零,这样就有机会跳出局部极小继续搜索。

遗传算法也常用来训练神经网络以更好逼近全局最小,但是上述技术大多数都是启发式,理论上缺乏一定保障。

5. 其他常见神经网络

5.1 RBF 网络

使用径向基函数/Radial Basis Function 作为隐层神经元的激活函数,输出层则是对隐层神经元输出的线性组合。假定输入为 \(d\) 维向量 \(\boldsymbol{x}\),则 RBF 网络可以表示为

\[\varphi(\boldsymbol{x}) = \sum_{i=1}^{q}w_i\rho(\boldsymbol{x}, \boldsymbol{c}_i)\]

5.2 ART 网络

竞争性学习/Comeptitive Learning 是神经网络中的一种常用的一种无监督学习策略

ART/自适应偕振理论/Adaptive Resonance Theory 网络是竞争性学习的重要代表,其结构包括比较层、识别层、识别阈值和重置模块。工作机制如下:

5.3 SOM 网络

5.4 级联相关网络

结构自适应网络将网络结构也当作学习的目标之一,希望能在训练过程中找到最符合数据特点的网络结构。级联相关网络/Cascade-Correlation Network 是结构自适应网络的代表之一。

级联相关网络有两个主要成分,级联和相关。级联是指建立层次连接的层次结构。在开始训练的时候,网络只有输入层和输出层,处于最小拓扑结构,随着训练的进行,新的隐层神经元逐渐加入,从而创建起层次结构。当新的隐层神经元加入时,其输出端链接权重是固定的。相关是指通过最大化新神经元的输出与网络误差之间的相关性来训练相关的参数。

级联相关网络不需要设置网络层数、隐层神经元数目,训练速度较快,但是数据规模较小的时候可能会陷入过拟合。

5.5 Elman 网络

递归神经网络/Recurrent Neural Network 允许网络中出现环形结构,从而可以让一些神经元的输出反馈回来作为输入信号。这样的结构和信息反馈过程,使得网络在某时刻的输出状态不仅仅与当前时刻的输入有关,还与前一时刻的网络状态有关,从而可以处理与时间相关的动态变化。

5.6 Boltzmann 机

有一类神经网络中的模型是为网络状态定义一个能量,当能量最小的时候网络达到理想状态,网络的训练就是在最小化这个能量函数。Boltzmann 机是这类神经网络的代表之一。

6. 深度学习