《机器学习》随心记-周志华版 神经网络

1 神经网络是什么

       神经网络是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实世界物体所作出的交互反应。

       那这个定义是我们所说的神经网络吗?

       不全面!我们机器学习里的神经网络指的是“神经网络学习”。

       接下来,我们从神经网络两个方面进一步学习什么是机器学习的神经网络。

2 神经元模型

       神经元是什么?回顾一下生物课上的知识,神经元,是构成神经系统结构和功能的基本单位。每个神经元可以有一或多个树突,可以接受刺激并将兴奋传入细胞体。如图:

《机器学习》随心记-周志华版 神经网络

       见书P98第二段。

类比一下,在神经网络中最基本的成分也是神经元模型。接下来介绍一下M-P神经元模型,如图:

      《机器学习》随心记-周志华版 神经网络

       一个神经元模型是否能输出,是由其他神经元的输入乘以相应的权值与阈值作比较判断的。这里提出一点就是**函数,常采用sigmoid函数。前者阶跃函数有着不连续不光滑的特点,如图:

      《机器学习》随心记-周志华版 神经网络

3 感知机和多层网络

       首先介绍一下,简单的神经网络组成感知机。感知机是由两层神经网络组成,输入层和输出层,也称“阈值逻辑单元”。如图:

《机器学习》随心记-周志华版 神经网络

见P99

       从上面的例子可以看出,在整个训练过程中,阈值和权重是我们最关心的两个变量。

       这里,我们有个办法将二者联系起来。就是规定,阈值可看作一个固定输入为-1.0的“哑结点”所对应的权重。这样我们就可以统一为权重的学习。

      《机器学习》随心记-周志华版 神经网络

       当然,感知机学习结构太简单了。对于一些复杂的情况,感知机的能力就达不到我们的需求。比如如图,我们发现异或情况就是感知机解决不了的:

《机器学习》随心记-周志华版 神经网络

我们为了应付更复杂的情况,提出在输出层和输入层之间添一层神经网络,称为隐层或者隐含层,如图:

《机器学习》随心记-周志华版 神经网络

这样的情况就解决了之前难以解决的异或问题。

当然,我们继续扩展,产生这样一张图。这样的一张图,每一层神经元与下一层神经元完全项链,神经元之间不存在同层连接,也不存在跨层连接,这样的网路称为“多层前馈网络”。这里的前馈不是指信号不能向后传,而是指在网络拓扑结构上不能出现环或者回路。

《机器学习》随心记-周志华版 神经网络

而整个神经网络的学习,其实就是调整权值和阈值的过程。

 

4 误差逆传播算法(error BackPropagation,简称BP)

       我们来看看BP算法。给定训练集D,通过图来理解,

《机器学习》随心记-周志华版 神经网络

《机器学习》随心记-周志华版 神经网络

  BP是一个迭代学习的算法,基于梯度下降对参数w,j,v,r进行更新。

《机器学习》随心记-周志华版 神经网络

算法步骤为:

《机器学习》随心记-周志华版 神经网络

标准BP算法和累积BP算法:

BP算法的目标是最小化训练集D上的累积误差:

《机器学习》随心记-周志华版 神经网络

首先清楚,标准BP算法是针对一个训练样例更新权重和阈值,而累积BP算法是将整个训练集D读取一遍后才更新一次。

标准BP算法一般来说会获得更好的解。但是累积BP算法更快。

 

5 如何设置隐层的神经元个数?

       利用试错法:

(1)    早停:将数据分为训练集和验证集,训练集来计算梯度、更新连接权和阈值。验证集来估计误差,当训练集误差降低且验证集误差升高时,返回最小验证集误差的连接权和阈值。

(2)    正则化:在误差目标函数里加一个描述网络复杂度的成分。

《机器学习》随心记-周志华版 神经网络

 

6 全局最小和局部最小

   全局最小和局部最小的概念比较简单,就不介绍了。直接提出如何跳出局部最小的几个常用方法:

(1)    以多组不同参数值初始化多个神经网络

(2)    模拟退火:每一步都以一定概率接受比当前解更差的结果。迭代过程中接受“次优解”的概率需要逐渐降低。

(3)    随机梯度下降

(4)    遗传算法:利用生物中优胜劣汰的原则,对数据集进行训练。利用遗传算法就是在交叉和变异两步过程的随机性跳出局部最小。

《机器学习》随心记-周志华版 神经网络

7 常见的神经网络

(1)RBF网络(径向基函数网络)

