本书英⽂原版地址为:http://neuralnetworksanddeeplearning.com/
神经⽹络,⼀种美妙的受⽣物学启发的编程范式,可以让计算机从观测数据中进⾏学习
深度学习,⼀个强有⼒的⽤于神经⽹络学习的众多技术的集合
本书中介绍了一个简单手写书法分类的网络结构,提供了专门的Python代码。代码是Python2 的我将它改成了Python3 的方便大家使用。
目录
版权i
⽬录ii
关于作者iv
关于本书翻译v
前⾔vi
这本书是关于什么的?vii
关于练习和问题ix
1使⽤神经⽹络识别⼿写数字1
1.1感知器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 S型神经元. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3神经⽹络的架构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4⼀个简单的分类⼿写数字的⽹络. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.5使⽤梯度下降算法进⾏学习. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.6实现我们的⽹络来分类数字. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.7迈向深度学习. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2反向传播算法如何⼯作34
2.1热⾝:神经⽹络中使⽤矩阵快速计算输出的⽅法. . . . . . . . . . . . . . . . . . . . 34
2.2关于代价函数的两个假设. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.3 Hadamard乘积,s⊙t. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.4反向传播的四个基本⽅程. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.5四个基本⽅程的证明(可选). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.6反向传播算法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.7代码. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.8在哪种层⾯上,反向传播是快速的算法?. . . . . . . . . . . . . . . . . . . . . . . . 45
2.9反向传播:全局观. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3改进神经⽹络的学习⽅法50
3.1交叉熵代价函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.1.1引⼊交叉熵代价函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.1.2使⽤交叉熵来对MNIST数字进⾏分类. . . . . . . . . . . . . . . . . . . . . . 60
3.1.3交叉熵的含义?源⾃哪⾥?. . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.1.4柔性最⼤值. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.2过度拟合和规范化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.2.1规范化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.2.2为何规范化可以帮助减轻过度拟合. . . . . . . . . . . . . . . . . . . . . . . . 73
3.2.3规范化的其他技术. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.3权重初始化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
3.4再看⼿写识别问题:代码. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
3.5如何选择神经⽹络的超参数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
3.6其它技术. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
3.6.1随机梯度下降的变化形式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
3.6.2⼈⼯神经元的其他模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
3.6.3有关神经⽹络的故事. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
4神经⽹络可以计算任何函数的可视化证明111
4.1两个预先声明. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
4.2⼀个输⼊和⼀个输出的普遍性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
4.3多个输⼊变量. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
4.4 S型神经元的延伸. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
4.5修补阶跃函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
4.6结论. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
5深度神经⽹络为何很难训练135
5.1消失的梯度问题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
5.2什么导致了消失的梯度问题?深度神经⽹络中的梯度不稳定性. . . . . . 140
5.3在更加复杂⽹络中的不稳定梯度. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
5.4其它深度学习的障碍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
6深度学习
6.1介绍卷积⽹络. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
6.2卷积神经⽹络在实际中的应⽤. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
6.3卷积⽹络的代码. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
6.4图像识别领域中的近期进展. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
6.5其他的深度学习模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
6.6神经⽹络的未来. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
这是一个介绍性的书,就算不懂也可以进行学习,主要是提高对神经网络和深度学习的一个认识。
Python代码请clone:https://github.com/dao2shui/neural-networks-and-deep-learning.git
想看着本书的回复:
下载%神经网络与深度学习%
就可以获得呦
领取专属 10元无门槛券
私享最新 技术干货