zoukankan      html  css  js  c++  java
  • 《Python神经网络编程》的读书笔记

    全书总评

    • 书本印刷质量:4星。纸张是米黄色,可以保护眼睛;印刷清楚,文字排版整洁,基本没有排版过程中引入的错误,阅读不累眼睛。但是可能是Word排版,感觉数学公式的排版不是太好。
    • 著作编写质量:4星。简单,易懂,入门很好。可能是为了帮助读者克服对数学的恐惧,所以多用图来说明。但是,没有数学的神经网络本质上还是空中楼阁,过于淡化数学的作用反而使推导部分读起来费劲。
    • 著作翻译质量:3星。没有明显的问题,基本使用的都是业界常用词汇。其实给3~4星我都在犹豫,因为翻译本身没有错误,作者也不是靠机翻了事,但是作为一本入门图书,过于长的句子(英文表述的风格)使人经常会看着看着就从书中“出戏”了,影响思绪的连贯性。
    • 代码质量:4星。代码问题不大,还可以去GitHub下载。作者的GitHub,热心读者的GitHubCSDN-Blog
    • 总结:如果还想进一步了解神经网络,请移步《神经网络与机器学习》;如果想进一步了解Python,请稳步Python书籍总结。如果想进入机器学习的行业,还是找机会精读一遍《高等数学》、《线性代数》和《概率统计》吧,对于后期了解原理绝对是有好处的。

    读书笔记

    C01.神经网络如何工作?

    1. 计算机能干啥?打游戏、听音乐、看视频,还可以图像识别、知识推理等等。
    2. 预测机能干啥?不是程序员教的知识,而通过学习得到的知识,用来处理未来的问题
    3. 分类器能干啥?对数据进行区分,例如:苹果与香蕉,通过学习,找出它们的特征,从而学会分辨
    4. 分类器如何训练(学习)?先学习正确的知识,如果结果不对就调整记忆,最终全部答对正确的知识
    5. 分类器如何解决更为复杂的问题?多个学习单元一起学习
    6. 神经元的基本原理:计算机的神经网络只是生物神经元的仿真,或者叫数学解释,或者叫计算机模拟。
    7. 信号在神经网络中如何流动?
    8. 怎样简化神经网络的表示:矩阵。
    9. 使用矩阵乘法来表示三层神经网络的例子。
    10. 神经元的权重如何学习?基本原理
    11. ★反向传播误差算法(11~13)
      • 多层神经网络的误差是如何反向传播的?
      • 误差如何反向传播到更多层中?
        • 简单的3层神经网络:输入层+隐藏层+输出层,误差如何在隐藏层中传播来修改权重。
      • 如何使用矩阵乘法来描述反向传播误差?
    12. 如何更新神经网络的权重?数学算法(梯度下降)
    13. 权重更新的具体案例。
    14. 神经网络训练的过程:输入(准备训练数据)、权重(随机初始化)、输出(误差函数优化)

    C02.使用Python进行DIY

    1. Python是啥?一种非常利于阅读的编程语言,适合非计算机专业人员学习和使用
    2. IPython是啥?交互式Python。
    3. Python怎么用?就是帮你基本了解Python,方便后面看Python代码。
    4. 使用Python制作神经网络:进入正题了,跟着作者输入一遍代码,可以加深理解。
    5. 数据集MNIST:进入真正的实用项目了。
      1. 输入完整的代码;(有地方看不懂,是因为书中给出的Python说明远远不够,但是别在意这些不懂,继续前进,先明白神经网络可以干啥)
      2. 用小的数据集训练和测试神经网络,会发现对于复杂一点的样本就无法正常识别了;
      3. 使用完整的数据集训练和测试神经网络,这次耗时有点长,但是准确率会大大提升,看样子多花点时间学习是值得的;
      4. 一点改进:调整学习率,会发现效果不一样了,为什么呢?具体原理可以参考《神经网络与机器学习》
      5. 一点改进:多次运行,同样的训练数据再学习一次还能够提高识别率,但是如果次数过多会出现过拟合,参考《神经网络与机器学习》;
      6. 一点改变:调整隐藏层的节点数目,可能会影响识别率(P146,图),参考《神经网络与机器学习》;

    C03.开拓思维

    1. 自己创造数据:用画图软件创造一个图片用于识别,图片大小必须是(28*28)像素格式的;
    2. 神经网络的秘密:
      1. 神秘的黑盒子:像人一样有冗余能力,少量的损失只会影响精度,不会完全失去能力;
      2. 逆向查询:把输出变输入,输入变输出,可以发现神经网络到底从数据中学到了什么;
    3. 创建新的训练数据:真实情况下数字可能是扭曲的、旋转的、不规范的,创造这样的数据试试网络的识别率,想想识别不出的原因?

    附录A。微积分简介

    如果你对大学数学心存恐惧,那么试着读读这本书中的微积分介绍,可能会帮助你理解极限和求导,甚至还有高阶的链式法则,至少让你心里觉得原来高等数学没有想像中的那么难。

    当然,学习数学依然还是考验毅力的一项活动,一本数学书看个一年都是常事,数学专业的同学常说“实变函数学十遍,泛函分析胆泛寒”。

    附录B。树莓派

    这个对于中国同学似乎用处不大,中国人民突然变得钱多多起来,电脑已经是上大学的标配了。当然如果有时间,试着玩玩还是很有趣的,而且树莓派的应用范围非常广泛,学了不吃亏。

  • 相关阅读:
    EBS OAF中如何在多行表中实现附件功能
    ubuntu12.04常见错误总结
    java InputStream使用
    免费送光盘了
    【原创】JAVA8之妙用Optional解决NPE问题
    【原创】分布式之redis复习精讲
    【原创】分布式之数据库和缓存双写一致性方案解析
    【原创】分布式之消息队列复习精讲
    【原创】分布式之延时任务方案解析
    【原创】自己动手循序渐进实现观察者模式
  • 原文地址:https://www.cnblogs.com/zhuyx/p/10557757.html
Copyright © 2011-2022 走看看