“一种难以解释的黑箱模型”
一般使用Sigmoid(x) = 1/(1+ e^-z)作为神经元激活函数
感知机由两层神经元组成,输入层接收外界输入信号后传递给输出层,输出层是M-P神经元
单层感知机能解决线性可分的 与,或,非问题,但不能解决非线性可分的抑或
多层神经网络: 多层前馈神经网络
前馈并不意味着网路中的信号不能向后传,而是指网络拓扑结构中不存在环或回路
误差拟传播算法(BackPropagation)
最小化训练集上的累积误差,假设样本有N个,每一轮迭代进行N次参数调整
迄今为止最成功的神经网络学习算法
BP算法基于梯度下降策略,以目标的负梯度方向对参数进行调整,根据链式法则推导
详见西瓜书P103
学习率控制了算法每一轮的更新步长,太大容易振荡,太小则收敛过慢
累积BP算法
标准BP算法每次针对一个训练样例进行权重调整,如果基于累积误差最小更新规则,得到累积BP算法。
标准BP算法的缺点:参数更新频繁,可能出现抵消现象,因此需要大量迭代
累积BP算法的做法是一轮迭代只作一次参数调整
但在很多任务中,累积误差下降到一定程度后,进一步下降会非常缓慢,这时标准BP往往会更快获得较好的解,尤其是在训练集D非常大的时候
Hornik证明,只需一个包含足够多神经元的隐层,M-P神经网络就能以任意精度逼近任意复杂度的连续函数。
用“试错法”调整隐层神经元的个数
BP神经网络经常过拟合,其训练误差持续下降,但测试误差却有可能上升。
两种策略:
‘’早停” :若发现训练误差下降但测试误差上升,则停止训练
”正则化”:类似于L1,L2范数,在误差目标中增加一个用于描述网络复杂度的部分,如连接权与阈值的平方和
使得E = λ/m*ΣEk + (1-λ)Σwi^2
全局最小与局部最小
一些策略来接近全局最小:
1.以多组初始参数,训练多个神经网络取最优
2.使用模拟退火,在每一步都以一定概率接收比当前解更差的结果,接收次优解的概率随着时间的推移而逐渐降低,从而保证算法稳定
3.使用随机梯度下降
4.遗传算法
网友评论