【论文阅读】DEEPLY UNCERTAIN: COMPARING METHODS OF UNCERTAINTY QUANTIFICATION IN DEEP LEARNING ALGORITHM

这是本人研究工作相关的首篇论文阅读分享,欢迎点赞、关注、收藏~

论文标题:深度不确定性:深度学习不确定性量化算法方法比较

文章发表在2020年ICLR的AI workshop基础科学领域
作者单位:费米国家实验室
arXiv链接:https://arxiv.org/abs/2004.10710

摘要

文章针对一个简单的物理系统比较深度学习算法不确定性量化(UQ, Uncertainty Quantainty)方法。文章比较了三种最常见的不确定性量化方法,它们分别是:贝叶斯神经网络(BNN, Bayesian Neural Networks)、Concrete Dropout(CD)、深度集成(DE, Deep Ensembles),将它们和标准分析误差传播(standard analytic error propagation)进行比较。文章比较了机器学习(“epistemic” and “aleatoric”,认识论和寓言式)和物理科学领域(“statistical” and “systematic”,统计和系统)的术语。作者是在一个用来研究测量和分析用的原型物理系统上,也就是一个单摆仿真实验测量上,来比较以上不确定性量化的。比较的结果是说,使用这些UQ方法的时候可能会出现一些陷阱(pitfall)。例如,当训练集的噪声方差很小的时候,所有的方法竟然独立于输入预测出来相同的相对不确定性(relative uncertainty)。这一问题对于BNN来说是很难避免的。另一方面,当测试集的某些样本远离训练集样本分布的时候,文章的研究发现,没有方法能够增加与其预测相关的不确定性【这里没有理解的是,UQ研究希望增加不确定性还是不希望增加不确定性?】。这个问题对于CD来说尤其明显。鉴于这些研究结果,文章为使用和解释UQ方法提供了一些建议。

1. 引言

机器学习方法,尤其是更多的深度学习的方法,越来越多的应用在物理科学的建模、分析和控制过程领域。在这些领域中,对每个结果去量化不确定性是非常关键的【这里没有理解的是,为什么量化不确定性非常关键?】。因此,我们的社会在广泛采纳这些非常奇特方法之前,量化机器学习建模方法的不确定置信度是十分必要的。虽然,许多对于深度学习的不确定性量化(UQ)方法是最近几年刚刚提出来的,但是深度学习的不确定性是常见的,而且深度学习的不确定性和和物理科学中“epistemic”和“aleatoric”不确定性的概念是不同的。另外,虽然有一些方法比较了不同UQ结果的不同,但是它们通常针对的是某一个非常技术的任务,或者是某一个具有复杂数据结构的任务,这就使得UQ方法很难泛化到其它任务上。

文章的主要工作是为使用机器学习/深度学习算法作为工具的科学领域和开发机器学习/深度学习算法的计算机科学领域提供了一座桥梁。文章在一个相对简单的物理装置上,也就是一个单摆实验上,比较了多种UQ方法。所进行的回归任务是一个本科物理实验室教室环境中学生要做的回归任务,这个回归任务是测量足够多的数据,去刻画单摆的运动,最后计算出重力加速度g

文章所用的装置的一个至关重要的元素是,它能够为输入引入不同种类的噪声,然后把噪声传播给预测结果的不确定性,而预测结果的不确定性和所使用的方法无关。文章比较了UQ方法的结果,评估了它们如何反应那些注入到生成数据中的不同种类的不确定性源。文章还为物理科学的操作者们提供了方便使用的UQ方法框架。

2. 方法:实验设置和不确定性分析

文章接下来介绍了实验用到的物理系统、机器学习领域和物理科学领域的UQ方法、以及深度学习UQ方法。

2.1 不确性量化指标:ALEATORIC(偶然的) AND EPISTEMIC(认知的); STATISTICAL(统计的) AND SYSTEMATIC(系统的)

