MATLAB手撕神经网络实现手写数字的识别

前面简单介绍了神经元,并讲解了数据的前向传播,今天将为大家简单介绍一下神经网络的误差反向传播算法,并通过神经网络算法实现手写数字图片的识别。

一、反向传播算法

神经网络的反向传播算法是神经网络的精髓之处,通过反向传播算法调整权重和阈值,实现代价函数最小化。

下面从数学公式推导反向传播算法:

假设输入数据为Xi,输入层与隐含层之间的权重为Wij,阈值为Bj,隐含层值为Mj,隐含层值为之间的权重为Wjk,阈值为Bk,实际输出值为Ok,期望值为Yk。

首先先介绍一下神经网络的代价函数:输出值与期望值之间的差值,即为E=Yk-Ok。

我们想通过调整权重与阈值使代价函数最快地达到最小值,因此我们就想到了数学中讲到的梯度,梯度是函数上升速度最快的方向,而梯度的反向就是函数下降最快的方向,梯度就是我们高数中所学的求导,因此我们可以通过求解代价函数对各个参数的导数,找到代价函数下降最快的方向,就是神经网络中调整权重与阈值的方法:梯度下降法。

神经网络中我们通常通过链式求导法则求解各个参数的调整量,下面介绍数学推导过程:

以推导Wjk为例:

直接求导上式比较麻烦,因此我们通过链式求导法则进行简化:

 其中前一项可以简化为:

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值