【机器学习Rademacher复杂度

『AI先锋杯·14天征文挑战第9期』 10w+人浏览 105人参与

目录

1. 引言

2. Rademacher 复杂度是什么

2.1 基本定义与数学表达

2.2 直观理解

3. Rademacher 复杂度的理论性质

3.1 上界性质

3.2 次加性

3.3 缩放性

4. Rademacher 复杂度的计算与估计

4.1 蒙特卡洛估计方法

4.2 常见函数类的复杂度上界

5. Rademacher 复杂度的应用领域

5.1 多任务学习

5.2 图神经网络

6. 与其他复杂度度量的比较

6.1 与 VC 维的关系

6.2 与覆盖数、PAC - Bayes 界限的关联

7. 总结与展望


1. 引言

在机器学习领域,我们常常面临一个关键问题:如何评估模型的泛化能力,确保它在未知数据上也能表现良好?Rademacher 复杂度作为一个强大的工具,为我们理解模型复杂度与泛化性能之间的关系提供了深刻的见解。它不仅在理论分析中占据重要地位,还对实际的模型选择、参数调优等操作有着指导意义。本文将深入探讨 Rademacher 复杂度,从基本定义、计算方法到实际应用,全面剖析这一概念,帮助读者掌握其精髓,为机器学习实践提供有力的理论支持 。

2. Rademacher 复杂度是什么

2.1 基本定义与数学表达

在统计学习理论中,Rademacher 复杂度是用于衡量函数类复杂性的一个重要概念 。假设有一个从样本空间 \(\mathcal{Z}\) 映射到区间 \([a,b]\) 的函数族 \(\mathcal{G}\),给定一个大小为 \(m\) 的样本集合 \(S = (z_1, \ldots, z_m)\),其中 \(z_i \in \mathcal{Z}\)。

经验 Rademacher 复杂度(Empirical Rademacher Complexity)定义为:\( \hat{R}_S(\mathcal{G}) = \mathbb{E}_\sigma \left[ \sup_{g \in \mathcal{G}} \frac{1}{m} \sum_{i=1}^m \sigma_i g(z_i) \right] \)

其中,\(\sigma = (\sigma_1, \ldots, \sigma_m)^T\),\(\sigma_i\) 是独立的 Rademacher 随机变量,即以 \(\frac{1}{2}\) 的概率取值为 \(-1\),以 \(\frac{1}{2}\) 的概率取值为 \(+1\)。这里的 \(\mathbb{E}_\sigma\) 表示对 \(\sigma\) 取期望,\(\sup_{g \in \mathcal{G}}\) 表示在函数族 \(\mathcal{G}\) 中取上确界,即找到使得 \(\frac{1}{m} \sum_{i=1}^m \sigma_i g(z_i)\) 最大的函数 \(g\)。

平均 Rademacher 复杂度(Average Rademacher Complexity)则是经验 Rademacher 复杂度在样本分布 \(\mathcal{D}\) 上的期望,定义为:\( R_m(\mathcal{G}) = \mathbb{E}_{S \sim \mathcal{D}^m} \left[ \hat{R}_S(\mathcal{G}) \right] \)

其中,\(S \sim \mathcal{D}^m\) 表示样本集合 \(S\) 是从分布 \(\mathcal{D}\) 中独立同分布采样得到的大小为 \(m\) 的样本。

2.2 直观理解

为了更直观地理解 Rademacher 复杂度,可以将其看作是衡量函数类 “灵活性” 或 “复杂性” 的一种方式。想象一下,我们有一组数据样本,然后给这些样本随机分配标签(通过 Rademacher 随机变量 \(\sigma_i\) 来模拟这种随机分配)。如果一个函数类 \(\mathcal{G}\) 能够很好地拟合这些随机分配的标签,也就是说,能够找到一个函数 \(g \in \mathcal{G}\),使得 \(\frac{1}{m} \sum_{i=1}^m \sigma_i g(z_i)\) 的值很大,那么这个函数类就具有较高的 Rademacher 复杂度 。