文章指出,我们首先需要一个不同的不确定性概念和描述之间的映射。在机器学习和统计领域,aleatoric不确定性最初来自于输入数据的损坏,例如探测器的噪声,或者天体物理领域的点扩散函数。无论模型的质量以及训练数据的质量如何,这样的不确定性永远无法回避和减少。Epistemic不确定性描述的是模型表达数据的保真度,在排除了aleatoric不确定性之后。Epistemic不确定性会随着数据规模增加而减少。在决策分析(decision analysis)领域,aleatoric不确定性和epistemic不确定性分别被称为“risk”和“uncentainty”。如果想看对于这些概念的更长的更详细的综述,可能参考Gal(2016)这篇参考文献的第1.2章节,以及Hullermeier&Waegeman(2019)这篇参考文献。

然而,物理学家所指的“statistical”和“systematic”不确定性的定义就有些难以捉摸了,而且在文献中似乎也没有社会范围内的明确的标准。于是,文章遵循了JCGM/WG1(2008)里面的说法(convention约定),JCGM/WG1(2008)里面提倡使用术语“Type A”(也被称为statistical)和“Type B” (也被称为systematic)不确定性。本文中仍然使用术语statistical和systematic,因为它们更常见。Statistical不确定性描述了那些能够通过一系列实验测量统计分析出来的不确定性,例如,相同条件下重复测量多次采样的随机变量的误差。Systematic不确定性通过其它方法量化,例如,用模型产生的不确定性,由于另一个不同的实验测量得出的统计不确定性,以及理论不确定性。Systematic不确定性包括了那些通过在相同的实验增加数据但是却不能消除的不确定性。需要注意的是,systematic不确定性仍然和某个测量值得标准差有关。但是,有一种使得测量值始终过高或过低的系统偏差,可以在引用最终测量值之前校正,这样的偏差是和systematic不确定性不同,也不包含在systematic不确定性的范畴内。

总结一下,aleatoric/epistemic和statistical/systematic之间不是独立的,是有交叉的,a)epistemic误差通常是systematic,statistical误差通常是aleatoric永不是epistemic的;b)aleatoric不确定性可能是systematic。因此,这里有三种不确定性互相有关系:aleatoric systematic、aleatoric statistical、epistemic systematic。作者在2.3章节里面针对单摆会提供这些不确定性的明确的例子。

2.2 物理系统:单摆

文章选择的用来做实验的物理系统满足以下的要求:

  1. 任何物理学家和机器学习科学家都能容易理解物理过程、计算和不确定性来源
  2. 它具有statistical不确定性和systematic不确定性,并且我们能够量化这两种不确定性,以此来比较不同机器学习算法的结果
    单摆实验就能够满足上述两条要求,单摆实验在本科生物理实验室里面很常见,它的分析建模数学公式如下:
    g = 4 π 2 L T 2 g=4\pi^2\frac {L}{T^2} g=4π2T2L
    在这里插入图片描述

其中g是重力加速度,L是摆臂的长度,T是振荡的周期。每个单摆实验中,作者都测量了mock测量,就像在单摆实验中会测量的那样,包括:单摆的质量m、最大振荡角度θ、摆臂的长度L、10次周期T。总之,作者用13个输入训练机器学习模型,建模重力加速度g

需要重要的是,重力加速度g是独立于m和θ的,但是作者把它们放在输入中,是为了模拟全部的测量值,就像在物理实验室中进行的那样。虽然作者这里没有这样做,但是这可能会引入额外的systematic不确定性。例如,使用公式(1)建模,它只对很小的θ有效。排除公式(1)有效性的范围,将会给结果带来不确定性。

2.3 不确定性来源和比较指标

文章中想要试图区分每个模型反应出来的不确定性量化的种类。2.1章节描述了三种不确定性,接下来将会把三种不确定性引入到2.2章节描述的实验装置也就是数据生成过程中。

(1)aleatoric statistical不确定性:在测量10次周期T过程中引入噪声。训练数据中的每个点,是可以画出它的测量噪声v的数量在一定的范围内,也可以画出来每次测量的周期服从标准差是vT的正态分布。文章将会在第3章节更详细的讨论v的范围的选择。

(2)aleatoric systematic不确定性:实验中只是测量了一次L的长度,它包含的噪声是一种aleatoric systematic不确定性,这是因为这是一种单一一次测量L无法在统计上估计出来的不确定性来源。需要注意的是,因为这里没有统计的办法从单个输入数据上决定噪声,那么就要在训练集观测到的typical噪声决定不确定性。在文章中所提到的训练集和测试集,L的所有测量值服从标准差是0.02L的正态分布。

