带噪更新需要目标与抽样规则
随机优化用抽样估计替代昂贵全梯度,改变波动、成本和进展解释,却不会把训练分数变为总体保证。本课推条件无偏及批次协方差,分析噪声二次模型,精确定义动量与 Adam,并区分惩罚、衰减、提前停止和裁剪。每次实验说明有限目标、抽样单位、更新约定和预算。
检索准备:模块 19的光滑下降与曲率、模块 23的协方差、模块 25的 MAP 尺度。评估用模块 26 拆分,选学谱视图回顾模块 13。实验使用固定 NumPy 环境,故障算术为标准库,无 GPU。
总体风险、经验风险与抽样梯度
例子 Z 服从总体 P,损失 ℓ(w;Z) 的 R(w)=E_Pℓ 是总体风险,要求期望定义。固定数据 z₁,…,z_N 的 F(w)=Σℓ(w;z_i)/N 是经验风险。前者总体平均,后者记录平均;数据固定后 F 确定,算法仍可随机抽索引。无偏声明前先区分数据、给定数据的批次和其他算法随机性。
可微有限损失的 G=∇F=Σg_i/N,无需交换定理。总体 ∇Eℓ=E∇ℓ 则需额外条件,例如邻域可微且导数分量有可积控制函数。有限小批推导不能默证明任意无界总体模型的交换。本课二次例使梯度与矩存在透明。
给定当前 w 和固定数据,重新均匀抽 I∈{1,…,N},则 E[g_I|w,数据]=G。b 个独立均匀索引的平均同样无偏。w 可依赖旧批次,但新抽仍需正确条件机制。因梯度好看而刻意选择一批,不一定无偏;关键是有限均匀期望,不是“小批总有代表性”的口号。
四个记录 a=(-2,0),(0,2),(2,0),(0,-2),损失 .5||w−a_i||²。记录平均零,所以 G=w、经验最优 (0,0)。w=(3,-2) 的四个梯度平均正是 (3,-2),均匀抽一个条件无偏,但个别更新可在某坐标离最优更远。
固定非均匀正概率 p_i 抽索引时,未加权期望 Σp_i g_i,是另一加权目标。重要性修正 g_I/(Np_I) 的期望恢复 Σg_i/N。很小 p_i 会放大梯度与方差,无偏不说明效率。概率若依数据历史,应使用实际条件概率并写清假设。
目标 F+λ||w||²/2 的精确惩罚梯度 λw,可加入抽样数据梯度,条件无偏于正则化目标。每项加 λw 再平均也相同,若乘批次项数则改变目标。总损失与均损失要按模块 25 匹配系数;比较前检查形状和正规化。
固定数据索引不是新总体例子。F 可优化很好而 R 仍大,尤其选择或漂移后。噪声梯度虽偶尔升损失也可计算有效。目标、估计器期望、泛化是不同义务;模块 30 用明确统计条件连接,不以训练损失下降证明未来。
总体生成数据;固定数据抽索引估经验梯度。这两种期望针对不同随机机制。
数据固定后什么随机?哪种条件支持新均匀梯度?非均匀如何恢复均匀目标?
查看答案
批次仍可随机,F 确定。给定数据和当前迭代,重新均匀抽索引。使用实际正概率的 g_I/(Np_I),修均值但可能增方差。
批次协方差、替换与共享抽样
固定 w 与数据,d_i=g_i−G,C=Σd_i d_iᵀ/N 是完整有限梯度表的协方差,分母 N,不是未知总体样本方差无偏修正。一个均匀索引 Cov=C,b 个有放回独立平均 Cov=C/b,平方偏差范数期望 trC/b。相同边缘不保证交叉项零。
均匀无放回子集、1≤b≤N、N>1 的平均 Cov=(C/b)(N−b)/(N−1)。证明:Σd_i=0 使 Σ_{i≠j}d_i d_jᵀ=−Σd_i d_iᵀ,除 N(N−1) 得两不同抽样位置的交叉 Cov=−C/(N−1)。批次总和有 b 个 C 和 b(b−1) 个交叉项,除 b² 得公式;b=N 为零,与全梯度一致。
四记录 C=2I,两独立有放回坐标方差 1,两不同均匀子集为 2/3。一个索引梯度复制两次仍方差 2,虽然两行且均值无偏。实验枚举十六有序对和六子集,核验各矩。
一般平均 Cov 为 [ΣCov(g_j)+Σ_{j≠k}Cov(g_j,g_k)]/b²。正相关限制大批收益,负相关可改善;它依设计和参数,不依数据列是否写“batch”。重复例子或共享随机增强可改变交叉项,不能自动套标准差/√b。
随机重排每 epoch 遍历均匀排列,但给定已观察批次,下一批来自剩余记录,而非全部原表,其当前条件均值不必为 G(w)。重排可有效,然而新 IID 证明不是它完整收敛分析。按当前难度挑例子也改变概率与目标权重。
固定 w 时大 b 降有放回方差,却在固定逐例评估预算下减少更新数。硬件并行、内存、载入也影响耗时。报告更新与评估,测时间时列条件。实验 1 固定 2400 梯度评估,全批更新较少,步长按更新编号,所以轨迹不是普遍批量排序。
非线性 C 常随 w 变化,初始方差不能描述全部步骤。此二次例中心梯度 −a_i 恒定,C 才恒定,允许精确分析。真实监控也需说明估计成本及条件解释;批次诊断不是总体梯度或未来一切的证明。
这里分母为何 N?修正来自什么?重排是否证明后续条件抽样都对全表均匀?
查看答案
平均完整固定表。不同抽样的负交叉 Cov 产生修正,全子集归零。已抽以后只剩余索引,新全表条件证明不自动成立。
SGD、噪声、步长、动量与明确 Adam 更新
SGD 为 w_(t+1)=w_t−η_t g_hat_t,步长正、估计器明确。F 梯度 L-Lipschitz,g_hat 条件无偏且有限 Cov C_t,光滑界取期望得 E[F(w−ηg_hat)|w]≤F(w)−η(1−Lη/2)||G||²+(Lη²/2)trC_t。线性项均值用无偏,平方项用 E||g_hat||²=||G||²+trCov;最优附近噪声项可抵消下降。
标量 F=aw²/2、a>0,估计 aw+ξ_t,ξ 新鲜独立零均值、方差 v,更新 (1−ηa)w−ηξ。均值收缩需 0<ηa<2,方差递推 V_next=(1−ηa)²V+η²v。固定稳定 η 的极限方差为 ηv/[a(2−ηa)],所以均值趋零不表示迭代收敛无噪点。
a=1、η=.1、v=2,均值系数 .9,极限方差 .2/1.9≈.105263。零均值平稳超额损失半数≈.052632。精确全梯度去掉噪声底;稳定噪声轨迹仍可上升、反复过零。
递减步长可减少后期噪声,但任意下降表不保证所有目标成功。无噪声中若总步长有限且足够小,收缩乘积可保持正,初始成分不消失。常见随机逼近条件平衡持续运动和平方可和噪声,还需额外曲率、采样等条件。本课证明具体递推与下降界,不声称一般无条件收敛。
更精确地,正步长 aη_t≤c<1、Ση_t 有限,中值定理给 −log(1−aη_t)≤aη_t/(1−c)。求和有限,所以收缩乘积有正下界,非零初始无噪声迭代保留非零极限。这不证明哪个随机步长成功,却解释单步稳定且越来越小也可能过早停。步长与噪声应一起分析。
指定一种动量:v_next=βv+g_hat,w_next=w−ηv_next,v₀=0、0≤β<1。这个缓冲为未正规化加权和,恒 g 下趋 g/(1−β),同 η 改 β 改有效尺度。新梯度乘 1−β 的 EMA 是另一数值约定,需匹配步长。动量可抑制或放大振荡,依曲率与步长;历史更新不是单纯新无偏梯度乘常数。
Adam 的 m_t=β₁m_prev+(1−β₁)g_t,v_t=β₂v_prev+(1−β₂)g_t²,逐分量且初始零;修正 m_hat=m/(1−β₁^t),v_hat=v/(1−β₂^t),更新 w_t=w_prev−η_t m_hat/(√v_hat+ε),ε>0 在根号外。这是原始论文算法 1 约定。v 是原始二阶矩,不是中心方差。
平稳梯度律展开 EMA 给 E[m_t]=(1−β₁^t)E[g],平方同理,解释零初始化修正。实际训练梯度随参数改变,修正缓冲不自动无偏于当前全梯度,随机分母也改变期望。定义算法不证明通用收敛、最佳优化器或泛化;有限实验只报告所测内容。
稳定恒步无噪路径趋零,抽样梯度保留重复实验波动。自适应缓冲另改变方向和尺度。
期望下降的噪声项来源?恒步方差底?Adam v 是中心方差或证明当前无偏吗?
查看答案
平方范数期望等于全梯度平方加 trCov。指定模型的底为 ηv/[a(2−ηa)]。Adam 用原始二阶矩及非线性分母,两种声称都不成立。
岭、套索与特征坐标几何
惩罚改目标,优化器改遍历方法。岭加 λ||w||²/2,λ≥0,梯度 λw、曲率 λI,向零中心改变最优,不仅是保留目标缩小更新。模块 25 噪声先验给概率解释,总/平均系数一致。
标量 .5(w−a)² 的岭解 a/(1+λ),通常非零。套索加 λ|w|,非零导数 λsignw,零的次梯度 [−λ,λ];最优零属于 w−a+λ∂|w|。|a|≤λ 时零,其他 a−λsigna。这是软阈值,由非光滑几何产生精确稀疏,不是浮点小值裁掉。
a=.8、λ=1,岭 .4,套索零。a=2 时两者都是 1,不证明目标相同;a=3 则 1.5 与 2。必须说明 λ 乘半平方还是绝对值。
可微 F 的近端梯度先 z=w−η∇F,再逐分量软阈值 ηλ,因为其子问题为 .5(u−z)²+ηλ|u|。零处选某 sign 再普通步是另一算法,可能在折点抖动;整体绝对值目标不能未经处理套光滑定理。
平均半 SSE 的岭方程 (XᵀX/N+λI)w=Xᵀy/N,说明哪些列惩罚及截距。λ>0 时,即使 X 秩亏,非零 v 的二次型 ||Xv||²/N+λ||v||²>0,故唯一。λ=0 需满秩。用线性求解,改善条件同时引入统计偏差。
缩放 X 一坐标且反缩系数可保预测,却不保各向同性系数范数。标准化系数惩罚对应原坐标加权惩罚。训练标准化改善曲率,不保同 λ 的所有先验解释。声明坐标、截距、先验及总/平均约定。
实验 2 原特征尺度 1、100,只从训练拟合变换,检查 Hessian 条件。预定岭列表由验证选,冻结再测试。本次 λ=0 胜,是合法结果,不能改数据或按测试添加候选直到惩罚显得好。验证赢家仍是选择规则,未来表现需保留解释。
岭平滑收缩,套索软阈值归零;缩放改变惩罚坐标几何。
推两个标量解。正 λ 为何修秩亏?标准化是否保原各向同性先验?
查看答案
岭解得分,套索用含零次梯度。λ||v||² 保证各非零方向正。标准化改系数坐标,新的各向同性范数通常是不同原先验。
提前停止、权重衰减与不同轨迹
提前停止选择尚未完全优化的迭代,可限制噪方向拟合,却是选择规则,不自动等价固定惩罚。验证停止属于训练协议,测试选停止就变选择数据。记录检查频率、候选 epoch、并列规则及是否恢复最佳。依噪梯度的随机停止不自动继承固定时保证。
H 正定二次 F=.5wᵀHw−bᵀw,从零全梯度的各特征模态系数为 [1−(1−ηh_j)^t]b_j/h_j,由标量仿射递推得。0<η≤1/h_max 时过滤因子从零单调到一,小曲率发展慢。岭系数 b_j/(h_j+λ),相对无惩罚过滤为 h_j/(h_j+λ)。一个 t 通常不能在所有模态对应一个 λ。
这是简单线性模型中停止类似收缩的限定机制,不是任意网络、随机轨迹或步长等价。ηh_j>1 模态可振荡,单调描述失效;奇异目标还需零方向及 b 兼容检查。
普通 SGD 对 L2 更新 w−η(g+λw)=(1−ηλ)w−ηg,与该乘法衰减恰同。一些库独立于步长定义衰减,需转换系数,不可直接同名同值。动量或自适应将惩罚送入历史及预条件后,可破坏此简单恒等。
w=2、g=.1、λ=.5、η=.01、ε=10⁻⁸,普通 SGD 两形式都 1.989。Adam 首次零缓冲修正,耦合用 g+λw=1.1,结果约 1.99;解耦仅数据梯度进矩,再衰减,约 1.98。非线性分母使轨迹不同。
这里解耦约定先用数据梯度算 m_hat,v_hat,再 w_new=(1−ηλ)w−ηm_hat/(√v_hat+ε),耦合则将 g+λw 放入两个缓冲。区分对应权重衰减论文,是更新定义,不声称统一低测试风险。系数和步长共同定缩放,实验需明确递推。
损失惩罚、增强、dropout、停止都可影响训练,不是可互换目标。增强改例子分布,dropout 加掩码机制,惩罚直接改 F,停止选路径点。先定位规则进入哪层期望或更新;本课推明确惩罚停止,专项泛化需额外模型。
何时衰减恰等普通 L2?Adam 为何不同?停止时间总等一个岭系数吗?
查看答案
普通数据 SGD、因子 1−ηλ 时恒等。自适应矩分母处理耦合惩罚不同于外部收缩。两种特征过滤一般不同,不能全方向单一对应。
条件、裁剪、停止与比较预算
病态二次曲率迫使统一步长顾陡方向稳定,却让平方向很慢。模块 19 全梯度条件仍有参考,抽样另有噪声和逐例曲率;平均 Hessian 稳定不保证任意随机分量更新。先查尺度、目标正规化、梯度范数及抽样,不把所有不规则都称必然随机。
F=10w²/2 的系数 1−10η,η=.1 一步零,η=.25 系数 −1.5、变号且幅度增,与种子无关。稳定噪轨迹也可振荡,需结合幅度和曲率。λ 增曲率,可能改变稳定步长要求,虽能改善多维条件比。
范数裁剪 g min(1,c/||g||)、c>0,零保持零。它限制输入并保单个非零方向,通常却改变期望、偏置原无偏估计。逐分量裁剪是另一几何。它可控制数值跳跃,不能未经证明称仍优化原期望。
估计器等概率 −2、1,均值 −.5。c=1 范数裁为 −1、1,均值零,期望更新不再沿原梯度。有限算术清楚反驳“有界就保无偏”。
小噪梯度不证明全梯度小。四记录中 w=a_i 时该抽样梯度零,全 G=w 却可远离零。小步也可能来自微步长、大自适应分母或裁剪。必要时使用全梯度或有统计依据诊断,区分路径收敛与验证选择。
相同 epoch、更新、逐例评估、墙钟都是不同预算。记录步长索引、替换、惩罚和精度。固定数据跨种子测算法随机性;总体需独立数据或测试单位。配对流可在保各算法边缘时降比较噪声,跨运行复制不增独立实验。
分别报告训练目标、未惩罚数据损失与保留指标。更强惩罚可升数据误差;不同 λ 总目标是不同函数,不能直接当同目标排序。验证选协议,独立测试评冻结。实验 3 明确“示意分数输入”演示停止,不伪装模型基准;实验 2 则是真实拟合输出。
探索器绘多个种子标量 SGD 路径与加噪二次的解析期望,标稳定条件和惩罚曲率。轨迹说明波动,证明的公式才给数学结论。低末损失或一条光滑线不建立通用收敛泛化。下课将带目标、依赖、数值尺度与评估约定一起检查。
步长、训练损失、正则目标与保留表现不同。裁剪或微步可能掩盖大全梯度,测试停止改变评估角色。
裁剪保期望吗?小抽样步证明最优吗?比较需什么预算和波动来源?
查看答案
一般不保,二值例证。尺度、裁剪和随机抵消可藏梯度。列评估/更新/时间、步长、固定拆分和抽样律,分种子与独立评估单位。
常见误解
| 错误说法 | 修正 |
|---|---|
| 每个批都无偏于总体。 | 新索引针对固定经验目标。 |
| 行数总除方差。 | 替换与交叉 Cov 重要。 |
| 重排以后仍满足全表新 IID 证明。 | 条件下一批用剩余索引。 |
| 恒定稳定步去掉全部噪声。 | 二次模型可有方差底。 |
| Adam v 是中心方差。 | 它是原始平方矩。 |
| 岭套索只改速度。 | 它们改目标与稀疏几何。 |
| 所有优化器 L2 和衰减相同。 | 自适应缓冲可改变耦合路径。 |
| 裁剪保无偏。 | 非线性改期望。 |
| 小步证全最优。 | 步长和随机抵消可掩盖梯度。 |
三个可复现实验
实验 1 · 精确批次与相同评估数
下载 lab1_full_and_minibatch_updates.py
"""Fixed finite objective: exact gradient moments and equal evaluation budgets."""
import itertools
import numpy as np
if __name__ == "__main__":
records = np.array([[-2.,0.],[0.,2.],[2.,0.],[0.,-2.]])
w = np.array([3.,-2.])
gradients = w-records
print("Objective F(w)=mean(.5*||w-a_i||^2); four fixed records; minimiser=(0,0)")
print(f"Full gradient={gradients.mean(axis=0).tolist()}; single-index gradient covariance={np.cov(gradients.T,bias=True).tolist()}")
for replacement in (True,False):
batches = list(itertools.product(range(4),repeat=2)) if replacement else list(itertools.combinations(range(4),2))
means = np.array([gradients[list(batch)].mean(axis=0) for batch in batches])
print(f"b=2, replacement={replacement}: exact average={means.mean(axis=0).tolist()}, coordinate variance={means.var(axis=0).round(6).tolist()}")
budget = 2400
for batch in (1,2,4):
rng = np.random.default_rng(28028+batch)
weights = np.array([3.,-2.])
updates = budget//batch
for t in range(updates):
indices = np.arange(4) if batch==4 else rng.integers(0,4,batch)
g = (weights-records[indices]).mean(axis=0)
eta = .4/(1+t/50)
weights -= eta*g
gap = .5*(weights@weights)
print(f"batch={batch}: evaluations={updates*batch}, updates={updates}, final w={weights.round(6).tolist()}, objective gap={gap:.9f}")
print("The schedule is indexed by updates; equal evaluation budgets do not imply identical schedules or wall-clock costs.")
Objective F(w)=mean(.5*||w-a_i||^2); four fixed records; minimiser=(0,0)
Full gradient=[3.0, -2.0]; single-index gradient covariance=[[2.0, 0.0], [0.0, 2.0]]
b=2, replacement=True: exact average=[3.0, -2.0], coordinate variance=[1.0, 1.0]
b=2, replacement=False: exact average=[3.0, -2.0], coordinate variance=[0.666667, 0.666667]
batch=1: evaluations=2400, updates=2400, final w=[-0.141294, -0.033818], objective gap=0.010553878
batch=2: evaluations=2400, updates=1200, final w=[-0.154031, 0.047368], objective gap=0.012984558
batch=4: evaluations=2400, updates=600, final w=[0.0, -0.0], objective gap=0.000000000
The schedule is indexed by updates; equal evaluation budgets do not imply identical schedules or wall-clock costs.
先推三种 Cov,在相同评估数下比较,保留不同更新索引步长的说明。
实验 2 · 训练缩放与正则化
下载 lab2_regularisation_and_scaling.py
"""Training-only scaling and stated ridge/lasso coefficient conventions."""
import numpy as np
if __name__ == "__main__":
rng = np.random.default_rng(28029)
latent = rng.normal(size=(240,2))
features = latent*np.array([1.,100.])
response = 2*latent[:,0]-.5*latent[:,1]+rng.normal(0,.5,240)
train, validation, test = np.arange(144), np.arange(144,192), np.arange(192,240)
center, scale = features[train].mean(axis=0), features[train].std(axis=0)
scaled = (features-center)/scale
response_center = response[train].mean()
print("NumPy1.26.4; seed28029; fixed144/48/48 split; transformations fitted on training only")
print(f"raw Hessian condition={np.linalg.cond(features[train].T@features[train]):.6f}; scaled condition={np.linalg.cond(scaled[train].T@scaled[train]):.6f}")
candidates = [0., .01, .1, 1.]
fitted = []
for lam in candidates:
a = scaled[train]
# Mean half-SSE + lambda/2||w||^2; intercept response_center is not penalised.
w = np.linalg.solve(a.T@a/len(train)+lam*np.eye(2),a.T@(response[train]-response_center)/len(train))
val_mse = np.mean((response_center+scaled[validation]@w-response[validation])**2)
fitted.append((val_mse,lam,w))
print(f"lambda={lam:.2f}, standardised coefficients={w.round(6).tolist()}, validation MSE={val_mse:.6f}")
_, selected, weights = min(fitted,key=lambda row:row[0])
test_mse = np.mean((response_center+scaled[test]@weights-response[test])**2)
print(f"Frozen validation-selected lambda={selected:.2f}; final test MSE={test_mse:.6f}")
a, lam = .8, 1.
ridge = a/(1+lam)
lasso = np.sign(a)*max(abs(a)-lam,0.)
print(f"Scalar .5(w-a)^2: a={a}, lambda={lam}; ridge lambda/2*w^2 solution={ridge:.6f}; lasso lambda*|w| solution={lasso:.6f}")
print("Standardised-coordinate penalties define different prior geometry from penalties on raw units; scaling is not permission to reuse the same probabilistic interpretation.")
NumPy1.26.4; seed28029; fixed144/48/48 split; transformations fitted on training only
raw Hessian condition=11263.011726; scaled condition=1.021254
lambda=0.00, standardised coefficients=[1.983694, -0.475552], validation MSE=0.269910
lambda=0.01, standardised coefficients=[1.964101, -0.471048], validation MSE=0.272948
lambda=0.10, standardised coefficients=[1.803755, -0.43404], validation MSE=0.324786
lambda=1.00, standardised coefficients=[0.99307, -0.242984], validation MSE=1.325412
Frozen validation-selected lambda=0.00; final test MSE=0.286922
Scalar .5(w-a)^2: a=0.8, lambda=1.0; ridge lambda/2*w^2 solution=0.400000; lasso lambda*|w| solution=0.000000
Standardised-coordinate penalties define different prior geometry from penalties on raw units; scaling is not permission to reuse the same probabilistic interpretation.
写平均半 SSE 和无惩罚截距,解释验证选零及不同坐标先验。
实验 3 · 步长、相关、衰减与选择故障
下载 lab3_rates_correlation_and_decay.py
"""Deliberate rate, correlation, nonlinear preconditioning and selection faults."""
import math
if __name__ == "__main__":
curvature, start = 10.,1.
for eta in (.1,.25):
w = start
for _ in range(10):
w -= eta*curvature*w
print(f"F=.5*10*w^2, eta={eta:.2f}: factor={1-eta*curvature:.2f}, w after10={w:.6f}, loss={.5*curvature*w*w:.6f}")
gradients = [-2.,0.,2.,0.]
mean = sum(gradients)/4
variance = sum((g-mean)**2 for g in gradients)/4
print(f"Two IID gradient indices: mean variance={variance/2:.6f}; one index copied twice: variance={variance:.6f}")
w, g, lam, eta, eps = 2., .1, .5, .01, 1e-8
coupled_gradient = g+lam*w
# Adam first step, zero-initialised moments with both bias corrections.
coupled = w-eta*coupled_gradient/(abs(coupled_gradient)+eps)
decoupled = (1-eta*lam)*w-eta*g/(abs(g)+eps)
sgd_coupled = w-eta*(g+lam*w)
sgd_decay = (1-eta*lam)*w-eta*g
assert math.isclose(sgd_coupled,sgd_decay,abs_tol=1e-15)
print(f"SGD L2-gradient={sgd_coupled:.9f}, decoupled decay={sgd_decay:.9f} (equal under this convention)")
print(f"Bias-corrected Adam first step: coupled L2={coupled:.9f}, decoupled decay={decoupled:.9f} (different)")
grad_values = [-2.,1.]
clipped = [max(-1.,min(1.,x)) for x in grad_values]
print(f"Unclipped mean={sum(grad_values)/2:.6f}; clipped mean={sum(clipped)/2:.6f} (clipping can change expectation)")
# Illustrative input scores, not measured model runs.
print("Illustrative score arrays demonstrate the selection rule, not a model benchmark.")
validation = [.30,.26,.25,.27,.29]
test = [.31,.29,.28,.24,.26]
chosen = min(range(len(validation)),key=validation.__getitem__)
invalid = min(range(len(test)),key=test.__getitem__)
print(f"Predeclared validation stopping chooses epoch{chosen+1}; corresponding one-time test={test[chosen]:.2f}")
print(f"Test-based stopping chooses epoch{invalid+1}, reported={test[invalid]:.2f}; this is selection, not an untouched final test.")
F=.5*10*w^2, eta=0.10: factor=0.00, w after10=0.000000, loss=0.000000
F=.5*10*w^2, eta=0.25: factor=-1.50, w after10=57.665039, loss=16626.283650
Two IID gradient indices: mean variance=1.000000; one index copied twice: variance=2.000000
SGD L2-gradient=1.989000000, decoupled decay=1.989000000 (equal under this convention)
Bias-corrected Adam first step: coupled L2=1.990000000, decoupled decay=1.980000001 (different)
Unclipped mean=-0.500000; clipped mean=0.000000 (clipping can change expectation)
Illustrative score arrays demonstrate the selection rule, not a model benchmark.
Predeclared validation stopping chooses epoch3; corresponding one-time test=0.28
Test-based stopping chooses epoch4, reported=0.24; this is selection, not an untouched final test.
修不稳定及副本 Cov,推首次自适应步,诊裁剪偏差。停止数组是示意输入,不是测量基准。
十四题与完整解答
练习 1–12 必做,选学 13–14 在十二小时以外加 35 分钟。
四记录在 w=(3,-2) 的 G、C 和有放回二批 Cov?
查看解答
均值零给 G=w,中心 −a_i 给 C=2I,二独立均值 Cov=I,副本不是此值。
N4、b2、C2I,求无放回与复制 Cov。
查看解答
子集 (C/2)(2/3)=2/3 I,副本仍 2I,二者无偏而波动不同。
.5(w−.8)²、λ1 的岭与套索解?
查看解答
半平方惩罚给 .4,绝对惩罚因 .8≤1 得零,零次梯度可平衡 .8。
a1、η.1、v2,求系数、方差底与平稳损失。
查看解答
.9、2/19、1/19。需要新独立零均值加噪与稳定步。
证均匀无偏、重要性及两种批 Cov。
查看解答
有限期望 Σg_i/N,非均匀修正 Σp_i g_i/(Np_i)=G。有放回交叉零给 C/b;不同抽样交叉 −C/(N−1),b 个对角与 b(b−1) 项给 C(N−b)/[b(N−1)],条件为固定梯度及所述抽样。
推条件光滑期望下降及标量方差递推。
查看解答
光滑上界代入 −ηg_hat,线性均值 −η||G||²,平方均值 ||G||²+trCov,即得带噪项界。独立加噪中心递推方差 (1−ηa)²V+η²v,稳定几何和给 ηv/[a(2−ηa)]。
推软阈值并证明普通 SGD 衰减等价。
查看解答
非零解 w−a+λsignw=0;零处 −a∈[−λ,λ] 给阈值分支。普通 w−η(g+λw) 展开即 (1−ηλ)w−ηg,恒等不含动量或自适应。
2400 梯度评估、更新索引步长,比较三批量需记录什么?
查看解答
批 1、2、4 分别 2400、1200、600 更新,访问不同步长编号。记录预算、替换、步长、内存时间及目标,不由一条轨迹推通用效率泛化。
推均半 SSE 岭方程,证 λ>0 秩亏也唯一。
查看解答
梯度 Xᵀ(Xw−y)/N+λw=0。矩阵二次型 ||Xv||²/N+λ||v||²>0,故可逆。截距和坐标另外说明。
算 w2、g.1、λ.5、η.01 的 SGD 与首次 Adam 耦合/解耦。
查看解答
普通都 1.989。首修正 m_hat=g_used、v_hat=g_used²,耦合 1.1 给约 1.99;解耦 .1 与乘缩给约 1.98。ε=10⁻⁸ 在根号外。
二批复制、裁剪、小步被当成全收敛证书,修复。
查看解答
副本保 C 非 C/2,裁剪可改均值,小步可来自率阈值尺度。应查全梯度或正确统计诊断,单记录零不证全零。
先全数据标准化、同 λ 声称同原先验、测试选停止,修复。
查看解答
训练拟合变换,列系数坐标,标准化各向同性一般不同原先验。验证选停止后冻结,独立最终测;选择过的测试不未触碰。
推正定二次停止与岭过滤,解释 t 不一般等 λ。
查看解答
零始模态 u_next=(1−ηh)u+ηb,解 [1−(1−ηh)^t]b/h。岭 b/(h+λ),过滤 h/(h+λ),不同 h 函数一般不相同。单调还需 η≤1/h_max,单模态相同不证明整个等价。
平稳矩下证 EMA 零初始化修正,解释为何训练中不保证当前自适应无偏。
查看解答
m_t=(1−β)Σβ^(t−j)g_j,共同均值 μ 给期望 (1−β^t)μ,除该因子去初始化偏。平方同理给原始二阶矩。变化迭代律与随机非线性分母阻止当前无偏结论。
十题自测
查看答案
固定均损失的新均匀有放回给 G 与 C/b,副本保交叉,子集有修正。列半 SSE/惩罚、更新步长和评估数。裁剪可偏,Adam 耦合解耦不同。验证选择后独立最终测,经验下降不证明总体风险或通用收敛。
带问题阅读
读 Mathematics for Machine Learning 的优化模型目标,核对 Adam 算法 1 和解耦衰减论文的定义。本课证明有限 Cov、噪二次和惩罚,不借用通用表现声明。
| 时间 | 阅读问题 |
|---|---|
| 第一阶段 · 20 分钟 | 哪个期望是总体,哪个是有限索引? |
| 第四阶段 · 20 分钟 | 修正、ε、惩罚和衰减在哪进入? |
检索结业与下一步
推无偏、Cov、期望下降、方差底、岭套索和衰减区别,将预算、坐标、裁剪和不泄漏停止串为报告。
结业任务:比较独立二索引、不同子集、副本;修大曲率步与 Adam 等价误解,列最终评估。
进入下一课的标准:能数学审计随机更新。下一课研究舍入、条件与稳定实现。返回总览。
符号与双语术语
| 符号或术语 | 含义 | English |
|---|---|---|
| R / F | 总体 / 经验风险 | Population / empirical risk |
| G / g_hat / C | 全 / 抽样梯度 / 有限 Cov | Gradient / estimate / covariance |
| η / β / ε | 步长 / 动量衰减 / 分母稳定项 | Step / momentum / stabiliser |
| 岭 / 套索 | 平方 / 绝对系数惩罚 | Ridge / lasso |
| 次梯度 / 近端 | 凸支撑斜率 / 惩罚子步 | Subgradient / proximal |
| 衰减 / 裁剪 | 乘法收缩 / 范数阈值 | Weight decay / clipping |
| 提前停止 / 预算 | 所选迭代 / 声明工作量 | Early stopping / budget |