5.1神经元模型
神经网络的定义:神经网络是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实世界物体所做出的的交互反应。
M-P神经元模型:神经元接收到来自n个其他神经元传递过来的输入信号,这些输入信号通过带权重的连接进行传递,神经元接收到的总输入值将与神经元的阈值进行比较,然后通过“激活函数”处理以产生神经元的输出。下图为西瓜书中M-P神经元模型示意图。
激活函数:典型的激活函数有Sigmoid函数,它把可能在较大范围内变化的输入值挤压到 (0,1)输出值范围内,也称为“挤压函数”。
5.2感知机与多层网络
感知机模型:感知机由两层神经元组成,输入层接收外界输入信号后传递给输出层,输出层是M-P神经元。
感知机的学习规则:对训练样例(x,y),若当前感知机的输出为,则感知机权重进行如下调整:
其中η∈(0,1)称为学习率。
然而,感知机只拥有一层功能神经元,学习能力有限,不能解决非线性可分问题,这时需要考虑多层神经网络模型。
多层前馈神经网络:输出层与输入层之间的一层神经元称为隐层或隐含层,与输出层一样也拥有激活函数。每层神经元与下一层神经元全互连,神经元之间不存在同层连接,也不存在跨层连接,该神经网络结构称为“多层前馈神经网络”。
输入层接收外界输入,隐层与输出层等功能神经元对输入特征进行加工,输出层输出最终结果。神经网络的学习过程是指根据训练数据不断调整神经元之间的连接权与神经元中的阈值。
5.3误差逆传播算法
BP算法的基本原理:先将输入示例提供给输入层神经元,然后逐层将信号前传,直到产生输出层的结果;然后计算输出层的误差,再将误差逆向传播至隐层神经元,最后据隐层神经元的误差来对连接权和|阈值进行调整。该法代过程循环进行,直到达到某些停止条件为止。
输入:训练集;
学习率
过程:
(1) 在(0,1)范围内随机初始化网络中所有连接权和阈值;
(2) repeat
(3) for all do
(4) 根据当前参数和计算当前样本的输出;
(5) 根据计算输出层神经元的梯度项;
(6) 根据隐藏层神经元的梯度项;
(7) 更新连接权与阈值;
(8) end for
(9)until 达到停止条件
输出:连接权与阈值确定的多层前馈神经网络
BP算法学习策略:BP 算法基于梯度下降 (gradient descent)策略, 以目标的负梯度方向对参
数进行调整,目标是最小化训练集D上的累积误差。
缓解过拟合问题的策略:
1.早停(early stopping):将数据分为训练集与验证集,训练集用于计算梯度、更新连接权重和阈值,验证集用于评估误差,若在训练过程中,训练集误差降低,而验证集误差升高,则停止训练,同时返回具有最小验证集误差的连接权和阈值。
2.正则化(regularization):在误差目标函数中增加一个用于描述网络复杂度的部分,例如连接权重与阈值的平方和,则误差目标函数改变为
其中λ∈(0,1)用于对经验误差与网络复杂度这两项进行折中,常通过交叉验证法来估计。
5.4全局最小与局部最小
在现实任务中,通常采取以下策略尝试“跳出”局部最小,进一步接近全局最小:
1.以多组不同参数值初始化多个神经网络,按标准方法训练后,取其中误差最小的解作为最终参数。这种方法相当于从多个不同的初始点开始搜索,使得可能陷入不同的局部极小,从中选择有可能获得更接近全局最小的结果。
2.使用 "模拟退火"技术。模拟退火在每一步都以一定的概率接受比当前解更差的结果,从而有助
于 "跳出"局部极小。在每步迭代过程中,接受"次优解"的概率要随着时间的推移而逐渐降低,从而保证算法稳定。
3.使用随机梯度下降。与标准梯度下降法精确计算梯度不 同, 随机梯度下降法在计算梯度时加入了随机因素。即便陷入局部极小点,它计算出的梯度仍可能不为零,这样有机会跳出局部极小继续搜索。