概述:梯度下降法的目的是把模型估计参数不断调整优化(调整模型以适应已知数据),找到最优的参数估计值,从而找到拟合度最好的模型。
核心方法:θ=θ−α(∂J(θ)/∂θ)
梯度:是一个方向,模型参数沿着这个方向可以最快的找到模型的最优参数。
1.背景:
在机器学习中,对于无约束条件的优化问题,一般有梯度下降法、最小二乘法、牛顿法和拟牛顿法,而梯度下降法是目前比较常用的方法。
2.梯度的概念:
(∂f/∂x, ∂f/∂y,∂f/∂z)T,简称grad f(x,y,z)或者▽f(x,y,z)
3.梯度的目的和意义:
求解梯度的目的是什么呢,简单来说,函数沿着梯度方向可以最快速度找到函数的最大值,沿着梯度相反的方向可以最快速度找到函数的最小值。
在机器学习中,计算最小化损失函数时,可以用梯度下降法迭代求解,或者在计算最大化损失函数时,可以用梯度上升法迭代求解。
4.梯度下降法算法:
4.1梯度下降法的直观解释:
梯度下降法有一个直观解释,如果你处于一个高山上准备下山,现在你每走一步就要计算一下梯度,沿着梯度的负方向下山,这样你下山的速度最快,你可能会下到山脚,也可能到了山中间的一片凹地,也就是说,梯度下降法,它可能只是找到了一个局部最优解,而只有当函数为凸函数时候,找到的才一定会是全局最优解。
4.2梯度下降的相关名词:
(1)步长(learning rate):步长是指梯度下降过程中每一次迭代所确定的距离,即每一次沿着梯度负方向前进的距离
(2)特征(feature): 解释变量的个数
(3)假设函数(hypothesis function):是指在有监督学习中,为了拟合样本函数,而假设的函数。
(4)损失函数(loss function): 为了评估模型的好坏,一般用损失函数来度量模型的好坏,损失函数越小说明数据拟合 程度越高,找到损失函数的最小值,也就确定了最优参数。在线性回归中,损失函数是指残差平方和。
4.3 梯度下降法算法详解:
梯度下降法算法有代数法和向量法(矩阵法)。代数法容易理解,但是运算麻烦。向量法运算简洁
数学证明过程请看梯度下降法证明过程:
算法过程可以分为以下几个步骤:
(1)确定假设函数和损失函数以及损失函数的梯度(∂J(θ)/∂θ)
(2)根据步长乘以梯度确定损失函数下降的距离:α(∂J(θ)/∂θ)
(3)比较参数θ里边的每个值是否均小于ε,如果小于ε ,则θ为最终结果
(4)如果参数 θ里边的每个值并不是均小于ε,则需要对θ进行迭代次处理 :θ=θ−α(∂J(θ)/∂θ)
5. 梯度下降法具体分类
5.1 批量梯度下降法
批量梯度下降法是指在求梯度的时候用全样本求解
5.2 随机梯度下降法
随机梯度下降法是指在求解梯度时候用一个随机样本进行求解
5.3 小批量梯度下降法
小批量梯度下降法是指在求解梯度时候随机取多个样本进行求解,它是介于批量梯度下降法和随机梯度下降法的折中
6. 梯度下降法和其他无约束条件优化的比较
梯度下降法是需要自己设定步长,需要迭代求解,而最小二乘法不需要迭代,而是直接计算解析。
如果数据量比较小,则用最小二乘法可以更加高效,如果数据量庞大,则用梯度下降法更加有优势
梯度下降法和牛顿法/拟牛顿法相比,两者都是迭代求解,不过梯度下降法是梯度求解,而牛顿法/拟牛顿法是用二阶的海森矩阵的逆矩阵或伪逆矩阵求解。相对而言,使用牛顿法/拟牛顿法收敛更快。但是每次迭代的时间比梯度下降法长