在线学习 Online Learning
Published:
我在荒岛上迎接黎明。太阳初升时,忽然有十万支金喇叭齐鸣。阳光穿过透明的空气,在暗蓝色的天空飞过。在黑暗尚末退去的海面上燃烧着十万支蜡烛。 我听见天地之间钟声响了,然后十万支金喇叭又一次齐鸣。我忽然泪下如雨,但是我心底在欢歌。有一柄有弹性的长剑从我胸中穿过,带来了剧痛似的巨大快感。
在线学习
1. 背景与提出
在机器学习中,经典的有监督学习方法假设训练数据和测试数据来自相同的分布,即独立同分布假设(i.i.d.),这种方法在静态数据集上效果较好。然而,在许多现实场景中,数据分布可能随着时间变化。例如,电子商务中的推荐系统、金融市场的预测系统、社交媒体分析等场景下,用户行为或市场环境不断变化,导致训练时的数据分布和预测时的数据分布不再相同,这种现象被称为域迁移(Domain Shift)或概念漂移(Concept Drift)。
为了应对数据分布的变化和不可预见的未来数据,在线学习应运而生。与传统的批量学习(Batch Learning)不同,在线学习允许模型根据逐步到达的数据进行更新,并且不需要在初始阶段获得完整的训练集。它特别适合处理非静态环境中的学习任务。
2. 应用场景
在线学习主要应用于需要处理动态变化数据的场景。常见应用包括:
• 推荐系统:推荐系统中的用户偏好可能随着时间发生变化。通过在线学习,系统可以根据用户的实时反馈和行为动态更新推荐结果。例如,电子商务平台可以根据用户的购买记录和浏览习惯,持续调整推荐算法。在广告点击预测中,广告商需要根据用户的历史点击数据来动态调整广告投放策略。每次投放广告后,广告商会获得用户是否点击的反馈,进而调整下一轮广告的投放策略。损失函数可以定义为广告投放后产生的点击率差异。
• 金融市场:金融市场是典型的非静态环境,股价、交易量、新闻等信息不断变化,模型需要根据这些变化进行实时预测和决策。传统的批量学习难以应对如此快速变化的市场信号,而在线学习可以根据最新的市场数据进行及时调整。
• 自动驾驶:在自动驾驶领域,车辆需要在不同的环境下根据传感器输入动态调整决策。由于环境(天气、道路、交通)是变化的,在线学习可以使自动驾驶系统根据实时的环境数据更新驾驶策略。
• 动态广告投放:在线广告投放系统可以根据用户的点击和互动数据,实时调整广告展示策略,以提高广告的点击率和转化率。
• 网络安全:随着网络攻击的手段和模式不断变化,在线学习可以根据最新的攻击数据动态更新安全策略,识别并防范新的威胁。
• 网络上的路径选择:在计算机网络中,路由选择问题可以看作是一个在线学习问题。网络中的每一条路径都有一个变化的延迟或负载(对应损失函数),路由器在每次传输数据时需要选择一条路径,而延迟或负载直到数据包到达目的地后才会被反馈给路由器。目标是最小化总的网络延迟。
• 重复博弈中的收敛:在重复博弈中,多个玩家反复进行博弈,每个玩家的损失函数取决于其他玩家的策略选择。在线学习算法可以帮助玩家通过历史信息动态调整策略,使得在长时间内累积的遗憾最小化,并逐渐收敛到博弈的均衡解。
3. 理论基础与特征
在线学习的理论基础源自与传统有监督学习不同的设定。它不依赖于独立同分布假设,而是通过不断调整模型应对数据分布变化。在线学习的模型与环境通过交替的方式进行交互,模型在每个时间步对新到达的数据进行预测,并根据反馈(如实际标签或奖励)来调整模型参数。
在线学习的几个关键特征:
• 数据敌对性:在线学习不假设数据是友好的,甚至假设数据可能是对抗性的(Adversarial),即数据可能故意挑战模型。算法需要在最坏的情况下仍能有效学习。
• 交互式过程:在线学习是一种逐步更新模型的交互式过程,每次做出预测后,算法会根据实际反馈(如正确的标签)来调整参数。这个过程既包含了预测的环节,又包含了更新的环节。
• 有限反馈:在许多在线学习应用中,模型可能只能获得有限的反馈。例如,在广告系统中,只有用户点击的广告能反馈是否有效,未点击的广告没有直接反馈。这种有限的反馈机制要求在线学习能够从少量信息中快速学习并优化。
• 交替训练与测试:在线学习的训练和测试是交替进行的。每当模型对一个新的数据点进行预测后,接收到反馈,再根据反馈调整模型。这与传统学习不同,传统学习中训练和测试是完全分离的。
在线学习问题框架详解
在线学习问题可以通过一个数学游戏来描述,在这个游戏中,模型与一个敌对方(对手)不断交互,目标是通过逐轮决策来最小化总损失。这个过程在许多机器学习和决策问题中具有广泛的应用,比如点击预测问题、网络路由问题以及重复博弈中的均衡解分析。本文将从问题设定、目标、以及遗憾(Regret)的定义与衡量等角度详细整理该问题框架。
1. 问题设定
在在线学习的设定中,整个决策过程是一个多轮的交互游戏。在每一轮 $t \in [T]$ 中,交互过程如下:
- 敌手选择一个本轮的损失函数 $l_t$: $V \rightarrow \mathbb{R}$ ,并且对学习者保密,损失函数在每轮都可以不同。
- 学习者在不知道本轮损失函数 $l_t$ 的情况下,根据此前所有轮次的历史信息,选择一个动作 $x_t \in V$ ,其中 $V \subseteq \mathbb{R}^d$ 是一个定义好的可行集(Feasible Set)。
- 敌手向学习者展示当前轮的损失函数 $l_t$ ,并且学习者会因此产生损失 $l_t(x_t)$ 。
- 该过程重复进行 T 轮,学习者的目标是在这 T 轮中最小化总损失。
2. 目标:最小化后悔(Regret)
在在线学习中,由于每轮的损失函数 $l_t$ 是未知的,学习者不能像在离线学习中那样预先选择一个最佳的固定策略。因此,在线学习中的目标不是直接最小化每轮的损失,而是最小化累积遗憾(Regret)。
遗憾(Regret)是衡量学习者所选择的决策 $x_t$ 相对于最优固定决策 $u \in V$ 的差距。具体地,针对任意的固定参考点 u ,定义相对于 u 的遗憾为:
\[\mathrm{Regret}T(u) = \sum{t=1}^{T} l_t(x_t) - \sum_{t=1}^{T} l_t(u)\]其中,$\sum_{t=1}^{T} l_t(x_t)$ 是学习者在 T 轮内实际产生的总损失,而 $\sum_{t=1}^{T} l_t(u)$ 是在所有轮次中,若学习者提前知道损失函数并总是选择最优固定动作 u ,能够得到的最小总损失。显然,学习者的目标是使得遗憾尽可能小。
3. 子线性遗憾(Sublinear Regret)
在线学习中的理想情况是能够找到一种算法,使得遗憾随轮次 T 的增加呈现子线性增长。具体地,目标是实现遗憾 $\mathrm{Regret}_T(u) = o(T)$ ,也就是说,当 T 趋于无穷时,每轮的平均遗憾趋于 0:
\[\lim_{T \to \infty} \dfrac{\mathrm{Regret}_T(u)}{T} = 0\]这意味着,随着游戏轮数的增加,学习者的决策表现会逐渐接近于最优的固定策略。
4. 动态决策算法与遗憾最小化
为了实现累积遗憾 $o(T)$ 的目标,在线学习领域提出了许多动态决策算法。这些算法通常基于学习者逐轮接收到的反馈信息,更新其决策策略。几种常见的在线学习算法包括:
- 加权投票算法(Weighted Majority Algorithm):学习者根据历史表现为每个可能的策略分配权重,每轮根据权重进行随机选择。表现不佳的策略其权重会被逐步降低,从而引导学习者逐步趋近于最优策略。
- 追随正则化领导者(Follow The Regularized Leader, FTRL):该算法通过最小化历史损失的加权和,同时引入正则化项防止过度拟合。FTRL 能够自适应调整学习速率,并在动态环境中有效应对损失函数的变化。
- 在线梯度下降(Online Gradient Descent, OGD):在凸优化问题中,在线梯度下降算法通过每轮计算损失函数的梯度并更新决策点,从而逐步逼近最优解。OGD 在损失函数为凸函数时能够保证子线性遗憾。
4. 损失函数与遗憾(Regret)
损失函数是在线学习中衡量模型性能的标准之一。在传统有监督学习中,损失函数通常一次性计算,而在在线学习中,损失函数是随着时间逐步累积的。在线学习的目标是最小化累积损失,特别是在应对未知的未来数据时。
- 遗憾(Regret)是在线学习中用于衡量算法性能的一个重要概念。遗憾衡量的是在线算法的表现与最优离线算法的差距。在线学习的遗憾可以定义为:
其中:$ l_t(\hat{y_t}) $ 是在线学习算法在第 t 轮的损失, $\min_{f \in F} \sum_{t=1}^{T} l_t(f(x_t))$是假设我们知道所有数据的情况下,最优离线算法的累积损失。
在线学习的目标是使遗憾 $R_T$ 尽可能小,意味着在线算法在面对未来数据时,累积损失接近于最优离线算法的损失。
4.1 后悔 (Regret) 的定义与种类
在在线学习中,后悔衡量的是在线算法相对于某个固定或动态最优策略的表现差异。通过计算算法在每一轮中的损失 $l_t(x_t)$ 和与某个基准策略的损失差值,后悔反映了算法的次优性。
4.1.1 External Regret(外部后悔)
外部后悔是在线学习中最常见的后悔度量。它衡量的是学习者的动态策略与某个固定最优策略之间的累积差异。
- 定义:
其中, $u \in V$ 是从可行集合 $V \subseteq \mathbb{R}^d$ 中选出的固定策略,例如事后最优策略(hindsight optimal)。外部后悔可以是负值,这表示在线算法在某些情境下可能优于固定策略。
4.1.2 Swap Regret(交换后悔)
与 external regret 相比,swap regret 是在每一轮中将当前的在线决策与当轮最优策略进行比较,因此它总是非负的。
- 定义:
Swap regret 的非负性来源于它只考虑了每一轮的局部最优决策。因此,它在处理逐轮变化的环境时更加灵活和精确。
4.2 实例分析:猜数字游戏中的后悔分析
猜数字游戏是在线学习中的经典问题,用以说明在线算法如何应对未知的环境。假设在每一轮 t ,敌手选择一个保密的数 $y_t \in [0,1]$,学习者则选择 $x_t \in [0,1]$ 来最小化损失 $l_t(x_t) = (x_t - y_t)^2$ 。该问题的目标是最小化累积损失。
4.2.1 事后最优策略 (Hindsight Optimal)
事后最优策略 $x_T^\star$ 是已知所有对手决策 $y_t$ 后,通过最小化累积损失得到的最优固定决策:
\[x_T^\star = \dfrac{1}{T} \sum_{\tau=1}^{T} y_\tau\]然而,在实际情况中,学习者无法知道未来所有轮的 $y_t$ ,因此无法直接使用 $x_T^\star$ 。
4.2.2 Follow the Leader (FTL) 算法
FTL 算法通过每轮利用历史信息选择当前最优决策,具体地,它选择的是前 t-1 轮的最优解:
\[x_t = \dfrac{1}{t-1} \sum_{\tau=1}^{t-1} y_\tau\]FTL 算法的核心思想是利用累积历史信息动态更新决策,而不是依赖对未来的预测。它的理论基础是最优策略不会在轮次中发生剧烈变化,因此可以“跟随”历史信息逼近最优解。
4.2.3 动态最优小于静态最优的引理
为了分析 FTL 算法的后悔,我们引入了一个关于动态最优策略和固定最优策略的引理。
- Lemma 1:对于任何损失函数序列,令 $x_t^\star$ 表示前 t 轮中累积损失最小的决策,则有:
直观解释:动态最优决策 $x_t^\star$ 是基于当前的历史信息做出的最优决策,而固定最优决策 $x_T^\star$ 是基于所有轮的信息做出的最优决策。由于 $x_T^\star$ 在每一轮中不能使用未来的信息,因此动态最优决策 $x_t^\star$ 在某些轮中的损失要小于或等于 $x_T^\star$ 的损失。
4.2.4 证明:O(log T) 的后悔上界
为了证明在线学习中的后悔是子线性的(例如 $O(\log T)$),我们需要分析 FTL 算法中的累积损失和最优固定策略的差异。
首先,回顾后悔的定义:
\[\mathrm{Regret}T(x_T^\star) = \sum{t=1}^{T} (x_{t-1}^\star - y_t)^2 - \sum_{t=1}^{T} (x_T^\star - y_t)^2\]我们接下来的目标是证明 $(x_{t-1}^\star - y_t)^2$和 $(x_t^\star - y_t)^2$ 之间的差异是 $O(1/t)$ ,即:
\[(x_{t-1}^\star - y_t)^2 - (x_t^\star - y_t)^2 = O\left(\dfrac{1}{t}\right)\]通过将这个差异累加,可以得出总的 regret 是 $O(\log T)$ 。这个结果表明,随着轮数 T 的增加,平均每轮的后悔 $\dfrac{1}{T} \mathrm{Regret}_T$会趋向于零。
4.3 Follow the Leader (FTL) 算法的特点与应用
FTL 算法在在线学习中具有以下几个特点:
- 无需调参:FTL 算法不需要选择学习率或正则化参数。这与传统机器学习不同,后者通常需要通过交叉验证选择合适的参数。
- 计算高效:FTL 只需要记录历史均值,而不需要存储所有的历史数据。因此,该算法在空间复杂度上表现较好。
- 非统计学方法:FTL 不依赖任何关于输入数据分布的假设,因此适用于数据敌对的环境。这与基于统计估计的算法有本质区别。
4.4 与随机算法的对比:在线学习的特殊性
在线学习与传统机器学习中的随机算法有显著区别:
- 无分布假设:在线学习不假定数据具有某种固定分布,这使得它可以处理敌对输入和 worst-case 的场景。而随机算法,如随机梯度下降(SGD),通常假设数据独立同分布(i.i.d.)。
- 渐进优化:在线学习算法,如 FTL,随着轮数的增加,逐步逼近最优解,并能够实现子线性后悔。这与随机算法的渐进收敛性相似,但在线学习中的收敛无需依赖输入的统计性质。
- 非静态环境:在线学习特别适用于非静态环境,例如用户行为不断变化的推荐系统。而传统机器学习则通常假设训练和测试数据分布相同。
5. 在线梯度下降(Online Gradient Descent)
在线梯度下降(Online Gradient Descent, OGD)是一种常用的增量式优化算法,特别适用于需要在数据流中连续学习的场景。与传统的批量梯度下降不同,在线梯度下降每次更新模型参数时仅使用一个数据样本或一个小批量的数据样本,而不是等待完整的数据集。这使得它非常适合用于处理大量数据或数据持续到达的情况。
5.1 在线梯度下降的工作原理
在线梯度下降的目标是最小化一个损失函数,通常是预测误差与真实值之间的差异。它的核心思想是:每次接收到一个新样本后,立即更新模型参数,通过对当前样本计算梯度来调整参数,从而逐渐优化目标函数。
其基本步骤如下:
- 初始化参数:在开始时,初始化模型的参数(如线性模型中的权重和偏置)。
- 接收新样本:每当系统接收到一个新的训练样本时,该样本通常包含输入特征 $\mathbf{x}_t$ 和目标值$y_t$。
- 计算预测值:利用当前的模型参数 $\mathbf{w}_t$ 对新样本的输入 $\mathbf{x}_t$ 进行预测,得到预测值 $\hat{y}_t$。
- 计算损失函数:基于真实目标值 $y_t$ 和预测值 $\hat{y}_t$,计算当前样本的损失值(如平方损失)。
- 计算梯度:对当前损失函数求梯度,得到损失函数相对于模型参数的梯度。
更新模型参数:根据计算出的梯度,按照以下规则更新模型参数:
\[w_{t+1}=w_t−η⋅∇L(w_t,x_t,y_t)\]- 其中:
- $\mathbf{w}_t$ 表示当前时刻的模型参数。
- η 是学习率,控制参数更新的步伐。
- $\nabla L(\mathbf{w}_t, \mathbf{x}_t, y_t)$ 是损失函数关于参数的梯度。
- 其中:
- 重复:在线梯度下降在每一个样本到达时都进行上述步骤,随着时间的推移,模型参数会逐渐收敛到能够最小化整体损失的最佳值。
5.2 在线梯度下降的特性
- 增量式更新:每次只对一个样本进行参数更新,使得在线梯度下降能够在数据逐渐到达的情况下即时进行学习,而不需要等待完整数据集。它适用于无法一次性加载所有数据的场景(如大数据场景)。
- 低内存占用:由于每次只使用一个样本或小批量样本进行更新,在线梯度下降的内存需求非常小,可以在内存有限的设备上运行。
- 动态适应数据分布的变化:在线梯度下降在数据分布变化时能够动态适应,特别适合处理时变的数据集。模型会在新的样本到来时进行调整,能够捕捉最新的模式和变化。
5.3 数学公式
在具体算法中,假设我们有一个损失函数 $L(\mathbf{w}_t, \mathbf{x}_t, y_t)$,表示在时刻 t 对样本 $\mathbf{x}_t$ 和目标 $y_t$ 的损失。在线梯度下降的参数更新规则为:
\[w_{t+1}=w_t−η⋅∇L(w_t,x_t,y_t)\]- 其中:
- $\mathbf{w}_t$ 表示当前时刻的模型参数。
- η 是学习率,控制参数更新的步伐。
- $\nabla L(\mathbf{w}_t, \mathbf{x}_t, y_t)$ 是损失函数关于参数的梯度。
损失函数可以是各种类型的函数,常见的包括:
平方损失函数:用于回归任务,形式为:
\[L(\mathbf{w}_t, \mathbf{x}_t, y_t) = \dfrac{1}{2} (y_t - \hat{y}_t)^2\]其中 $\hat{y}_t = \mathbf{w}_t^\top \mathbf{x}_t$ 是当前时刻的预测值。
对数损失函数:用于分类任务,形式为:
\[L(\mathbf{w}_t, \mathbf{x}_t, y_t) = -y_t \log \hat{y}_t - (1 - y_t) \log (1 - \hat{y}_t)\]
在每一步,在线梯度下降通过使用当前样本的梯度信息,逐步逼近目标函数的最小值。
5.4 学习率的选择
在线梯度下降中的学习率(η)对于模型收敛速度和性能有着至关重要的作用。一个合适的学习率能够让算法快速逼近最优解,而过大的学习率可能会导致模型震荡不收敛,过小的学习率则会使得模型收敛速度过慢。
有时,在线梯度下降会使用动态学习率,即随着迭代次数增多,逐渐减小学习率,使得模型在初期快速更新,在后期逐渐稳定。例如,学习率可以随时间 t 按如下公式递减:
\[\eta_t = \dfrac{\eta_0}{1 + \lambda t}\]其中 $\eta_0$ 是初始学习率,$\lambda$ 是衰减因子,t 是当前时间步。
5.5 与批量梯度下降的比较

