机器学习 | 回归算法原理——随机梯度下降法
创始人
2024-11-16 18:33:56
0

Hi,大家好,我是半亩花海。接着上次的多重回归继续更新《白话机器学习的数学》这本书的学习笔记,在此分享随机梯度下降法这一回归算法原理。本章的回归算法原理还是基于《基于广告费预测点击量》项目,欢迎大家交流学习!

目录

一、随机梯度下降法概述

二、案例分析

1. 设置问题 

2. 定义模型

3. 随机梯度下降法(拓展)


一、随机梯度下降法概述

随机梯度下降法是一种优化算法,用于最小化目标函数,即减少模型预测和实际结果之间的差距。它是梯度下降算法的一种变体,其核心原理是在每次迭代搜索中,算法随机选择一个样本或数据点(或一小批样本),计算该样本的梯度,然后用这个梯度更新模型参数

随机梯度下降算法(Stochastic Gradient Descent,SGD)和批量梯度下降算法(Batch Gradient Descent,BGD)的区别在于:随机梯度算法每次只使用少数几个样本点或数据集(每次不重复)的梯度的平均值就更新一次模型;而批量梯度下降算法需要使用所有样本点或数据集的梯度的平均值更新模型。、

举一个经典而形象的例子:假设你现在在山上,为了以最快的速度下山,且视线良好,你可以看清自己的位置以及所处位置的坡度,那么沿着坡向下走,最终你会走到山底。但是如果你被蒙上双眼,那么你则只能凭借脚踩石头的感觉判断当前位置的坡度,精确性就大大下降,有时候你认为的坡,实际上可能并不是坡,走一段时间后发现没有下山,或者曲曲折折走了好多路才能下山。类似的,批量梯度下降法就好比正常下山,而随机梯度下降法就好比蒙着眼睛下山

因此,随机梯度下降算法的效率明显提高,目前已经得到了广泛应用。

例子来源于:《详解随机梯度下降法(Stochastic Gradient Descent,SGD)_随机梯度下降公式-CSDN博客》


二、案例分析

1. 设置问题 

在介绍随机梯度下降法之前,我们先得知道之前研究过最速下降法,它除了计算花时间以外,还有一个缺点那就是容易陷入局部最优解

在讲解回归时,我们使用的是平方误差目标函数。这个函数形式简单,所以用最速下降法也没有问题。现在我们来考虑稍微复杂一点的,比如这种形状的函数:

用最速下降法来找函数的最小值时,必须先要决定从哪个 x 开始找起。之前我用 g(x) 说明的时候是从 x = 3 或者 x=-1 开始的,那是为了讲解而随便选的作为初始值。选用随机数作为初始值的情况比较多。不过这样每次初始值都会变,进而导致陷入局部最优解的问题。

假设这张图中标记的位置就是初始值

倘若从这个点开始找,似乎可以求出最小值。但是如果我们换一个初始点,如下所示,那么可能没计算完就会停止,便陷入了局部最优解

这个算法虽然简单,但是容易发生各种问题,但最速下降法也不会白学,随机梯度下降法就是以最速下降法为基础的。

2. 定义模型

由 《机器学习 | 回归算法原理——最速下降法(梯度下降法)-CSDN博客》可知,最速下降法的参数更新表达式为:

\theta_j:=\theta_j-\eta \sum_{i=1}^n\left(f_{\boldsymbol{\theta}}\left(\boldsymbol{x}^{(i)}\right)-y^{(i)}\right) x_j^{(i)}

这个表达式使用了所有训练数据的误差,而在随机梯度下降法中会随机选择一个训练数据,并使用它来更新参数。下面这个表达式中的 k 就是被随机选中的数据索引。

\theta_j:=\theta_j-\eta\left(f_{\boldsymbol{\theta}}\left(\boldsymbol{x}^{(k)}\right)-y^{(k)}\right) x_j^{(k)}

最速下降法更新 1 次参数的时间,随机梯度下降法可以更新 n 次。 此外,随机梯度下降法由于训练数据是随机选择的,更新参数时使用的又是选择数据时的梯度,所以不容易陷入目标函数的局部 最优解,在实际运用上的确会收敛

3. 随机梯度下降法(拓展)

我们前面提到了随机选择 1 个训练数据的做法,此外还有随机选择 m 个训练数据来更新参数的做法。设随机选择 m 个训练数据的索引的集合为 K,则更新参数如下:

\theta_j:=\theta_j-\eta \sum_{k \in K}\left(f_{\boldsymbol{\theta}}\left(\boldsymbol{x}^{(k)}\right)-y^{(k)}\right) x_j^{(k)}

现在假设训练数据有 100 个,那么在 m = 10 时,创建一个有 10 个随机数的索引的集合,例如 K = {61, 53, 59, 16, 30, 21, 85, 31, 51, 10},然后重复更新参数,这种做法被称为小批量(mini-batch)梯度下降法。 这像是介于最速下降法和随机梯度下降法之间的方法。

ps:不论是随机梯度下降法还是小批量梯度下降法,我们都必须考虑学习率\eta,将 \eta 设置为合适的值是尤为重要。

相关内容

热门资讯

第三分钟脚本!天天微友可以控制... 第三分钟脚本!天天微友可以控制吗(辅助挂)详细教程(原生真的有挂);是一款可以让一直输的玩家,快速成...
1分钟辅助!兴动互娱有辅助吗(... 1分钟辅助!兴动互娱有辅助吗(辅助挂)都是存在有挂(详细辅助黑科技教程)兴动互娱有辅助吗辅助器中分为...
黑科技辅助“闽游互动辅助器”外... 黑科技辅助“闽游互动辅助器”外挂透视辅助工具(其实有挂);1、完成闽游互动辅助器的残局,帮助玩家取得...
第4分钟透视!随意玩正版房卡有... 第4分钟透视!随意玩正版房卡有开挂(辅助挂)透明挂教程(竟然存在有挂)是一款可以让一直输的玩家,快速...
十分钟辅助挂!顺欣茶楼辅助软件... 十分钟辅助挂!顺欣茶楼辅助软件(辅助挂)切实有挂(详细辅助详细教程)1、顺欣茶楼辅助软件透视辅助简单...
黑科技辅助挂“情怀四川辅助哪里... 黑科技辅助挂“情怀四川辅助哪里可以装”外挂透视辅助科技(总是真的是有挂)1、情怀四川辅助哪里可以装系...
十分钟透视!葫芦娃辅助器直装(... 十分钟透视!葫芦娃辅助器直装(辅助挂)微扑克教程(先前是真的有挂);十分钟透视!葫芦娃辅助器直装(辅...
一分钟辅助器!闲娱江西脚本(辅... 一分钟辅助器!闲娱江西脚本(辅助挂)总是存在有挂(详细辅助2025教程)1、闲娱江西脚本系统规律教程...
黑科技辅助“河洛杠次脚本入口在... 黑科技辅助“河洛杠次脚本入口在哪”外挂透视辅助科技(一贯是真的有挂)1、游戏颠覆性的策略玩法,独创攻...
5分钟透视!开心游戏辅助软件(... 自定义开心游戏辅助软件系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用辅助器,不管...