机器学习优化算法——梯度下降法

梯度下降法是最早最简单,也是最为常用的最优化方法。梯度下降法实现简单,当目标函数是凸函数时,梯度下降法的解是全局解。一般情况下,其解不保证是全局最优解,梯度下降法的速度也未必是最快的。
梯度下降法的优化思想是用当前位置负梯度方向作为搜索方向,因为该方向为当前位置的最快下降方向,所以也被称为是”最速下降法“。最速下降法越接近目标值,步长越小,前进越慢。

在第次迭代中:
在这里插入图片描述

1、Batch梯度下降法

在这里插入图片描述
缺点: 每次迭代要使用所有样本,计算量大,非凸函数容易“陷入”局部最优
优点: 噪声小,每次迭代必定收敛

机器学习优化算法——梯度下降法_第1张图片

2、SGD(随机梯度下降法)

每次迭代 随机选取一个样本 进行计算,损失函数和代价函数如下:
在这里插入图片描述
在这里插入图片描述
一次迭代步骤:
①数据预处理过程: 随机打乱所有数据

Repeat{
For i=1 to m{
在这里插入图片描述(for j=0,1,2,…n)
}
}
注: 一般迭代1~10次
优点: 计算量小,计算速度加快,在损失函数非凸时能够保证收敛到一个较好的局部最优值或全局最优值(即有“跳出”局部最优值的能力
缺点: 每次迭代的方向不定,即噪声比较多,但是大的整体方向是朝着全局最优的,最终结果是在全局最优解附近,不会收敛到最小值。适用于大规模训练样本情况。

3、mini-batch梯度下降法

每次迭代选取b个样本进行计算,b=mini-batch size(一般选取32/64/128/256/512)

步骤:
假设:b=10,m=1000
Repeat{
for i=1,11,21,31,…,991 {
在这里插入图片描述
(for every j=0,1,2,…,n)
}
}
缺点: 引入一个超参数b
优点: 计算速度比Batch梯度下降法快,噪声比随机梯度下降法小

你可能感兴趣的:(机器学习)