6. 在线凸优化(Online Convex Optimization, OCO)
6.1 在线凸优化(OCO)简介
在线凸优化是在线学习的一种框架,它专门处理损失函数是凸函数的情况。在线凸优化的目标是在多个时间步中最小化累计损失。每一步的决策基于之前的反馈和损失值,然后实时更新模型,使其在动态变化的环境中持续优化。
在线学习问题的一个重要子类就是在线凸优化(OCO)。OCO 提供了一个强大的工具来处理在线学习问题,其中损失函数$f_t(\mathbf{w})$是凸的。在 OCO 框架下,凸优化理论能够为算法提供强有力的收敛性保证,并且求解效率较高。
6.1.1 在线凸优化问题的定义
目标:在每个时间步 t,给定一个凸的损失函数 $f_t(\mathbf{w})$,算法选择一个参数向量 $\mathbf{w}_t$,以最小化总的凸损失。
损失函数 $f_t(\mathbf{w})$ 是关于参数 $\mathbf{w}$ 的凸函数,即它满足:
\[f_t(λw_1+(1−λ)w_2)≤λf_t(w_1)+(1−λ)f_t(w_2)∀λ∈[0,1],w1,w2\]在线凸优化的核心思想:每个时间步中,算法选择一个当前的决策$\mathbf{w}t$, 然后观测损失$f_t(\mathbf{w}_t)$。根据损失的梯度信息,更新下一步的决策$\mathbf{w}{t+1}$以减少未来的损失。这样,算法通过逐步调整策略来逼近最优解。
6.2 凸优化补充一些数学概念
1. 凸集(Convex Set)
一个集合 $C \subseteq \mathbb{R}^n$ 是凸的,当且仅当对于集合中的任意两点 $x_1, x_2 \in C$,连接这两点的线段也完全位于该集合中。形式上,凸集定义如下:
\[\lambda x_1 + (1 - \lambda) x_2 \in C \quad \text{对于任意} \, \lambda \in [0, 1]\]这意味着,集合 C 中的任意两点之间的线性组合也属于 C。几何上,凸集没有凹陷或洞。
- 例子:常见的凸集包括欧几里得空间中的球体、半空间、正交体等。
- 非凸集:如果一个集合不满足上述性质,那么它是非凸的,例如带有凹陷或孔洞的集合。
2. 凸函数(Convex Function)
凸函数是凸优化的核心。在定义域是凸集的函数 $f:C \to \mathbb{R}$ 是凸的,当且仅当对于任意 $x_1, x_2 \in C$和 $\lambda \in [0, 1]$,有:
\[f(\lambda x_1 + (1 - \lambda) x_2) \leq \lambda f(x_1) + (1 - \lambda) f(x_2)\]这意味着,函数值在两点之间的连线上的值不会超过在这两点的函数值的线性插值。这也可以理解为函数图像在任意两个点之间的连线位于函数曲线的上方。
- 严格凸函数:如果上述不等式中的等号仅在 $x_1 = x_2$ 时成立,那么函数称为严格凸的,即函数在两个不同点之间总是弯曲的。
- 例子:常见的凸函数包括二次函数 $f(x) = x^2$、指数函数 $f(x) = e^x$、线性函数 $f(x) = ax + b$ 等。
3. 次梯度与次微分(Subgradient and Subdifferential)
次梯度是凸分析中的一个扩展概念,特别适用于那些不可微的凸函数。
对于一个凸函数 f,点 x 处的次梯度是任何满足以下不等式的向量 g:
\[f(y) \geq f(x) + g^T (y - x) \quad \text{对于任意} \, y\]直观地,次梯度是使得函数在该点的线性近似不过低估函数的所有斜率。即便函数在该点不可导,仍然有一个次梯度集合描述函数在该点附近的行为。
次微分:次微分是所有次梯度的集合,通常记为 $\partial f(x)$。对于凸函数,它是一个非空的闭集,即使在不可微点也存在至少一个次梯度。
- 例子:对绝对值函数 $f(x)=∣x∣$,当 x=0 时,次梯度集合为 [−1,1],表示函数在该点的所有可能的斜率。
4. 强凸性(Strong Convexity)
强凸函数是凸函数的一种更严格形式。一个函数 f 是强凸的,如果存在一个常数 $m>0$ 使得对于任意 $x_1, x_2 \in C$ 和 $\lambda \in [0, 1]$,满足以下条件:
\[f(\lambda x_1 + (1 - \lambda) x_2) \leq \lambda f(x_1) + (1 - \lambda) f(x_2) - \dfrac{m}{2} \lambda(1 - \lambda) \|x_1 - x_2\|^2\]强凸函数在凸性之外还具有某种“弯曲性”或者“强度”,它保证了函数的局部和全局最优解的唯一性。对于强凸函数,优化问题具有更 快的收敛速度。
- 几何解释:强凸性意味着函数在每个局部的二次曲线下界不是一个平坦的平面,而是一个具有一定曲率的抛物面。
5. 凸锥(Convex Cone)
凸锥是凸集的一个特殊形式。集合 $K \subseteq \mathbb{R}^n$是一个凸锥,当且仅当它满足:
对于任意 $x_1, x_2 \in K$ 和任意非负标量 $\alpha_1, \alpha_2 \geq 0$,有:
\[\alpha_1 x_1 + \alpha_2 x_2 \in K\]
这意味着,对于凸锥中的任意两个向量,它们的非负线性组合仍然在该集合内。几何上,凸锥在原点是闭合的,并且向外延伸。
- 例子:第一象限(即所有坐标非负的点的集合)是一个凸锥。
6. 凸优化问题的标准形式
一个凸优化问题的标准形式可以表示为:
\[\min_{x \in C} f(x)\]其中:
- $f(x)$是一个凸函数。
- C 是一个凸可行域。
在这个问题中,由于目标函数和约束集都是凸的,因此最优解可以通过一系列有效的算法求得,如梯度下降法、牛顿法、内点法等。
7. 拉格朗日对偶(Lagrangian Duality)
在凸优化中,拉格朗日对偶理论是一种强大的工具,用于将带约束的优化问题转化为无约束问题。通过构造拉格朗日函数,我们可以引入拉格朗日乘子,并通过对偶问题进行优化。
拉格朗日函数:对于带约束的优化问题:
\[\min_{x \in C} f(x) \quad \text{subject to} \quad g_i(x) \leq 0, \, i = 1, \dots, m\]我们定义拉格朗日函数 $L(x,λ)$ 为:
\[L(x, \lambda) = f(x) + \sum_{i=1}^{m} \lambda_i g_i(x)\]其中$\lambda_i \geq 0$是拉格朗日乘子
通过求解拉格朗日对偶问题,可以有效处理约束优化,并且在凸优化问题中,原问题和对偶问题常常具有相同的最优解。
8. 凸度(Convexity Measure)
凸度是对一个函数或集的凸性程度的度量。虽然许多优化问题不是严格凸的,但它们可以具有一定的凸性结构,例如局部凸性或部分凸性。在这种情况下,凸度提供了一种方法来衡量问题的近凸性,以便使用凸优化工具。
- 凸度的量化:在实际中,可以通过近似方法或正则化技术增强问题的凸性,并通过度量凸度来分析算法的性能。
