第四章:神经网络的学习方法:梯度下降
本章主要内容:
- 神经网络预测的结果准确吗?
- 为什么要测量误差?
- 冷热法学习
- 基于误差计算方向和幅度
- 梯度下降
- 学习只是减少错误
- 导数与如何应用导数学习
- 发散和学习速率
在我们前面章节的讨论中,我们已经构建了一些神经网络,它可以是多输入多输出的,也可以是多输入单输出的,也可以是单输入多输出的。我们回忆一下。神经网络的主要组成部分是节点和权重,将数据输入到神经网络的过程如下:数据的特征和神经网络的节点的个数要匹配,当数据特征(也被称作是数据点)输入时,伴随数据的是权重数据。当神经网络有多层时,连接每一层和下一层的映射一般是基于单参数线性映射的,这种单参数映射就是矩阵代数里面的矩阵变换,一般我们称为权重转移矩阵。
但是我们并没有说神经网络怎么就能够预测结果了。因为从上面的过程来看,权重转移矩阵是我们拍脑袋胡乱设计的,这种与其说是在预测,不如说是在瞎猜。但是,神经网络算法的精髓就是瞎猜。只是在瞎猜之后,会有一个裁判员告诉你猜的结果是偏大还是偏小了。这个裁判员就是神经网络里面的一个极其重要的角色。
在说明这个“猜谜-裁判”算法原理之前,我们可以玩一个猜数字游戏。假设这个数字是1到100之间的。你在心中默念一个数字,我来猜这个数字是什么。每次我猜错了,你得告诉我猜大了还是猜小了。这样,最多只要7次,我就可以猜中这个数字是什么。如果这个数字是1到1000之间的,最多只要猜10次,我也可以猜出这个数字是什么。别惊讶,其实这个算法很简单。试着玩一下这个游戏,想一想这个游戏背后的机制。
其实猜数字就是计算机算法里面的“贪心”类算法的最简单代表。它的根本原理就是用不断逼近“最终结果”的方法来学习。