梯度下降: 01.原理与代码实操

本文介绍了梯度下降法的基本原理及其在机器学习中的应用。梯度下降是一种优化算法,用于逐步逼近损失函数的最优解。文章讨论了正规方程的局限性,并详细解释了梯度下降的操作过程、公式、学习率的影响以及全局最优解的概念。通过代码示例展示了如何模拟梯度下降求解函数最小值,同时提到了在无方程情况下的处理方式。
摘要由CSDN通过智能技术生成

1. 简介

  1. 梯度下降法(GradientDescent) 算法,不像多元线性回归那样是一个具体做回归任务的算法,而是一个非常通用的优化算法来帮助一些机器学习算法(都是无约束最优化问题)求解出最优解,所谓的通用就是很多机器学习算法都是用梯度下降,甚至深度学习也是用它来求解最优解。所有优化算法的目的都是期望以最快的速度把模型参数 θ \theta θ求解出来,梯度下降法就是一种经典常用的优化算法。
  2. 之前利用正规方程求解的θ是最优解的原因是MSE这个损失函数是凸函数。但是,机器学习的损失函数并非都是凸函数,设置导数=0会得到很多个极值,不能确定唯一解。
    损失函数图像

2. 使用正规方程的弊端

  • 使用正规方程 θ = ( X T ⋅ X ) − 1 X T y \theta = (X^T\cdot X)^{-1}X^Ty θ=(XTX)1XTy 求解的另一个限制是特征维度 ( X 1 、 X 2 、 X n ) (X_1、X_2、X_n) (X1X2Xn)不能太多,矩阵逆运算的时间复杂度通常为O(n3)。
  • 换句话说,就是如果特征数量翻倍,你的计算时间大致为原来的 2 3 2^3 23倍,也就是之前时间的8倍。
  • 举个例子,2个特征1秒,4个特征就是8秒,8个特征就是64秒,16个特征就是512秒。
    当特征更多的时候,运行时间会非常漫长。
  • 所以正规方程求出最优解并不是机器学习甚至深度学习常用的手段。
  • 之前我们令导数为0,反过来求解最低点θ是多少,而梯度下降法是一点点去逼近最优解!

3. 梯度下降操作

在这里插入图片描述
如上图,先随机瞎蒙一个值(最右侧的紫色点儿),然后一步一步进行Learning step,逼近最优解。

学习率一般都是正数,如果在山左侧(曲线左半边)梯度是负的,那么这个负号就会把w往大了调,如果在山右侧(曲线右半边)梯度就是正的,那么负号就会把 w j w_j wj往小了调。每次 w j w_j wj调整的幅度就是 α ∗ g r a d i e n t \alpha*gradient

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值