专栏首页算法channelPython神经网络| 一篇很棒的 手写字识别 实战

Python神经网络| 一篇很棒的 手写字识别 实战

题图:annie-spratt-96525-unsplash

这是第 203 篇原创

建议阅读时间:3~5分钟

如果对您有帮助,欢迎点赞和转发

优秀的知识分享氛围,需要你我共同努力。

0 前言

感谢粉丝:疯琴,以下分享是疯琴在学习《Python神经网络》时的笔记,总结得很棒,感谢疯琴的乐于分享精神,相信系列笔记一定会帮助到大家。

1 多一个隐藏层,识别率会提升吗?

Python神经网络编程一书中,分别对比了:

  1. 不同学习率;
  2. 不同隐藏层结点数;
  3. 不同训练世代的模型学习效果;

没有对比更多隐藏层的模型。于是,我自己添加了一层隐藏层的代码,得出的训练结果如下:

可见多一层隐藏层,学习效果不但没有提高,反而下降了。

相同训练世代,相同学习率的识别率,不同的隐藏层节点数与识别率关系:

10 * 10 < 20 * 30 < 20 * 20 < 30 * 20 < 30 * 30 < 50 * 50

关于这部分代码,请参考:

https://github.com/YngwieWang/NeuralNetwork/blob/master/annMnist_4layer.ipynb

2 增加样本数后,识别率会提升吗?

MNIST有6万条训练数据,书上为了获得更多的训练数据把每一条训练数据的图像分别顺时针、逆时针旋转了10度,这样就添加了两倍的训练样本。

使用这些数据,得出的结论如下:

  1. 当学习率为 0.2 时,加入旋转训练数据的模型,识别率反倒更低;
  2. 将学习率减小为 0.01 以后,增加旋转数据可以提高识别率;
  3. 通过学习率0.01和0.05两个模型进一步判断:学习率越小,增加旋转训练数据带来的学习率提高越多。

但,问题是很明显训练样本增多反而导致识别率下降。于是我怀疑我的代码有问题,下载了作者的代码跑,他是200个隐藏层结点、0.01的学习率跑了10个世代,github上他代码跑的结果是0.9754,我下载下来跑的是0.9779,然后我把我的代码改成一样的跑法用了2890.709569秒合48分钟,识别率是0.9777,看来代码没问题。

然后,我对比了一下10世代不用旋转数据的,识别率是0.9677,看来大样本要进行多世代的学习以后效果才显现,另外正如书上说的,样本量大了以后可以采用更小、更谨慎的学习步长,因此将学习率减少到0.01。

3 书中的一个问题

上一篇笔记中提到初始化权重的时候正态分布方差使用的是传入链接数也就是上一层结点数,而书上用的是当前结点数,这是个书中的错误。我在看github上的代码时,作者已经修正为上一层结点数了。

4 欢迎入群讨论

以上错误之处,有疑问的地方,或者待优化改进之处,欢迎公号内留言、微信群内提问作者。

微信群规定,群内严禁分享推文,只用于交流讨论。欢迎扫描群主微信,加入原创互助答疑 微信群。请注明:加群

本文分享自微信公众号 - Python与机器学习算法频道(alg-channel),作者:疯琴

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-06-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 2000字总结3种项目和面试中常用的集成学习算法

    俗话说,“三个臭皮匠,顶个诸葛亮”,多个比较弱的人若能有一种方法集中利用他们的智慧,也可以达到比较好的效果,这就是集成学习的思想。

    double
  • 强化学习(Reinforcement Learning)

    强化学习(Reinforcement Learning)是机器学习领域的三大分支之一,另外两种是我们熟知的监督学习,和非监督学习方法。

    double
  • 北大才女总结:机器学习的概念、历史和未来

    提起机器学习,我们不得不给机器学习下一个准确的定义。在直观的层面,如果说计算机科学是研究关于算法的科学,那么机器学习就是研究关于“学习算法”的科学,或者说,不同...

    double
  • 你陷入[舒适圈]的误区了吗?这才是提升高效学习的方法

    作者:zhouxu,腾讯互动娱乐事业群 舒适圈这个概念对于我们来说或许很熟悉,但也很陌生,我们有时候似乎对它有着一些误解。某些场合里,我们会听到“要跳出自己的...

    腾讯大讲堂
  • 多伦多大学最新版《机器学习导论》

    机器学习(ML)是一组技术,允许计算机从数据和经验中学习,而不是要求人类手工指定所需的行为。ML在AI的学术领域和工业领域都越来越重要。本课程提供了一些最常用的...

    肉眼品世界
  • 【Andrew Ng 机器学习】Week 1(一):基本概念和线代基础

    木东居士
  • 学习笔记:人工智能、机器学习和深度学习什么关系

    提到人工智能,很多工程师就会想到机器学习、神经网络或者深度学习。这几个概念有一定的区别,也有一定的关系。

    Lauren的FPGA
  • 元学习 – Meta learning

    深度学习:深度学习相比机器学习来说,在复杂问题上的效果更好,但是面对互相影响的问题或者连续问题时就无从下手了,智能处理一对一的映射问题;

    easyAI
  • 易忽略的强化学习知识之基础知识及MDP

    推荐阅读时间:8min~12min 主要内容:容易忽略的强化学习知识之基础知识及MDP 由于我对RL的期望挺大,很看好它的前景,故之后应该会写下一个系列的强化学...

    企鹅号小编
  • 机器学习的基本概念

    我发现,查阅和掌握机器学习基本概念的最佳方法是,回顾机器学习教科书的介绍章节,并观看典型的在线课程视频。

    人工智能资讯小编

扫码关注云+社区

领取腾讯云代金券