论文翻译(Alexnet) ImageNet Classification with Deep Convolutional Neural Networks

在这里插入图片描述


Abstract

我们训练了一个大型的深度卷积神经网络,将ImageNet LSVRC-2010竞赛中的120万张高分辨率图像分类为1000个不同的类别。在测试数据上,我们实现了前1个和前5个错误率分别为37.5%和17.0%,这比以前的最新技术要好得多。该神经网络具有6000万个参数和650,000个神经元,它由五个卷积层组成,其中一些层是最大卷积层,以及三个完全连接的层,最终具有1000路softmax。为了使训练更快,我们使用了非饱和神经元和卷积运算的非常高效的GPU实现。为了减少全连接层的过度拟合,我们采用了一种最新开发的正则化方法,称为“丢包”,该方法被证明非常有效。我们还在ILSVRC-2012竞赛中输入了该模型的变体,并获得了最高的前5名测试错误率15.3%,而第二名仅获得了26.2%。

1 Introduction

当前的对象识别方法主要使用机器学习方法。为了提高其性能,我们可以收集更大的数据集,学习更强大的模型,并使用更好的技术来防止过度拟合。直到最近,带标签图像的数据集还相对较小-数以万计的图像(例如,NORB,Caltech-101 / 256和CIFAR-10 / 100)。使用这种大小的数据集可以很好地解决简单的识别任务,特别是如果使用保留标签的转换来增强它们的话。例如,MNIST数字识别任务的当前最佳错误率(<0.3%)接近人类的表现。但是现实环境中的对象表现出很大的可变性,因此要学会识别它们,必须使用更大的训练集。确实,小型图像数据集的缺点已得到广泛认可,但是直到最近才有可能收集带有数百万个图像的标记数据集。新的更大数据集包括LabelMe和ImageNet,LabelMe由成千上万个完整分段的图像组成,ImageNet由1500万个带标签的高分辨率图像组成,涵盖22,000多个类别。

要从数百万个图像中了解数千个对象,我们需要一个具有较大学习能力的模型。 但是,对象识别任务的巨大复杂性意味着,即使像ImageNet这样大的数据集也无法解决此问题,因此我们的模型还应该具有很多先验知识,以补偿我们所没有的所有数据。 卷积神经网络(CNN)构成了这类模型之一。 可以通过改变其深度和宽度来控制它们的容量,并且它们还对图像的性质(即统计的平稳性和像素依存性的局部性)做出强有力且几乎正确的假设。 因此,与具有类似大小的层的标准前馈神经网络相比,CNN的连接和参数要少得多,因此更易于训练,而其理论上最好的性能可能只会稍差一些。

尽管CNN具有吸引人的品质,并且尽管其本地架构相对有效,但将它们大规模应用于高分辨率图像仍然非常昂贵。 幸运的是,当前的GPU与2D卷积的高度优化实现相结合,功能强大到足以帮助训练有趣的大型CNN,而最近的数据集(如ImageNet)包含足够的带标签示例,可以在不进行严重过度拟合的情况下训练此类模型。

本文的具体贡献如下:我们在ILSVRC-2010和ILSVRC-2012竞赛中使用ImageNet的子集训练了迄今为止最大的卷积神经网络之一,并取得了迄今为止在这些数据集上报告的最佳结果。我们编写了2D卷积以及训练卷积神经网络固有的所有其他操作的高度优化的GPU实现,我们将其公开提供。我们的网络包含许多新的和不寻常的功能,这些功能可改善其性能并减少其培训时间,这将在第3节中进行详细介绍。我们的网络规模过大,即使有120万个带有标签的培训示例,也能解决一个严重问题。第4节中介绍了有效的防止过度拟合的技术。我们的最终网络包含5个卷积层和3个全连接层,此深度似乎很重要:我们发现删除任何卷积层(每个卷积层不超过1个)模型参数的百分比)导致性能较差。

最后,网络的大小主要受到当前GPU可用的内存量以及我们愿意接受的培训时间的限制。 我们的网络需要五到六天的时间来训练两个GTX 580 3GB GPU。 我们所有的实验都表明,只需等待更快的GPU和更大的数据集就可以改善我们的结果。

2 The Dataset

