机器学习006_梯度下降(针对任意代价函数J)

1)简介

梯度下降算法 - 一种能自动找到代价函数J最小值的算法。
梯度下降法不仅用于线性回归,还用于机器学习的众多领域。在后面将学习到用梯度下降法去优化除线性回归的代价函数J和最小化任意函数J。
这一节讲的是针对任意代价函数J来讨论梯度下降。

2)问题描述

下面我们使用梯度下降算法来最小化一个任意函数J:对于这个任意函数J,我们需要找到一组参数值来最小化它。
先初始化参数值,通常是把参数初始化为0,再一点一点改变参数的值,来最小化该函数J:
在这里插入图片描述
对于下图的代价函数,每次执行一次梯度下降算法时,先将参数初始化一个值,就对应于代价函数J的一个点,再一步步收敛到该局部的最优解,得到一个局部最优解。下面两张图是执行了两次算法,得到了两个局部最优解。
初始点有差异就可能得到不同的局部最优解。
在这里插入图片描述
在这里插入图片描述

3)梯度算法的定义

在这里插入图片描述

  • 对梯度下降定义的分析:

赋值符号 :=
判断符号 =

阿尔法表示学习率,用来控制梯度下降时,我们迈出多大的步子。阿尔法大,那么步子就大。
重复同步更新代价函数的参数,直到收敛。
在这里插入图片描述
同步更新能更自然的实现算法,说道梯度下降基本上也说的是同步更新。

3)深入了解梯度下降

  • 阿尔法及导数项的意义

阿尔法是学习效率,决定了更新参数的速度。
在这里插入图片描述
要理解怎么使用梯度下降,及他的意义,我们先将参数简化成一个参数,考虑这时的代价函数及优化的目标函数,研究梯度下降在该代价函数J上起了什么作用。

下面考虑导数项为正或者负的情况:
在这里插入图片描述
该倒数项指的是代价函数J在该点的斜率,可正可负。阿尔法是一个正数。该梯度下降法可以使得参数一直在向最小值点靠近。

  • 梯度下降的同步更新规则

下面考虑阿尔法过大或者过小的情况:
在这里插入图片描述
当阿尔法过小的时候,下降速度很慢;
当阿尔法过大的时候,可能导致越过最低点,而一直无法收敛或者发散。

如果将参数初始化在局部最优解处,那么下一步梯度下降会发生什么?
在这里插入图片描述
可以看到,这种情况,梯度下降不会改变参数的值,会维持局部最优解,这也是我们想要的。所以这也解释了即使阿尔法不变,梯度下降也能收敛到局部最优解处。
在这里插入图片描述
初始化参数得到对应的代价函数的一个点,运行梯度下降算法,不断同步更新所有的参数,随着越来越靠近局部最优解处,斜率即导数的越来越小,下降的幅度也越来越小(阿尔法维持不变),也就是说,可以不改变阿尔法的值,也会自动的在越靠近局部最优解处减小下降的幅度,慢慢的接近局部最优解。

由此,我们可以使用梯度下降算法来最小化任意代价函数J,不只是线性回归中的代价函数J。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值