手写python神经网络

栏目: 编程工具 · 发布时间: 6年前

内容简介:如果你已经读过了传统机器学习的书,相信你下一步就会对神经网络和深度学习产生兴趣,但却往往苦于不知道该从何入手。在这里我推荐给大家一本神经网络的好书给大家,对于没有任何数学基础的同学可以完全看懂整个数学证明原理,并且能实现出神经网络模型,而且本书非常轻薄,读起来就像故事一样:

如果你已经读过了传统机器学习的书,相信你下一步就会对神经网络和深度学习产生兴趣,但却往往苦于不知道该从何入手。

在这里我推荐给大家一本神经网络的好书给大家,对于没有任何数学基础的同学可以完全看懂整个数学证明原理,并且能实现出神经网络模型,而且本书非常轻薄,读起来就像故事一样:

手写 <a href='https://www.codercto.com/topics/20097.html'>python</a> 神经网络Python神经网络编程 》。

推荐学习方法

先读附录,把其中的微积分知识学习一下,然后再开始从头学习。

对于书中所有的证明,务必争取看懂,不要跳过。

唯一绊住我的地方就是梯度下降的公式推导,其中有一处Σ求和公式略带误导性,其关键在于微分公式中唯一的变量只有Wij(特指某一个权重),而其他的权重都是已知量,因此可以消解。

实现关键

神经网络的训练分为3步:

  • 信号前馈:根据权重矩阵,从输入层开始,逐层传递信号到输出层。
  • 误差反向传播:先计算输出层的误差,然后根据权重矩阵,反向逐层传播误差到各个层的神经元。
  • 梯度下降调整权重:因为计算出了所有层的每个神经元的误差,因此根据误差与权重之间的微分公式,可以根据误差值和当前权重算出此时的斜率,进而对权重进行一定的下降调整,这就是学习权重的过程,其目的就是误差最小化,当然这里需要通过学习率调节学习的速度。

我的实践

我的神经网络代码在这里: https://github.com/owenliang/NeuralNetwork

对于官方测试集的识别率接近97%左右,但对我个人手写的识别率要差很多,相信只有更高级的卷积模型才能进一步改善这个问题。

我另外改造了一版支持多个隐藏层的神经网络模型,但是发现增加更多的隐层并没有带来性能上升,反而精度下降了,据说这是因为模型过于复杂,而数据量太小并且过于简单,而这个更多隐层的神经网络应该就叫做深度神经网络了吧。

总结

读完这本书的感受是,理解神经网络一定要理解其数学原理,而如何把复杂的数学原理讲简单,这就是这本书的价值,可见作者水平之高。

博主无私的分享着知识,你愿意送他一顿热腾腾的早餐吗?

手写python神经网络

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

图解服务器端网络架构

图解服务器端网络架构

[日] 宫田宽士 / 曾薇薇 / 人民邮电出版社 / 2015-4 / 79.00元

本书以图配文,详细说明了服务器端网络架构的基础技术和设计要点。基础设计是服务器端网络架构最重要的一个阶段。本书就立足于基础设计的设计细分项目,详细介绍各细分项目的相关技术和设计要点。全书共分为5章,分别讲述进行物理设计、逻辑设计、安全设计和负载均衡设计、高可用性设计以及管理设计时所必需的技术和设计要点。一起来看看 《图解服务器端网络架构》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具