(3)epistemic systematic不确定性,它反应了模型输出预测结果的不确定性。测试这种类型不确定的方法是观察那些原理训练集分布流形的预测值。文章的实验设置重力加速度范围是 g ∈ ( 5 , 15 ) m / s 2 g\in(5,15)m/s^2 g(5,15)m/s2、单臂长度范围是 L ∈ ( 0.2 , 0.8 ) m L\in(0.2,0.8)m L(0.2,0.8)m。重力加速度和单臂长度范围可以超出以上两个范围,文章将在后面考虑以上两种设置。

文章调研了比较不同种类UQ方法的途径。对于两种aleatoric不确定性,作者使用标准不确定性传播方法计算输出的不确定性。也就是,使用公式(1)计算每个输入变量的误差传播到重力计算度g上的影响。文章中比较了机器学习算法对分析估计的aleatoric不确定性。也就是直接的比较深度学习方法的不确定性:标准的不确定性传播给“truth”产生了不确定性。而对于epistemic不确定性,就没有办法用分析估计了,但是能够研究如果测试数据和训练数据分布不同的时候深度学习算法产生不确定性。而且能够预测到测试数据和训练数据相差距离越大,深度学习算法所产生的不确定性会增长。最后,文章分析了每种深度学习算法的置信度区间:可信度表格(也称为“校正曲线”)比较了落入置信度区间的样本的比例,如果不确定性代表的是标准正态分布的话。

表1给出了对于上述不确定性概念和物理模型例子的详细的总结。

表1:不确定性的种类,列代表机器学习算法,行代表物理。括号中是实验中特定的例子
在这里插入图片描述

2.4 深度学习模型的不确定性量化方法

文章讨论了三种不确定性量化方法:深度集成(Deep Ensembles,DE)、贝叶斯神经网络(Bayesian Neural Networks, BNN)、Concrete Dropout(CD)。虽然模型和模型之间有很多不同,但是文章中都是通过观察已经训练好的模型的集合中估计epistemic不确定性。不同模型之间的预测分布被用作与模型相关(例如epistemic)不确定性估计。Aleatoric不确定性,可以通过单一模型预测,因为aleatoric不确定性和给定输入空间范围内的观测噪声有关。估计噪声对结果的影响的方法是,同时通过最大化数据的似然函数来拟合正态分布的均值和标准差。得到的标准差是aleatoric不确定性的估计。Kendall&Gal(2017)这篇参考文献综述了它们之间的区别。

文章的实验中,取了10次 N = 10 N=10 N=10预测均值mean和aleatoric不确定性 ( μ i , σ i ) (\mu_i, \sigma_i) (μi,σi)的估计。将这N次估计看作是混合高斯分布,能够得到如下的预测:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.4.1 贝叶斯神经网络

贝叶斯神经网络(BNN)是一类神经网络,它的每层的权重服从概率分布。训练过程是在这些概率分布上用给定的数据进行近似的贝叶斯推断(Bayesian Inference)。精准地推断网络参数是一个麻烦(intractable)问题,解决问题这个问题的办法是ELBO(evidence lower bound)。实际操作上,它包含了似然估计、KL散度、权重概率分布和权重的先验概率。

以往是有一些在训练过程中从权重概率中采样的方法,这些方法和常见的神经网络保持并行。本文作者使用了flipout技术(2018年Wen),TensorFlow Probability库已经实现了flipout技术(2017年Dillon)。参考Snoek2019年的工作,作者发现将KL散度用1/n归一化之后显著提升了预测效果,n表示训练样本的数量。作者还参考了Pomponi2020年工作的研究,尝试用Maximum Mean Discrepancy替代KL散度,发现结果没有明显变化,因此作者在文章中的实验仍然使用KL散度。文章中提到,使用BNN,可以从后验权重分布中多次采样产生的不同输出结果中估计epistemic不确定性。

2.4.2 深度集成Deep Ensembles

