本节将更加具体的介绍如何通过反向传播算法和梯度下降算法调整神经网络中参数的取值
梯度下降算法主要用于优化单个参数的取值
反向传播算法给出了一个高效的方式在所有参数上使用梯度下降算法,从而使神经网络模型
在训练数据上的损失函数尽可能小
反向传播算法数训练神经网络的核心算法,他可以根据定义好的损失函数优化参数的取值
神经网络模型中参数的优化过程直接决定了模型的质量
图4-11中x轴表示参数θ的取值,y轴表示损失函数J(θ)的值
梯度下降算法分为两步:
1.第一步:随机产生一个参数θ的初始值
2.根据梯度和学习率来更新参数的取值
神经网络的优化过程可以分为两个阶段:
1.通过前向传播算法得到预测值,并将预测值和真实值做对比得出两者之间的差距
2.通过反向传播算法计算损失函数对每一个参数的梯度,再根据梯度和学习率使用梯度下降算法更新每一个参数
需要注意的是,梯度下降算法并不能保证被优化的函数达到全局最优解,如下图:
注意:参数的初始值对优化结果影响非常大.只有损失函数为凸函数是,才能达到全局最优解
除了不一定能达到全局最优解,梯度下降算法的另外一个问题是计算时间太长
可以使用随机梯度下降算法:这个算法优化的不是在全部训练数据上的损失函数
,而是在每一笔迭代中,随机优化某一条训练数据上的损失函数
随机梯度下降算法的缺点:甚至无法达到局部最优
重点来了:综合梯度下降和随机梯度下降的优缺点,折中一下,每次计算一小部分训练数据的损失函数
这一小部分数据称为一个batch