⽬录
版权 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
ii
⽬录
3.1.1 引⼊交叉熵代价函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.1.2 使⽤交叉熵来对 MNIST 数字进⾏分类 . . . . . . . . . . . . . . . . . . . . . . 60
3.1.3 交叉熵的含义?源⾃哪⾥? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.1.4 柔性最⼤值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.2 过度拟合和规范化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.2.1 规范化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.2.2 为何规范化可以帮助减轻过度拟合 . . . . . . . . . . . . . . . . . . . . . . . . 75
3.2.3 规范化的其他技术 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
3.3 权重初始化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
3.4 再看⼿写识别问题:代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
3.5 如何选择神经⽹络的超参数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
3.6 其它技术 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
3.6.1 随机梯度下降的变化形式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
3.6.2 ⼈⼯神经元的其他模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
3.6.3 有关神经⽹络的故事 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
4 神经⽹络可以计算任何函数的可视化证明 113
4.1 两个预先声明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
4.2 ⼀个输⼊和⼀个输出的普遍性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
4.3 多个输⼊变量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
4.4 S 型神经元的延伸 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
4.5 修补阶跃函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
4.6 结论 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
5 深度神经⽹络为何很难训练 139
5.1 消失的梯度问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
5.2 什么导致了消失的梯度问题?深度神经⽹络中的梯度不稳定性 . . . . . . . . . . . . 147
5.3 在更加复杂⽹络中的不稳定梯度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
5.4 其它深度学习的障碍 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
6 深度学习 152
6.1 介绍卷积⽹络 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
6.2 卷积神经⽹络在实际中的应⽤ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
6.3 卷积⽹络的代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
6.4 图像识别领域中的近期进展 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
6.5 其他的深度学习模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
6.6 神经⽹络的未来 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
A 是否有关于智能的⼀个简单的算法? 190
B 修订历史 195
索引 196
iii