Lakshminaraynan2016年的工作提出了一种简化的可替代贝叶斯方法的算法,也就是Deep Ensembles(DE),DE方法概念上简化了:使用不同的初始值重复训练相同的网络结构。初始值的随机性和训练过程的随机性能够产生不同的网络参数。如果网络优化目标是最小化均方误差损失(mean squared error loss),那么它只能够产生epistemic不确定性。另一方面,如果网络优化目标是data log likelihood,那么能够同时估计aleatoric不确定性和epistemic不确定性。再加上使用bagging技术,也就是“bootstrap aggregating”技术,它们都是从训练集合中随机选择一部分数据训练网络,那么也给结果带来了随机性。Lakshminarayanan2016年的工作发现使用bagging技术可能预测性能会恶化,本文的作者也发现使用bagging技术后预测效果没有提升。

2.4.3 Concrete Dropout

Hinton2012年工作首次提出了Dropout,它是一种神经网络的正则化方法。这项技术包含了:每层忽略一定比例的神经元,每次前向传播时随机忽略一部分神经元。作为一种正则化技术,只有训练过程使用dropout。随后,Gal&Ghahramani2016年工作发现,测试阶段使用dropout技术也能给可能的模型提供分布【我的理解是,测试阶段使用dropout技术也能得到有用的模型】。随后Gal2017年的工作研究了优化每一层dropout概率的方法,这种优化dropout概率的方法称之为Concrete Dropout(CD)。为了估计CD产生的epistemic不确定性,作者每次前向传播丢弃不同的神经元集合,来观察得到结果的分布。

2.5 神经网络结构和训练

对于以上所有的方法【我的理解有BNN、DE、CD三种蕴含了epistemic不确定性的网络】,文章使用的网络结构是:3层全连接隐层、每层全连接隐层有100个神经元,每层隐层使用ReLU激活函数,最后输出层没有使用激活函数。由于神经结构没有变化,所有没有产生那些改变网络结构可能带来的预测epistemic的不确定性。这在问题中是可以忽略笔记的,因为模型具有足够的能力得到最优解。

文章使用Adam优化器,除了BNN网络学习率是10-4之外,其它网络学习率是10-3。CD和BNN训练了200epoch,DE训练了40个epoch,总共有90000训练数据。使用TensorFlow2实现以上网络,训练模型环境是两块而RTX 2080Ti GPU。训练每个模型将近100分钟。文章后面显示的跑一次的预测结果,实验跑了三次,预测结果在数值上没有改变。

作者开源了产生文章实验结果的代码,以及跑了很多次的数据发生器,给出了github链接:https://github.com/deepskies/DeeplyUncertain-Public

3. 实验结果

回忆一下,作者给测量周期T引入了Gaussian噪声,每个点的大小服从某个范围内的均匀分布。由于T测量的传播,作者使用标准误差传播方法计算了一个来自于数据噪声的不确定性的分析估计,并且将这个不确定性估计和在2.4节讨论的那些深度学习UQ方法预测产生的aleatoric不确定性进行了比较。

作者比较了三个范围的噪声T,结果如图1所示。预测结果的形状反应出机器学习算法预测值的常见趋势(例如,Ntampaka2020年appendix的工作),但是还没有文档阐释过不确定性预测的趋势:初始训练阶段之后,模型通常会预测出训练集的平均值,独立于输入。接下来模型开始学习区分不同的数据点,但是如果训练数据集中不包含足够的变化,模型也不会学习到数据点之间的不同。对于失败的模型是无法可视化它的不确定性预测的,因为在这样典型的问题中,不能够分析估计每个点不确定性。需要注意的是,一些能够估计UQ方法的度量指标,例如可靠性图,可以给出模型的很好的结果,但是相对不确定性是个常量。因此,需要仔细关注这类问题。

在这里插入图片描述

图1:比较每个方法的重力加速度g的相对aleatoric统计不确定性和重力加速度g的相对分析不确定性估计,三张图的T的噪声范围逐渐增大。相对不确定性是不确定性和g的预测值。绘制图1曲线的方法是,x轴等分成很多个桶bins,线对应着每个桶的预测值的中位数,阴影区域表示的是第百分之16位置和第百分之84位置的预测值。图1的最左侧图,T的噪声范围最窄,基于深度学习的UQ方法和分析方法不相关联:它们在训练数据集里面重复产生平均噪声,而没有变化值。图1中间图,T的噪声范围更大一些,DE和CD方法和分析估计的相关性较好【我的理解是analytic estimate指的是图中对角线那条虚线】,但是当分析不确定性较低的时候,DE和CD方法的不确定性比分析不确定性高,分析不确定性较高的时候,DE和CD方法的不确定性又比分析不确定性低。BNN方法仍然和分析估计的无关。图1中右侧图,T的噪声的值更大:所有方法和分析估计的趋势相同。这展示了深度学习使用负log似然目标时候值得关注的问