ImageNet是超过1500万个带标签的高分辨率图像的数据集,这些图像大约属于22,000个类别。 这些图像是从网上收集的,并使用亚马逊的Mechanical Turk众包工具由人类贴标签者标记。 从2010年开始,作为Pascal视觉对象挑战赛的一部分,每年举行一次名为ImageNet大规模视觉识别挑战赛(ILSVRC)的竞赛。 ILSVRC使用ImageNet的子集,在1000个类别中的每个类别中大约包含1000张图像。 总共大约有120万张训练图像,50,000张验证图像和150,000张测试图像。

ILSVRC-2010是ILSVRC唯一具有测试集标签的版本,因此这是我们执行大部分实验的版本。 由于我们也在ILSVRC-2012竞赛中输入了模型,因此在第6节中,我们也报告了该版本数据集的结果,因为该数据集没有测试集标签。 在ImageNet上,通常会报告两个错误率:top-1和top-5,其中top-5错误率是测试图像中分数正确的标签不在模型认为最可能的五个标签中的比例 。

ImageNet由可变分辨率的图像组成,而我们的系统需要恒定的输入维数。 因此,我们将图像下采样到256 × 256的固定分辨率。给定矩形图像,我们首先对图像进行重新缩放,使较短的一面的长度为256,然后从结果中裁剪出中心256 × 256色块。 图片。 除了从每个像素中减去训练集上的平均活动以外,我们没有以其他任何方式对图像进行预处理。 因此,我们在像素的(居中)原始RGB值上训练了我们的网络。

3 The Architecture

图2总结了我们网络的体系结构。它包含八个学习层-五个卷积层和三个完全连接层。 下面,我们描述网络架构的一些新颖或不寻常的功能。 根据我们对它们的重要性的估计,对第3.1-3.4节进行排序,最重要的是第一个。

3.1 ReLU Nonlinearity

根据输入x来模拟神经元输出f的标准方法是 f ( x ) = tanh ⁡ ( x ) f(x)= \tanh(x) f(x)=tanh(x) f ( x ) = ( 1 + e − x ) − 1 f(x)=(1 + e^{−x})^{-1} f(x)=(1+ex)1。 就梯度下降的训练时间而言,这些饱和非线性要比非饱和非线性 f ( x ) = m a x ( 0 , x ) f(x)= max(0,x) f(x)=max(0,x)慢得多。 继Nair和Hinton之后,我们将具有这种非线性的神经元称为整流线性单位(ReLUs)。 具有ReLU的深度卷积神经网络的训练速度比其与tanh单位的等效方法快几倍。 这在图1中得到了证明,该图显示了对于特定的四层卷积网络,在CIFAR-10数据集上达到25%训练误差所需的迭代次数。 该图表明,如果使用传统的饱和神经元模型,我们将无法使用如此大型的神经网络进行这项工作。
在这里插入图片描述
我们不是第一个在CNN中考虑替代传统神经元模型的人。 例如,Jarrett等声称非线性 f ( x ) = ∣ tanh ⁡ ( x ) ∣ f(x)= |\tanh(x)| f(x)=tanh(x)在其对比归一化类型以及随后在Caltech-101数据集上进行局部平均合并的情况下效果特别好。 但是,在此数据集上,主要的问题是防止过度拟合,因此他们观察到的效果与使用ReLU时拟合我们训练的训练集的加速能力不同。 更快的学习对在大型数据集上训练的大型模型的性能有很大影响。

3.2 Training on Multiple GPUs

单个GTX 580 GPU仅具有3GB内存,这限制了可以在其上训练的网络的最大大小。事实证明,120万个训练示例足以训练太大而无法安装在一个GPU上的网络。因此,我们将网络分布在两个GPU上。当前的GPU特别适合跨GPU并行化,因为它们能够直接读取和写入彼此的内存,而无需通过主机内存。实际上,我们采用的并行化方案将每个内核的一半(或神经元)放在每个GPU上,还有一个额外的技巧:GPU仅在某些层进行通信。这意味着,例如,第3层的内核从第2层的所有内核映射中获取输入。但是,第4层的内核仅从第3层中位于同一GPU上的那些内核映射中获取输入。选择连接模式是交叉验证的问题,但这使我们能够精确地调整通信量,直到它是计算量的可接受的一部分为止。

