大家好,一直在用深度学习,但是感觉理论并不扎实,打算开始补点理论基础,在CSDN上记录下来。
今天介绍随机梯度下降法和反向传播,首先介绍梯度下降法。
1.梯度下降法
梯度下降法是从初始值开始,向函数上当前点对应梯度的反方向的规定步长的距离点进行迭代搜索,最终得到最小值的过程。公式简易推导如下:
更直观的图像表示如图所示:
这是学习率为0.001,迭代两百次的示意图,当学习率设的更大,可能会迭代收敛更快,但也可能会直接越过这个最小值导致发散。
2.随机梯度下降法
梯度下降法虽然有效,但是每次迭代都要对所有样本进行计算,当样本量很大的时候,收敛速度很慢。在此基础上提出的随机梯度下降法每次只考虑一个样本,这使得他每次迭代方向不一定都是模型整体最优化的方向,因此,在深度学习中,仍然需要遍历所有样本,每遍历一遍我们称为一轮(epoch)。在此基础上我们又做了改进,改为每次选取一批样本进行计算,利用这批样本的梯度信息完成一次模型更新。这一批数据我们称为一个batch。这样有效的提高了收敛效率也避免了模型陷入局部最优。
这里补充一点,除了随机梯度下降法,还有一种牛顿法可以拟合寻找最优路径的过程
牛顿法的迭代公式为Xn+1