《Python神经网络编程》的读书笔记
全书总评
- 书本印刷质量:4星。纸张是米黄色,可以保护眼睛;印刷清楚,文字排版整洁,基本没有排版过程中引入的错误,阅读不累眼睛。但是可能是Word排版,感觉数学公式的排版不是太好。
- 著作编写质量:4星。简单,易懂,入门很好。可能是为了帮助读者克服对数学的恐惧,所以多用图来说明。但是,没有数学的神经网络本质上还是空中楼阁,过于淡化数学的作用反而使推导部分读起来费劲。
- 著作翻译质量:3星。没有明显的问题,基本使用的都是业界常用词汇。其实给3~4星我都在犹豫,因为翻译本身没有错误,作者也不是靠机翻了事,但是作为一本入门图书,过于长的句子(英文表述的风格)使人经常会看着看着就从书中“出戏”了,影响思绪的连贯性。
- 代码质量:4星。代码问题不大,还可以去GitHub下载。作者的GitHub,热心读者的GitHub和CSDN-Blog
- 总结:如果还想进一步了解神经网络,请移步《神经网络与机器学习》;如果想进一步了解Python,请稳步Python书籍总结。如果想进入机器学习的行业,还是找机会精读一遍《高等数学》、《线性代数》和《概率统计》吧,对于后期了解原理绝对是有好处的。
读书笔记
C01.神经网络如何工作?
- 计算机能干啥?打游戏、听音乐、看视频,还可以图像识别、知识推理等等。
- 预测机能干啥?不是程序员教的知识,而通过学习得到的知识,用来处理未来的问题
- 分类器能干啥?对数据进行区分,例如:苹果与香蕉,通过学习,找出它们的特征,从而学会分辨
- 分类器如何训练(学习)?先学习正确的知识,如果结果不对就调整记忆,最终全部答对正确的知识
- 分类器如何解决更为复杂的问题?多个学习单元一起学习
- 神经元的基本原理:计算机的神经网络只是生物神经元的仿真,或者叫数学解释,或者叫计算机模拟。
- 信号在神经网络中如何流动?
- 怎样简化神经网络的表示:矩阵。
- 使用矩阵乘法来表示三层神经网络的例子。
- 神经元的权重如何学习?基本原理
- ★反向传播误差算法(11~13)
- 多层神经网络的误差是如何反向传播的?
- 误差如何反向传播到更多层中?
- 简单的3层神经网络:输入层+隐藏层+输出层,误差如何在隐藏层中传播来修改权重。
- 如何使用矩阵乘法来描述反向传播误差?
- 如何更新神经网络的权重?数学算法(梯度下降)
- 权重更新的具体案例。
- 神经网络训练的过程:输入(准备训练数据)、权重(随机初始化)、输出(误差函数优化)
C02.使用Python进行DIY
- Python是啥?一种非常利于阅读的编程语言,适合非计算机专业人员学习和使用
- IPython是啥?交互式Python。
- Python怎么用?就是帮你基本了解Python,方便后面看Python代码。
- 使用Python制作神经网络:进入正题了,跟着作者输入一遍代码,可以加深理解。
- 数据集MNIST:进入真正的实用项目了。
- 输入完整的代码;(有地方看不懂,是因为书中给出的Python说明远远不够,但是别在意这些不懂,继续前进,先明白神经网络可以干啥)
- 用小的数据集训练和测试神经网络,会发现对于复杂一点的样本就无法正常识别了;
- 使用完整的数据集训练和测试神经网络,这次耗时有点长,但是准确率会大大提升,看样子多花点时间学习是值得的;
- 一点改进:调整学习率,会发现效果不一样了,为什么呢?具体原理可以参考《神经网络与机器学习》
- 一点改进:多次运行,同样的训练数据再学习一次还能够提高识别率,但是如果次数过多会出现过拟合,参考《神经网络与机器学习》;
- 一点改变:调整隐藏层的节点数目,可能会影响识别率(P146,图),参考《神经网络与机器学习》;
C03.开拓思维
- 自己创造数据:用画图软件创造一个图片用于识别,图片大小必须是(28*28)像素格式的;
- 神经网络的秘密:
- 神秘的黑盒子:像人一样有冗余能力,少量的损失只会影响精度,不会完全失去能力;
- 逆向查询:把输出变输入,输入变输出,可以发现神经网络到底从数据中学到了什么;
- 创建新的训练数据:真实情况下数字可能是扭曲的、旋转的、不规范的,创造这样的数据试试网络的识别率,想想识别不出的原因?
附录A。微积分简介
如果你对大学数学心存恐惧,那么试着读读这本书中的微积分介绍,可能会帮助你理解极限和求导,甚至还有高阶的链式法则,至少让你心里觉得原来高等数学没有想像中的那么难。
当然,学习数学依然还是考验毅力的一项活动,一本数学书看个一年都是常事,数学专业的同学常说“实变函数学十遍,泛函分析胆泛寒”。
附录B。树莓派
这个对于中国同学似乎用处不大,中国人民突然变得钱多多起来,电脑已经是上大学的标配了。当然如果有时间,试着玩玩还是很有趣的,而且树莓派的应用范围非常广泛,学了不吃亏。
《Python神经网络编程》的读书笔记的更多相关文章
- 单元测试之道Java版——读书笔记
单元测试知道Java版读书笔记 首先我们必须要知道我们所写的代码,它的功能是什么,如果我们不了解代码的行为,那么也就无从测试. 我们测试的目的,是为了我们整个程序架构的稳定,代码其实就是欧文要实现功能 ...
- 《单元测试之道Java版》的读书笔记
总览 第2章 首个单元测试 第3章 使用JUnit编写测试 3.1 构建单元测试 3.2 JUnit的各种断言 3.3 JUnit框架 4. 测试什么? 5.CORRECT(正确的)边界条件 6.使用 ...
- 补习系列(8)-springboot 单元测试之道
目录 目标 一.About 单元测试 二.About Junit 三.SpringBoot-单元测试 项目依赖 测试样例 四.Mock测试 五.最后 目标 了解 单元测试的背景 了解如何 利用 spr ...
- 《深入java虚拟机》读书笔记之垃圾收集器与内存分配策略
前言 该读书笔记用于记录在学习<深入理解Java虚拟机--JVM高级特性与最佳实践>一书中的一些重要知识点,对其中的部分内容进行归纳,或者是对其中不明白的地方做一些注释.主要是方便之后进行 ...
- 《黑客攻防技术宝典Web实战篇@第2版》读书笔记1:了解Web应用程序
读书笔记第一部分对应原书的第一章,主要介绍了Web应用程序的发展,功能,安全状况. Web应用程序的发展历程 早期的万维网仅由Web站点构成,只是包含静态文档的信息库,随后人们发明了Web浏览器用来检 ...
- JAVA编程思想读书笔记(五)--多线程
接上篇JAVA编程思想读书笔记(四)--对象的克隆 No1: daemon Thread(守护线程) 参考http://blog.csdn.net/pony_maggie/article/detail ...
- JAVA编程思想读书笔记(四)--对象的克隆
接上篇JAVA编程思想读书笔记(三)--RTTI No1: 类的克隆 public class MyObject implements Cloneable { int i; public MyObje ...
- JAVA编程思想读书笔记(三)--RTTI
接上篇JAVA编程思想读书笔记(二) 第十一章 运行期类型判定 No1: 对于作为程序一部分的每个类,它们都有一个Class对象.换言之,每次写一个新类时,同时也会创建一个Class对象(更恰当的说, ...
- JAVA编程思想读书笔记(二)--容器
接上篇JAVA编程思想读书笔记(一) 第八章.对象的容纳 No1: java提供了四种类型的集合类:Vector(矢量).BitSet(位集).Stack(堆栈).Hashtable(散列表) No2 ...
- 《大型网站系统与Java中间件》读书笔记 (中)
前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 回顾上一篇: <大型网站系统与Java中间件& ...
随机推荐
- 第六周LINUX学习笔记
DNS服务 DNS:Domain Name Service //协议 实现:BIND(Berkeley Internet Name Domain) 监听端口: UDP:5 ...
- Windows Server 2016-Powershell加域并指定OU (二)
上章节提到通过netdom join加域并指定对应OU,本章再补充一例现成powershell加域并指定对应OU的脚本,便于大家工作中使用. $PlainPassword = P@ssw0rd $Us ...
- python3 字符编码与转码的理解
额...上通识课讲到了NLP12条,感觉讲的挺好的,照着抄一条先... 1,没有两个人是一样的 没有两个人的人生经验会完全一样,所以没有两个人的信念,价值和规条系统会是一样. 因此没有两个人对同一件事 ...
- 在docker私有仓库如何查看有哪些镜像?
搭建了docker私有仓库,上传了一些镜像,时间长了就会忘了有哪些镜像,在网上查了,有大佬是通过脚本查看的,多厉害! #!/usr/bin/env python#-*- coding:utf-8 -* ...
- 两篇文章带你走入.NET Core 世界:Kestrel+Nginx+Supervisor 部署上云服务器(二)
背景: 上一篇:两篇文章带你走入.NET Core 世界:CentOS+Kestrel+Ngnix 虚拟机先走一遍(一) 已经交待了背景,这篇就省下背景了,这是第二篇文章了,看完就木有下篇了. 直接进 ...
- FFmpeg开发实战(六):使用 FFmpeg 将YUV数据编码为视频文件
本文中实现的一个小功能是把一个YUV原始视频数据(时间序列图像)经过h264编码为视频码流,然后在使用mp4封装格式封装. 编码&封装的流程图如下: 使用ffmpeg编码流程: 1.首先使用a ...
- .NET 下 模拟数组越界
前面一篇文章提到过 数组越界行为,虽然编译器为我们做了大量的检查工作让我们避免这些错误. 但是我觉得还是有必要模拟一下数组越界,感受一下这个错误. 那么对于.NET来说我们怎么来模拟数组越界呢? 一. ...
- 【ElasticSearch篇】--ElasticSearch从初识到安装和应用
一.前述 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口,在企业中全文搜索时,特别常用. 二.常用概念 clu ...
- SpringBoot入门教程(十一)过滤器和拦截器
在做web开发的时候,过滤器(Filter)和拦截器(Interceptor)很常见,通俗的讲,过滤器可以简单理解为“取你所想取”,忽视掉那些你不想要的东西:拦截器可以简单理解为“拒你所想拒”,关心你 ...
- axios(封装使用、拦截特定请求、判断所有请求加载完毕)
博客地址:https://ainyi.com/71 基于 Promise 的 HTTP 请求客户端,可同时在浏览器和 Node.js 中使用 vue2.0之后,就不再对 vue-resource 更新 ...