Python与人工神经网络(15)——结语和前言

来源:互联网 发布:地牢猎手5淘宝刷钻 编辑:程序博客网 时间:2024/05/27 18:17
这是Python与人工神经网络的最后一期,也恰好如开篇时所说,写了15期。本系列是我读Michael Nielsen的书《Neural Networks and Deep Learning》的半翻译半笔记的产物,也是《教女朋友学Python》的衍生品。

再一次介绍原作者Michael Nielsen:量子物理学家,科技作者,程序员。再一次贴原作的地址:http://neuralnetworksanddeeplearning.com/index.html。再一次贴原作者的个人的地址:http://michaelnielsen.org/ 。用三个再一次表示对原作者的敬意和感谢,他写了这么好的书,还免费提供给我们。他在自己的个人网站中说,他致力于能够帮助人们思考和创造的工具和方法的研究,诚哉斯言。另外作者还有两本书,《Reinventing Discovery: The New Era of Networked Science》和《Quantum Computation and Quantum Information》,美亚上有卖。

本系列从第二期开始正式介绍人工神经网络,并拟定了一个目标:识别MINST数据集中的手写数字。用第三期和第四期两期的时间,初步实现了一个浅层次的神经网络,使用了随机梯度下降算法和反向传播算法,最后的代码只有七十多行(不算注释),识别率可以超过96%。实现一个神经网络不算难,但是接下来花了五期(五、六、七、八、九)来优化他,包括使用交叉熵成本函数缓解训练变慢的问题,过渡拟合和各种正则化方法,接下来我们在代码中使用了L2正则化法应对过渡拟合的问题,最后对我们代码中没用到的神经网络优化技术做了一个简单的介绍。第十期算是打了个野,用一种可视化的方式来证明神经网络可以拟合各种函数,不过只有看作者的原文才能有真正的可视化,看我的文章只能是意淫的可视化。最后四期就是讲深度学习了,先说明了随机梯度下降算法在深度神经网络中的梯度不稳定性导致的深度神经网络难以训练的问题,随即引入了卷积神经网络用于MINST数据集的识别,然后用代码实现了他,实现的过程中使用了一个机器学习库——Theano,按作者的数据,最终实现了高达99.67%的识别率(因为用CPU训练太慢,我到最后都没配成功Theano的显卡运算环境,所以我没有训练结果),最后照例简单介绍了一些我们代码中美亚涉及到的其他深度神经网络技术,还顺便转述了一下作者对未来的想法。

由于我一直钟情于微软阵营,过程中所有的代码都是用微软的Visual Studio Code敲的,所以接下准备学习微软的机器学习库——Computational Network Toolkit (CNTK),而不是之前用到过的Theano,所以将来不排除会出一个CNTK系的可能,不过目前这个系列就此打住,接下来将出一个科技综述系列——《我将进化成一条狗》

《我将进化成一条狗》系列的起源挺久了:在2016年4月21号,我在五谷鱼粉吃晚餐的时候,听到一个小姐姐问WIFI密码,卖鱼粉的阿姨递给她一张纸条,纠结了半天才发现那张纸条写的是支付宝账号。虽然是个乌龙,我当时就想,连WIFI密码和支付宝号码都分不清的老年人很明显很难理解支付宝转账的过程,却接受并信任了这种方式,信任了用支付宝付款的人,是不是说科技的发展让人更容易信任呢?至于之后怎么从这个大开脑洞,联想到狗,我就不记得了,总而言之,就是我当时发愿要写一本书,叫《我将进化成一条狗》。

写书呢,估计是有点难的,不过写个系列的文章应该还勉强办得到。由科技事件引发的,就来写一个科技综述吧。文章主要综述当前的热点科技,会引用一些最新的报告和论文,每期可能是一些技术,一些科技事件,也有可能仅仅是分析论文或者报告,形成一个综述。以我的文笔,这些综述前期看来可能比较零散,但确实是有一个主线的——“我将进化成一条狗”

最后,本系列依然是四天更新一次,加上《刘小玩美食教程》,公众号两天更新一次。敬请期待下一期:我将进化成一条狗——两则报告

欢迎关注我的微信公众号获取最新文章:


1 0