神经网络

生物学上的神经网络最基本的成分是“神经元”,每个神经元和其他神经元相连,当它兴奋时,向相连的神经元发送化学物质,从而改变这些神经元的电位,如果神经元的电位超过了一个“阈值”,那么它就会被激活,即兴奋起来,向其他神经元发送化学物质。

M-P神经元模型

也称阈值逻辑单元

神经网络输入和输出的函数表达式 神经网络输出层函数_CNN


神经网络输入和输出的函数表达式 神经网络输出层函数_BP算法_02


膜电位G>阈值θj则兴奋输出,否则抑制不输出。

激活函数f(G)得出输出值。

常用的激活函数有:
线性函数:线性函数、斜面函数、阈值函数
非线性函数:阶跃函数(输出0或1)、Sigmoid函数(输出0~1)也称为“挤压函数”

感知机和多层网络

感知机两层神经元组成,只有输入层和输出层,并且只对输出层神经元进行激活函数处理,感知机只能解决线性问题。
要解决非线性可分问题,需考虑使用多层功能神经元,输入层和输出层之间多了隐含层,隐含层的神经元也是拥有激活函数的功能神经元。
常见的神经网络时每层与下一层神经元全互连,同层和跨层神经元则不相连,这种结构通常称为“多层前馈神经网络”。

输入层的神经元个数通常为属性种类的个数
输出层的神经元个数通常为类别种类的个数

误差逆传播算法(简称:BP算法)

需要通过训练数据来调整确定连接权重和阈值,BP算法就是最成功的杰出算法代表。
我们只能求得输出层的误差,而不能直接得到隐含层的误差,但是隐含层的连接权决定了输出层的误差,所以通过输出层的误差乘以连接权占比逆向得出隐含层的误差。

BP算法基于梯度下降策略,是一个迭代学习算法。

标准BP算法针对一个样本进行参数更新
累积BP算法则是读取整个训练集D一遍后才对参数进行更新,更新频率会更低很多,但是在很多任务中,累积误差下降到一定程度后,进一步下降会很缓慢,所以这时再用标准BP会很快些。

BP神经网络的学习能力太过强大,经常遭遇过拟合,因此常用早停(若训练误差下降,测试误差上升,则停止训练)以及正则化(例如:增加考虑连接权与阈值平方和,令训练过程偏好于比较小的连接权和阈值,使网络输出更加光滑)来缓解过拟合。

局部极小和全局极小

当有多个局部极小值时,标准梯度下降可能就找不到全局极小了,因此有三种解决方案(但都缺乏理论保障)
1、同时进行多组不同参数值初始化多个神经网络,按标准方法训练后,取误差最小的解作为最终参数
2、模拟退火:接受比当前解更差的结果,从而跳出局部极小(有可能跳出全局极小),接收到次优解得概率随着时间推移降低,从而保证算法稳定
3、随机梯度下降:计算梯度时加入随机因素

其他常见神经网络

RBF网络(径向基函数网络,一种单隐层前馈神经网络):通过随机采样或聚类等方式确定神经元中心,再利用BP算法确定参数。

ART网络(自适应谐振理论网络,一种无监督竞争性学习网络):神经元数目可在训练中动态增长以增加新的模式类(某类别的子类),可进行增量学习(批量在线学习)或在线学习(每获取一个样本就进行一次模型更新),变种有ART2网络、FuzzyART网络、以及可进行监督学习的ARTMAP网络等。

SOM网络(自组织映射网络,也是一种无监督竞争性学习网络):输出层神经元以矩阵方式排列在二维空间中;训练方式:接收到一个新的样本后,每个输出层神经元会计算该样本与自身携带的权向量之间的距离,距离最近的神经元成为竞争获胜者,称为最佳匹配单元,然后,最佳匹配单元及其邻近神经元的权向量将被调整,以使这些权向量与当前输入样本的距离缩小,不断迭代直至收敛。

级联相关网络:与一般前馈神经网络相比,级联相关网络无需设置网络层数、隐层神经元数目,且训练速度较快,但在数据较小时易陷入过拟合。

Elman网络(一种递归神经网络,允许网络中出现环形结构):t时刻的输出状态不仅与t时刻的输入有关,还与t-1时刻的网络状态有关,从而能处理与时间有关的动态变化。通常采用Sigmoid激活函数,训练常通过推广的BP算法进行。

Boltzmann机(基于能量模型,也是一种递归神经网络):分为两层:显层和隐层。显层用于表示数据的输入和输出,隐层则被理解为数据的内在表达。所有神经元都是布尔型,只有0或1两种状态,0为抑制、1为激活。标准的Boltzmann机是全连接图,训练复杂度高,难以解决现实任务,现实中常采用受限Boltzmann机(简称RBM),RBM常采用**对比散度算法(CD算法)**进行训练。

深度学习(特征学习、表示学习)

由于云计算、大数据时代的到来,计算力大幅提高,训练数据大幅增加降低过拟合风险,以“深度学习”为代表的复杂模型开始受到关注。

增加隐层数目比增加隐层神经元数目更加有效增加模型复杂度,因此深度学习模型就是很深层的神经网络,深度学习通常有八九层甚至更多隐层

节省训练开销的策略
1、对大量参数分组,对每组分别找到局部较好的设置,再联合这些较好的设置进行全局寻优。
2、权共享:让一组神经元使用相同的连接权。

CNN卷积神经网络:对输入层进行多次卷积、采样,最终将输入映射成更低维的特征向量,最后通过一个连接层和输出层连接完成识别任务。CNN使用权共享策略训练,CNN支持使用BP算法。
CNN具有输入层、卷积层、ReLU激励层、池化层、全连接层、输出层。
本质上的卷积层是用于特征提取, 最大池化层用于提取强特征及减少参数,全连接层则是所有高级特征参与到最后分类决策中去。