【机器学习-西瓜书】第5章 神经网络

5.1 神经元模型

定义:

神经网络是由具有适应性的简单单元组成的、广泛并行互连的网络,其组织能够模拟神武神经系统对真实世界物体所做出的交互反应。这里的简单单元指 神经元neuron。

在神经网络中,每个神经元与其他神经元相连,当超过一个”阈值 (threshold)“,该神经元将被激活,产生神经元输出。

沿用至今的M-P神经元模型

【机器学习-西瓜书】第5章 神经网络_第1张图片

5.2 感知机与多层网络

感知机 (perceptron)由两层神经元组成,输入层接收外界输入信号后传递给输出层,输出层是M-P神经元。如下图:

【机器学习-西瓜书】第5章 神经网络_第2张图片

 感知机学习规则如下:

对于训练样例 (x, y),若当前感知机输出为\hat{y}, 则按照如下规则调整权重:

w_{i}\leftarrow w_{i} + \Delta w_{i}, \\ \Delta w_{i} = \eta (y - \hat{y})x_{i}

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

感知机只有输出层使用激活函数处理,学习能力有限。通常线性可分linearly separable问题,即存在一个线性超平面可将数据分开,一般可使用感知机算法。

言解决非线性可分问题,需使用多层感知机:

每层神经元与下一层神经元全连接,神经元之间不存在同层内链接,也没有跨层连接,这样的神经网络通常称为”多层前馈神经网络” (multi-layer feedforward neural networks)。比如将下图(b)增加为多层:

【机器学习-西瓜书】第5章 神经网络_第3张图片

 

5.3 反向传播算法 (BP)

通常说的 “BP网络”指:用BP算法训练的multi-layer feedforward neural network。BP算法基于梯度下降策略,以目标的负梯度方向对参数进行更新。

D = \{(x_{1}, y_{1}), (x_{2}, y_{2}), ..., (x_{m}, y_{m})\}, \ x_{i} \in \mathbb{R}^{d},\ y_{i} \in \mathbb{R}^{l}

【机器学习-西瓜书】第5章 神经网络_第4张图片

 b_{h} 为隐层第h个神经元的输出,隐层和输出层神经元 均使用sigmoid函数作为激活函数。

对训练样例(x_{k}, y_{k}),假定神经网络的输出为 \hat{y}_{k} = (\hat{y}^{k}_{1}, \hat{y}^{k}_{2}, ..., \hat{y}^{k}_{l}),则网络在 (x_{k}, y_{k})上的均方误差为:

E_{k} = \frac{1}{2}\sum_{j=1}^{l}(\hat{y}_{j}^{k} - y_{j}^{k})^{2}, \ \ \ (5.4)

 设 w_{hj} 表示隐层到输出层的连接权重,则对式 (5.4)的误差E_{k},给定学习率η,有

\Delta w_{hj} = - \eta \frac{\partial E_{k}}{\partial w_{hj}}\\ =-\eta \frac{\partial E_{k}}{\partial \hat{y}_{j}^{k}} \cdot \frac{\partial \hat{y}_{j}^{k}}{\partial \beta _{j}}\cdot \frac{\partial \beta _{j}}{\partial w_{hj}}\\\\ =-\eta \cdot 2\times \frac{1}{2} (y_{j}^{k} - \hat{y}_{j}^{k})\cdot \hat{y}_{j}^{k} (1-\hat{y}_{j}^{k})\cdot \frac{\partial \beta _{j}}{\partial w_{hj}}

【机器学习-西瓜书】第5章 神经网络_第5张图片

 

通常情况下,BP算法的目标是 最小化训练集D上的累计误差:

E = \frac{1}{m}\sum_{k=1}^{m}E_{k}

即 在读取整个训练集 D 一遍之后,才对参数进行更新。

解决过拟合策略:

1)早停(early stopping)

将数据分为 trainning set 和validation set,当training error降低但validation error升高, 则停止训练,同时返回具有最小验证集误差的 权重和阈值。

2)正则化(regularization)

基本思想是 在误差目标函数中增加一个描述网络复杂度的项,比如权重和阈值的平方和。

5.4 全局最小 (global minimun) 与局部极小 (local minimum)

可能存在多个局部极小值,但却只会有一个全局最小值。

