算法稳定性理论(algorithmic stability theory)与泛化误差(generalization error)

在衡量机器学习模型的效用(比如 优化误差、泛化误差 等,我们在这里把这些东西统称为“效用”)的时候,优化和泛化理论 是很重要的工具,用来分析差分隐私模型的各种风险界(像 population riskempirical risk)。

其中,在分析泛化误差的时候,算法稳定性理论,algorithmic stability theory 在近几年很受研究者关注,因为它是 算法相关 的,和传统复杂度理论、搜索空间那一套有点不太一样。

本文基于 Bousquet 2002年发表于 JMLR 上的文章 Stability and Generalization 对一些 稳定性定义 以及 它们与泛化误差之间的关系 进行介绍,构建一个稳定性理论基本框架。

本文试图对稳定性理论进行扫盲式科普,因此不对证明细节进行关注,有兴趣的朋友们可以参考原论文(在网上应该很容易就能找到,如果有朋友找不到还有兴趣的话可以私信我把文章发过去),也欢迎大家一起讨论。

【一】背景

在介绍各种算法稳定性指标之前,我们首先大概了解一下稳定性究竟是个什么样的东西。

算法稳定性实质上是一种 敏感度(sensitivity),它表征了输入的变化会在多大程度上导致系统输出的变化。
举个例子,假设损失函数在参数 θ , θ ′ \theta,\theta' θ,θ上的值分别为 ℓ ( θ ) , ℓ ( θ ′ ) \ell(\theta),\ell(\theta') (θ),(θ),那么就可以(粗浅地)定义其敏感度为 ∣ ℓ ( θ ) − ℓ ( θ ′ ) ∣ |\ell(\theta)-\ell(\theta')| (θ)(θ),这个值表征了 输入对损失函数值的影响(在这里我们只是举个例子,更细致的定义我们会在后文进行介绍)。

有了这个东西我们就可以发现,算法稳定性(敏感度)这个东西是与算法相关的,因为 θ , θ ′ \theta,\theta' θ,θ 可以看作算法输出的模型参数。
这就是稳定性理论与传统的复杂度理论不同的地方,复杂度理论关注整个搜索空间(函数空间),这个空间可能非常大,会导致求解出来的泛化误差同样很大。

接下来,我们面临的一个问题就是,对于一个算法,如何定义 θ \theta θ θ ′ \theta' θ

【二】基本定义

首先定义样本规模为 m m m 的训练数据集 S S S,其中的数据样本 z i = ( x i , y i ) z_i=(x_i,y_i) zi=(xi,yi) 独立同分布采样于分布 D D D
在这里插入图片描述
然后定义 移除和置换 数据点 z i z_i zi 的数据集:

其中 z i ′ z_i' zi 也是从分布 D D D 中采样并与 S S S 无关。

此外,为了度量算法的性能,定义如下指标:

期望误差(也就是我们平时所说的 population risk):
R ( A , S ) = E z [ ℓ ( A S , z ) ] , R(A,S)=\mathbb{E}_z[\ell(A_S,z)], R(A,S)=Ez[(AS,z)],其中 A S A_S AS 是算法 A A A 在数据集 S S S 上训练得到的模型。

然而,这个误差 R R R 并不能计算,因为分布 D D D 通常是未知的,因此需要定义基于可达数据集 S S S 的测度:
R e m p ( A , S ) = 1 m ∑ i = 1 m ℓ ( A S , z i ) . R_{emp}(A,S)=\frac{1}{m}\sum_{i=1}^m\ell(A_S,z_i). Remp(A,S)=m1i=1m(AS,zi).

此外,传统上还有 leave-one-out (这个东西我实在不知道怎么翻译)定义:
在这里插入图片描述
(如果有朋友知道该怎么打出来\i并不吝赐教,博主不胜感激)

为了简单起见,后文将用如下的记号对上面介绍的三个定义进行简化:
R = R ( S ) = R ( A , S ) R e m p = R e m p ( S ) = R e m p ( A , S ) R l o o = R l o o ( S ) = R l o o ( A , S ) R=R(S)=R(A,S) \\ R_{emp}=R_{emp}(S)=R_{emp}(A,S)\\ R_{loo}=R_{loo}(S)=R_{loo}(A,S) R=R(S)=R(A,S)Remp=Remp(S)=Remp(A,S)Rloo=Rloo(S)=Rloo(A,S)

有了上面的定义,我们接下来就可以定义学习算法的稳定性了。

【三】算法稳定性

1. 假设稳定性(Hypothesis Stability

在这里插入图片描述
假设稳定性定义了在 原数据集leave-one-out 数据集 上学习得到的模型参数之间的差别(损失函数上的差别上界:几乎所有的稳定性定义都在界定上界),这个差别定义在对数据集 S S S 和所取点 z z z 的期望上。

很容易可以发现,如上文所说,这个定义就是损失函数的一种敏感度,输入上的不同体现在参数上:是用原数据集训练得到的参数,还是用 leave-one-out 数据集训练得到的参数。

2. 单点假设稳定性(Pointwise Hypothesis Stability

在这里插入图片描述
定义和上文中的假设稳定性类似,只是在计算损失函数敏感度的时候,将数据点取为 z i z_i zi :恰好是数据集差异的那一个数据样本。

3. 误差稳定性(Error Stability

在这里插入图片描述
相比于上面的两种稳定性定义,误差稳定性更弱,通过简单的期望和绝对值变换就能得到:
∣ E [ ℓ ( θ , z ) ] − E [ ℓ ( θ ′ , z ) ] ∣ = ∣ E [ ℓ ( θ , z ) − ℓ ( θ ′ , z ) ] ∣ ≤ E [ ∣ ℓ ( θ , z ) − ℓ ( θ ′ , z ) ∣ ] , |\mathbb{E}[\ell(\theta,z)]-\mathbb{E}[\ell(\theta',z)]|=|\mathbb{E}[\ell(\theta,z)-\ell(\theta',z)]|\leq\mathbb{E}[|\ell(\theta,z)-\ell(\theta',z)|], E[(θ,z)]E[(θ,z)]=E[(θ,z)(θ,z)]E[(θ,z)(θ,z)],把相应参数带入给 θ , θ ′ \theta,\theta' θ,θ 就能发现 假设稳定性是能推出误差稳定性的

4. 一致稳定性(Uniform Stability

在这里插入图片描述
Stability and Generalization 这篇文章里,一致稳定性是这样定义的,里面涉及到的无穷范数 ∥ ⋅ ∥ ∞ \|\cdot\|_\infty 其实就是对所有数据点 z z z 取最大值。
可以看到,一致稳定性并没有进行 取期望 这一项操作,因此它是上面这几种稳定性里面 最强 的定义。

根据定义,我们可以得到: 一致稳定性 ⇒ \quad\Rightarrow\quad 假设稳定性 ⇒ \quad\Rightarrow\quad 误差稳定性

【题外话】
一致稳定性 Uniform Stability 是后面很多工作里重点研究的对象,因为它定义最严苛,也可以得到更优的泛化理论结果。
后来,研究者基于一致稳定性的概念提出了 一致参数稳定性(Uniform Argument Stability,定义在参数上,即:
∥ A S − A S − i ∥ 2 ≤ β , \|A_S-A_S^{-i}\|_2\leq\beta, ASASi2β,其中 ∥ ⋅ ∥ 2 \|\cdot\|_2 2 表示二范数(实在是打不出反斜杠所以用 − i -i i代替了呜呜呜)。

根据 G G G-Lipschitz 连续性的定义,可以很容易地推导出: β \beta β-一致参数稳定性 ⇒ \quad\Rightarrow\quad G β G\beta -一致稳定性

【题外话中题外话】
Lipschitz 连续性定义如下:
若损失函数 ℓ ( θ , z ) \ell(\theta,z) (θ,z) 对任意 θ 1 , θ 2 , z \theta_1,\theta_2,z θ1,θ2,z 满足:
∣ ℓ ( θ 1 , z ) − ℓ ( θ 2 , z ) ∣ ≤ G ∥ θ 1 − θ 2 ∥ 2 , |\ell(\theta_1,z)-\ell(\theta_2,z)|\leq G\|\theta_1-\theta_2\|_2, (θ1,z)(θ2,z)Gθ1θ22,则称损失函数 ℓ ( θ , z ) \ell(\theta,z) (θ,z) 满足 G G G-Lipschitz 连续性。

Lipschitz 连续性确定了损失函数梯度的上界,即:对任意 θ , z \theta,z θ,z ∥ ∇ θ ℓ ( θ , z ) ∥ 2 ≤ G \|\nabla_\theta\ell(\theta,z)\|_2\leq G θ(θ,z)2G

有了这个定义,上面提到的一致参数稳定性和一致稳定性之间的关系就一目了然了。
【题外话结束】

【四】稳定性与泛化误差

有了上述的几个稳定性条件,本文给出了基于 假设稳定性一致稳定性 的泛化误差界,这里选了两个具有代表性的结果分别在下面的 Theorem 11Theorem 12 中给出:
在这里插入图片描述
在这里插入图片描述
上面提到的这两个定理中, R − R e m p R-R_{emp} RRemp 就是泛化误差。

两个定理的证明都用到了一些中心不等式(比如 ChebyshevMcDiarmid 不等式等),有兴趣的朋友们可以参看 Stability and Generalization 论文原文,在这里我们不展开介绍,只看这两个结果。

我们可以看到,假设稳定性给出的高概率结果是 多项式级别 收敛的(Theorem 11 中的 1 / δ 1/\delta 1/δ);而一致稳定性给出的高概率结果是 指数级别 收敛的(Theorem 12 中的 ln ⁡ ( 1 / δ ) \ln(1/\delta) ln(1/δ)),因此后者给出了更好的理论结果。

除此之外,我们可以发现上面两个定理都需要比较小的稳定性系数才能保证泛化误差结果是有意义的(特别是 Theorem 12,里面存在一项 m β m\beta mβ),比如 β = O ( 1 / m ) \beta=\mathcal{O}(1/m) β=O(1/m)
在这样的情况下,泛化误差才能达到 O ( 1 / m ) \mathcal{O}(1/\sqrt{m}) O(1/m ) 这样的一个量级。

【五】其他

本文还给出了一些例子证明在很多模型中,稳定性系数都能保证是小于或等于 O ( 1 / m ) \mathcal{O}(1/m) O(1/m) 的,以保证上文中的claims有意义,在这里我们不对其进行细致讨论,感兴趣的朋友们可以参看 Stability and Generalization 原文。

此外,本文并没有针对 误差稳定性 分析得到的泛化误差结果,原因是这样的:
如上文中提到的,误差稳定性是很弱的一个稳定性定义,因此 没有办法保证算法 A A A 的泛化误差随着训练样本量 m m m 趋于无穷而减小至0(这是 Kutin, Niyoogi 在2012年的一篇论文 Almost-everywhere algorithmic stability and generalization error 中提到的)。
因此本文并没有给出基于误差稳定性的泛化误差结果。

本人目前所研究的领域也是差分隐私方向的优化和泛化,欢迎大家在 差分隐私优化泛化理论 两个方向一同交流、讨论。

如果本文中某些表述或理解有误,欢迎各位大神批评指正。
谢谢!

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
工作量估算运算法,也称为算法成本模型,是一种用于估计软件开发过程中所需工作量的方法。它通过将软件项目分解为一系列任务,并为每个任务分配工作量,从而得出估算结果。 通常,工作量估算运算法基于经验数据和统计分析,以提供尽可能准确的工作量估计。其中一个常见的工作量估算模型是表格法(algorithmic cost models)。 表格法是一种定量的工作量估算方法,它基于软件规模和项目复杂度等因素。在表格法中,通常使用一个预先准备的表格,其中列出了各种规模和复杂度组合的工作量估算。 根据实际的软件规模和项目复杂度,我们可以在表格中找到相应的工作量估算值。通常,表格法会考虑不同规模和复杂度的任务所需的不同时间和资源。 要使用表格法进行工作量估算,我们需要识别并评估项目中的各项任务,并根据表格法表格中的工作量估算值进行累加。最终,我们可以得到一个总体的工作量估算结果。 表格法虽然相对简单,但它可以提供一个较为直观和初步的工作量估算结果。然而,需要注意的是,表格法只是一种经验性的模型,其估算结果可能存在一定的误差。因此,在实际项目中,还需要结合其他的工作量估算方法和技术,以提高估算的准确性。 总之,工作量估算运算法algorithmic cost models)中的表格法是一种基于软件规模和项目复杂度的定量工作量估算方法。虽然简单易用,但它仍然需要结合其他估算方法和技术,以提高估算结果的准确性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值