MATLAB手撕神经网络实现手写数字的识别——神经元介绍

15 篇文章 1 订阅
2 篇文章 0 订阅

最近对神经网络比较感兴趣,于是开始了神经网络的学习,首先神经网络最基础的就是BP神经网络,后面就为大家介绍通过BP神经网络实现手写数字识别。

首先简单详细介绍一下BP神经网络:BP(back propagation)神经网络是1986年由Rumelhart和McClelland为首的科学家提出的概念,是一种按照误差逆向传播算法训练的多层前馈神经网络,是目前应用最广泛的神经网络。

BP神经网络的分析过程主要分为两个阶段:

第一阶段是信号的前向传播,从神经网络的输入层输入,经过隐含层,最后在输出层输出结果;第二个阶段就是误差的反向传播,通过构建误差函数,通过梯度下降原则,不断修正神经元中的权重和偏置值,最终使神经网络的效果达到最优。

神经元介绍

介绍BP神经网络,首先应该介绍一下其组成的基本单元——神经元

上图所示的就是一个简单的神经元,从图中可以看出一个神经元周围有很多突触与其他神经元相连,并接受来自其他神经元的信号,该神经元对这些信号以不同的权重系数进行累加后,经过激活函数激活当前神经元,产生信号传递给与它相邻的下一个神经元。数以万计个神经元相连便形成了复杂的神经网络,可以实现非常复杂事情的处理。

图中Y即为从其他传来的信号,W为每个突触的权重系数,b为该神经元的偏置,该神经元将与其连接的所有突触传来的信号按照权重系数累加起来:

如果该神经元将y_out结果作为输出传给下一个神经元的话,那么整个神经元就相当于一个线性系统,很多非线性的问题将无法解决,限制神经网络的应用。因此研究学者们引入了激活函数将该神经元(非线性函数)进行激活,从而实现非线性问题的解决,常使用的激活函数有:sigmoid函数、双曲正切函数和softmax函数等,不同的激活函数效果不同。

①我们在手写数字识别项目中使用的激活函数是sigmoid激活函数,其函数表达式如下:

 下面是sigmoid激活函数的函数图:

②softmax激活函数的表达式为:

 下面这个图(来源自网络)可以很清楚的讲解softmax函数是怎么计算的:

 ③ReLu激活函数(线性整流激活函数)其表达式为:

 下面是ReLu激活函数的函数图:

到此为止,我们对神经网络的基本单元——神经元,有了初步的了解,后面的博客我将详细介绍多个神经元连接起来组成的BP神经网络,并通过BP神经网络实现手写数字的识别。

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值