导数的概念
导数的公式如下士所示
对点的导数反映了函数在点 处的瞬时变化速率。在多维函数中,梯度是一个向量组合,反映了多维图形中变化速率最快的方向。
凸函数的概念
如果f(x)在[a,b]上连续,在(a,b)上有二阶导数
,f(x)是[a,b]上的凹函数
,f(x)是[a,b]上的凸函数
如下图所示,凹函数f(x)的一阶导数递增,凸函数f(x)的一阶导数递减。
如果函数是凸的,那么梯度下降法不会陷入局部最优,可以找到全局最优解,梯度下降会收敛到最小值(因为只有一个极小值,它就是最小值)。
梯度下降法原理
梯度下降法求解的目标函数如下式所示
参数沿着负梯度方向更新,公式为
为学习率,如果
由于梯度下降法是按照梯度方向来收敛到极值的,如果输入样本各个维数取值范围不同,则这些参数的构成的等高线不同的方向胖瘦不同,这样会导致参数的极值收敛速度极慢。因此需要对特征进行规范化处理。这也是我们在数据预处理阶段对数据进行规范化处理的原因。
两种梯度下降法
下面对比一下常用的两种梯度下降法,批次梯度下降法(Batch Gradient Descent)和随机梯度下降法(Stochastic Gradient Descent)。
SGD:每个样本迭代一次,进行参数更新,效率高,适用于在线学习了,但是结果并非完全收敛,而是在结果处波动,容易受噪声数据的影响
BGD:每次迭代都要便利所有样本
当求解的问题不存在解析解时,需要用迭代的方式求解,迭代法每一步update未知量,逐渐逼近解,梯度下降法是一种迭代法