python手写神经网络

本文介绍了使用Python从头编写神经网络的基本过程,包括神经网络原理的简单说明,特别是单个神经元的作用和非线性激活函数。文章还详细探讨了梯度下降在反向传播中的应用,并分享了一段三层神经网络的代码实现,强调了参数设计和理解数学原理的重要性。最后,展示了在鸢尾花分类任务上的应用结果。

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

python手写神经网络

神经网络原理简单说明

要理解神经网络最开始应该理解的一个概念就是——单个神经元。这个神经元是非线性的,它可以是ReLu函数,sigmoid函数等多种的形式,它的作用就是,帮助线不要是直线,因为如果是直线的话,之后需要叠加组合就很难描绘多种的形状,难以完成拟合任务。

而神经网络就是由多个这样的神经元组合而成的,同一层的神经元是对于前一层数据的组合判断(同一层的每一个神经元都有自己不同的组合方式),激活函数对输出的组合计算值进行了包装,再进入下一层进行组合和处理。

精华的部分在于迭代的过程——梯度下降求导。具体的求导为反向传播,简单的理解其实就是复合函数的求导。

不过关于神经网络的具体细节,真的无法给出很具体很具体的解释,要真的解释只能说是梯度下降的作用了。

编写神经网络代码以及代码说明

我设计了一个三层的神经网络,其中在编写的时候,因为每一层的维度和系数矩阵是对应的,因此将每一层的神经的个数用变量来表示,方便之后的调节

参数设计

# 设置输出层神经元个数
k1 = 4
k2 = 8
k3 = 1
# 初始化系数矩阵
W1 = 2*np.random.random((k1,k0)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值