BP神经网络从推导到实现

1.BP神经网络结构与原理

BP神经网络是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的 输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断 调整网络的权值和阈值,使网络的误差平方和最小。

2、BP神经网络公式推导

 4、BP神经网络的改进和第二种实现

4.1 BP神经网络改进

4.1.1交叉熵代价函数“严重错误”导致学习缓慢,如果在初始化权重和偏置时,故意产生一个背离预期较大的输出,那么训练网络的过程中需要用很多次迭代,才能抵消掉这种背离,恢复正常的学习。

(1)引入交叉熵代价函数目的是解决一些实例在刚开始训练时学习得非常慢的问题,其主要针对激活函数为Sigmod函数

(2)如果采用一种不会出现饱和状态的激活函数,那么可以继续使用误差平方和作为损失函数

(3)如果在输出神经元是S型神经元时,交叉熵一般都是更好的选择

(4)输出神经元是线性的那么二次代价函数不再会导致学习速度下降的问题。在此情形下,二次代价函数就是一种合适的选择

(5)交叉熵无法改善隐藏层中神经元发生的学习缓慢

(6)交叉熵损失函数只对网络输出“明显背离预期”时发生的学习缓慢有改善效果

(7)应用交叉熵损失并不能改善或避免神经元饱和,而是当输出层神经元发生饱和时,能够避免其学习缓慢的问题。

4.1.2 4种规范化技术

(1)早停止。跟踪验证数据集上的准确率随训练变化情况。如果我们看到验证数据上的准确率不再提升,那么我们就停止训练

(2)正则化

(3)弃权(Dropout)

(4)扩增样本集

4.1.3更好的权重初始化方法不好的权重初始化方法会导致出现饱和问题,好的权重初始化方法不仅仅能够带来训练速度的加快,有时候在最终性能上也有很大的提升。

5.遇到的问题

将expand_mnist.py这个文件中

 import cpickle改为import pickle as pickle

cpickle改为pickle

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值