最终的架构与Cire¸san等人使用的“ columnar” CNN的架构有些相似,不同之处在于我们的色谱柱不是独立的(请参见图2)。 与在一个GPU上训练的每个卷积层中内核数量减少一半的网络相比,该方案分别将我们的top-1和top-5错误率降低了1.7%和1.2%。 两GPU网的训练时间比一GPU网少。

3.3 Local Response Normalization

ReLU具有理想的属性,即它们不需要输入规范化即可防止饱和。 如果至少一些训练示例对ReLU产生了积极的投入,那么该神经元就会进行学习。 但是,我们仍然发现以下局部归一化方案有助于泛化。 用 a x   , y i a^{i}_{x\ ,y} ax ,yi表示神经元的活动,该活动是通过在位置 ( x , y ) (x,y) (x,y)处应用核 i i i,然后应用ReLU非线性计算得到的,响应归一化活动 b x   , y i b^{i}_{x\ ,y} bx ,yi由以下表达式给出
b x , y i = a x , y i / ( k + α ∑ j = max ⁡ ( 0 , i − n / 2 ) min ⁡ ( N − 1 , i + n / 2 ) ( a x , y j ) 2 ) β b_{x, y}^{i}=a_{x, y}^{i} /\left(k+\alpha \sum_{j=\max (0, i-n / 2)}^{\min (N-1, i+n / 2)}\left(a_{x, y}^{j}\right)^{2}\right)^{\beta} bx,yi=ax,yi/k+αj=max(0,in/2)min(N1,i+n/2)(ax,yj)2β

其中,总和在相同空间位置上遍历 n n n个“相邻”内核映射,而 N N N是该层中内核的总数。 内核映射的顺序当然是任意的,并且在训练开始之前确定。 这种响应归一化实现了一种由实际神经元中发现的类型激发的横向抑制形式,从而在使用不同内核计算的神经元输出中竞争大型活动。 常数 k , n , α k,n,α k,n,α β β β是超参数,其值是使用验证集确定的;我们使用 k = 2 , n = 5 , α = 1 0 − 4 , β = 0.75 k = 2,n = 5,α= 10^{−4},β= 0.75 k=2n=5α=104β=0.75。 在某些层中应用ReLU非线性之后,我们应用了此归一化(请参见第3.5节)。

该方案与Jarrett等人的局部对比度归一化方案有些相似,但由于我们不减去平均活性,因此我们将其更正确地称为“亮度归一化”。 响应标准化使我们的top-1和top-5错误率分别降低了1.4%和1.2%。 我们还在CIFAR-10数据集上验证了该方案的有效性:四层CNN在未进行标准化的情况下实现了13%的测试错误率,在进行标准化的情况下实现了11%的测试错误率。

3.4 Overlapping Pooling(有问题)

CNN中的合并层汇总了同一核图中的神经元相邻组的输出。 传统上,由相邻合并单元汇总的邻域不重叠。 更准确地说,可以将池化层视为由间隔为s个像素的池化单元的网格组成,每个网格都汇总了以池化单元的位置为中心的大小为 z × z z×z z×z的邻域。 如果设置 s = z s = z s=z,我们将获得CNN中常用的传统本地池。 如果设置 s < z s <z s<z,则获得重叠池。 这就是我们在整个网络中使用的数据,其中s = 2和z = 3。该方案分别将top-1和top-5的错误率降低了0.4%和0.3%。 2; z = 2,产生等效尺寸的输出。 我们通常会在训练过程中观察到,具有重叠池的模型发现过拟合稍微困难一些。

3.5 Overall Architecture

现在,我们准备描述CNN的整体架构。 如图2所示,该网包含8个带权重的层。 前五个是卷积的,其余三个是完全连接的。 最后一个完全连接层的输出被馈送到1000路softmax,后者在1000类标签上产生分布。 我们的网络将多项式逻辑回归目标最大化,这等效于在预测分布下最大化正确标签的对数概率训练案例的平均值。
在这里插入图片描述
第二,第四和第五卷积层的内核仅连接到位于同一GPU上的上一层中的那些内核映射(请参见图2)。 第三卷积层的内核连接到第二层中的所有内核映射。 全连接层中的神经元连接到上一层中的所有神经元。 响应归一化层跟随第一和第二卷积层。 在第3.4节中描述的最大池化层位于响应归一化层和第五个卷积层之后。 ReLU非线性应用于每个卷积和全连接层的输出。