这意味着该函数类过于复杂,可能会过度拟合数据中的噪声,而不是真正学习到数据的内在模式。相反,如果一个函数类在面对这些随机标签时,很难找到一个函数来拟合它们,即 \(\frac{1}{m} \sum_{i=1}^m \sigma_i g(z_i)\) 的值较小,那么这个函数类的 Rademacher 复杂度较低,说明它相对简单,可能无法捕捉到数据中的复杂模式,但也不容易过拟合。例如,一个非常复杂的神经网络,它具有很多层和大量的参数,可能具有较高的 Rademacher 复杂度,因为它有很强的拟合能力,甚至可以拟合随机噪声;而一个简单的线性模型,其 Rademacher 复杂度相对较低,因为它的表达能力有限,难以拟合复杂的随机模式 。

3. Rademacher 复杂度的理论性质

3.1 上界性质

Rademacher 复杂度具有重要的上界性质。对于从样本空间 \(Z\) 映射到 \([0,1]\) 的函数族 \(G\),以至少 \(1-\delta\) 的概率 ,对于所有 \(g \in G\),有以下不等式成立:\( \mathbb{E}[g(z)] \leq \frac{1}{m} \sum_{i=1}^m g(z_i) + 2R_m(G) + \sqrt{\frac{\log(1/\delta)}{2m}} \)

其中,\(\mathbb{E}[g(z)]\) 表示函数 \(g\) 在样本分布上的期望风险(泛化误差),即模型在整个样本空间上的平均损失;\(\frac{1}{m} \sum_{i=1}^m g(z_i)\) 是函数 \(g\) 在给定样本集 \(S\) 上的经验风险,也就是模型在训练数据上的平均损失;\(R_m(G)\) 是函数族 \(G\) 的平均 Rademacher 复杂度,它衡量了函数族 \(G\) 的复杂性;\(\delta\) 是一个置信参数,通常取值较小,如 \(0.05\) 或 \(0.01\),表示我们对不等式成立的置信程度 。

这个上界性质表明,期望风险(泛化误差)受到经验风险和 Rademacher 复杂度的共同限制。具体来说,经验风险反映了模型对当前训练数据的拟合程度,而 Rademacher 复杂度则量化了函数族的复杂性,它捕捉了模型对随机噪声的拟合能力。当函数族 \(G\) 的 Rademacher 复杂度较高时,意味着函数族过于复杂,可能会过度拟合数据,从而导致期望风险增加。而通过控制 Rademacher 复杂度,可以有效地控制模型的泛化误差,使其在未知数据上也能表现良好。例如,在一个简单的线性回归模型中,如果我们增加多项式的次数,函数族的 Rademacher 复杂度可能会增加,这可能导致模型在训练数据上拟合得很好,但在测试数据上的泛化性能下降 。

3.2 次加性

Rademacher 复杂度还具有次加性性质。对于两个函数族 \(\mathcal{G}_1\) 和 \(\mathcal{G}_2\),它们和的 Rademacher 复杂度满足以下不等式:\( R_m(\mathcal{G}_1 + \mathcal{G}_2) \leq R_m(\mathcal{G}_1) + R_m(\mathcal{G}_2) \)

这里的 \(\mathcal{G}_1 + \mathcal{G}_2\) 表示由函数 \(g_1 + g_2\) 组成的新函数族,其中 \(g_1 \in \mathcal{G}_1\),\(g_2 \in \mathcal{G}_2\)。次加性性质表明,两个函数族之和的复杂性不会超过它们各自复杂性之和。从直观上理解,当我们将两个函数族合并时,新函数族的灵活性(复杂性)不会超过原来两个函数族灵活性的总和。例如,假设有两个函数族,一个是由简单的线性函数组成的 \(\mathcal{G}_1\),另一个是由低阶多项式函数组成的 \(\mathcal{G}_2\),当我们将它们合并成一个新的函数族 \(\mathcal{G}_1 + \mathcal{G}_2\) 时,新函数族的 Rademacher 复杂度不会超过 \(\mathcal{G}_1\) 和 \(\mathcal{G}_2\) 的 Rademacher 复杂度之和 。

这个性质在分析复杂模型时非常有用。比如在深度学习中,一个神经网络可以看作是多个函数层的组合,通过次加性性质,我们可以将整个网络的 Rademacher 复杂度分解为各个层的 Rademacher 复杂度之和,从而更方便地分析和控制网络的复杂性 。

