![](https://2020.iosdevlog.com/2020/02/29/9787115474810/1.jpg)
书名:Python神经网络编程
作者:[英]塔里克·拉希德(Tariq Rashid)
译者:林赐
出版社:人民邮电出版社
出版时间:2018-04
ISBN:9787115474810
参照本书,自己可以动手写一个简单的神经网络,还不快来看看。
内容提要
神经网络是一种模拟人脑的神经网络,以期能够实现类人工智能的机器学习技术。
本书揭示神经网络背后的概念,并介绍如何通过Python实现神经网络。
全书分为3章和两个附录。
- 第1章介绍了神经网络中所用到的数学思想。
- 我们将如清风拂面般,一览在简单的神经网络中所用的数学思想。我们有意不介绍任何计算机编程知识,以避免喧宾夺主地干扰了本书的核心思想。
- 第2章 介绍使用Python实现神经网络,识别手写数字,并测试神经网络的性能。
- 我们将学习足以实现自己的神经网络的Python知识。我们将训练神经网络,识别手写数字,并且会测试神经网络的性能。
- 第3章 带领读者进一步了解简单的神经网络,观察已受训练的神经网络内部,尝试进一步改善神经网络的性能,并加深对相关知识的理解。
- 我们将进一步了解简单的神经网络,这超出了了解基本神经网络知识的范畴,但是我们这样做只是为了获得一些乐趣。我们将尝试一些想法,进一步改善神经网络的性能,我们将观察已受训练的神经网络内部,看看我们是否理解神经网络所学习到的知识,是否理解神经网络是如何做出决定进行回答的。
附录分别介绍了所需的微积分知识和树莓派知识。
本书适合
- 想要从事神经网络研究和探索的读者学习参考
- 对人工智能、机器学习和深度学习等相关领域感兴趣
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/2.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/3.jpg)
第1章 神经网络如何工作
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/4.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/4.jpg)
有些任务,对传统的计算机而言很容易,对人类而言却很难。例如,对数百万个数字进行乘法运算。
另一方面,有些任务对传统的计算机而言很难,对人类而言却很容易。例如,从一群人的照片中识别出面孔。
一台简单的预测机
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/6.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/7.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/8.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/9.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/10.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/11.jpg)
\[ 误差值=真实值-计算值 =62.137-50 =12.137 \]
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/12.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/13.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/14.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/15.jpg)
所有有用的计算机系统都有一个输入和一个输出,并在输入和输出之间进行某种类型的计算。神经网络也是如此。
当我们不能精确知道一些事情如何运作时,我们可以尝试使用模型来估计其运作方式,在模型中,包括了我们可以调整的参数。
如果我们不知道如何将千米转换为英里,那么我们可以使用线性函数作为模型,并使用可调节的梯度值作为参数。改进这些模型的一种好方法是,基于模型和已知真实示例之间的比较,得到模型偏移的误差值,调整参数。
分类器与预测器并无太大差别
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/16.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/17.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/18.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/19.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/20.jpg)
训练简单的分类器
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/21.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/22.jpg)
\[ y=A x \]
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/23.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/24.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/25.jpg)
\[ \Delta \mathrm{A}=\mathrm{L}(\mathrm{E} / x) \]
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/26.jpg)
我们使用简单的数学,理解了线性分类器输出误差值和可调节斜率参数之间的关系。也就是说,我们知道了在何种程度上调整斜率,可以消除输出误差值。
使用朴素的调整方法会出现一个问题,即改进后的模型只与最后一次训练样本最匹配,“有效地”忽略了所有以前的训练样本。解决这个问题的一种好方法是使用学习率,调节改进速率,这样单一的训练样本就不能主导整个学习过程。
来自真实世界的训练样本可能充满噪声或包含错误。适度更新有助于限制这些错误样本的影响。
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/27.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/28.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/29.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/30.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/31.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/32.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/33.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/34.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/35.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/36.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/37.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/38.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/39.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/40.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/41.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/42.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/43.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/44.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/45.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/46.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/47.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/48.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/49.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/50.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/51.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/52.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/53.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/54.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/55.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/56.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/57.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/58.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/59.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/60.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/61.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/62.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/63.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/64.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/65.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/66.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/67.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/68.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/69.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/70.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/71.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/72.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/73.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/74.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/75.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/76.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/77.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/78.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/79.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/80.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/81.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/82.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/83.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/84.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/85.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/86.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/87.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/88.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/89.png)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/90.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/91.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/92.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/93.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/94.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/95.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/96.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/97.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/98.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/99.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/100.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/101.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/102.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/103.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/104.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/105.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/106.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/107.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/108.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/109.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/110.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/111.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/112.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/113.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/114.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/115.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/116.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/117.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/118.png)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/119.png)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/120.png)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/121.png)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/122.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/123.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/124.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/125.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/126.jpg)
![](https://2020.iosdevlog.com/2020/02/29/9787115474810/127.jpg)