从零开始学深度学习——2 卷积神经网络基础补充

本文详细介绍了三层BP神经网络中误差的计算方法,包括输出层的计算、损失函数的选择(如二分类或多分类)、误差的反向传播以及常见优化器如SGD、SGD+动量和Adam的原理。着重讨论了如何通过动量和自适应学习率来改进梯度更新过程。
摘要由CSDN通过智能技术生成

误差的计算

这里以三层的BP神经网络为例来讲解

第一层就是我们的输入层 两个节点分别是x1和x2

中间的就是隐层,这里我们有三个节点,比如b1节点为例子他的参数就是w_{11}^{(1)}

上下标的意思分别是:下标的11的第一个1代表的是上一层的第几个节点,这里是第一个节点。第二个1代表的是本层中的第几个节点这里是第一个。上标代表的是b1,b2,b3这第一层.

中间的这个则是激活函数

这里我们的输出的计算在第一课也讲过,就是x1×对应的一个权重+x2×对应的一个权重+一个偏置,再用上我们的激活函数就可以

最后一层激活函数统一用的是softmax这里就没有写出来了

损失的计算

比如我们有两类,猫跟狗,我们可以使用softmax输出,不是猫就是狗
但要是是人跟男人那就不满足概率分布了,因为既可能归为男人也可能归为人

所以就用二分类问题了

大部分情况还是多分类问题

这里的H就是LOSS,就是我们损失的一个公式

误差的反向传播

在右边,我们要求w_{11}^{(2)}的误差梯度,也就是求他的偏导,根据链式求导法则

看不懂的话,可以对应一下基本函数导数表

权重的更新

根据上面的计算,我们可以得到后面的权重更新

但这里我们所求的损失梯度的方向是否就是我们指向全局最优的一个方向呢,也就是说指向损失减小最快的一个方向呢?

一般都是分批次进行训练  比如每次取32张图片进行训练 那么batch就是32

优化器

优化器的作用是为了使网络更快的得到一个收敛

SGD:随机梯度下降法

w_{t+1}=w_{t}-\alpha \cdot g(w_{t})

w_{t+1}就是我们更新后的参数w_{t}就是更新前的参数

缺点:1、比如训练集中,样本的标注是错误的,那么它所求出来的损失梯度就会有问题,会出现梯度方向求出来产生变化。

2、可能就陷在某个局部出不来了

在原有的基础上加了一个动量部分v_{t-1},也就是说它除了计算当前的一个梯度之外,他还会将之前的梯度加入进来

比如在这里可能就不会考虑下一次的方向是g_{t+1}而是g_{t+1}^{*},这样就会有效抑制样本噪声的干扰

这里的S_{t}就是对我们的损失梯度进行平方求和,这样他的分母在训练过程中会越来越越大,这样就会导致越来越小,这样就是达到自适应学习率的目的。但他有个缺点就是有可能学习率下降的太快,可能还没收敛就停止训练。

比上面的优化器多了两个系数

\hat{m}_{t}是对一阶动量进行调整

\hat{v}_{t}是对二阶动量进行调整

一系列优化器,优化速度的快慢

常用的就是SGD、SGD+Momentum和Adam

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值