梯度下降

Gradient Descent 梯度下降

梯度下降是用一阶导数最小化可微目标函数的基本优化方法。给定损失 (J(\theta)),梯度 (\nabla J(\theta)) 指向局部增长最快方向,因此沿反方向移动可在一阶近似下最快降低目标:

θk+1=θkαJ(θk),

其中 (\alpha>0) 是学习率,控制每一步对局部线性近似的信任程度。

"error falls most rapidly"

在强化学习的价值预测中,目标函数常是单样本平方价值误差。若参数写为 (\mathbf w_t),样本为 (S_t\mapsto v_\pi(S_t)),则

Jt(wt)=12[vπ(St)v^(St,wt)]2.

对它做梯度下降可得

wt+1=wtαJt(wt)=wt+α[vπ(St)v^(St,wt)]v^(St,wt).

这个式子解释了随机梯度方法的结构:误差项给出需要增加还是降低估计,(\nabla\hat v(S_t,\mathbf w_t)) 给出改变参数后最能影响当前状态估计的方向。若每次用一个样本近似总体目标的梯度,方法就是 stochastic gradient descent;若用全体样本的平均梯度,则是 batch gradient descent;小批量方法介于二者之间。

学习率过大时,局部一阶近似失效,参数可能震荡或发散;学习率过小时,收敛很慢,也可能在噪声目标下停留过久。经典随机逼近理论通常要求递减步长:总步长足够大以持续探索,平方步长和有限以压低噪声累积。实际算法中也常用学习率调度或自适应优化器,但这些技巧并不改变核心原则:更新方向必须能在期望上降低目标。

需要区分真正梯度方法和半梯度方法。若目标 (U_t) 不依赖当前参数,例如 Monte Carlo 回报 (G_t),则

ww+α[Gtv^(St,w)]v^(St,w)

仍是平方误差目标的随机梯度更新。若目标含有当前估计,例如 (R_{t+1}+\gamma\hat v(S_{t+1},\mathbf w_t)),但求导时忽略目标中的 (\mathbf w_t),则得到半梯度TD。后者常更适合在线学习,却不再能仅凭普通梯度下降理论保证收敛。