书名:Python神经网络编程
作者:[英]塔里克·拉希德(Tariq Rashid)
译者:林赐
出版社:人民邮电出版社
出版时间:2018-04
ISBN:9787115474810
参照本书,自己可以动手写一个简单的神经网络,还不快来看看。
内容提要
神经网络是一种模拟人脑的神经网络,以期能够实现类人工智能的机器学习技术。
本书揭示神经网络背后的概念,并介绍如何通过Python实现神经网络。
全书分为3章和两个附录。
- 第1章介绍了神经网络中所用到的数学思想。
- 我们将如清风拂面般,一览在简单的神经网络中所用的数学思想。我们有意不介绍任何计算机编程知识,以避免喧宾夺主地干扰了本书的核心思想。
- 第2章 介绍使用Python实现神经网络,识别手写数字,并测试神经网络的性能。
- 我们将学习足以实现自己的神经网络的Python知识。我们将训练神经网络,识别手写数字,并且会测试神经网络的性能。
- 第3章 带领读者进一步了解简单的神经网络,观察已受训练的神经网络内部,尝试进一步改善神经网络的性能,并加深对相关知识的理解。
- 我们将进一步了解简单的神经网络,这超出了了解基本神经网络知识的范畴,但是我们这样做只是为了获得一些乐趣。我们将尝试一些想法,进一步改善神经网络的性能,我们将观察已受训练的神经网络内部,看看我们是否理解神经网络所学习到的知识,是否理解神经网络是如何做出决定进行回答的。
附录分别介绍了所需的微积分知识和树莓派知识。
本书适合
- 想要从事神经网络研究和探索的读者学习参考
- 对人工智能、机器学习和深度学习等相关领域感兴趣
第1章 神经网络如何工作
有些任务,对传统的计算机而言很容易,对人类而言却很难。例如,对数百万个数字进行乘法运算。
另一方面,有些任务对传统的计算机而言很难,对人类而言却很容易。例如,从一群人的照片中识别出面孔。
一台简单的预测机
\[ 误差值=真实值-计算值 =62.137-50 =12.137 \]
所有有用的计算机系统都有一个输入和一个输出,并在输入和输出之间进行某种类型的计算。神经网络也是如此。
当我们不能精确知道一些事情如何运作时,我们可以尝试使用模型来估计其运作方式,在模型中,包括了我们可以调整的参数。
如果我们不知道如何将千米转换为英里,那么我们可以使用线性函数作为模型,并使用可调节的梯度值作为参数。改进这些模型的一种好方法是,基于模型和已知真实示例之间的比较,得到模型偏移的误差值,调整参数。
分类器与预测器并无太大差别
训练简单的分类器
\[ y=A x \]
\[ \Delta \mathrm{A}=\mathrm{L}(\mathrm{E} / x) \]
我们使用简单的数学,理解了线性分类器输出误差值和可调节斜率参数之间的关系。也就是说,我们知道了在何种程度上调整斜率,可以消除输出误差值。
使用朴素的调整方法会出现一个问题,即改进后的模型只与最后一次训练样本最匹配,“有效地”忽略了所有以前的训练样本。解决这个问题的一种好方法是使用学习率,调节改进速率,这样单一的训练样本就不能主导整个学习过程。
来自真实世界的训练样本可能充满噪声或包含错误。适度更新有助于限制这些错误样本的影响。