Robbins-Monro算法与随机梯度下降(SGD)
Robbins-Monro算法(RM 算法)
RM算法(Robbins-Monro)是一个求根算法,它的设计初衷是专门用来寻找让某个函数等于 0 的点。
在 随机逼近(Stochastic Approximation) 领域,RM算法是现代随机优化(包括深度学习中的SGD)的理论基石。
1. 它解决什么问题?
它的核心目的是:在有噪声(随机误差)干扰的情况下,找到一个函数的根(即零点)。
- 常规场景(无噪声): 假设你有一个方程 ,你想求 。如果能准确计算$ f(x)$ 和它的导数,我们可以用牛顿法快速求解。
- RM场景(有噪声): 现实中,我们无法直接得到准确的 $ f(x)$ ,每次测量都会带有一个随机噪声 。也就是说,我们观测到的是 。如果用常规方法,噪声会让计算结果剧烈震荡,无法收敛。
2. 算法核心公式
RM算法提出了一种迭代方法,通过不断修正猜测值来逼近真实解:
- :第 次对解的猜测。
- :在 处观测到的带噪声的函数值。
- :步长(Step Size),也常被称为学习率。
直观理解:
看观测值 是正还是负,如果是正的,就往反方向减一点;如果是负的,就加一点。
可以把整个过程想象成一个黑盒子:
- 输入 ():你往黑盒子里扔进一个猜测值。
- 输出 ():黑盒子吐出来一个结果(告诉你是大了还是小了)。
- 更新 ():你根据吐出来的 ,利用公式 计算出下一次该扔进去什么值。
所以: 是我们在调整的旋钮(输入),是旋钮对应的读数(输出)。
3. 成功的关键:步长序列
RM算法最天才的地方在于规定了步长 必须满足两个条件,算法才能保证收敛到真值:
- :步长加起来要是无穷大。这意味着不能快速的收敛到0,如果快速收敛到0了,初始值就会离方程的解 很远就无法收敛到 了。
- :步长的平方和要是有限的。这意味着随着时间推移,步长必须减小得足够快,以抵消噪声的影响,防止在终点附近无限震荡。
典型例子: (随着次数增加,步长越来越小)。
4. 形象的类比:蒙眼调水温
想象你在蒙着眼睛调试水龙头的温度,目标是得到40度温水():
- 你摸了一下水,感觉烫了(观测值 有误差,可能是手感不准)。
- 你把开关往回拧一点。
- 关键点: 刚开始你拧的幅度很大(步长 a 大);随着感觉越来越接近,你拧的幅度必须越来越微小。如果你一直大幅度拧,水温就会忽冷忽热(震荡),永远停不下来。RM算法就是告诉你如何科学地减小“拧”的幅度。
(1) 问题的本质
- :水龙头旋转的角度(我们控制的变量)。
- :当旋转到 角度时,实际流出来的水温(我们观测到的值)。
- 目标:我们希望 。
(2) 为什么要转化成 ?
RM算法(Robbins-Monro)是一个求根算法,它的设计初衷是专门用来寻找让某个函数等于 0 的点。
为了使用RM算法,我们需要把“目标是40”这个问题,伪装成“目标是0”的问题。
(3) 数学定义
我们定义一个新的函数 ,也就是误差函数:
这时候,我们来看看 的含义:
- 如果 (比如 +5):说明 是 45 度。意味着 “太热了” ,需要降温。
- 如果 (比如 -5):说明 是 35 度。意味着 “太冷了” ,需要升温。
- 如果 :说明 ,即 。意味着 “刚刚好” 。
结论:
找到 的解,等同于找到了让水温变成 40 度 的那个旋钮角度。
5. 基础概念回顾:向量与梯度
在深入理解现代应用(如SGD)之前,我们需要建立两个核心数学概念的认知:向量与梯度。它们是连接物理世界与数字计算的桥梁。
5.1 什么是向量 (Vector)?
向量是承载多维信息的基本容器。根据观察角度不同,它有三种理解:
- 物理视角(有方向的量): 就像一支箭,既有大小(Magnitude)又有方向(Direction)。例如速度是向量,而速率是标量。
- 数学视角(有序数组): 它是线性空间中的元素,表示为一列有序的数字。例如 。这一视角使得我们可以处理高维(甚至无穷维)问题。
- AI与控制视角(状态与特征):
- 状态向量 (State Vector): 在控制中,描述系统在某时刻的完整情况(如 )。
- 特征向量 (Feature Vector): 在AI中,万物皆可向量化。图像、文本都可以编码成高维向量,其空间位置包含了语义信息。
5.2 什么是梯度 (Gradient)?
如果说向量是砖块,梯度就是设计蓝图上的指南针。
- 直观理解: 想象你蒙眼登山。梯度是一个向量,它永远指向地形变陡最快(上升最快)的方向,其模长代表了陡峭程度。
- 数学定义: 梯度是由函数对各个自变量的偏导数组成的向量,记作 。它将标量场(如温度分布)转化为向量场(如热流方向)。
- 核心作用: 在最优化问题中,梯度告诉我们:“别瞎猜了,往这个方向走变化最快”。
- 梯度下降 (Gradient Descent): 为了找谷底(最小化误差),我们沿着梯度的反方向走。
5.3 符号解析:
在机器学习公式中,常看到这个符号,其含义是关键的**“关注点分离”**:
- 定义: 计算函数 的梯度,但只针对 (参数) 求导,将 (数据) 视为常数。
- 直观比喻:
- 是考试丢分, 是你脑中的知识, 是试卷题目。
- 意味着:题目 是老师出的(不可改),你只能通过修改脑中的知识 来提高分数。
- 反之,如果你求 ,那是试图修改题目(作弊/对抗攻击)。
6. 现代应用:随机梯度下降 (SGD)
随机梯度下降(SGD) 是 RM 算法最著名的特例。
在机器学习中,我们想求损失函数的最小值。由于数据是分批(Batch)采样的,计算出的梯度带有“噪声”。SGD 本质上就是应用了 Robbins-Monro 算法来寻找梯度函数的零点。
6.1 从理想目标到现实困难
我们的终极目标是找到一组参数 ,使得在整个数据分布下的期望损失最小:
根据梯度下降,理想更新公式是:
现实困难: (期望)几乎算不出来!
- 分布未知: 无法获取全宇宙的数据。
- 计算量无限: 即使有海量数据,算一次完整的期望(遍历所有数据求平均)太慢了。
6.2 SGD 的工程妥协
既然算不出“全数据的平均梯度”,我们就用“抽样”来代替。
SGD 更新公式:
- 操作: 每次只随机抽取一个样本 ,算出它的梯度,立刻更新参数。
- 对应 RM 算法:
- 我们要找的根是 。
- 我们的观测值 是单样本梯度 。
- 噪声 是单样本梯度与真实期望梯度的差值。
6.3 为什么能收敛?(理论兜底)
虽然单次更新可能因为样本偏差被“带偏”(引入噪声),但我们可以将梯度分解为:
只要数据是独立同分布的,噪声的期望为 0。随着 RM 算法要求的步长 逐渐减小,这些随机噪声会互相抵消,参数最终会摇摇晃晃地走到真实的最优解。
7. 案例分析:均值估计 (Mean Estimation)
为了彻底理解 RM 和 SGD 的关系,我们看一个最简单的例子:求一组数据的平均值。
7.1 将“求平均”看作“最优化”
求随机变量 的期望 ,在数学上等价于寻找一个 ,使得它与 的**欧氏距离平方和(最小二乘)**最小:
7.2 求解过程
如果我们对这个目标函数求梯度:
代入 SGD 的更新公式 ,我们得到:
7.3 深度解读
这个公式变形后为:。
这正是工程中常用的迭代平均算法或一阶低通滤波器!
- :当前的估计值。
- :新的观测数据。
- :当前的预测误差(梯度)。
结论: 简单的“求平均值”操作,本质上就是一个针对平方损失函数的随机梯度下降过程。这完美体现了 RM 算法的思想:通过不断利用带噪声的新样本 () 来修正当前的估计 (),最终收敛到真实均值。
- 点赞
- 收藏
- 关注作者
评论(0)