3.3 缩放性

对于 Lipshitz 函数 \(\varphi\),Rademacher 复杂度具有缩放性性质。设 \(\varphi\) 是一个 Lipshitz 常数为 \(L\) 的 Lipshitz 函数,即对于任意的 \(x_1, x_2\),有 \(|\varphi(x_1) - \varphi(x_2)| \leq L|x_1 - x_2|\)。如果 \(\mathcal{G}\) 是一个函数族,那么 \(\varphi\) 与 \(\mathcal{G}\) 复合后的函数族 \(\varphi \circ \mathcal{G}\) 的 Rademacher 复杂度满足:\( R_m(\varphi \circ \mathcal{G}) \leq L \cdot R_m(\mathcal{G}) \)

这意味着,当一个函数族 \(\mathcal{G}\) 与 Lipshitz 函数 \(\varphi\) 复合时,新函数族 \(\varphi \circ \mathcal{G}\) 的 Rademacher 复杂度会受到 Lipshitz 常数 \(L\) 的缩放影响。例如,对于一个线性函数族 \(\mathcal{G}\),如果我们对其进行线性变换(也是一种 Lipshitz 函数),新函数族的 Rademacher 复杂度将与原函数族的 Rademacher 复杂度成比例关系,比例系数就是线性变换的 Lipshitz 常数 。

这个缩放性性质在实际应用中很有价值。在图像处理中,我们可能会对图像数据进行一些变换操作,如缩放、平移等,这些操作可以看作是 Lipshitz 函数。通过缩放性性质,我们可以分析这些变换对模型复杂度和泛化性能的影响,从而更好地设计和优化图像处理算法 。

4. Rademacher 复杂度的计算与估计

4.1 蒙特卡洛估计方法

在实际应用中,精确计算 Rademacher 复杂度往往是困难的,尤其是当函数族 \(\mathcal{G}\) 较为复杂时。因此,我们通常采用蒙特卡洛方法来估计经验 Rademacher 复杂度 。蒙特卡洛方法基于随机采样的思想,通过多次重复随机实验来逼近真实值。

具体步骤如下:

  1. 生成随机 σ 向量:根据 Rademacher 随机变量的定义,生成 \(N\) 个独立的 \(\sigma\) 向量,每个 \(\sigma\) 向量的长度为样本数 \(m\),其中每个 \(\sigma_i\) 以 \(\frac{1}{2}\) 的概率取值为 \(-1\),以 \(\frac{1}{2}\) 的概率取值为 \(+1\)。例如,当 \(m = 10\) 时,一个 \(\sigma\) 向量可能是 \([1, -1, -1, 1, 1, -1, 1, -1, 1, 1]\)。
  1. 计算上确界:对于每个生成的 \(\sigma\) 向量,计算 \(\sup_{g \in \mathcal{G}} \frac{1}{m} \sum_{i=1}^m \sigma_i g(z_i)\)。这一步通常需要遍历函数族 \(\mathcal{G}\) 中的所有函数,找到使得 \(\frac{1}{m} \sum_{i=1}^m \sigma_i g(z_i)\) 最大的函数 \(g\)。在实际操作中,对于复杂的函数族,可能无法精确计算上确界,此时可以采用一些近似算法,如梯度上升法等,来寻找近似的最大值 。
  1. 取平均值:将上述 \(N\) 次计算得到的上确界结果取平均值,得到的结果即为经验 Rademacher 复杂度的蒙特卡洛估计值。即 \(\hat{R}_S(\mathcal{G}) \approx \frac{1}{N} \sum_{k=1}^N \sup_{g \in \mathcal{G}} \frac{1}{m} \sum_{i=1}^m \sigma_i^{(k)} g(z_i)\),其中 \(\sigma_i^{(k)}\) 表示第 \(k\) 个 \(\sigma\) 向量中的第 \(i\) 个元素 。

通过增加蒙特卡洛采样的次数 \(N\),可以提高估计的准确性。蒙特卡洛方法的优点是简单直观,适用于各种复杂的函数族,但缺点是计算量较大,尤其是当函数族 \(\mathcal{G}\) 中的函数计算复杂或者需要大量采样时 。