第一卷积层用4个像素的步幅(这是内核映射中相邻神经元的感受野中心之间的距离)过滤具有 96 96 96 11 × 11 × 3 11×11×3 11×11×3大小的卷积核的 224 × 224 × 3 224×224×3 224×224×3输入图像。 第二个卷积层将第一个卷积层的(响应归一化和合并的)输出作为输入,并使用 256 256 256个大小为 5 × 5 × 48 5×5×48 5×5×48的卷积核对其进行过滤。第三,第四和第五个卷积层彼此连接而没有 任何中间的池化或规范化层。 第三卷积层具有 384 384 384个大小为 3 × 3 × 256 3×3×256 3×3×256的内核,这些内核与第二卷积层的(标准化,合并的)输出连接。 第四卷积层具有 384 384 384个大小为 3 × 3 × 192 3×3×192 3×3×192的内核,第五卷积层具有 256 256 256个大小为 3 × 3 × 192 3×3×192 3×3×192的内核。完全连接的层各具有4096个神经元。

4 Reducing Overfitting

我们的神经网络架构具有6000万个参数。 尽管ILSVRC的1000个类别使每个训练示例在从图像到标签的映射上施加10位约束,但事实证明这不足以学习很多参数而又不会过度拟合。 下面,我们描述了克服过度拟合的两种主要方法。

4.1 Data Augmentation

减少图像数据过度拟合的最简单,最常见的方法是使用保留标签的变换来人为扩大数据集。 我们采用两种不同的数据增强形式,这两种形式都允许通过很少的计算就可以从原始图像生成转换后的图像,因此不需要将转换后的图像存储在磁盘上。 在我们的实现中,当GPU在前一批图像上训练时,转换后的图像在CPU上以Python代码生成。 因此,这些数据扩充方案实际上在计算上是免费的。

数据增强的第一种形式包括生成图像平移和水平反射。 为此,我们从 256 × 256 256×256 256×256图像中提取了随机的 224 × 224 224×224 224×224色块(及其水平反射),并在提取的色块上训练了我们的网络。 这当然使我们的训练集大小增加了2048倍,尽管生成的训练示例当然是高度相互依赖的。 没有这种方案,我们的网络将遭受严重的过度拟合,这将迫使我们使用更小的网络。 在测试时,网络通过提取五个 224 × 224 224×224 224×224色块(四个角点色块和中央色块)及其水平反射(因此总共十个色块)进行预测,并对网络的softmax层得出的预测求平均值在十个补丁上。

数据增强的第二种形式包括更改训练图像中RGB通道的强度。 具体来说,我们在整个ImageNet训练集中对RGB像素值集执行PCA。 对于每个训练图像,我们添加找到的主成分的倍数,其大小与相应的特征值乘以从均值为零且标准偏差为0.1的高斯得出的随机变量成比例。 因此,对于每个RGB图像像素, I x y = [ I x y R , I x y G , I x y B ] T I_{xy} = \left[I_{x y}^{R}, I_{x y}^{G}, I_{x y}^{B}\right]^{T} Ixy=[IxyR,IxyG,IxyB]T我们加上以下数量:
[ p 1 , p 2 , p 3 ] [ α 1 λ 1 , α 2 λ 2 , α 3 λ 3 ] T \left[\mathbf{p}_{1}, \mathbf{p}_{2}, \mathbf{p}_{3}\right]\left[\alpha_{1} \lambda_{1}, \alpha_{2} \lambda_{2}, \alpha_{3} \lambda_{3}\right]^{T} [p1,p2,p3][α1λ1,α2λ2,α3λ3]T
其中, p i \mathbf{p}_{i} pi λ i \lambda_{i} λi分别是 R G B RGB RGB像素值的 3 × 3 3×3 3×3协方差矩阵的第 i i i个特征向量和本征值,而 α i α_{i} αi是上述随机变量。 对于特定训练图像的所有像素,每个 α i α_{i} αi仅绘制一次,直到再次使用该图像进行训练为止,此时将其重新绘制。 该方案近似地捕获了自然图像的重要属性,即,对象身份对于照明强度和颜色的变化是不变的。 此方案将top-1错误率降低了1%以上。