文章后面要讨论的结果都是T噪声在1%到2%范围内训练出来的神经网络。他们发现所有的方法都能够很好地建模实验中的systematic不确定性,因此作者总是给L测量值增加2%的Gaussian噪声。还需注意的是,图1中曲线左半部分不确定性总是高估,在右半部分又是低估。较低范围的不确定性的这种趋势更值得关注。作者认为这是由于训练集中相对不确定性的不平衡样本所引起的:作者建立训练集的方法是产生的相对不确定性分布的右尾更长。这也是在机器学习预测中常见的现象。

接下来,作者研究了epistemic不确定性,在和训练分布不一样的测试集上进行实验:输入数据和训练分布差距越远,那么这种不确定性预测将会增加。这是epistemic不确定性估计最小化合理需求,由于模型应该在它从未训练过的区域预测结果更加不确定。这也能够用来区分那些远离分布的某些输入。

图2展示实验结果。DE和BNN方法在不同程度上展示出预期的趋势。然而,CD对测试集用到的大部分但也不是所有的点的不确定性非常小,即使这些测试集和训练分布的距离在逐渐增大。这是因为,每层的dropout概率很小,所有层的dropout概率小于10-4,因此每次前向传播几乎没有神经元drop掉。因为训练集足够大,预测任务并不复杂,所以也就不难理解为什么epistemic不确定性很小很小了。然而,还需要注意到的是,如果远离了manifold【这里没有理解远离了manifold是什么意思】,CD可能会过度自信【这里没有理解过度自信又是什么情况】。

在这里插入图片描述

图2:(a)测试集的g在网络训练用的范围之外,测试集的L在训练用的范围之内。训练集的g的范围 ( 5 , 15 ) m / s 2 (5,15)m/s^2 (5,15)m/s2;(b)测试集的L在网络训练用的范围之外,测试集的g在训练用的范围之内。训练集的L的范围是 ( 0.2 , 0.8 ) m (0.2,0.8)m (0.2,0.8)m

图2:输出预测g和输入值L的不同的值带来的epistemic不确定性。虚线表示的给定参数的荀兰范围。由于测试数据不在训练范围内,所以DE(蓝色线)和BNN(红色线)的epistemic不确定性估计缓慢升高,可以用来做成分类器来标记超出分布范围的输入。实验中,CD(紫色线)对大部分输入的不确定性是0。图中x轴等分成多个桶,线对应着每个桶预测值的中位数,阴影区域表示预测值的第百分之16和第百分之84位置

对于DE和BNN方法,作者想到问题是,如果远离训练集的时候,epistemic不确定性增加是否足够弥补预测准确性的下降。当g远离训练集的分布的时候,模型输出的结果在训练分布的尾部,但是不会更高,尽管这不是网络结构强制执行的。当输入移动到远超过15m/s2的时候,epistemic不确定性严重低估了误差幅度。

一个简单的问题是,当输入远离训练集形状而输出在训练集分布的时候,epistemic不确定性是否准确。实验的做法是,g仍然在5到15m/s2范围内,然后移动L和T。在这个实验中,图3显示了L的不同范围产生的可靠性图。左侧图,L如果在训练集范围内,那么对于所有提出的方法,预测不确定性都经过了很好的校准。中间图,随着L移动到训练集范围外,CD预测不确定性开始被严重地低估,因为epistemic不确定性预测没有相对应的增长。右侧图,L值远远离开训练集分布,所有方法的不确定性预测值都是低估的。

在这里插入图片描述