4.2 常见函数类的复杂度上界

对于一些常见的函数类,我们可以得到它们的 Rademacher 复杂度上界,这有助于我们在理论分析和实际应用中对模型复杂度进行评估和控制 。

  • 线性函数类:考虑线性函数类 \(\{x \mapsto w^T x : \|w\|_2 \leq R\}\),其中 \(x \in \mathbb{R}^d\),\(w\) 是权重向量,\(\|w\|_2\) 表示 \(w\) 的 \(L_2\) 范数,\(R\) 是一个常数。这类函数的 Rademacher 复杂度上界为 \(O(R \cdot \max_i \|x_i\|_2 / \sqrt{m})\) 。这表明线性函数类的 Rademacher 复杂度与权重向量的范数 \(R\)、样本的范数 \(\max_i \|x_i\|_2\) 以及样本数量 \(m\) 有关。当权重向量的范数越大,或者样本的范数越大时,线性函数类的 Rademacher 复杂度越高,说明其拟合随机噪声的能力越强,模型复杂度也越高;而随着样本数量 \(m\) 的增加,Rademacher 复杂度会降低,因为更多的数据可以降低模型对随机噪声的敏感性 。
  • 核函数类:在再生核希尔伯特空间中,核函数类的 Rademacher 复杂度与特征值衰减有关。假设核函数 \(K\) 对应的再生核希尔伯特空间中的特征值为 \(\lambda_1 \geq \lambda_2 \geq \cdots\),则 Rademacher 复杂度上界与特征值的衰减速度相关。如果特征值衰减较快,说明核函数类能够捕捉到数据的主要特征,而对噪声的拟合能力较弱,其 Rademacher 复杂度较低;反之,如果特征值衰减较慢,核函数类可能会过度拟合噪声,Rademacher 复杂度较高 。例如,对于高斯核函数,其特征值衰减相对较快,在一定程度上限制了模型的复杂度,使其在处理复杂数据时既能捕捉到数据的非线性特征,又能保持较好的泛化性能 。
  • 神经网络:神经网络的 Rademacher 复杂度与网络深度、宽度和权范数等因素有关。一般来说,网络深度越深、宽度越宽,神经网络的表达能力越强,能够拟合更复杂的函数,但同时也容易导致 Rademacher 复杂度升高,增加过拟合的风险 。权范数也对 Rademacher 复杂度有影响,较大的权范数可能使得神经网络更容易拟合随机噪声,从而提高 Rademacher 复杂度。为了控制神经网络的 Rademacher 复杂度,可以采用一些正则化方法,如 \(L_1\) 和 \(L_2\) 正则化,通过对权范数进行约束,降低模型的复杂度,提高泛化能力 。例如,在一个多层感知机中,如果增加隐藏层的数量和每个隐藏层的神经元数量,网络的 Rademacher 复杂度可能会显著增加,此时通过添加 \(L_2\) 正则化项,可以有效地限制权重的大小,降低 Rademacher 复杂度,提升模型在测试数据上的表现 。

5. Rademacher 复杂度的应用领域

5.1 多任务学习

在多任务学习中,我们的目标是同时学习多个相关任务,利用任务之间的共享信息来提高每个任务的性能 。Rademacher 复杂度在多任务学习中扮演着重要角色,它可以帮助我们推导过剩风险界限,从而更好地理解和控制模型的泛化能力 。

假设我们有 \(T\) 个任务,每个任务都有自己的数据集 \(S_t = (z_{t1}, \ldots, z_{tm_t})\),其中 \(t = 1, \ldots, T\),\(m_t\) 是第 \(t\) 个任务的样本数量 。我们希望学习一个函数族 \(F\),使得它能够在所有任务上都表现良好。

通过利用任务间的相关性,我们可以基于 Rademacher 复杂度得到比单独学习每个任务更紧的泛化界限 。具体来说,我们可以定义一个联合函数族 \(\mathcal{F}_{joint}\),它包含了所有任务的函数 。然后,通过分析这个联合函数族的 Rademacher 复杂度,我们可以得到多任务学习的过剩风险界限 。

