神经网络基础
BP网络&RTF网络的比较
神经元(M-P神经元 1943年提出)
神经元接受其他神经元传来的信号(带权重),并对其信号用激活函数进行处理并产生
神经元输出。如下:
原理想的神经元***激活函数***为下图a所示的0-1阶跃跳动函数,但是其不光滑不连续,故实际用下图b的激活函数。
1.单层网络(单层感知器)
输入层+输出层,无隐藏层
在输出层对函数进行激活处理。也就是说在送入数X算出输出值Y*后,反向去调整权重w和阈值b
其中系数的取值为一个小正数,如0.1
缺点:该网络只可解决线性可分问题,无法解决其他的非线性问题或者不可分问题。
2.线性神经网络/多层网络
输入层+隐藏层+输出层 :隐藏层和输出层的神经元都有激活函数
可以解决非线性问题 。如异或问题。
特点:
- 隐藏与输出层包含神经元功能,输入层的神经元仅仅是接受输入。
- 每层神经元与下一层神经元完全互联,神经元之间不存在同层连接和跨层链接
3.BP神经网络(error BackPropagation)
误差逆向/反向传播算法,可用于多层前馈神经网络和训练递归神经网络等
训练集D={(x,y)…}送入系统后,输出值y同y的差值较大,不满足要求,此时就再利用反向算法回去一层一层的群更新权重w和阈值b。直至输出值y满足要求为止。
- 标准BP算法:进行多数次的迭代,即没送进去一个数据进行一次反馈数据更新。
- 累积BP算法:针对累计误差最小化,在整个训练集D全部被读取后才对参数进行更新。
- 【注:】标准BP算法的效率相较与累积BP算法低。但是当累积误差下降到一定程度后下降就超级缓慢,此时用标准BP算法就更好了,尤其是数据集D超级大的时候。
过拟合现象:训练误差持续降低,但是测试误差却可能上升。
【解决方法】
- 早停(early stopping):数据分为训练集和验证集。训练集用来积算、更新数值,验证集用来估计误差。如果训练集误差降低但是验证机误差升高,则马上停止训练并返回最小验证集误差的连接权等值。
- 正则化(regularization):在误差目标函数中增加一个用于描述网络复杂的部分。
这样训练过程偏好比较小的权值,网络输出更光滑,从而缓解过拟合
原:均方误差
现:误差函数中增加连接权的平方和