Online Learning基础1(Consistent算法和Halving算法
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/ecf47483aadf4f4c849567da9eb0135a.png)
在线学习模型的介绍:在线学习提供了一种更加灵活和实时的学习方法,与传统的批量学习模型相比,它能够更快地适应新数据和变化的环境。在实际应用中,在线学习的逐步更新特性使其成为处理动态和不断变化的数据流的理想选择。
-
与传统学习模型的对比:
- 之前介绍的PAC学习模型(Probably Approximately Correct learning model)是一种传统的学习方式。在这种模型中,学习者首先接收一批训练样本,使用这些样本训练一个假设(hypothesis),并在训练完成后使用这个学到的假设来预测新样本的标签。
- 在本文的比喻中,这相当于先购买一堆木瓜并全部尝试,使用所有这些信息学习一个预测规则,从而决定新木瓜的味道。
-
在线学习的特点:
- 在线学习与传统的训练和预测阶段分离的方法不同。在在线学习中,训练阶段和预测阶段之间没有明确的分隔。每次我们购买一个木瓜时,它首先被认为是一个测试样本,因为我们需要预测它的味道是否好。
- 然后,在尝了一口木瓜之后,我们就知道了它的真实味道(标签),这个同一个木瓜现在可以作为一个训练样本,帮助我们改进未来预测木瓜味道的机制。
关键理解
-
实时更新和学习:在线学习的核心在于模型能够在获取新数据的同时实时进行更新和学习。模型不需要等待所有数据收集完成后再进行训练,而是能够随着新数据的到来不断优化和调整。这种方式特别适合动态环境或数据流不断变化的场景。
-
逐步改进预测能力:通过将每一个新观测到的样本即刻用于更新学习模型,在线学习可以快速适应新出现的模式或趋势。这使得它在很多实际应用中,如股票预测、欺诈检测、动态推荐系统等,具有明显的优势。
在线学习过程的具体描述:在线学习过程通过一系列轮次来获取、预测和验证数据。在每个轮次中,学习者不断利用新的实例来更新自己的预测模型,从而在不确定的环境中保持较高的预测准确性。在线学习的关键优势在于其对变化的敏捷响应能力,以及通过持续反馈来优化模型的性能。
-
在线学习的轮次:
- 在线学习发生在一系列连续的轮次中。在每个在线轮次中,学习者依次接收一个实例(instance),并基于该实例做出预测。这个过程不断重复,每个新的实例都是一个新的学习机会。
-
实例的接收:
- 在每个轮次的开始,学习者接收一个实例。在这个比喻中,学习者购买一个木瓜,并观察它的形状和颜色,这些特征构成了实例。这些特征提供了学习者做出判断的信息基础。
-
标签的预测:
- 接收到实例后,学习者需要基于当前的实例特征预测一个标签。继续以木瓜为例,学习者需要预测这个木瓜的味道是否好(即是否“可口”)。
-
标签的验证:
- 在轮次的末尾,学习者获得真实的标签。学习者通过品尝木瓜得知其实际的味道(真实标签),从而验证自己的预测是否正确。
-
改进预测能力:
- 最后,学习者使用这个反馈信息来改进未来的预测。每个新的实例和标签提供了新的数据点,帮助学习者更好地理解特征与标签之间的关系,从而优化预测模型。
关键理解
-
实时学习与反馈:在线学习的过程强调了实时学习和即时反馈的概念。在每个轮次中,模型不仅做出预测,还通过即时反馈进行调整。这种持续的学习过程使模型能够迅速适应新的数据和变化的模式。
-
逐步提高预测准确性:通过在每一轮中学习新的信息,在线学习模型能够逐步提高其预测准确性。这种持续改进的过程使在线学习成为处理动态环境下数据的重要方法。
分析在线学习的方法:在分析在线学习时,本文参考了PAC学习框架,通过讨论可实现和不可实现的情况来涵盖各种现实场景。提出的“加权多数法”算法提供了一种灵活的在线决策方式,而凸损失函数的引入则使得在线学习问题的求解更具理论基础。感知机算法作为线性分类问题的一个例子,展示了替代凸损失函数在在线学习中的应用。这些内容共同构成了对在线学习方法全面而深刻的理解。
-
与PAC学习的相似性:
- 在分析在线学习时,采用了与研究PAC(Probably Approximately Correct)学习相似的方法。PAC学习是一个框架,用于研究在一定概率和精度范围内正确分类的可能性。因此,在线学习的分析借鉴了PAC学习中的一些概念和框架。
-
考虑的两种情况:
- 可实现情况(Realizable Case):在这种情况下,假设所有的标签都是由给定假设类中的某个假设生成的。换句话说,存在一个完美的假设可以正确地预测所有样本的标签。这种情况对应于传统的PAC学习模型。
- 不可实现情况(Unrealizable Case):对应于不可知的PAC学习模型。在这种情况下,没有假设能够完美地匹配所有样本的标签。这种情况更符合实际,因为在现实中,数据往往包含噪声或异常值,使得完全准确的预测变得不可能。
-
重要算法:Weighted-Majority:
- 文中介绍了一种重要的算法,称为“加权多数法”(Weighted-Majority)。这个算法用于处理在线学习中的决策问题,通过赋予不同假设权重,来综合不同假设的预测。
-
凸损失函数的在线学习问题:
- 接下来,研究涉及凸损失函数的在线学习问题。凸损失函数在优化中非常重要,因为它们具有良好的数学性质,使得优化问题更容易解决。
-
感知机算法(Perceptron Algorithm):
- 最后,提出感知机算法作为使用替代凸损失函数的在线学习模型的一个例子。感知机算法是一个经典的线性分类器,通过逐步调整权重来学习数据的线性分隔。
1. Online Classification in the Realizable Case
在线学习过程的描述:在线学习通过在连续轮次中对实例进行预测,并利用即时反馈来优化预测模型。每个轮次中的反馈提供了宝贵的信息,使得学习者能够逐步减少预测错误。通过不断利用过去的经验,在线学习模型能够在不确定和动态的环境中保持较高的预测准确性。
-
在线学习的轮次:
- 在线学习是在一系列连续的轮次中进行的。在每个轮次 t t t中,学习者接收一个实例,记作 x t \mathbf{x}_t xt,这个实例取自一个实例域 X \mathcal{X} X。学习者需要为该实例提供一个预测标签。
-
标签的预测与反馈:
- 学习者为实例 x t \mathbf{x}_t xt预测的标签记为 p t p_t pt。在做出预测之后,正确的标签 y t ∈ { 0 , 1 } y_t \in \{0, 1\} yt∈{0,1}会被揭示给学习者。这意味着每个轮次都提供了即时的反馈,学习者可以知道自己的预测是否正确。
-
学习目标:
- 学习者的目标是在整个过程中尽量减少预测错误的次数。通过观察之前轮次的反馈,学习者尝试从中推导出信息,以便在未来的轮次中改进其预测能力。
关键理解
-
逐轮反馈机制:在线学习的核心在于其逐轮反馈机制。每个轮次中,学习者做出预测并立刻得到反馈,这样可以及时调整学习策略和预测模型。这种即时反馈和持续改进使在线学习非常适合于动态环境和快速变化的数据场景。
-
错误最小化:学习者在在线学习过程中始终以最小化预测错误为目标。这种目标驱动的学习方式确保了模型在每一轮中都在尝试提高准确性,从而逐步提高整体性能。
学习的基本挑战:在线学习模型的一个重要特点是,它在不依赖任何统计假设的情况下进行学习。这种灵活性使得它可以适应不同类型的样本序列,包括确定性的、随机的,甚至是对抗性的。然而,这也使得在线学习面临更大的挑战,特别是在对抗性环境中,学习者可能会面临有意设计的错误诱导,进而使得学习过程变得困难。因此,设计鲁棒的在线学习算法,能够有效应对各种环境,尤其是对抗性设置,是在线学习研究中的一个重要方向。
-
前后轮次之间的相关性:
- 学习只有在过去和现在的轮次之间存在某种相关性时才有希望。如果过去的经验无法为当前或未来的预测提供任何信息,那么学习就变得无意义。也就是说,学习者依赖于前后轮次之间的某种规律性来改进预测。
-
与PAC模型的对比:
- 在之前介绍的PAC(模型中,假设过去和当前的样本是从相同的分布源独立同分布(i.i.d.)抽取的。这种假设确保了过去的经验对未来预测是有用的。
- 但在在线学习模型中,不做任何关于样本序列来源的统计假设。样本序列可以是确定性的、随机的,甚至可以是根据学习者自身行为而调整的(如垃圾邮件过滤中的对抗性调整)。
-
对抗性环境的挑战:
- 在线学习模型中可能会遇到对抗性环境。例如,一个对手可以故意增加学习者的预测错误次数,使得学习者的在线学习算法的错误数量变得非常大。
- 对手可以在每个在线轮次中提供相同的实例,等待学习者的预测,然后提供相反的标签作为正确标签。这种对抗性的设置使得在线学习变得更加复杂和具有挑战性。
关键理解
-
统计假设的缺失:在线学习模型的一个关键特点是,它不依赖于任何统计假设。这使得它更灵活,但也意味着它必须能够应对更复杂和不可预测的情况,如对抗性设置。
-
对抗性学习的复杂性:在对抗性环境中,学习者必须面对故意使其出错的挑战。在线学习算法需要设计得足够鲁棒,以应对这种对抗性行为,否则预测错误会迅速累积。
可实现性假设: 通过引入可实现性假设和错误界限,在线学习的分析得以量化。可实现性假设为学习者提供了一个理论上的完美假设存在的前提,学习者的目标是在对抗性环境中将错误次数最小化。错误界限的概念为在线学习算法提供了一个评价标准,使我们能够判断某个算法在最坏情况下的表现。设计具有较小错误界限的在线学习算法是在线学习研究中的一个关键目标。
-
问题的非平凡性:
- 为了使问题具有实际意义,我们需要进一步限制问题的条件。可实现性假设是一种自然的限制条件。在可实现的情况下,我们假设所有标签都是由某个假设 h ∗ h^* h∗生成的, h ∗ h^* h∗是来自一个已知的假设类 H \mathcal{H} H。这意味着存在一个完美的假设,它可以正确地预测所有实例的标签。
-
与PAC学习的类比:
- 这种假设类似于PAC学习模型中的设定。在PAC学习中,假设数据由某个固定分布生成,并且学习者可以从假设类 H \mathcal{H} H中找到一个能够很好拟合数据的假设。在可实现性假设下,学习者的目标是尽可能少地犯错误,即使 h ∗ h^* h∗和实例序列都是由对手选择的。
错误界限(Mistake Bound)
-
错误界限的定义:
- 对于一个在线学习算法 A A A, M A ( H ) M_A(\mathcal{H}) MA(H)表示 A A A在一个由 h ∗ h^* h∗标记的例子序列上可能犯的最大错误次数。我们强调, h ∗ h^* h∗和实例序列都可以由对手选择。一个对 M A ( H ) M_A(\mathcal{H}) MA(H)的界限称为错误界限(mistake-bound)。
-
正式定义:
- 令 H \mathcal{H} H为一个假设类, A A A为一个在线学习算法。给定任何序列 S = ( x 1 , h ∗ ( y 1 ) ) , … , ( x T , h ∗ ( y T ) ) S = (\mathbf{x}_1, h^*(y_1)), \ldots, (\mathbf{x}_T, h^*(y_T)) S=(x1,h∗(y1)),…,(xT,h∗(yT)),其中 T T T是任意整数且 h ∗ ∈ H h^* \in \mathcal{H} h∗∈H, M A ( S ) M_A(S) MA(S)表示 A A A在序列 S S S上的错误次数。
- 我们用
M
A
(
H
)
M_A(\mathcal{H})
MA(H)表示所有上述序列上的
M
A
(
S
)
M_A(S)
MA(S)的上确界。如果存在一个界限
B
B
B使得
M
A
(
H
)
≤
B
<
∞
M_A(\mathcal{H}) \leq B < \infty
MA(H)≤B<∞,我们称这个假设类
H
\mathcal{H}
H是在线可学习的。
在线学习模型的研究目标:本节的主要目标是探索在线学习模型中哪些假设类是可学习的,并且为这些假设类找到有效的学习算法。在初步研究中,重点在于理解理论上的可学习性,而不是计算效率。这种方法使得研究能够专注于理解学习的基本原理和能力,而不被实现细节所限制。在确定了理论可行性之后,后续的章节将进一步深入研究如何设计高效的在线学习算法,以适应实际应用中的需求。
-
研究学习假设类的可学习性:
- 本节的主要目标是研究哪些假设类在在线模型中是可学习的。具体来说,就是要确定在在线学习环境中,哪些假设类能够通过某些学习算法进行有效学习。
-
寻找好的学习算法:
- 除了确定可学习的假设类之外,另一个重点是为给定的假设类找到好的学习算法。这些算法应该能够在给定的假设类中高效地学习,从而在最小化错误次数的同时,正确地进行预测。
Remark 21.1
-
忽略计算效率:
- 在这一节及下一节的研究中,暂时忽略学习过程的计算复杂性。这意味着在寻找可学习的假设类和相应的学习算法时,不限制算法的效率。重点在于理论上的学习能力,而非具体实现的效率。
-
后续对高效学习算法的研究:
- 尽管目前不考虑算法的计算效率,但在后续的Section 21.3和Section 21.4中,将专门研究高效的在线学习算法。这些部分将集中在设计能够在实际应用中快速运行且计算成本低的学习算法上。
- 尽管目前不考虑算法的计算效率,但在后续的Section 21.3和Section 21.4中,将专门研究高效的在线学习算法。这些部分将集中在设计能够在实际应用中快速运行且计算成本低的学习算法上。
有限假设类的情况:在在线学习中,通过使用ERM假设,可以在每个轮次中选择一个与所有过去样本一致的假设。这种策略延续了PAC学习中ERM的有效性,使得在线学习模型能够逐步适应新的数据,维持较低的预测错误。考虑有限假设类的情况有助于建立基础理解,然后可以在此基础上拓展到更复杂的情况。通过使用与过去样本一致的假设,在线学习者能够在不断变化的环境中做出可靠的预测。
-
假设类的有限性:
- 为了简化讨论,首先考虑有限假设类的情况,即假设类 H \mathcal{H} H是有限的( ∣ H ∣ < ∞ \lvert \mathcal{H} \rvert < \infty ∣H∣<∞)。这意味着在研究中,我们假设可以选择的假设数量是有限的,这有助于简化理论分析。
-
ERM在PAC学习中的作用:
- 在PAC(Probably Approximately Correct)学习中,经验风险最小化(ERM,Empirical Risk Minimization)被视为一种有效的学习算法。具体来说,如果一个假设类 H \mathcal{H} H是可学习的,那么它可以通过ERM规则 ERM H \text{ERM}_\mathcal{H} ERMH来学习。这表明,ERM能够找到一个与样本数据一致的假设,并在给定分布下最小化预测错误。
在线学习中的自然学习规则
-
一致性假设:
- 对于在线学习,一个自然的学习规则是在每个在线轮次中使用任何ERM假设。换句话说,在每个轮次,选择一个与所有过去的样本一致的假设。这意味着所选的假设能够正确预测到目前为止观察到的所有实例的标签。
-
在线学习规则的应用:
- 在在线学习环境中,每当学习者接收到一个新的实例时,就根据目前已有的实例选择一个假设,这个假设能够正确地对所有已有实例进行分类。这种方法确保了模型在每个轮次中都在尝试最小化错误次数。
Consistent 算法描述:Consistent 算法是一种简单而有效的在线学习方法,通过维持一个与已观察到数据一致的假设集合,逐步优化预测能力。它的核心思想是通过更新版本空间来逐渐缩小可能假设的范围,从而更接近真实的假设。虽然算法在处理有限假设类时相对简单,但对于较大或无限假设类,可能需要更复杂的策略。
-
输入和初始化:
- 输入:一个有限的假设类 H \mathcal{H} H。这意味着我们在开始时拥有一个可以选择的有限假设集。
- 初始化:设置 V 1 = H V_1 = \mathcal{H} V1=H,即初始版本空间 V 1 V_1 V1 包含所有假设类中的假设。在算法开始时,我们认为所有假设都可能是正确的。
-
算法的循环过程:
- 接收实例 x t \mathbf{x}_t xt:在第 t t t 轮,学习者接收一个新的实例 x t \mathbf{x}_t xt。
- 选择假设:从当前版本空间 V t V_t Vt 中选择任意一个假设 h h h。版本空间 V t V_t Vt 包含所有到目前为止与数据一致的假设。
- 预测标签:根据选择的假设 h h h 对实例 x t \mathbf{x}_t xt 进行预测,预测标签为 p t = h ( x t ) p_t = h(\mathbf{x}_t) pt=h(xt)。
- 接收真实标签:接收到实例 x t \mathbf{x}_t xt 的真实标签 y t y_t yt,真实标签由 h ∗ h^* h∗ 确定,其中 h ∗ h^* h∗ 是生成标签的真实假设。
- 更新版本空间:更新版本空间
V
t
+
1
V_{t+1}
Vt+1,保留所有与当前观察到的数据
(
x
t
,
y
t
)
(\mathbf{x}_t, y_t)
(xt,yt) 一致的假设。更新后的版本空间为:
V t + 1 = { h ∈ V t : h ( x t ) = y t } V_{t+1} = \{h \in V_t : h(\mathbf{x}_t) = y_t\} Vt+1={h∈Vt:h(xt)=yt}
版本空间的概念
- 版本空间 V t V_t Vt:是一个集合,包含所有与之前观察到的实例-标签对 ( x 1 , y 1 ) , … , ( x t − 1 , y t − 1 ) (\mathbf{x}_1, y_1), \ldots, (\mathbf{x}_{t-1}, y_{t-1}) (x1,y1),…,(xt−1,yt−1) 一致的假设。版本空间表示了在给定数据的条件下可能仍然有效的假设集合。
Consistent 算法的工作原理
Consistent
算法在每个轮次中通过选择一个与之前数据一致的假设来进行预测。通过逐轮接收实例并更新版本空间,算法逐步缩小可能的假设范围,最终希望找到一个能够正确预测所有实例的假设。- 这种算法的一个关键点在于其版本空间的更新,通过仅保留与所有观测一致的假设,确保模型在学习过程中不断提高预测准确性。
机器学习中的一致性算法(Consistent Algorithm)的错误界限(mistake bound):一致性算法通过每次犯错来排除至少一个错误的假设,保证总有一个正确的假设不会被排除。在有限的假设空间内,这样的排除过程保证了错误的次数是有限的,并且不会超过假设集大小减一的数量。
-
错误和假设类:当一致性算法在预测时犯错时,至少会有一个假设被从假设集 V t V_t Vt 中移除。假设集 H \mathcal{H} H 是有限的。
-
假设移除:在做出 M M M 次错误之后,假设集 V t V_t Vt 的大小可以表示为 ∣ V t ∣ ≤ ∣ H ∣ − M |V_t| \leq |\mathcal{H}| - M ∣Vt∣≤∣H∣−M。这意味着每次错误都会减少一个假设。
-
可实现性假设:因为 V t V_t Vt 总是不为空(根据可实现性假设,这意味着总有一个正确的假设 h ∗ h^* h∗ 存在于 V t V_t Vt 中),我们可以推导出 1 ≤ ∣ V t ∣ ≤ ∣ H ∣ − M 1 \leq |V_t| \leq |\mathcal{H}| - M 1≤∣Vt∣≤∣H∣−M。
-
重新排列公式:通过重新排列以上不等式,我们得到 M ≤ ∣ H ∣ − 1 M \leq |\mathcal{H}| - 1 M≤∣H∣−1。这表明一致性算法在最坏情况下的错误次数不会超过假设集大小减一的数量。
-
推论 21.2:这个推论正式表述了上面的结论。它说明了对于一个有限的假设类 H \mathcal{H} H,一致性算法的错误界限满足 M Consistent ( H ) ≤ ∣ H ∣ − 1 M_{\text{Consistent}}(\mathcal{H}) \leq |\mathcal{H}| - 1 MConsistent(H)≤∣H∣−1。这意味着,假设集越大,可能的错误次数也可能越多,但最多不会超过假设集大小减去1。
Halving 算法,它通过更智能地选择假设,从而减少一致性算法的错误次数。Halving算法是一种改进的一致性算法,它通过选择最有可能正确的预测值来减少错误。每当出现错误时,通过移除大部分无法解释当前数据的假设,迅速缩小假设集的大小。这个过程确保了错误的总次数是指数级减少的,从而提升了学习算法的效率和准确性。
一致性算法(Consistent Algorithm)在最坏情况下会犯 ∣ H ∣ − 1 |\mathcal{H}| - 1 ∣H∣−1 次错误,因为它每次只能去除一个错误的假设。虽然这个错误界限对于有限的假设类是有效的,但当假设类 H \mathcal{H} H 很大时,这个错误数目也会很大。“Halving”,旨在减少错误次数。Halving算法通过更有效地更新假设集,能够保证犯的错误次数要少得多,甚至可以达到指数级的减少。
Halving算法的步骤:
- 输入:有限的假设类 H \mathcal{H} H。
- 初始化:将初始的假设集设为 V 1 = H V_1 = \mathcal{H} V1=H,即所有假设都在开始时被考虑。
- 循环过程:对于每一个时间步
t
t
t:
- 接收样本 x t x_t xt:从训练数据集中接收一个样本 x t x_t xt。
- 预测:计算
p t = arg max r ∈ { 0 , 1 } ∣ { h ∈ V t : h ( x t ) = r } ∣ p_t = \arg\max_{r \in \{0,1\}} |\{h \in V_t : h(x_t) = r\}| pt=argr∈{0,1}max∣{h∈Vt:h(xt)=r}∣
也就是说,选择能够得到最多假设支持的预测值 r r r。如果有平局,则默认 p t = 1 p_t = 1 pt=1。 - 接收真实标签 y t y_t yt:接收样本 x t x_t xt 的真实标签 y t y_t yt。
- 更新假设集:更新假设集
V t + 1 = { h ∈ V t : h ( x t ) = y t } V_{t+1} = \{h \in V_t : h(x_t) = y_t\} Vt+1={h∈Vt:h(xt)=yt}
只保留那些能够正确预测当前样本的假设。
理解算法逻辑:
- 预测策略:Halving算法通过选择能够得到最多假设支持的预测来做出决定。这意味着它在预测时不仅依赖单个假设,而是考虑整个假设集的趋势。
- 更新策略:每次更新时,Halving算法移除那些无法正确预测当前样本的假设。因为每次预测都会选择支持数量最多的预测值,这种更新策略能够在错误发生时显著减少假设集的大小。
减少错误的原因:
- Halving算法通过每次更新时减少假设集的大小,从而减少犯错误的可能性。因为每次错误都会消除大量的错误假设,假设集缩减的速度是指数级的,这就是为什么Halving算法能够保证犯的错误次数远少于一致性算法。
Halving 算法的错误界限证明了它在在线学习环境中的有效性,通过减少错误次数,提高了学习效率。该算法的关键在于它能够在每次错误后大幅缩小假设集,使得算法能够更快地收敛到正确的假设上。
定理 21.3 的陈述:对于一个有限的假设类
H
\mathcal{H}
H,Halving 算法的错误界限
M
Halving
(
H
)
M_{\text{Halving}}(\mathcal{H})
MHalving(H) 满足:
M
Halving
(
H
)
≤
log
2
(
∣
H
∣
)
M_{\text{Halving}}(\mathcal{H}) \leq \log_2(|\mathcal{H}|)
MHalving(H)≤log2(∣H∣)
这意味着 Halving 算法在最坏情况下的错误次数不超过
log
2
\log_2
log2 级别的假设集大小。
证明的核心思想:
- 假设减少的速度:每当 Halving 算法犯错时,假设集的大小 ∣ V t ∣ |V_t| ∣Vt∣ 至少减少一半。这是因为 Halving 算法会根据多数票的原则预测,当它犯错时,这表明当前的假设集中有一半以上的假设预测错误。因此,错误的预测会导致移除这些错误假设,使假设集减半。
- 公式推导:
- 初始假设集大小为 ∣ H ∣ |\mathcal{H}| ∣H∣。
- 每次犯错,假设集的大小至少减半,即 ∣ V t + 1 ∣ ≤ ∣ V t ∣ / 2 |V_{t+1}| \leq |V_t|/2 ∣Vt+1∣≤∣Vt∣/2。
- 如果总的错误次数为 M M M,那么经过 M M M 次错误后,假设集的大小满足: ∣ V T + 1 ∣ ≤ ∣ H ∣ ⋅ 2 − M |V_{T+1}| \leq |\mathcal{H}| \cdot 2^{-M} ∣VT+1∣≤∣H∣⋅2−M
- 根据假设集不能为空的事实,我们有 1 ≤ ∣ V T + 1 ∣ 1 \leq |V_{T+1}| 1≤∣VT+1∣。
- 结合以上不等式: 1 ≤ ∣ H ∣ ⋅ 2 − M 1 \leq |\mathcal{H}| \cdot 2^{-M} 1≤∣H∣⋅2−M
- 重新排列上式,可以得到: 2 M ≤ ∣ H ∣ 2^M \leq |\mathcal{H}| 2M≤∣H∣
- 取对数得到: M ≤ log 2 ( ∣ H ∣ ) M \leq \log_2(|\mathcal{H}|) M≤log2(∣H∣)
Halving 算法的优势:
- 更少的错误:通过证明可以看出,Halving 算法的错误界限是 log 2 ( ∣ H ∣ ) \log_2(|\mathcal{H}|) log2(∣H∣),这比一致性算法的错误界限 ∣ H ∣ − 1 |\mathcal{H}| - 1 ∣H∣−1 要好得多。Halving 算法在每次犯错时减少了大量的假设,错误次数随假设集大小的对数增长,而不是线性增长。
与一致性算法的对比:
- 一致性算法每次错误只减少一个假设,而 Halving 算法通过选择最有可能正确的预测值,每次错误能减少假设集的一半。因此,Halving 算法显著减少了错误次数。
- 这种不同体现了在线学习与 PAC(Probably Approximately Correct)学习的差异。在 PAC 学习中,只要选择任意的经验风险最小化(ERM)假设即可,而在在线学习中,选择错误假设的代价要大得多,因此 Halving 算法通过更有效的假设选择和移除策略,减少了错误次数。
当然,举个例子可以更直观地理解 Halving 算法为什么每次犯错后能移除大约一半的假设。我们假设有一个简单的二分类问题,并且有一个小的有限假设集。
举例:
-
假设集 H \mathcal{H} H:我们假设有 8 个假设: h 1 , h 2 , h 3 , h 4 , h 5 , h 6 , h 7 , h 8 h_1, h_2, h_3, h_4, h_5, h_6, h_7, h_8 h1,h2,h3,h4,h5,h6,h7,h8。每个假设是关于如何预测输入 x t x_t xt 的二元输出 { 0 , 1 } \{0, 1\} {0,1}。
-
样本:我们有一个样本 x t x_t xt,以及它的真实标签 y t = 1 y_t = 1 yt=1。
-
预测策略:Halving 算法会选择对样本 x t x_t xt 做出预测,并根据这个预测来更新假设集。
假设对 x t x_t xt 的预测:
假设集中每个假设对样本 x t x_t xt 的预测如下(我们假设这些值是已知的):
- h 1 ( x t ) = 0 h_1(x_t) = 0 h1(xt)=0
- h 2 ( x t ) = 0 h_2(x_t) = 0 h2(xt)=0
- h 3 ( x t ) = 0 h_3(x_t) = 0 h3(xt)=0
- h 4 ( x t ) = 0 h_4(x_t) = 0 h4(xt)=0
- h 5 ( x t ) = 1 h_5(x_t) = 1 h5(xt)=1
- h 6 ( x t ) = 1 h_6(x_t) = 1 h6(xt)=1
- h 7 ( x t ) = 1 h_7(x_t) = 1 h7(xt)=1
- h 8 ( x t ) = 1 h_8(x_t) = 1 h8(xt)=1
在这里,有 4 个假设预测 x t x_t xt 的标签为 0,有 4 个假设预测为 1。
算法的预测:
-
根据 Halving 算法, p t = arg max r ∈ { 0 , 1 } ∣ { h ∈ V t : h ( x t ) = r } ∣ p_t = \arg\max_{r \in \{0, 1\}} |\{h \in V_t : h(x_t) = r\}| pt=argmaxr∈{0,1}∣{h∈Vt:h(xt)=r}∣。这里 V t V_t Vt 是当前的假设集。
-
因为支持 0 的假设有 4 个,支持 1 的假设也有 4 个,所以有平局情况。算法规定在平局时选择 p t = 1 p_t = 1 pt=1。
因此,算法预测 p t = 1 p_t = 1 pt=1。
接收真实标签:
假设我们现在知道真实标签 y t = 0 y_t = 0 yt=0(即算法犯错了)。这意味着,支持 p t = 1 p_t = 1 pt=1 的那些假设都是错误的。
更新假设集:
-
算法会更新假设集,只保留那些能够正确预测 x t x_t xt 的假设。
-
由于 y t = 0 y_t = 0 yt=0,我们只保留那些预测 x t x_t xt 为 0 的假设。因此,更新后的假设集 V t + 1 V_{t+1} Vt+1 变为:
V t + 1 = { h 1 , h 2 , h 3 , h 4 } V_{t+1} = \{h_1, h_2, h_3, h_4\} Vt+1={h1,h2,h3,h4}
现在,假设集大小从原来的 8 减少到 4,恰好是原来的 1 2 \frac{1}{2} 21。这就是 Halving 算法的核心思想:每次犯错后,能够排除掉约一半的假设,因为错误的预测往往是由一大部分假设共同做出的,这些假设会在错误发生时被移除。
总结:
- Halving 算法通过多数投票的方式做预测。
- 当算法犯错时,说明支持当前预测的大多数假设都是错误的。
- 更新假设集时,移除那些错误的假设,从而大幅度减少假设集的大小。
- 每次犯错都能有效地移除大约一半的假设,快速收敛到一个正确的假设集,这使得 Halving 算法的错误次数是对数级别的。