深度学习(三)-梯度下降法是个什么东东

本文详细介绍了梯度下降法在机器学习中的作用,作为解决复杂优化问题的有效工具。讨论了其原理,包括初始化、学习率设定和不同类型的下降方式,如批量、随机和小批量梯度下降。同时,文章强调了学习率选择和参数优化对模型性能的影响,并通过实例展示了梯度下降法如何逐步找到目标函数的最小值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、前言

梯度下降法是机器学习常用的优化算法之一,是一种用来寻求目标函数最小值时的自变量值得算法。
虽然在线性回归和逻辑回归一文中已经提到过该算法,但是考虑到该算法的重要性,故而单独提取出来进行说明。

二、基础知识

1、缘由

因循旧例,还是从案例说起:
假设我们需要求解 z = x 2 + y 2 z=x^2+y^2 z=x2+y2的最小值,按照常规的思路是

(1)分别求出 x x x y y y的偏导数

d z d x = 2 x \frac{\mathrm{d}z}{\mathrm{d}x}=2x dxdz=2x
d z d y = 2 y \frac{\mathrm{d}z}{\mathrm{d}y}=2y dydz=2y

(2)分别令 x x x y y y的偏导数为0

2 x = 0 2x=0 2x=0 2 y = 0 2y=0 2y=0

(3)联立方程组,得 x = 0 x=0 x=0 y = 0 y=0 y=0
(4)代入函数得到最小值为0

机器学习的求解大多是一个求函数取得最小值(有时候只能求极小值)时候的参数的过程,而上述的过程已经可以实现,为什么还要整一个梯度下降法呢?

因为 机器学习学习重的自变量并不是只有一两个那么简单,成千上万甚至是亿都有可能,这个时候我们还联立成千上万个方程组求解是不现实的,所以就采用了梯度下降法!

虽然梯度下降法求出的结果并不是那么精确,但机器学习本身就是一个概率性的问题,再者,这不是无能为力嘛(不要逼我说出来)!

2、理论基础

关于求解最小值,梯度下降法的做法是:

(1)初始化目标的函数自变量值,一般是一个非0且足够小的值

(2)计算出每个自变量的的偏导数

(3)设置合适的学习率 η \eta η(下文再解释)

(4)循环更新自变量参数,更新方式为:

x = x − η ∗ d z d x = x − η ∗ 2 x x=x-\eta*\frac{\mathrm{d}z}{\mathrm{d}x}=x-\eta*2x x=xηdxdz=xη2x

y = y − η ∗ 2 y y=y-\eta*2y y=yη2y

看起来有点抽象,我们根据上面的目标函数来实践一下:

(1)假设我们随机设置了 x x x y y y的初始值为
x = 3 x=3 x=3 y = 4 y=4 y=4

(2)分别求偏导数(看上面)

(3)设置学习率 η = 0.1 \eta=0.1 η=0.1

(4)循环更新自变量参数

xyx计算方式z
第一次34随机初始化
第二次2.43.23-0.123=2.4;
4-0.124=3.2
2.42.4+3.23.2=16
第三次1.922.562.4-0.122.4=1.92;
3.2-0.123.2=2.56
1.921.92+2.562.56=10.24
第四次1.5362.0481.92-0.121.92=1.536;
2.56-0.122.56=2.048
第n次

通过一定次数的循环, z z z会趋近于它的最小值0,而此时的 x x x y y y正是我们要寻找的合适参数。

3、梯度下降和机器学习优化的问题

(1)学习率的问题

梯度下降好比是一个下山的过程,我家在深不见底山脚最底下,想要最快回家的我开始沿着坡度最大的方向下山回家,而我每卖出的一步的距离称为学习率,学习率太小呢,走得比较慢,学习率太大呢,很容易一个大跨步越过我家屋顶,然后踏不进家门

(2)参数的问题

案例中的 x x x y y y是我们要求解的参数,而在机器学习中,只是这些参数更多了而已,它们主要来源于算法模型,如线性回归中的 y = W x + b y=Wx+b y=Wx+b,我们想要求解输入 x x x经过什么样的参数变换得到输出 y y y,那这些参数就可以用梯度下降法来求解

(3)下降方式

具体的下降方式主要有三种:

批量梯度下降法、随机梯度下降法和小批量梯度下降法,为何会产生这么三种呢?

最原始的是批量梯度下降法,使用所有样本进行更新,这样有利于得到全局最优解,且易于并行向量计算,

但是样本过多时,速度就会很慢,特别是在计算资源如此昂贵的今天,所以就产生了随机梯度下降法,每次随机抽取一个样本进行更新,速度是快了,

但是有些盲目,下降方向容易走偏,后来采取了一个折中的方式:小批量梯度下降法, 把数据分为若干个批,按批来更新参数,如此,一批中的一组数据共同决定了本次梯度的方向,跑偏的概率小,减少计算量的同时也确保了梯度的方向。

如果用一个案例来解释这三种情况:

假设公司决定根据员工的意向来决定团建去哪里,那么,批量梯度下降法的方式就是,统计全体员工的意向进行分析,随机梯度下降法就是随便抽取员工的意见进行决定,而小批量下降算法就是在全体员工中抽取一小批人的意见进行统计。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大Huoyo

提醒博主一下,该起来写文章了

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值