简单的三层神经网络

本文介绍了手动编写一个简单的三层神经网络的过程,包括设置各层激活函数(sigmoid和softmax)、反向传播的推导,以及代码实现。通过对比,展示了与感知机的区别,并分享了代码和数据集的下载链接,尽管实验结果的准确率不高,但增加训练数据可能提高性能。

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

简单的三层神经网络

上一篇是手动编写了一个感知机,对手写数字的数据集进行识别训练。趁热打铁,手动编写了一个三层的简单神经网络再次对手写数字的数据集进行识别训练,来看看最后的识别率能够达到什么程度。有兴趣的可以从这里下载上一次的感知机代码和数据集(收费是自动设置的,好像没有办法更改……有积分就直接下载吧,哈哈)
优快云下载链接
再附上一个百度云盘链接:
百度云盘链接
提取码:zd0h
和上一次的感知机相比,三层神经网络多了一层的隐藏层,所以我们重新的设计一下各层的激活函数,以及重新推导一下反向传播的推导公式。

设置各层的激活函数

从输入层到隐藏层的激活函数设置为sigmoid函数(不要问我为什么,对于这个函数情有独钟,可能和从高中就喜欢生物学有关吧,看见它就好像看见了生物中的神经元激活的样子……),隐藏层到输出层的激活函数我设置为softmax函数。因为最后的结果是统计每一种数字的可能性,加一层softmax函数可以将最后的数字的可能性作归一化处理,用百分数的形式表示每一个数字的可能性,最后选出可能性最大的数字。
正向的推导如下图所示(手写方便……),并对误差函数进行设置:
在这里插入图片描述

反向传播的推导

话不多说,直接上公式推导的图片:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值