例如,假设我们有两个相关的图像分类任务:任务 A 是识别猫和狗,任务 B 是识别不同品种的狗 。这两个任务之间存在一定的相关性,因为它们都涉及到对狗的识别 。我们可以使用多任务学习方法,同时学习这两个任务 。通过计算联合函数族的 Rademacher 复杂度,我们可以评估模型在这两个任务上的泛化能力,并根据得到的过剩风险界限来调整模型的参数和结构,以提高模型在两个任务上的性能 。

研究表明,基于局部 Rademacher 复杂度的分析能够反映一种类似于渐进收敛速率的守恒定律的关系 。在多任务学习中,局部 Rademacher 复杂度可以更精细地刻画函数族中与当前任务相关的部分的复杂性,从而为多任务学习提供更准确的理论指导 。

5.2 图神经网络

图神经网络(GNNs)在处理图结构数据方面取得了显著的成果,广泛应用于社交网络分析、化学分子结构预测、知识图谱等领域 。然而,随着图神经网络的不断发展和应用,其泛化性能成为了一个关键问题 。在过参数化情况下,传统的泛化界限可能不再具有信息性,而基于 Rademacher 复杂度的分析为图神经网络的泛化性能提供了有意义的理论保证 。

在图神经网络中,节点之间的连接关系复杂,数据分布也往往具有不规则性,这使得分析其泛化性能变得具有挑战性 。Rademacher 复杂度通过考虑函数族在随机噪声下的表现,为评估图神经网络的复杂性提供了一种有效的方式 。例如,在一个社交网络图中,节点表示用户,边表示用户之间的关系,图神经网络的任务是根据用户的特征和关系预测用户的兴趣爱好 。通过计算图神经网络的 Rademacher 复杂度,我们可以了解模型在处理这种复杂图结构数据时的泛化能力,判断模型是否容易过拟合 。

一些研究通过对图神经网络的 Rademacher 复杂度进行分析,提出了新的正则化方法和模型架构设计 。这些方法通过控制 Rademacher 复杂度,有效地提高了图神经网络的泛化性能 。例如,通过对图神经网络的权重进行约束,减少模型对噪声的拟合能力,从而降低 Rademacher 复杂度,提升模型在未知图数据上的表现 。

6. 与其他复杂度度量的比较

6.1 与 VC 维的关系

Rademacher 复杂度与 VC 维(Vapnik - Chervonenkis Dimension)都是机器学习中用于衡量模型复杂度的重要概念,它们之间存在着紧密的联系,同时也有着显著的差异 。

从联系上看,Rademacher 复杂度可以通过增长函数与 VC 维建立关联 。增长函数 \(\Pi_H(m)\) 表示假设集 \(H\) 对 \(m\) 个点进行分类的不同方式的最大数量 。Massart 引理表明,对于取值在 \({-1, +1}\) 的函数族 \(G\),有 \(R_m(G) \leq \sqrt{\frac{2 \log \Pi_G(m)}{m}}\) 。而 VC 维 \(VCdim(H)\) 定义为增长函数中能被假设集 \(H\) 打散的 \(m\) 的最大值,即 \(VCdim(H) = \max{m: \Pi_H(m) = 2^m}\) 。对于二类分类问题,Rademacher 复杂度以 \(O(\sqrt{\frac{d}{m}})\) 为上界,其中 \(d\) 是 VC 维 。这意味着 VC 维越大,Rademacher 复杂度的上界也越大,说明模型的复杂度越高 。

然而,它们也存在一些区别 。VC 维提供的是最坏情况界限,它不依赖于具体的数据分布,只与假设集本身的性质有关 。而 Rademacher 复杂度提供了数据依赖的界限,它考虑了样本数据的具体分布情况,能够更准确地反映模型在特定数据集上的复杂度 。例如,在一个实际的图像分类任务中,使用 VC 维分析时,我们得到的是一个通用的复杂度评估,不依赖于具体的图像数据 。但 Rademacher 复杂度会根据不同的图像数据集(如不同的图像分辨率、不同的图像内容分布等)给出不同的复杂度度量,因为它考虑了数据的特性 。此外,VC 维主要针对二分类问题,而 Rademacher 复杂度适用于回归和分类等多种问题,具有更广泛的适用性 。在一些复杂的多分类任务中,VC 维的应用会受到限制,而 Rademacher 复杂度可以有效地评估模型的复杂度 。