4.2 Dropout

结合许多不同模型的预测是减少测试错误的非常成功的方法,但是对于已经花了几天时间进行训练的大型神经网络来说,这似乎太昂贵了。但是,有一个非常有效的模型组合版本,在训练过程中仅花费大约两倍的费用。最近引入的技术称为“dropout”,包括将每个隐藏神经元的输出以0.5的概率设置为零。以这种方式“dropped out”的神经元不会对正向通过做出贡献,也不会参与反向传播。因此,每次出现输入时,神经网络都会对不同的体系结构进行采样,但是所有这些体系结构都会共享权重。由于神经元不能依赖于特定其他神经元的存在,因此该技术减少了神经元的复杂共适应。因此,被迫学习更健壮的功能,这些功能可与其他神经元的许多不同随机子集结合使用。在测试时,我们使用所有神经元,但将它们的输出乘以0.5,这可以合理地近似于采用指数级下降的网络所产生的预测分布的几何平均值。

我们在图2的前两个完全连接的层中使用了dropout。如果没有dropout,我们的网络将表现出过大的过拟合。 辍学大约会使收敛所需的迭代次数加倍。

5 Details of learning

我们使用随机梯度下降训练了模型,批次大小为128个示例,动量为0.9,重量衰减为0.0005。 我们发现,少量的重量衰减对于模型的学习很重要。 换句话说,此处的权重衰减不仅仅是一个正则化器:它可以减少模型的训练误差。 权重 w w w的更新规则为
v i + 1 : = 0.9 ⋅ v i − 0.0005 ⋅ ϵ ⋅ w i − ϵ ⋅ ⟨ ∂ L ∂ w ∣ w i ⟩ D i w i + 1 : = w i + v i + 1 v_{i+1}:=0.9 \cdot v_{i}-0.0005 \cdot \epsilon \cdot w_{i}-\epsilon \cdot\left\langle\left.\frac{\partial L}{\partial w}\right|_{w_{i}}\right\rangle_{D_{i}} \\ w_{i+1}:=w_{i}+v_{i+1} vi+1:=0.9vi0.0005ϵwiϵwLwiDiwi+1:=wi+vi+1
其中 i i i是迭代指标, v v v是动量变量, ϵ \epsilon ϵ是学习率, ⟨ ∂ L ∂ w ∣ w i ⟩ D i \left\langle\left.\frac{\partial L}{\partial w}\right|_{w_{i}}\right\rangle_{D_{i}} wLwiDi是在 w i w_{i} wi处求得的目标导数相对于 w w w的第 i i i批次 D i D_{i} Di的平均值。

我们从零均值高斯分布(标准差为0.01)初始化每一层的权重。 我们使用常数1初始化了第二,第四和第五卷积层以及完全连接的隐藏层中的神经元偏差。此初始化通过为ReLU提供正输入来加速学习的早期阶段。 我们用常数0初始化剩余层中的神经元偏差。

我们对所有层使用了相等的学习率,我们在整个培训过程中手动对其进行了调整。 我们遵循的启发式方法是,当验证错误率不再随着当前学习率提高而提高时,将学习率除以10。 学习率初始化为0.01,并在终止之前降低三倍。 我们通过120万张图像的训练集对网络进行了大约90个周期的训练,在两个NVIDIA GTX 580 3GB GPU上花了五到六天的时间。

6 Results

