梯度下降算法简介
梯度下降法
1、梯度:
在微积分里面,对多元函数参数求偏导数,把求的各参数的偏导数以向量的形式写出来,就是梯度。
梯度向量从几何意义上讲,就是函数变化增加最快的地方,沿着梯度向量的方向更容易找到函数的最大值,沿着向量相反的方向,梯度减小最快,更容易找到函数最小值。
2、梯度下降与梯度上升可以互相转化。求损失函数f(θ)的最小值,用梯度下降法迭代,亦可反过来求损失函数 -f(θ)的最大值,用梯度上升法。
3、梯度下降算法解析
(1)直观解释
eg.在一座大山的某一位置,要下山,走一步算一步,每走一步就计算当前位置的梯度,沿着当前梯度的负方向走一步(也就是当前最陡的位置),然后再次计算当前位置,这样一步一步往下走,一直走到觉得已经到了山脚。有可能我们只是到了一个局部山峰底部。所以梯度下降不一定能找到全局最优解,有可能是一个局部最优解。当损失函数是凸函数的时候,梯度下降法所求的解就是全局最优解。
(2)相关概念
(i)步长:梯度下降迭代过程中每一步沿负方向前进的长度。
(ii)特征:样本输入部分,样本(x0,y0),其样本特征为x,输出为y。
(Iii) 假设函数:在监督学习中,用假设函数拟合输入样本,记为hθ(x)。比如对于样本(xi,yi)。(i=1,2,...n),可以采用拟合函数如下: hθ(x) = θ0+θ1x。
(iv)损失函数:度量拟合程度,评估模型拟合好坏。损失函数极小化,意味着拟合程度最好,对应的模型参数为最优参数。线性回归中,损失函数通常为样本输出和假设函数的差取平方。
(3)算法:
(i)代数法
(ii) 矩阵法
(4)算法调优
(i)步长选择。
步长太大,会导致迭代过快,错过最优解;
步长太小,迭代速度太慢,耗时间太长。
(ii)初始值选择。
有可能求的是局部最优解,所以要多次使用不同初始值进行运算,选择损失函数最小化的初始值。
(iii)将特征数据归一化。