6.2 与覆盖数、PAC - Bayes 界限的关联

Rademacher 复杂度与覆盖数也存在着内在联系 。覆盖数 \(N_p(G, \epsilon)\) 是用半径为 \(\epsilon > 0\) 的 \(L_p\) 球覆盖损失函数族 \(G\) 所需的最小球数,它反映了函数族的复杂性 。Rademacher 复杂度可以通过 Dudley 熵积分与覆盖数联系起来 。具体来说,Dudley 熵积分是基于覆盖数定义的一种积分形式,通过一系列数学推导,可以建立起 Rademacher 复杂度与覆盖数之间的关系 。这种联系使得我们可以从不同的角度来理解和分析模型的复杂度,在某些情况下,通过计算覆盖数可以间接得到 Rademacher 复杂度的相关信息,反之亦然 。

另外,Rademacher 界限和 PAC - Bayes 界限提供了互补的泛化保证视角 。PAC - Bayes 界限结合了贝叶斯方法和 PAC(Probably Approximately Correct)理论,它通过引入一个先验分布和后验分布之间的距离度量,来推导模型的泛化误差界 。与 Rademacher 复杂度不同,PAC - Bayes 界限不仅依赖于假设集的复杂度,还依赖于先验分布和后验分布的选择 。在实际应用中,当我们对模型的先验知识有一定了解时,PAC - Bayes 界限可以利用这些信息给出更精确的泛化保证;而 Rademacher 复杂度则更侧重于从函数族对随机噪声的拟合能力角度来评估模型的泛化性能 。例如,在一个基于深度学习的语音识别模型中,如果我们有关于语音特征分布的先验知识,就可以利用 PAC - Bayes 界限来优化模型的泛化性能;同时,通过计算 Rademacher 复杂度,我们可以了解模型在处理语音数据时对随机噪声的敏感程度,从而从不同方面提高模型的泛化能力 。

7. 总结与展望

Rademacher 复杂度作为机器学习理论中的重要概念,为我们提供了一种强大的工具来量化假设集的复杂性 。通过测量函数类对随机噪声的拟合程度,Rademacher 复杂度能够深入反映模型的内在特性,帮助我们理解模型在训练数据上的表现与在未知数据上的泛化能力之间的联系 。

与传统的复杂度度量如 VC 维相比,Rademacher 复杂度具有显著的优势 。它提供了数据依赖的界限,能够根据具体的数据分布来评估模型的复杂度,这使得它在实际应用中更加灵活和准确 。而且,Rademacher 复杂度适用于回归和分类等多种学习问题,具有更广泛的适用性 。在复杂模型的分析中,Rademacher 复杂度通常能够给出比最坏情况分析更紧的泛化界限,为模型的优化和选择提供了更有价值的指导 。

然而,Rademacher 复杂度也面临一些挑战 。对于某些复杂的假设集,精确计算 Rademacher 复杂度可能是 NP 难的问题,这在实际应用中带来了一定的困难 。因此,我们通常需要依赖蒙特卡洛估计等近似方法来计算 Rademacher 复杂度 。对于深度神经网络等现代复杂模型,直接应用 Rademacher 界限可能仍然较松,无法充分反映模型的真实泛化性能 。

展望未来,随着机器学习模型的不断发展和应用,模型的复杂度也在持续增加 。Rademacher 复杂度及其变种(如局部 Rademacher 复杂度)有望在理解模型泛化行为方面发挥更为重要的作用 。特别是在图神经网络、多任务学习和过参数化模型的理论分析中,Rademacher 复杂度将为我们提供宝贵的理论支持 。未来的研究可以致力于改进 Rademacher 复杂度的计算方法,提高计算效率和准确性;探索如何将 Rademacher 复杂度与其他理论和技术相结合,以更好地解决实际问题;进一步研究 Rademacher 复杂度在新型机器学习模型中的应用,推动机器学习理论和实践的发展 。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大雨淅淅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值