Matlab实现图像识别(五)

这篇博客介绍了如何在Matlab中实现图像识别,主要聚焦于深度学习中的后向传播算法。通过单个更新和批量更新的方法调整参数。后向传播算法涉及误差梯度计算,其中误差e是输出层与目标标签差值的平方和,导数计算包括激活函数的导数及权重的梯度。对于输出层,权重w的更新公式为w = w - a*de/dw,其中a为学习率,de/dw由链式法则计算。对于隐含层,计算相对复杂,但同样遵循后向传播原理。
摘要由CSDN通过智能技术生成

先实现单个更新,得出结果之后,再实现批量更新。

后向传播算法为:

w = w - a*de/dw;

其中,w就是那个参数,e代表误差,a是一个步长,乘以这个导数就变成了实际的一小段,减去它就是了。这个导数这么算:

de/dw = de/dy2 * dy2/dy1 * dy1/dw

其中,e = 1/2 * sum((label - output).^2); 其中,label和output都是101维的向量,它们相减后就是单个误差,平方后去掉负号再全部加起来就是单一个数字了,因此e只是1个数字,1/2是求导用的,其实不用管。de/dy2只是一个简单的二次函数求导,求出这个导函数后用y2的值带进去即可。

然后,设y2 = output,y2 = sigmoid(y1),也就是y2是y1激活来的,那么dy2/dy1就是一个激活函数的导,然后把y1的值带进去即可,因此我们需要保存y1的值,以供这个时候用。

然后,是dy1/dw,这个dy是w1x1+w2x2+…+wnxn+b,但是针对单一的wi而言,它的导数就是xi,也就是输入值,因此这回就是简单的x序列就可以了。

所以输出层的求导公式为:

w2_d = -1.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值