梯度下降法理论理解

梯度下降法:看似原始却透露着机器学习的本质

前提:

在研究梯度下降方法之前,你要

  1. 理解矩阵运算(解析解)的方法
  2. 矩阵运算目前的缺点
    1. 只能进行对线性函数经行分析,无法对复杂的函数经行分析
  3. 什么是梯度,以及梯度向量

梯度下降的形象例子以及基本思想

有三个兄弟被困在山上,得要死,他们目标是看谁尽快找到山谷中的水源

  1. 老大比较后选择最陡的方向
  2. 随便探索一下,就朝较低处走去
  3. 探测几下就走陡峭的方向

梯度下降算法的核心思想就是沿着负梯度方向(即函数值下降最快的方向)一步步移动,从而逐步接近局部或全局最小值。

梯度下降法的主要原理

  1. 确定初始点

    • 选择一个初始值(或随机生成一个点),称为参数的初始估计。这个点会是我们开始优化的起点。
  2. 求出当前点的梯度向量

    • 计算当前参数点的梯度,即损失函数在这个点的导数。这个梯度告诉我们在这个点上函数值上升最快的方向。
  3. 根据梯度向量来确定移动方向,并进行移动

    • 根据梯度向量的负方向进行更新,计算更新后的点。更新规则一般是:
      θ n e w = θ c u r r e n t − α ∇ f ( θ c u r r e n t ) \theta_{new} = \theta_{current} - \alpha \nabla f(\theta_{current}) θnew=θcurrentαf(θcurrent)
      其中,α\alphaα 是学习率,用于控制移动的步长。步长过大可能会错过最优值,而步长过小可能导致收敛速度慢。
  4. 重复步骤2-3

    • 不断迭代步骤2和3,更新参数,逐步逼近最优解。通常会设置一个停止条件,比如达到最大迭代次数、损失函数变化量很小,或者梯度接近零。
  5. 找到最优结果

    • 满足停止条件后,最终的点就是梯度下降算法找到的局部最小值或全局最小值的估计值。

例题

假设有一个函数为 f ( x , y ) = x 2 + y 2 f(x,y) = x^2+y^2 f(x,y)=x2+y2 。我们想用梯度下降找到它的最小值

  1. 确定初始点:初始点为 ( x 0 , y 0 ) = ( 1 , 1 ) (x_0,y_0) = (1,1) (x0,y0)=(1,1)
  2. 求梯度
    δ f δ x = 2 x \frac{\delta f}{\delta x} = 2x δxδf=2x
    δ f δ y = 2 y \frac{\delta f}{\delta y} = 2y δyδf=2y
    梯度函数为
    δ f = ( 2 x , 2 y ) \delta f = (2x,2y) δf=(2x,2y)
  3. 更新参数:

x n e w = x c u r r e n t − α δ f δ x ( x c u r r e n t ) x_{new} = x_{current} - \alpha \frac{\delta f}{\delta x}(x_{current}) xnew=xcurrentαδxδf(xcurrent)
y n e w = y c u r r e n t − α δ f δ y ( y c u r r e n t ) y_{new} = y_{current} - \alpha \frac{\delta f}{\delta y}(y_{current}) ynew=ycurrentαδyδf(ycurrent)
具体带入值为:
x n e w = 1 − 0.1 ∗ 2 = 0.8 x_{new} = 1-0.1 * 2 =0.8 xnew=10.12=0.8
y n e w = 1 − 0.1 ∗ 2 = 0.8 y_{new} = 1-0.1 * 2 =0.8 ynew=10.12=0.8
4. 重复步骤

你可能感兴趣的:(机器学习,人工智能)