神经网络基本原理及Python编程实现

本文介绍了神经网络基本原理,包括生物神经网络、人工神经网络的构造和计算过程。详细阐述了神经网络的正向计算、反向传播误差以及权重更新方法。接着,通过Python编程实现了一个三层神经网络,利用MNIST数据集进行训练,测试结果显示,该神经网络对手写数字的识别准确率达到97%左右。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、神经网络基本原理

1.生物神经网络的简单原理

在生物神经网络中,每个神经元的树突接受来自之前多个神经元输出的电信号,将其组合成更强的信号。如果组合后的信号足够强,超过阀值,这个神经元就会被激活并且也会发射信号,信号则会沿着轴突到达这个神经元的终端,再传递给接下来更多的神经元的树突,如图1所示。

图片

图1 生物神经网络的简单原理

2.人工神经网络的基本原理

仿照生物神经网络,构建多层人工神经网络,每一层的人工神经元都与其前后层的神经元相互连接,如图2所示。在每个连接上显示了相关的连接权重,较小的权重将弱化信号,而较大的权重将放大信号。

图片

图2 人工神经网络的基本原理

对于神经网络中的单个神经元而言, 人工神经元的前半端(图3中红色虚线框)相当于生物神经元的树突,是输入端,用来接受多个神经元输出的信号并进行组合;人工神经元的后半端(图3中绿色虚线框)相当于生物神经元的轴突,是输出端,用来输出信号给接下来更多的神经元;前后端中间的分界线是激活函数,相当于生物神经元的阀值函数,用来对输入的组合信号判断是否达到阀值,如果达到阀值则该神经元激活,向输出端输出信号,否则抑制信号,不进行输出。

图片

图3 人工神经元的基本原理

因此,神经网络的基本原理是将神经网络的输出值y与训练样本中标定的真实输出值进行比较,计算出输出误差,之后再使用这个误差值来指导前后两层中每两个神经元之间连接权重的调整,进而逐步改善神经网络的输出值,直至与训练样本的真实输出值之间的误差达到很小,在设定的可容忍范围内为止。可以看出,前后两层中每两个神经元之间的连接权重就是神经网络需要进行学习的内容,对这些连接权重持续进行优化,才能使神经网络的输出越来越好,达到我们满意的结果。

3.神经网络正向计算输出

如上图2所示,输入信号从第一层(也就是输入层)进入神经网络后,不管自输入层以后到底有多少层,都可以使用以下两步来计算经过各

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值