当前位置: 代码迷 >> 综合 >> 机器学习:梯度下降算法(Gradient Descent)
  详细解决方案

机器学习:梯度下降算法(Gradient Descent)

热度:22   发布时间:2024-03-06 20:40:59.0

梯度下降算法(Gradient Descent)

泰勒公式

在高数中学过的泰勒公式告诉我们,我们始终可以找到一个级数表达式,去拟合任意随机样本结果。

梯度

  • 梯度:数学概念,在一维函数中等同于一维函数的导数,在多维函数中即为多维函数的偏导数。
  • 梯度的意义:某一点的梯度向量指示了函数变化率最大的一个方向

梯度下降

  • 梯度下降——迭代思想
    在构建求解表达式的过程,从某个参量表达式出发出求偏导,找出当前位置梯度下降最大的方向,和结果进行拟合,计算函数的梯度,找到下一参量组,如此循环往复,直至找到最优解。

  • 梯度下降的概念

(1)步长(Learning rate /学习率):自定义量,是指参量表达式沿着梯度方向的步进量(每次沿梯度方向走多少距离)。过大可能会错过最优解,过小可能会卡在局部最优解。
(2)特征(Feature):已知的期待获得的输入输出数据指标,用于假设函数的构建。
(3)假设函数(Hypothesis Function):为了拟合特征而构建的数学表达式,梯度下降就是用于不断修正该表达式,得到最优的假设函数。
(4)损失函数(Loss Function):特征组和建设函数的均方误差MSE。

梯度下降的详细算法

1.初始化准备:
(1)构建假设函数:参量的多项式表达
(2)确认损失函数:假设函数和特征值之间的均方差MSE
(3)初始化假设函数中多项式的次数和系数
(4)设置步长值:即设定每一次迭代过程中,建设函数中多项式的系数变化倍率。
2.迭代算法:
(1)确定当前的损失函数,对其做梯度求解,求出当前的下降位置
(2)用步长乘以损失函数的梯度,得到当前下降位置的距离
3.判断终止条件:
(1)给定误差 ,每一次迭代后,判断特征参量和对应的假设函数中的参量是否小于给定误差
注:所有参量都小于给定误差,那么终止迭代,否则继续迭代直至满足终止条件。

梯度算法种类

1.批量梯度下降算法(Batch Gradient Descent):更新假设函数系数时,使用所有样本数据对系数进行更新。
2.随机梯度下降算法(Stochastic Gradient Descent):每一次更新假设函数系数时,随机选取一定数量的样本数据对假设函数系数进行更新。
3.小批量梯度下降算法(Mini-batch Gradient Descent):固定样本数据的数量(称这部分数据为“batch”),每次更新假设函数系数使用固定数量的样本数据。是1和2折中的办法。

详细数学推导参照如下链接

梯度下降(Gradient Descent)小结:

  相关解决方案