李宏毅老师机器学习课程笔记_ML Lecture 3-1: Gradient Descent

本文是李宏毅老师机器学习课程的笔记,主要讲解梯度下降法及其应用。介绍了梯度的概念,解释了为何使用梯度下降法求损失函数最小值,讨论了学习率设定的影响,并对比了梯度下降法与随机梯度下降法。同时,强调了特征缩放对算法收敛速度的重要性。
摘要由CSDN通过智能技术生成
引言:

这个系列的笔记是台大李宏毅老师机器学习的课程笔记
视频链接(bilibili):李宏毅机器学习(2017)
另外已经有有心的同学做了速记并更新在github上:李宏毅机器学习笔记(LeeML-Notes)

很久都没有用高数及线性代数的知识,很多都生疏了,这节课有很多的数学公式及概念,建议先看一下简书上的这篇介绍梯度及梯度下降法的文章深入浅出–梯度下降法及其实现,真的是深入浅出,好评如潮。

这里需要知道的是:

  • 什么是梯度?
  • 为什么要用梯度下降法?
一、什么是梯度

梯度是微积分中一个很重要的概念,梯度的意义在于:

  • 在单变量的函数中,梯度其实就是函数的微分,代表着函数在某个给定点的切线的斜率
  • 在多变量函数中,梯度是一个向量,向量有方向,梯度的方向就指出了函数在给定点的上升最快的方向
二、为什么要用梯度下降法?

机器学习的目的是根据现有数据集,预测未知数据的解。首先制定预测函数f*, 其次根据预测函数制定出合理的损失函数,损失函数的意义在于如果它的值取得最小值,那么认为原来的预测函数拟合训练集数据拟合的最好。所以求出损失函数的最小值就很关键。而根据上面梯度的概念,梯度的负方向是函数值下降的方向,沿着梯度下降的方向就可以找到损失函数取最小值的解。

三、学习率的设定

图1
学习率设置分以下几种情况:

  • 非常大:导致损失突然变得非常大,无法收敛
  • 较大:损失收敛在比较的值上
  • 较小:损失虽然一直在减小,但速度很慢
  • 正好:损失逐渐减小,最终收敛在一个比较小的值上

调节学习率的一般思想:

  • 在一开始学习率取较大值,这样便于更加快速到达最低点
  • 慢慢地学习率取值逐渐缩小,这样会避免学习率取值过大从而错过最低点

自适应调节学习率的方法:

  • Adagrad
四、Stochastic gradient decent(SGD)随机梯度下降

相比梯度下降法遍历所有数据,SGD可以随机选取某一个样本计算损失后然后更新梯度,提高训练速度,但不一定可以得到全局最优解。
博客园上一篇文章写得比较清楚 [Machine Learning] 梯度下降法的三种形式BGD、SGD以及MBGD

五、Feature scaling 特征缩放/归一化

为什么要进行特征缩放?
如果样本的取值范围过大,在应用梯度下降算法寻找全局最小值的时候,损失函数需要花费巨大的代价。进行缩放后,多维特征将具有相近的尺度,这将帮助梯度下降算法更快地收敛。
很多文章都拿吴恩达的课程中图来举例:
图2 归一化之前的等高线图
图3 归一化之后的等高线图
图2
图3

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值