机器学习笔记 - week1 -(二、单变量线性回归 Part2)


2.5 梯度下降

在求解机器学习算法的模型参数,梯度下降(Gradient Descent)是最常采用的方法之一,另一种常用的方法是最小二乘法


梯度下降的思想:开始时我们随机选择一个参数的组合,计算代价函数,然后我们寻找下一个能让代价函数值下降最多的参数组合。

梯度下降的缺点:持续迭代直到一个局部最小值(local minimum),因为我们并没有尝试完所有的参数组合,所以不能确定我们得到的局部最小值是否便是全局最小值(global minimum),选择不同的初始参数组合,可能会找到不同的局部最小值。


例子

想象一下你正站立在山的这一点上,站立在你想象的公园这座红色山上,在梯度下降算法中,我们要做的就是旋转360度,看看我们的周围,并问自己要在某个方向上,用小碎步尽快下山。这些小碎步需要朝什么方向?如果我们站在山坡上的这一点,你看一下周围,你会发现最佳的下山方向,你再看看周围,然后再一次想想,我应该从什么方向迈着小碎步下山?然后你按照自己的判断又迈出一步,重复上面的步骤,从这个新的点,你环顾四周,并决定从什么方向将会最快下山,然后又迈进了一小步,并依此类推,直到你接近局部最低点的位置。


批量梯度下降(batch gradient descent)算法的公式为:
\text{repeat until convergence } \{ \\ \\ \theta_{j}\text{ := } \theta_{j} - \alpha \frac{\partial }{\partial \theta_{j}} J\left(\theta_{0},\theta_{1} \right) \\ \} \\ \text{( for j = 0 and j = 1 ) }
算法公式讲解:
    是学习率(learning rate)
    是代价函数的梯度。
    通过迭代反复计算的值, 对赋值,使得代价函数按梯度下降最快方向进行,一直迭代下去,最终得到局部最小值。


2.6 梯度下降的直观理解

image.png

    是代价函数的梯度,代表着上图中的红点的切线
    红色直线与函数相切于红点,这条直线的斜率相当于代价函数的坡度。斜率越大,代表函数坡度越陡,即越凹。
    直线斜率等于代价函数的导数,因此通过梯度正导数,可以反复迭代更新:减去一个正数乘以。

在梯度下降法中,当我们接近局部最低点时,梯度下降法会自动采取更小的幅度。这是因为当我们在逐渐接近局部最低点时,代价函数的坡度(导数)会越来越缓,所以梯度下降将自动采取较小的幅度,这就是梯度下降的做法。


2.7 梯度下降的线性回归

1.对于线性回归,假设函数表示为:
,
其中:

  • 为模型参数
  • 为每个样本的n个特征值

2.同样是线性回归,对应于上面的假设函数,代价(损失)函数为:

(PS: 为了评估模型拟合的好坏,通常用损失函数来度量拟合的程度。损失函数极小化,意味着拟合程度最好,对应的模型参数即为最优参数。在线性回归中,损失函数通常为样本输出和假设函数的差取平方。)


3.通过求解代价函数的最小值, 得到与数据最匹配的拟合函数


4.通过梯度下降算法, 求解代价函数的最小值。
    先决条件: 确认优化模型的假设函数和损失函数
    a. 初始化算法相关参数:
      - ,我喜欢将所有的θ初始化为0
      - 将步长α 初始化为1
      - 算法终止距离ε
    b. 算法过程:
      - 1)确定当前位置的代价函数的梯度,对于θi,其梯度表达式如下:
          
      - 2) 用步长乘以损失函数的梯度,得到当前位置下降的距离,即:
           , 对应于前面登山例子中的某一步。
      - 3) 确定是否所有的梯度下降都小于终止距离ε ?
              - 都小于终止距离ε则算法终止,当前所有的即为最终结果。
              - 否则进入步骤4
      - 4)更新所有的 对于 , 更新完毕后继续转入步骤1。更新表达式为:

          

          梯度表达式 可以求导化简为 , 最终

          


2.8 接下来的内容

对线性代数进行一个快速的复习回顾


你可能感兴趣的:(机器学习笔记 - week1 -(二、单变量线性回归 Part2))