径向基函数:所谓径向基函数,其实就是某种沿径向对称的标量函数。通常定义为空间中任一点x到某一中心c之间欧氏距离的单调函数,可记作k(||x-c||),其作用往往是局部的,即当x远离c时函数取值很小。例如高斯径向基函数:

 《机器学习》随心记-周志华版 神经网络《机器学习》随心记-周志华版 神经网络

RBF网络表示为:

《机器学习》随心记-周志华版 神经网络

《机器学习》随心记-周志华版 神经网络《机器学习》随心记-周志华版 神经网络

第一步:确定隐层神经元中心ci,常采用随机采样、聚类的方法。

第二步:利用BP算法确定参数。

优点:逼近能力,分类能力和学习速度等方面都优于BP神经网络,结构简单、训练简洁、学习收敛速度快、能够逼近任意非线性函数,克服局部极小值问题。原因在于其参数初始化具有一定的方法,并非随机初始化。

细节请看CSND博客:

https://blog.****.net/ecnu18918079120/article/details/53365341

 

(2)ART(Adaptive Resonance Theory,自适应谐振理论)网络

这种神经网络属于竞争型学习,其根本区别在于仅有一个竞争获胜的神经元被**,其他神经元状态被抑制。

该网络由比较层、识别层、识别阈值和重置模块构成。如图,

《机器学习》随心记-周志华版 神经网络

图中分别为比较层C和识别层R,包含3种控制信号:复位信号R、逻辑控制信号G1和G2。

 

如果C层中Xi全为0,G2=0,否则G2=1。控制的是R层的状态是竞争还是输出。

当R层输出向量的各分量全为0而输入向量X不是0向量时,G1为1,否则G1为0。G1控制着C层的状态是直接输出输入信号还是比较。

 《机器学习》随心记-周志华版 神经网络

C层

《机器学习》随心记-周志华版 神经网络

R层

细节请看CSND博客:

https://blog.****.net/lg1259156776/article/details/47780695


(3)SOM(Self-Organizing Map, 自组织映射)网络

它是一种无监督的竞争学习网络,学习过程中不需要任何监督信息。SOM网络将高维数据映射到低维空间中,一般是一维或者两维,并且映射过程中保持数据的拓扑结构不变,即高维空间中相似的数据在低维空间中接近。

《机器学习》随心记-周志华版 神经网络

SOM由两层神经元组成:输入层和输出层。输入层的每个神经元和输出层的所有神经元连接。输入层的神经元数量由输入空间决定。输出层神经元的数量由用户定义,每个输出神经元对应一个位置信息(可以是一维空间的坐标或者二维空间中的坐标),并且每个输出神经元拥有一个权重向量,权重向量的维度等于输入神经元数。

对每个输入实例,计算其和所有输出神经元权重向量之间的距离,距离最小的输出神经元称为获胜神经元。该实例在低维空间中的位置就是获胜神经元所处的位置。SOM训练的目的就是找到一组权重向量,使得输入数据在低维空间中拓扑结构不变。

 《机器学习》随心记-周志华版 神经网络

细节请看CSND博客:

https://blog.****.net/VictoriaW/article/details/78033287

(4)级联相关网络

一般的神经网络是固定好拓扑结构,然后训练权重和阈值。级联相关神经网络是从一个小网络开始,自动训练和添加隐含单元,最终形成一个多层的结构。

 《机器学习》随心记-周志华版 神经网络

细节请看CSND博客:

https://blog.****.net/xc_xc_xc/article/details/53163478

(5)Elman网络

让一些神经元的输出反馈回来作为输入信号,使得网络在t时刻的输出状态不仅与t时刻的输入有关,还与t-1时刻的网络状态有关。

递归网络

《机器学习》随心记-周志华版 神经网络

 

 

(6)Boltzmann

神经元分为两层:显层和隐层。显层用于表示数据的输出和输入,隐层则理解为数据的内在表达。

《机器学习》随心记-周志华版 神经网络

状态向量出现在概率为:

《机器学习》随心记-周志华版 神经网络

Boltzmann机的训练过程就是将训练样本视为一个状态向量,使其出现的概率尽可能大。

《机器学习》随心记-周志华版 神经网络

在现实情况,Boltzmann机是不可行的。所以提出了受限Boltzmann机。

受限Boltzmann机常用对比散度算法来训练。

《机器学习》随心记-周志华版 神经网络

《机器学习》随心记-周志华版 神经网络

细节请看见CSND博客:

https://blog.****.net/itplus/article/details/19408143

 

8 深度学习

       深度学习中会遇到的一个问题:发散不能收敛。

(1)    预训练+微调

(2)    权共享:无论是卷积层还是采样层,都是用的相同的连接权,减少了大量的参数数目。