Gradient Descent

整理自Andrew Ng的machine learning课程。

目录:

  • 梯度下降算法
  • 梯度下降算法的直观展示
  • 线性回归中的梯度下降

前提:

线性回归模型 :$h(\theta_0,\theta_1)=\theta_0+\theta_1x$

损失函数:$J(\theta_0,\theta_1)=\frac{1}{2m} \sum_{i=1}^m (h_\theta(x^(i))-y^(i))^2$  

1、梯度下降算法

目的:求解出模型的参数 / estimate the parameters in the hypothesis function

如下图所示,$\theta_0,\theta_1$代表模型的参数,$J(\theta_0,\theta_1)$代表模型的损失函数

目的:从某一点出发,走到最低点。

怎么走:沿着所在点处最陡的方向下降。某一点山坡最陡的方向就是这一点的切线方向,也就是这一点的导数。每一步走多大取决于学习率$\alpha$。

在图中,每一个十字星之间的距离取决与$\alpha$的大小。小的$\alpha$会使两点之间的距离比较小,大的$\alpha$会产生大的步距。每一步走的方向取决于所在点的偏导。不同的起始点会有不同的终点,如上图从A出发最终到达B,而从C出发最终到达D。

梯度下降算法如下:

$\theta_j:=\theta_j-\alpha\frac{\partial}{\partial \theta_j}J(\theta_0,\theta_1)$    repeat util convergence

注意:$\theta_0,\theta_1$在每一步的迭代中都是同步更新的

2、梯度下降算法的直观展示

如下图:此图是一个损失函数的图像

当$\theta_1$在最小值点的右边时,图像的斜率(导数)是正的,学习率$\alpha$也是正的,根据梯度下降算法的公式,更新后的$\theta_1$是往左边方向走了,的确是朝着最小值点去了;

当$\theta_1$在最小值点的左边时,图像的斜率(导数)是负的,学习率$\alpha$是正的,根据梯度下降算法的公式,更新后的$\theta_1$是往右边方向走了,也是朝着最小值点去了;

 另外,我们需要调整$\alpha$使的算法可以在一定的时间内收敛。收敛失败或者收敛的非常慢,都说明使用的步长$\alpha$是错误的。

如果使用固定的$\alpha$,算法会收敛吗?

梯度下降算法隐含的一个信息就是,当点越来越接近最小值点的时候,梯度也会越来越小,到达最小值点时,梯度为0;

所以即使不去调整$\alpha$,走的步长也是会越来越短的,算法最终也还是会收敛的,所以没必要每次都调整$\alpha$的大小。

 3、线性回归中的梯度下降算法

当把梯度下降算法具体的运用到线性回归上去的时候,算法就可以在偏导部分写的更加具体了:

repear until convergence {

$\qquad \theta_0:=\theta_0-\alpha \frac {1}{m} \sum_{i=1}^m (h_\theta(x_i)-y_i)$

$\qquad \theta_1:=\theta_1-\alpha \frac {1}{m} \sum_{i=1}^m ((h_\theta(x_i)-y_i)x_i)$

                                       }

batch gradient descent

以上:在每一步更新参数时,让所有的训练样本都参与更新的做法,称为batch gradient descent;

注意到:虽然梯度下降算法可能会陷入局部最优的情况,但是在线性回归中不存在这种问题,线性回归只有一个全局最优,没有局部最优,算法最终一定可以找到全局最优点(假设$\alpha$不是特别大)。

线性回归中,J是一个凸二次函数,这样的函数是碗状的(bowl-shaped),没有局部最优,只有一个全局最优。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏深度学习思考者

机器学习——Dropout原理介绍

一:引言   因为在机器学习的一些模型中,如果模型的参数太多,而训练样本又太少的话,这样训练出来的模型很容易产生过拟合现象。在训练bp网络时经常遇到的一个问题,...

4758
来自专栏码农笔录

BP神经网络基础算法

1335
来自专栏大数据智能实战

空洞卷积与DeeplabV2实现图像语义分割的测试(tensorflow)

图像语义分割是对图像像素级理解的基础,也是图像处理的高阶操作。自从深度学习出来之后,已经有了不少的基于卷积网络的图像语义分割模型,如从全卷积网络到大型卷积核:深...

4459
来自专栏世界第一语言是java

BP神经网络基础算法

2063
来自专栏张俊红

支持向量机详解

总第81篇 (本文框架) 01|概念及原理: 支持向量机是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器。 说的通俗一点就是就是在特征空...

3173
来自专栏新智元

【干货】CNN 感受野首次可视化:深入解读及计算指南

【新智元导读】作为目前的研究和应用热点,图形识别使用 CNN 模型架构。感受野则是 CNN 中最为重要的概念之一,但此前还没有任何关于如何计算和可视化 CNN ...

3873
来自专栏书山有路勤为径

Convolutional Neural Networks

计算机视觉(Computer Vision)包含很多不同类别的问题,如图片分类、目标检测、图片风格迁移等等。

611
来自专栏机器学习原理

深度学习(4)——BP算法感知器神经网络线性神经网络BP神经网络

862
来自专栏人工智能

第四课反向传播算法与神经网络(一)

Stanford深度学习课程第四课反向传播算法与神经网络(一) 预备知识 我们不直接介绍课程内容,首先介绍一些预备知识,这样可以更好的理解课程内容。下面我们介绍...

1866
来自专栏决胜机器学习

卷积神经网络(四) ——目标检测与YOLO算法

卷积神经网络(四) ——目标检测与YOLO算法 (原创内容,转载请注明来源,谢谢) 一、概述 目标检测,主要目的是在图片中,分类确认是否有需要的物体,如果有则标...

1.1K6

扫码关注云+社区