【学习笔记】Make Your Own Neural Network (Tariq Rashid)

本文是基于《Make Your Own Neural Network》的学习笔记,介绍了神经网络的基础知识和Python3.5实现,特别是在MNIST数据集上的应用。讨论了网络结构、学习率、训练次数对性能的影响,以及如何确定隐层神经元数量。书中还涉及反向运行网络以理解其内部工作机制。适合初学者,提供清晰的代码示例。

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

英文版《Make Your Own Neural Network 》

目标:了解神经网络基础,Pyhton3.5实现,轻松动手实现。

最近的学习内容,全书200多页,英文版的非常容易读,作者的语言很幽默直白。了解神经网络的基础、并且用Python3实现。在MNIST手写数据集上进行训练测试。

概要

       介绍神经网络的基础,以及用python3.5实现一个三层的网络,对于一个具体的手写数据集MNIST进行训练以及测试。其中包括网络节点数的设计、激活函数的选择等。对于网络达到的效果进行评价,创造了一个分类准确率。之后,对于网络的性能提升做出思考(改造网络的方式):1)调整学习率learning rate 2)增加训练次数epoch 3)改变网络的结构。对比了这三个参数的影响。

思考神经网络的问题:比如隐层神经元个数的确定、网络的层数等等,初始化权值矩阵的随机性等。明确整个网络的训练过程是随机的。

最后,探讨了网络内部的东西,反向运行网络,输出结果看到网络记住的是什么东西。直观上感受网络如何做到分类工作。

More Fun:对于数据集进行拓展,比如自己手写的数据集、添加噪声的数据集、以及旋转变化后的数据集,我们的神经网络也能达到很好的效果^-^

附录内容(选择性学习):A.关于微积分。求导、以及链式求导法则的理解。B.利用树莓派编程。

学习问题总结

【思考几个问题】

1.神经网络的基本内容:输入层、隐层、输出层。每一层中节点的个数->与输入的样本有什么样的关系?输入的数据量是否影响着隐层神经元的个数?事先如何确定隐层神经元的个数?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值