图3:所有UQ方法的Calibration曲线。水平轴表示的是,假设残差服从正态分布而这个正态分布的标准差等于预测不确定性,所产生的置信区间。纵轴表示落入置信区间的点的比例。虚线(1-to-1)表示理想收敛曲线。左侧图:L范围 ( 0.2 , 0.8 ) m (0.2,0.8)m (0.2,0.8)m在训练集L范围时模型的性能;中间图:L范围 ( 0.8 , 1.2 ) m (0.8,1.2)m (0.8,1.2)m稍微超出训练集L范围时候的模型性能;右侧图:L范围 ( 1.2 , 1.6 ) m (1.2,1.6)m (1.2,1.6)m远远超出训练集L范围时候的模型性能。左侧图,测试集L的范围和训练集相似的时候,所有方法的校准曲线与1-1曲线较为一致。再往右侧看,所有方法逐渐低估误差。

4. 结论和展望

文章使用表2列举了实验结果。除了相对不确定性是常量的情形(也就是表格2的第一列),深度学习模型和分析不确定性估计的结果相比较比较一致。正如作者在前文解释的那样,非常需要关注训练集数据噪声误差变化情况较广的情形,因此模型不会因为所有点的预测相对不确定性相同陷入困境。在典型的情形(例如,没有analytic不确定性估计可参考的时候),需要经常检查是否aleatoric不确定性估计随着点和点不同而变化。如果没有变化,那么需要给训练数据集做增广,让训练集包含更多数量的噪声。作者还注意到,这种缺陷对于BNN来说更加难以摆脱【我的理解是,以图1中的中间图为例,BNN曲线和虚线没有相关性,说明BNN估计的不确定性与所谓的baseline不相关,所以对于BNN来说不是理想的情况】。

在这里插入图片描述
在这里插入图片描述

表2:前三列评估的图1研究的那些情形中的aleatoric不确定性和分析不确定性估计之间的相关性。如果aleatoric不确定性估计是常数,那么得到的是一个零值相关系数。在所有的情形中,文章得到了可以比较的结果。接着,评估上一章节描述的三种情形下每种方法的校准情况。Miscalibration定义成图3中的1-1曲线和校准曲线之间的面积,CD在测试集与训练集分布范围一致的时候效果较好,但是随着测试集逐渐远离训练集分布范围,CD的校准性能迅速下降。而DE明显打败了其它方法。虽然,文章没有关注预测准确性,但是作者提供了测试集和训练集分布一致情况下MSE误差作为参考。所有方法与这个MSE度量指标是可比的。表格中标注出每列的最优值。

文章很好的建模了aleatoric systematic不确定性,作者也再次确认了训练集是具有代表性的。对于systematic不确定性而言,模型能够推断那些输入落在训练集区域内的不确定性,因为输入偏离训练集范围之后,无法估计不确定性。

对于epistemic不确定性,所有的方法都无法检测那些输入远离训练分布情形下的不确定性。即使,有些方法在输入偏离了训练集范围也能给出增加的不确定性,但是和网络造成的误差相比,值很快比分析估计的值要低。特别是,在训练过程中CD收敛到很低的dropout概率,导致CD方法在所有情形下得到非常低的epistemic不确定性。

将所有的结果汇总起来,作者建议使用DE方法。DE方法结果最好,或者说在文章中进行的所有的测试中结果是相比较而言最好的。而且,DE方法在概念上最容易理解:重复训练网络多次。

作者指出未来工作可以扩展的方向有:将分析扩展到不同的神经网络结构,也就是传统神经网络。另一个自然的后续工作是,分析更复杂的数据和不确定性来源,它能够更好的反应特定情形所需要的不确定性。随着文章发表同时,作者也开源了实验代码。他们希望这一简单的实验能够为深度学习UQ方法提供具有价值的测试床testbed和标准操作方式benchmark

来自个人的讨论

  • 我的理解是:深度神经网络不确定量化,它是给一些噪声(输入噪声?网络权重噪声?),去分析输出结果的不确定性

  • 为什么不确定性只看BNN,其它NN没有不确定性吗?

  • 总结起来:输入变量的噪声,用输入变量和输出之间的物理公式计算,我们更关心的是认知不确定性

  • 网络的不确定性来源于:输入随机、权重概率分布采样(BNN)、bagging/boost方法

  • BNN、CD、DE都是不确定性量化方法,它们的baseline是用标准误差传递方法估计出来的analysis estimate值

  • 文章最后的结论很值得关注:推荐DE方法,它在概念上也是最容易理解的,也就是多次重复训练模型,注意哦,是重复训练模型。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值