吃瓜教程 | 第五章 神经网络
时间:2022-10-07 18:00:00
5.1 神经元模型
神经网络中最基本的模型被称为神经元(neuron)或者(unit)。
上图为一直沿用至今的M-P神经元模型神经元接收n个其他神经元传输的输入信号,通过权重连接传输。神经元接收到的总输入值将比较神经元的阈值,然后通过激活函数处理产生神经元的输出。
理想的激活函数是阶跃函数,它将输入值映射到输出值0或1.但由于不连续、不光滑等性质,常用Sigmoid作为激活函数的函数。
对于单个“M-P神经元”
- 激活函数-感知机
- 激活函数为Sigmoid对数概率回归函数
5.2 感知机和多层网络
感知机(perceptron)输入层由两层神经元组成,接收外部输入信号后传输到输出层。输出层是M-P神经元,又称阈值逻辑单元(threshold logic unit)。感知机可以很容易地实现和或非逻辑操作。
一般来说,在给训练数据集后,可以通过学习获得连接权重和阈值。感知机的学习规则非常简单。对于训练例子(x,y)如果当前感知机的输出是y^,感知机权重调整方法如下
其中η ∈ ( 0 , 1 ) 称为学习率。
需要注意的是,感知机只输出一层神经元来激活函数,即只有一层功能神经元,其学习能力非常有限,只能解决线性或非线性问题,不能解决异常或非线性问题。因此,多层功能神经元被引出来解决非线性可分问题。
在上图的网络结构中,在输入层和输出层之间增加了一层神经元,称为隐含层。多层前馈神经网络,每层神经元与下一层神经元完全相连,神经元之间没有同层连接或跨层连接。
神经网络的学习过程:根据训练数据调整神经元之间的调整"连接权"以及每个功能神经元的阈值。
5.3 逆传输算法的误差
误差逆传播(error backPropagation, 简称BP)是迄今为止最成功的神经网络学习算法。
假设均使用sigmoid作为激活函数的函数
如上述前馈神经网络示意图所示,需要确认的参数有
- 输入层到隐层:d × q
- 从隐层到输出层:q × l
- 隐层神经元阈值:q
- 输出层神经元阈值:l
类似于w i ,任意参数v 更新估计为
BP算法基于梯度下降策略,即调整目标负梯度方向。BP算法中关于whj更新公式:
学习率控制算法每轮迭代中的更新步长。如果太大,很容易震荡,如果太小,收敛速度会太慢。
BP算法的目标是最小化训练集D上的累积误差
以上是标准BP算法每次只更新一个训练样本的连接权和阈值。基于累积误差最小化的更新规则也得到了类似的推导累积误差逆转传播。
如何设置隐层神经元的数量仍然是一个未决问题,实际应用通常由试错法调整。
处理BP神经网络"过拟合"的方法
- 早停(early stopping):将数据分为培训集和验证集。培训集用于计算梯度、更新连接权和阈值。验证集用于估计误差。如果训练集误差减少,但验证集误差增加,则停止训练,并返回具有最小验证集误差的连接权和阈值
- 正则化(regularization):正则化的基本思想是在误差目标函数中添加一部分来描述网络的复杂性
5.4 全局最小,局部最小
在现实世界中,我们通常采取一些策略,试图跳出局部极小的局限性,不断接近我们的整体最小策略
- 多个神经网络以多组不同同参数值的多个神经网络进行初始化trainning最后,以最小误差为最终参数
- 使用模拟退火技术,模拟退火在每一步都以一定的概率接受比当前解决方案更糟糕的结果。随着时间的推移,接受次优解的概率逐渐降低
- 使用随机梯度下降,与标准梯度下降法不同,在计算梯度时添加了随机元素