表1总结了我们在ILSVRC-2010上的结果。我们的网络实现了top-1和top-5测试集错误率分别为37.5%和17.0%。 在ILSVRC2010竞赛中,采用对六个以不同特征进行训练的稀疏编码模型产生的预测结果进行平均的方法,其最佳性能分别为47.1%和28.2%,此后,采用以下方法得出的最佳结果分别为45.7%和25.7%: 对根据两种类型的密集采样特征计算出的Fisher向量(FV)训练的两个分类器的预测取平均值。
在这里插入图片描述
我们也将模型输入了ILSVRC-2012竞赛,并在表2中报告了结果。由于ILSVRC-2012测试集标签不是公开可用的,因此我们无法报告所有尝试过的模型的测试错误率。在本段的其余部分中,我们将验证和测试错误率互换使用,因为根据我们的经验,它们的相差不超过0.1%(请参见表2)。本文介绍的CNN的前5位错误率达到18.2%。平均五个相似CNN的预测得出的错误率为16.4%。训练一个CNN,在最后一个池化层上再加上一个第六卷积层,以对整个ImageNet Fall 2011版本(1500万张图像,22K个类别)进行分类,然后在ILSVRC-2012上对其进行“微调”,得出的错误率为16.6 %。将在整个2011年秋季发行版中预先训练的两个CNN与上述五个CNN的预测平均得出错误率15.3%。第二名竞赛参赛者使用一种方法对错误分类率进行了平均,该方法的平均错误率是26.2%,该分类器是根据从不同类型的密集采样特征计算得出的FV进行训练的。
在这里插入图片描述
最后,我们还报告了ImageNet 2009年秋季版本的错误率,其中包含10,184个类别和890万张图像。 在此数据集上,我们遵循文献中的惯例,即使用一半的图像进行训练,一半使用图像进行测试。 由于没有建立的测试集,因此我们的划分必然不同于以前的作者使用的划分,但这不会对结果产生明显影响。 通过上述网络,我们在此数据集上的前1个和前5个错误率分别为67.4%和40.9%,但在最后一个合并层上还有一个第六卷积层。 在该数据集上发布的最佳结果是78.1%和60.9%。

6.1 Qualitative Evaluations

图3显示了网络的两个数据连接层所学习的卷积内核。 网络已经学会了各种频率和方向选择内核,以及各种有色斑点。 请注意,这是两个GPU所展现出的专业性,这是第3.5节中描述的受限连接的结果。 GPU 1上的内核在很大程度上与颜色无关,而GPU 2上的内核在很大程度上是特定于颜色的。 这种特殊化发生在每次运行期间,并且与任何特定的随机权重初始化(对GPU的重编号取模)无关。
在这里插入图片描述

在图4的左面板中,我们通过在八幅测试图像上计算其前5位预测,定性评估网络学到了什么。 请注意,即使偏心的对象(例如左上角的螨)也可以被网络识别。 大多数前5个标签看起来都是合理的。 例如,只有其他类型的猫被认为是豹的合理标签。 在某些情况下(谷物,樱桃),对于照片的预期焦点有真正的歧义。
在这里插入图片描述

探查网络视觉知识的另一种方法是考虑由最后4096维隐藏层中的图像引起的特征激活。 如果两个图像产生的特征激活向量具有较小的欧几里得距离,则可以说神经网络的较高级别认为它们是相似的。 图4显示了根据该度量,来自测试集的五幅图像和来自训练集的六幅图像,它们与每个图像最为相似。 请注意,在像素级别,检索到的训练图像通常在L2中不接近第一列中的查询图像。 例如,取回的狗和大象以各种姿势出现。 我们在补充材料中提供了更多测试图像的结果。

通过使用两个4096维实值向量之间的欧几里德距离来计算相似度是无效的,但是可以通过训练自动编码器将这些向量压缩为短二进制代码来提高效率。 与将自动编码器应用于原始像素相比,这应该产生一种更好的图像检索方法,该方法不使用图像标签,因此有检索具有相似边缘模式的图像的趋势,而无论它们在语义上是否相似。

7 Discussion

我们的结果表明,大型的深度卷积神经网络能够使用纯监督学习在具有高度挑战性的数据集上实现创纪录的结果。 值得注意的是,如果移除单个卷积层,我们的网络性能就会下降。 例如,删除任何中间层都会导致网络的top-1性能损失大约2%。 因此深度对于实现我们的结果确实很重要。

为了简化我们的实验,我们没有使用任何无监督的预训练,即使我们希望这会有所帮助,尤其是如果我们获得足够的计算能力来显着增加网络的大小而又未获得标记数据量的相应增加时。 到目前为止,由于我们扩大了网络并对其进行了更长的训练,我们的结果有所改善,但为了匹配人类视觉系统的时下路径,我们还有许多数量级需要走。 最终,我们希望在视频序列上使用非常大和较深的卷积网络,其中时间结构提供了非常有用的信息,这些信息在静态图像中已经丢失或不那么明显。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值