1. 在线学习引言

在线学习引言

  • [1. 在线博弈](#1. 在线博弈)
    • [1.1. 在线博弈游戏](#1.1. 在线博弈游戏)
    • [1.2. 最小化悔值](#1.2. 最小化悔值)
  • [2. 在线学习](#2. 在线学习)
    • [2.1. 在线博弈的泛化](#2.1. 在线博弈的泛化)
    • [2.2. 在线学习的应用](#2.2. 在线学习的应用)
  • [3. 获胜策略 (Follow the-Leader)](#3. 获胜策略 (Follow the-Leader))
  • [4. 悔值概念的由来](#4. 悔值概念的由来)

1. 在线博弈

1.1. 在线博弈游戏

在每一轮 t = 1 , ... , T t = 1, \dots, T t=1,...,T 中:

  • 一名对手选择一个实数 y t ∈ [ 0 , 1 ] y_t \in [0, 1] yt∈[0,1] 并保持秘密;
  • 你尝试猜测该实数,选择 x t ∈ [ 0 , 1 ] x_t \in [0, 1] xt∈[0,1];
  • 对手的数字被公开,你支付差值的平方 ( x t − y t ) 2 (x_t - y_t)^2 (xt−yt)2。

目标是尽可能准确地猜测一系列数字。

为了使其成为一个博弈,我们现在必须定义一个"获胜条件"。让我们看看什么样的条件作为获胜条件是合理的。

假设对手是从 [ 0 , 1 ] [0, 1] [0,1] 上的某个固定分布中独立同分布地抽取数字(可以在博弈开始时自由决定使用哪种分布)。

  • 如果我们知道该分布,只需在每一轮预测该分布的均值,期望情况下我们将支付 σ 2 T \sigma^2 T σ2T,其中 σ 2 \sigma^2 σ2 是分布的方差。 σ 2 \sigma^2 σ2 是理论上的最优表现(即"天花板"),任何实际算法(尤其是当你还不知道分布是什么时)的表现都不可能优于它(最优策略)
  • 鉴于我们不知道分布,自然会将我们的策略与最优策略进行基准比较。即衡量以下数值: E Y [ ∑ t = 1 T ( x t − Y ) 2 ] − σ 2 T , (1.1) \mathbb{E}Y \left[ \sum{t=1}^T (x_t - Y)^2 \right] - \sigma^2 T, \tag{1.1} EY[t=1∑T(xt−Y)2]−σ2T,(1.1)如果对手选择的数字分布方差 σ 2 \sigma^2 σ2 很大,那么无论你的算法多么聪明,预测误差自然会很大。通过减去 σ 2 T \sigma^2 T σ2T,就像考试时减去全班的平均难度分,剩下的才是你真正的"水平误差",即在某种程度上根据对手生成的数字的"难度"进行了归一化。

这并不是衡量我们"成功"的唯一可能标准,但肯定是一个合理的标准。如果 (1.1) 中的差值随时间呈次线性(sublinearly)增长,我们可以认为该策略是"成功的"。也就是说,在平均轮数上,我们希望我们的算法能够接近最优性能。

1.2. 最小化悔值

既然我们已经确定了算法成功的衡量标准,现在让我们以等价的方式重写 (1.1): E [ ∑ t = 1 T ( x t − Y ) 2 ] − min ⁡ x ∈ [ 0 , 1 ] E [ ∑ t = 1 T ( x − Y ) 2 ] . \mathbb{E} \left[ \sum_{t=1}^T (x_t - Y)^2 \right] - \min_{x \in [0, 1]} \mathbb{E} \left[ \sum_{t=1}^T (x - Y)^2 \right]. E[t=1∑T(xt−Y)2]−x∈[0,1]minE[t=1∑T(x−Y)2].移除关于数据如何生成的假设,考虑任意的 y t y_t yt 序列,并继续使用相同的成功衡量标准。 由于不再有随机性,我们可以去掉期望符号。如果以下值随 T T T 呈次线性(sublinearly)增长,我们就赢得了博弈: Regret T : = ∑ t = 1 T ( x t − y t ) 2 − min ⁡ x ∈ [ 0 , 1 ] ∑ t = 1 T ( x − y t ) 2 \text{Regret}T := \sum{t=1}^T (x_t - y_t)^2 - \min_{x \in [0,1]} \sum_{t=1}^T (x - y_t)^2 RegretT:=t=1∑T(xt−yt)2−x∈[0,1]mint=1∑T(x−yt)2上述数值被称为悔值 (Regret),因为它衡量了算法由于没有在所有轮次中始终坚持事后看来(in hindsight)的最优选择而感到多么"后悔"。我们将其记为 Regret T \text{Regret}_T RegretT。当悔值是次线性增长时,我们称该算法是无悔(no-regret)的。

2. 在线学习

在本书的大部分内容中,我们将使用单个对手(固定的"最佳数字"),而在第 15 章中我们将考虑一系列对手

  • 我们假设对手是从一个固定分布里抽数字,那么逻辑上存在一个唯一的、固定的"最佳数字"(即该分布的期望值/均值)。只要每一轮都猜这个数字,长期损失就是理论最小的。因此,把"表现"和"这个唯一的最佳固定值"作比较是非常自然且合理的。
  • 我们移除了分布假设,对手可以乱出牌(任意序列)。当数据不再有规律时,仅仅对比"一个在全过程中表现最好的固定值(单一对手)"来衡量你的算法水平可能就显得有点"弱"了。

2.1. 在线博弈的泛化

把以上的在线博弈再泛化:

  • 数据类型 :之前我们只在 [ 0 , 1 ] [0, 1] [0,1] 之间猜一个实数,现在设定算法输出的是一个 d d d 维向量 x t ∈ R d x_t \in \mathbb{R}^d xt∈Rd。这意味着该框架现在可以处理更复杂的问题,比如同时预测多种股票的价格或多个广告位的点击率。
  • 可行集 ( V \mathcal{V} V) :预测值必须落在的合法范围。例如,在概率预测中,所有概率之和必须等于 1,这个约束条件就定义了"可行集"。
  • 抽象损失函数 ( ℓ t \ell_t ℓt):之前我们固定使用"平方差" ( x t − y t ) 2 (x_t - y_t)^2 (xt−yt)2 作为惩罚。现在泛化为 ℓ t \ell_t ℓt,它可以是任何衡量预测好坏的函数。这使得在线学习框架可以应用于路由选择(损失可能是延迟)或网页点击预测(损失可能是分类错误)等多种场景。
  • 预测器 u u u:让我们考虑一个在 V ⊆ R d \mathcal{V} \subseteq \mathbb{R}^d V⊆Rd 中的任意预测器 u u u,并参数化相对于它的悔值: Regret T ( u ) \text{Regret}_T(u) RegretT(u) ( u u u 是可行集里任何一个固定的选择(预测器))。

在线学习 (Online Learning):设计和分析算法以使相对于任意对手 u ∈ V ⊆ R d u \in \mathcal{V} \subseteq \mathbb{R}^d u∈V⊆Rd 的损失函数序列的悔值最小化: Regret T ( u ) : = ∑ t = 1 T ℓ t ( x t ) − ∑ t = 1 T ℓ t ( u ) . \text{Regret}T(u) := \sum{t=1}^T \ell_t(x_t) - \sum_{t=1}^T \ell_t(u). RegretT(u):=t=1∑Tℓt(xt)−t=1∑Tℓt(u).值得强调的是,为了保证悔值的上界,在线算法既不知道 u u u,也不知道相应悔值的具体数值。

在完全不知道 u u u 是谁的情况下,寻找一种策略。这种策略能保证:不管最后谁被证明是那个最优的 u u u,你的表现都不会比它差太多。

2.2. 在线学习的应用

在线学习这个框架非常强大,它允许将机器学习和优化中的许多不同问题重新表述为类似的博弈。

  • 传统机器学习通常依赖于数据是 独立同分布的假设,即数据是遵循某种固定概率规律生成的。
  • 在线学习框架通过使用"悔值" 的概念,不再要求数据有规律。即便数据是由一个充满敌意的对手(Adversary)故意制造的乱序或极端情况,该框架依然适用(假设这个 y t y_t yt 序列是由一个想让你输的对手实时生成的,更一般的是损失函数 l t l_t lt)。
  • 在这种极端环境下,如果悔值的增长是次线性的(即随时间推移,平均悔值趋于 0),就证明了算法确实在从过去的损失中吸取教训,并不断逼近最优决策。

例如,在线学习可以用于分析:

  • 网页广告点击预测:这是一个动态过程,用户的偏好可能随时改变,不再符合固定分布。
  • 网络路由:网络拥堵状况瞬息万变,路径选择可以被看作是一系列损失最小化的决策过程。
  • 重复博弈的均衡:通过分析博弈各方的悔值,可以推导出博弈是否能收敛到某种稳定状态(如纳什均衡)。

在线学习这个框架可以分析像随机梯度下降(SGD)或动量算法这样的优化工具,因为它们在每一步也都在处理损失函数。但是由于悔值框架是为最坏情况(对抗性环境)设计的,它可能会显得过于"悲观"。

  • 对抗性环境 :假设环境是"有意的"。这个对手可以看到你过去的所有选择,并故意给出一个让你损失最大的序列 ℓ 1 , ... , ℓ T \ell_1, \dots, \ell_T ℓ1,...,ℓT。如果能在这种"最极端"的敌对环境下依然保证悔值次线性增长,那么在任何其他环境下(比如数据是有规律的),你的算法表现一定会更稳健(悲观设定)。
  • 导致的问题:动量(Momentum)本是为了利用梯度的连续性来加速收敛。当环境并不是那么恶意(例如数据其实有一定规律)时,因为在线学习把对手的干扰看得太重,以至于忽略了算法原本利用梯度的优势。动量的这种"平滑"作用会被视为一种毫无意义的、随着时间会消失的"干扰(disturbance)",从而无法从数学上体现出动量算法真正的提速优势。

3. 获胜策略 (Follow the-Leader)

现在让我们回到猜数字博弈,并尝试寻找一种获胜策略。

  • 这是在线学习中最简单的例子之一,没有实际应用。通过研究它揭示在线学习算法及其分析中的大部分关键要素。

数据的设定:我们并没有对对手如何决定数字做任何假设。

  • 这些数字可以以任何方式生成,甚至可以根据我们的策略以自适应的方式生成。
  • 可以是以对抗性的方式被选出的,即显式地试图让我们输掉博弈。这就是为什么我们将生成数字的机制称为对手。
  • 数字是被对抗性地选出的这一事实意味着,我们可以立即排除任何基于对数据进行统计建模的策略。统计建模无法奏效是因为一旦我们估计了某些东西并根据我们的估计采取行动,对手就可以立即改变他生成数据的方式,从而毁掉我们的策略。因此,我们必须考虑别的方法。
  • 令人惊讶的是,很多时候在线学习算法看起来会像经典的统计估计方法,尽管它们的工作原理并不相同。

现在,让我们尝试设计一种策略,使悔值在时间上被证明是次线性的,无论对手如何选择数字。

  • 首先要做的是看看事后看来(in hindsight)的最佳策略,即悔值第二项的 argmin \text{argmin} argmin。应当很容易看出: x T ∗ : = argmin x ∈ [ 0 , 1 ] ∑ t = 1 T ( x − y t ) 2 = 1 T ∑ t = 1 T y t . x_T^* := \text{argmin}{x \in [0, 1]} \sum{t=1}^T (x - y_t)^2 = \frac{1}{T} \sum_{t=1}^T y_t. xT∗:=argminx∈[0,1]t=1∑T(x−yt)2=T1t=1∑Tyt.现在,鉴于我们不知道未来,我们肯定不能在每一轮中使用 x T ∗ x_T^* xT∗ 作为我们的预测。
  • 策略:我们确实知道过去,所以每一轮的一个合理策略可以是输出过去表现最好的那个数字。
  • 为什么这样的策略会奏效?可以肯定的是,它奏效的原因并不是因为我们期望未来会像过去一样。相反,我们想要利用这样一个事实:随着时间的推移,最优预测值在轮次之间不会改变太多,因此我们可以尝试随时间去"追踪"它。因此,在每一轮 t t t,我们的策略是猜测 x t = x t − 1 ∗ = 1 t − 1 ∑ i = 1 t − 1 y i x_t = x_{t-1}^* = \frac{1}{t-1} \sum_{i=1}^{t-1} y_i xt=xt−1∗=t−11∑i=1t−1yi。这种策略通常被称为 Follow-the-Leader (FTL,跟随领导者),因为你正在跟随在过去轮次中本应是最优的选择(即"领导者")。

现在让我们尝试证明这种策略确实能让我们赢得博弈。

引理 1.2. 设 V ⊆ R d \mathcal{V} \subseteq \mathbb{R}^d V⊆Rd,且 ℓ t : V → R \ell_t : \mathcal{V} \rightarrow \mathbb{R} ℓt:V→R 为任意损失函数序列。假设存在 x t ∗ ∈ argmin x ∈ V ∑ i = 1 t ℓ i ( x ) x_t^* \in \text{argmin}{x \in \mathcal{V}} \sum{i=1}^t \ell_i(x) xt∗∈argminx∈V∑i=1tℓi(x),即前 t t t 轮累积损失在 V \mathcal{V} V 中的最小化器。那么,我们有: ∑ t = 1 T ℓ t ( x t ∗ ) ≤ ∑ t = 1 T ℓ t ( x T ∗ ) . \sum_{t=1}^T \ell_t(x_t^*) \leq \sum_{t=1}^T \ell_t(x_T^*). t=1∑Tℓt(xt∗)≤t=1∑Tℓt(xT∗).

数学含义 :如果你在每一轮 t t t 都能预知当前轮次的损失并选择使包含当前轮在内的累积损失最小的决策 x t ∗ x_t^* xt∗(即"成为领导者"),那么你总的累积损失将不会超过事后看来的最优固定决策 x T ∗ x_T^* xT∗ 的累积损失。

  • 左侧 ( ∑ ℓ t ( x t ∗ ) \sum \ell_t(x_t^*) ∑ℓt(xt∗))代表Leader,他在每一轮决策前都预知了当轮的损失函数,然后选出了包含当前轮在内的最优解。
  • 右侧 ( ∑ ℓ t ( x T ∗ ) \sum \ell_t(x_T^*) ∑ℓt(xT∗)) 代表一个"事后诸葛亮",他在 T T T 轮全部结束后,回头看过去,选出了那个自始至终表现最好的唯一固定值。
  • 那个能在每一轮动态调整、紧跟最新形势的"作弊者",其表现一定会优于(或等于)那个虽然很强但从头到尾一成不变的固定策略。

现实中的决策者在博弈的第 t t t 轮必须先给出一个预测值 x t x_t xt,然后对手才会揭晓当轮的真实数字 y t y_t yt(或损失函数 ℓ t \ell_t ℓt)。当你做决定时,你对当轮的损失是一无所知的,你只能依赖过去 t − 1 t-1 t−1 轮的历史数据。在 引理 1.2 定义的 x t ∗ ∈ argmin x ∈ V ∑ i = 1 t ℓ i ( x ) x_t^* \in \text{argmin}{x \in \mathcal{V}} \sum{i=1}^t \ell_i(x) xt∗∈argminx∈V∑i=1tℓi(x) 中,这个决策者的行为就被视为"偷看",他在第 t t t 轮选择决策点时,计算的是包含当前轮次 ℓ t \ell_t ℓt 在内的累积损失最小化。

  • 这个"偷看者"代表了适应性的极致。引理证明了:哪怕是这个能预知未来的"偷看者",其总损失也比那个事后选出的最牛固定预测器 x T ∗ x_T^* xT∗ 还要低
  • 如果我们能证明一个现实中的算法和这个"偷看者"之间的差距很小,那么也就证明了该算法和那个最牛固定预测器之间的差距(即悔值 Regret)也很小。FTL 的由来就是既然 x t ∗ x_t^* xt∗(包含当轮)是完美的,那我就用 x t − 1 ∗ x_{t-1}^* xt−1∗(截止到上一轮的最优值)来代替。

利用这个引理,我们现在可以证明悔值将随时间呈次线性增长,特别是它将至多随时间呈对数级增长。

我们不会证明我们的策略是极小极大最优的,尽管可以证明对于这个问题来说,对时间 T T T 的对数依赖性是不可避免的。

  • 极小极大最优是指在所有可能的算法中,该算法在面对最邪恶的对手时,能把"最大可能损失"降到最低。
  • 作者坦诚 FTL 算法虽然已经非常优秀(量级正确),但它可能不是那个在每一轮、每一个常数系数上都无懈可击的"终极神级算法"。

定理 1.3. 设 y t ∈ [ 0 , 1 ] y_t \in [0, 1] yt∈[0,1](对于 t = 1 , ... , T t = 1, \dots, T t=1,...,T)为任意数字序列。设算法的输出为 x t = x t − 1 ∗ : = 1 t − 1 ∑ i = 1 t − 1 y i x_t = x_{t-1}^* := \frac{1}{t-1} \sum_{i=1}^{t-1} y_i xt=xt−1∗:=t−11∑i=1t−1yi,其中我们定义 x 0 ∗ = 0.5 x_0^* = 0.5 x0∗=0.5。那么,我们有: Regret T = ∑ t = 1 T ( x t − y t ) 2 − min ⁡ x ∈ [ 0 , 1 ] ∑ t = 1 T ( x − y t ) 2 ≤ 4 + 4 ln ⁡ T . \text{Regret}T = \sum{t=1}^T (x_t - y_t)^2 - \min_{x \in [0, 1]} \sum_{t=1}^T (x - y_t)^2 \leq 4 + 4 \ln T. RegretT=t=1∑T(xt−yt)2−x∈[0,1]mint=1∑T(x−yt)2≤4+4lnT.

证明的步骤 :引理 1.2 允许我们利用相对于对手序列 x 1 ∗ , ... , x T ∗ x_1^*, \dots, x_T^* x1∗,...,xT∗ 的悔值,来给出相对于单一最佳猜测悔值的上界。反过来,鉴于我们在每一轮生成的预测是 x t − 1 ∗ x_{t-1}^* xt−1∗,且 ∣ x t ∗ − x t − 1 ∗ ∣ |x_t^* - x_{t-1}^*| ∣xt∗−xt−1∗∣ 趋于零的速度非常快,总悔值在时间上是次线性的。

关于这个策略,有几点需要强调。

  • 该策略没有需要调优的参数(例如学习率、正则化项)。请注意,参数的存在在在线学习中没有意义:我们只有一波数据流,不能在其上多次运行算法来选择最佳参数! (在线学习面对的是实时数据流,没有机会像离线训练那样反复调整超参数。)
  • 该策略不需要维护过去的完整记录,而只需要通过运行平均值。这产生了一种计算效率高的算法。(利用滑动平均值意味着算法只需要存储极少的信息,而不需要记住所有的历史原始数据。)
  • 梯度很有用,我们也会大量使用它们,但它们并不构成在线学习的全部。
  • 这与传统的统计机器学习设定不同。因此,例如"过拟合"在这里完全没有意义。对于"泛化差距(generalization gap)"以及与训练/测试场景相关的类似概念也是如此。(在线学习不区分训练集和测试集,因此传统机器学习中核心的"过拟合"或"泛化"概念在这里并不适用。)

在接下来的章节中,我们将介绍几种用于在线优化的算法,其中之一将是我们上面示例中所用策略的严格推广。

4. 悔值概念的由来

"悔值"(Regret)的概念起源于博弈论,最早由 Savage [1951] 在回顾和阐述 Wald [1950] 关于统计决策问题的研究时提出。它的核心思想是衡量在特定状态下,"最优行动的效用"与"实际行动的效用"之间的差值。

虽然 Savage 提出了这一逻辑,但他本人并不喜欢"悔值"这个称呼,认为它带有过强的情感色彩,容易让人误以为损失是必然会被察觉的,因此他更倾向于称其为"损失";而"悔值"这一术语最终是由 Milnor [1951] 建议并流传开来的。在理论演进上,Wald 最初设想的是在最佳行动效用为 0 的假设下最大化效用,而 Savage 则将其修正为最小化与最优决策之间的差距,虽然两者在数学上等价,但视角有所不同。

随后,Hannan [1957] 将这一概念从单次博弈扩展到了重复博弈序列中,并证明了通过随机算法可以使长期的平均悔值趋于零,这也是在线学习中核心工具"引理 1.2"的由来。由此可见,"悔值"虽然是一个纯粹的博弈论概念,但有趣的是,它是通过两位数理统计学家的思想火花碰撞才得以确立并完善的。

相关推荐
李日灐1 小时前
< 12 > Linux进程:进程虚拟地址空间机制 —— 内存管理的美学
linux·运维·算法
Lucky_ldy1 小时前
C语言学习:数据在内存中的存储
c语言·开发语言·学习
我想我不够好。1 小时前
2026.5.14 消防监控学习 35min
学习
AOwhisky1 小时前
Docker 学习笔记:Docker Compose 多容器编排
linux·运维·笔记·学习·docker·容器
Mr_pyx1 小时前
LeetCode 226. 翻转二叉树(多种解法详解)
算法·深度优先
qeen871 小时前
【算法笔记】各种常见排序算法详细解析(上)
c语言·数据结构·c++·学习·算法·排序算法
金色光环1 小时前
【DSP学习】 EPWM 原理-基于普中DSP开发攻略
学习·dsp开发
绿蕉1 小时前
自动驾驶技术的演进之路:从规则算法到端到端架构
算法·架构·自动驾驶
Ulyanov1 小时前
《从质点到位姿:基于Python与PyVista的导弹制导控制全栈仿真》: 基石——3-DOF质点弹道的高保真建模与数值稳定性分析
开发语言·python·算法·ui·系统仿真