【机器学习-西瓜书】第5章 神经网络_第6张图片

 “跳出”局部极小,逼近全局最小值的策略:

1)以多组不同参数值 初始化多个神经网络,训练网络后,取其中误差最小的解作为最终参数。相当于从多个不同的初始点开始梯度下降

2)使用“模拟退火”(simulated annealing),在每一步都以一定的概率接受比当前解更差的结果 (接受次优解),以达到保证算法稳定的目的

3)使用随机梯度下降,在标准梯度下降法中加入随机因素

5.5 其他常见神经网络

1)RBF(radial basis function,径向基函数)网络

一种单隐层前馈神经网络,使用径向基函数 作为隐层神经元激活函数,输出层是 对隐层神经元输出的线性组合。RBF网络可表示为:

\varphi (x) = \sum_{i=1}^{q}w_{i}\rho (x, c_{i}), \ \ \ (5.18)\\ \rho (x, c_{i}) = e^{-\beta _{i}|| x-c_{i}||^{2}}, \ \ \ (5.19)

c_{i},\ w_{i} 分别是 第 i 个隐层神经元所对应的中心和权重,\rho (x, c_{i}) 为高斯径向基函数(通常是某种沿径向对称的标量函数),为样本 x 到数据中心 c_{i} 之间的欧式距离的单调函数。

训练RBF网络通常有两步:

step 1:确定神经元中心 c_{i}

step2:利用BP算法 来确定参数 w_{i}, \beta _{i}

2) ART (adaptive resonance theory,自适应谐振理论) 网络

属于无监督学习策略中 竞争性学习策略的重要代表

由 比较层、识别层、识别阈值、重置模块构成。

优点:可进行增量学习(incremental learning)或 在线学习(online learning)

3)SOM (self-organizing map, 自组织映射) 网络 

一种竞争学习型的无监督神经网络,可将 高维输入数据 映射到 低维空间,同时保持输入数据在高维空间的拓扑结构(即 将高维空间中相似的样本点 映射到 网络输出层中的近邻神经元)

 【机器学习-西瓜书】第5章 神经网络_第7张图片

4)级联相关 (Cascade-correlation) 网络 

 【机器学习-西瓜书】第5章 神经网络_第8张图片

级联:建立层次连接的层级结构。

 随着训练的进行,新的隐层神经元的逐渐加入时,其输入端连接权重 是冻结固定的。

相关:通过最大化新神经元的输出 与 网络误差之间的 相关性来训练相关参数。

5)Elman网络 - 递归神经网络 (recurrent neural networks)

允许网络中出现 环形结构,从而让一些神经元的输出 反馈回来作为输入信号,使得网络在t时刻的输出状态 不仅与t时刻的输入有关,还与t-1时刻的网络状态有关,从而能处理与时间有关的动态变化。

6)受限Boltzmann机 (Restricted Boltzmann Machine)

一种基于能量的模型,其神经元分为两层:显层表示数据的输入和输出,和隐层表示 数据的内在表达。状态向量s 所对应的 Boltzmann机能量定义为

E(s) = -\sum_{i=1}^{n-1}\sum_{j=i+1}^{n}w_{ij}s_{i}s_{j} - \sum_{i=1}^{n}\theta _{i}s_{i}, \ \ \ \ \ (5.20)

【机器学习-西瓜书】第5章 神经网络_第9张图片

 

5.6 深度学习

深度学习 == 很深层次的神经网络 == 增加隐层数目/ 增加隐层神经元的数目

无监督逐层训练 (unsupervised layer-wise training) == pre-training then fine-tuning:

每次训练一层隐层结点,训练时 将上一层隐层节点的输出作为输入,本层隐层节点的输出作为 下一层隐层节点的输入,即 “预训练”;

在预训练全部完成后,再对整个网络进行 “微调”。

“预训练 + 微调”方法可视为 将大量参数分组,对每组先找到局部最优,然后再联合 这些局部最优 得到全局最优。

在DBN (Deep Belief Network,深度信念网络)中,每层 都是一个受限Boltzmann机,整个网络可看作是 若干个RBM堆叠而成。

另一种节省训练开销的策略是 “权值共享”(weight sharing)

即让一组神经元使用相同的权重,典型应用为CNN。

你可能感兴趣的:(机器学习)