Bayesian GAN 论文笔记

Abstract

  1. 生成对抗网络(GAN)可以隐含地学习图像,音频和数据上的丰富分布,这些分布难以用显式可能性建模。 
  2. 我们提出了一种实用的贝叶斯公式,用于使用GAN进行无监督和半监督学习。
  3. 在此框架内,我们使用随机梯度哈密顿蒙特卡罗来边缘化发生器和鉴别器网络的权重。
  4. 由此产生的方法很简单,并且在没有任何标准干预(例如特征匹配或小批量区分)的情况下获得了良好的性能。
  5. 通过探索生成器参数的表达后验,贝叶斯GAN避免模式崩溃,产生可解释和多样化的候选样本,并为包括SVHN,CelebA在内的基准测试提供半监督学习的最新定量结果。 和CIFAR-10,表现优于DCGAN,Wasserstein GAN和DCGAN合奏。

1 Introduction

  1. 学习高维自然信号(如图像,视频和音频)的良好生成模型长期以来一直是机器学习的关键里程碑之一。
  2. 在深度神经网络的学习能力的支持下,生成对抗网络(GAN)(Goodfellow等,2014)和变分自动编码器(Kingma和Welling,2013)使得这个领域更接近实现这一目标。 
  3. GAN通过深度神经网络转换白噪声,以从数据分布生成候选样本。
  4. 鉴别器以监督的方式学习如何调整其参数,以便正确地分类给定样本是来自发生器还是来自真实数据分布。
  5. 同时,发生器更新其参数以欺骗鉴别器。
  6. 只要发生器具有足够的容量,它就可以近似从感兴趣的数据分布中采样所需的CDF反向CDF成分。
  7. 由于通过设计的卷积神经网络在图像上提供合理的度量(不同于例如高斯似然),使用卷积神经网络的GAN可以反过来在图像上提供引人注目的隐式分布。

  1. 尽管GAN具有很强的影响力,但是他们的学习目标可能导致模式崩溃,其中生成器只记忆一些训练样例以欺骗鉴别器
  2. 这种病理学让人想起高斯混合物的最大似然密度估计:通过折叠我们在有限可能性中实现的每个分量的方差并记住数据集,这对于可推广的密度估计是无用的。
  3. 此外,需要进行大量干预以稳定GAN训练,包括特征匹配,标签平滑和小批量区分(Radford等,2015; Salimans等,2016)。
  4. 为了帮助缓解这些实际困难,最近的工作重点是用标准GAN训练隐含的Jensen-Shannon分歧替换替代指标,如f-分歧(Nowozin等,2016)或Wasserstein分歧(Arjovsky等,2017))。
  5. 这项工作大部分类似于引入各种正则化器以进行最大似然密度估计。
  6. 但正如选择合适的正规化器一样困难,也很难决定我们希望用于GAN训练的分歧。

  1. 我们的论点是,可以通过完全概率推理来改进GAN。
  2. 实际上,生成器参数的后验分布可以是广泛的和高度多峰的。
  3. 基于迷你最大值优化的GAN训练总是将网络权重上的整个后验分布估计为以单一模式为中心的点质量。
  4. 因此,即使发生器没有记住训练样例,我们也期望来自发生器的样本相对于来自数据分布的样本过于紧凑。
  5. 此外,网络权重后方的每种模式都可以对应于极其不同的生成器,每个生成器都有自己有意义的解释。
  6. 通过在发生器和鉴别器的参数上完全表示后验分布,我们可以更准确地模拟真实的数据分布。
  7. 然后,推断的数据分布可用于准确且高度数据有效的半监督学习。

  1. 在本文中,我们提出了一个简单的贝叶斯公式,用于具有生成对抗网络的端到端无监督和半监督学习。
  2. 在这个框架内,我们使用随机梯度哈密顿蒙特卡罗将生成器和鉴别器的权重边缘化。
  3. 我们解释来自发生器的数据样本,显示了生成器权重中几种不同模式的探索。
  4. 我们还展示了数据和迭代对真实分布的有效学习。
  5. 我们还在几个基准测试中展示了最先进的半监督学习表现,包括SVHN,MNIST,CIFAR-10和CelebA。
  6. 所提出的方法的简单性是其最大的优势之一:推理是直接的,可解释的和稳定的。
  7. 实际上,所有实验结果都是在没有特征匹配,归一化或任何特殊技术的情况下获得的。 我们将公开提供代码。

2 Bayesian GANs

  1. 给定变量x(i)~pdata(x(i))的数据集D = {x(i)},我们希望估计pdata(x)。 
  2. 我们通过由thetag参数化的生成器G(z; θg)将白噪声z~p(z)变换,以从数据分布产生候选样本。
  3. 我们使用由thetad参数化的鉴别器D(x; θd)来输出任何x来自数据分布的概率。
  4. 我们的考虑适用于一般的D和G,但实际上G和D通常是具有权重向量thetag和thetad的神经网络。

  1. 通过在θg和θd上放置分布,我们在发生器和鉴别器的有限空间中不可数地引入分布,对应于这些权重向量的每个可能的设置。
  2. 现在,生成器代表了数据分布的分布。从数据实例上的诱导先验分布中抽样如下:(1) Sample θg ~p(θg);
  3. 对于后验推断,我们在第2.1-2.2节中提出了无监督和半监督的公式。

  1. 我们注意到在最近的一个令人兴奋的预印本Tran等人。 (2017)简要提及使用变分方法来边缘化GAN中的权重,作为对分层隐式模型的一般性阐述的一部分(另见Karaletsos(2016)对图形模型消息传递中相关主题的良好理论探索)。
  2. 虽然很有希望,但我们的方法有几个关键的区别:(1)我们使用抽样来探索权重的完整后验,而Tran等人。 (2017)以该后验模式之一为中心执行变分近似(并且由于KL散度的特性,即使该模式也倾向于过于紧凑的表示);(2)除了θg,θd之外我们边缘化z;(3)我们对后代的表示是直截了当的,不需要干预,为无监督和半监督学习提供新颖的表述,并且在许多基准上具有最先进的结果。
  3. 相反,Tran等人。 (2017)仅针对一些小型数据集进行全面监督学习。他们的比率估算方法限制了他们可以使用的神经网络的规模(Tran et al。,2017),而在我们的实验中,我们可以使用相对较深的网络来实现最大似然法。在实验中,我们说明了我们的配方的实用价值。
  4. 虽然贝叶斯GAN的高级概念已在各种背景下被非正式地提及,但据我们所知,我们提出了贝叶斯GAN的第一个详细处理,基于抽样的推理,以及严格的无监督和半监督实验。

2.1 Unsupervised Learning

  1. 为了在θg,θd上推断后验,我们可以从以下条件后验中迭代地进行采样: 
  2. 是生成器和鉴别器参数的先验,分别是超参数αg和αd。nd和ng分别是鉴别器和发生器的小批量样品的数量。

  1. 我们可以从数据样本的生成过程直观地理解这个公式。
  2. 假设我们从先前的p(θg|αg)中抽取权重θg,然后对该重量样本进行条件调整以形成特定的生成神经网络。
  3. 然后,我们从p(z)中采样白噪声z,并通过网络G(z; θg)转换该噪声以生成候选数据样本。
  4. 鉴别器的权重θd取决于这些候选样本来自数据分布的概率。
  5. 式(1)表示如果鉴别器输出高概率,那么后验p(θg| z,θd)将在θg的采样设置的邻域中增加(因此对于其他设置减小)。
  6. 对于鉴别器权重θd的后验,方程的前两项。 式(2)形成判别分类可能性,将实际数据与发生器的样本标记为属于不同的类别。 最后一项是θd的先验。

  1. 使噪声边缘化在先前的工作中,GAN更新隐含地以一组噪声样本z为条件。 我们可以使用Simple Monte Carlo从我们的后验更新中边缘化z:
  2. 通过类似的推导,
  3. 此特定设置具有蒙特卡罗集成的几个不错的功能。 首先,p(z)是一个白噪声分布,我们可以从中获取有效和精确的样本。
  4. 其次,当作为z的函数观察时,在构造上应该相当宽,因为z用于产生候选数据样本。 生成程序。
  5. 因此,简单蒙特卡罗和中的每个项通常对总边际后验估计值做出合理贡献。
  6. 然而,我们注意到,由于对等式2中的数据小批量的调节,的近似通常会更差。

  1. 通过在时期的每个步骤中从迭代地采样,可以在极限情况下从θg和θd上的近似后验获得样本。
  2. 具有这样的样品在实践中非常有用。实际上,人们可以使用不同的θg样本来缓解GAN崩溃并生成具有适当熵水平的数据样本。
  3. 用于θd的样本又形成了鉴别器委员会,其放大了整体对抗性信号,从而进一步改善了无监督学习过程。
  4. 可以说,评估这些后验样本效用的最严格的方法是检查它们对半监督学习的影响,这是我们在第4节中的实验的重点。

2.2 Semi-supervised Learning

  1. 我们将提出的概率GAN形式主义扩展到半监督学习。
  2. 在K-class分类的半监督设置中,我们可以访问一组n个未标记的观测值{x(i)},以及一组(通常小得多)ns观测值,,类标签为。 
  3. 我们的目标是从未标记和标记的示例中共同学习统计结构,以便更好地预测新测试示例x *的类标签,而不是我们只能访问标记的训练输入。
  4. 在这种情况下,我们重新确定鉴别器,使得给出样本x(i)属于类y(i)的概率。
  5. 我们保留类标签0以指示数据样本是生成器的输出。然后,我们推断权重的后验如下:
  6. 在每次迭代期间,我们使用来自生成器的ng样本,nd未标记的样本和所有ns标记的样本,其中通常为ns << n。
  7. 如2.1节所述,我们可以使用简单的蒙特卡罗采样来近似边缘化z。
  8. 就像在无监督的学习案例中一样,我们可以将后代边缘化为θg和θd。
  9. 为了计算测试输入x *处的类标签y *的预测分布,我们使用相对于后验θd的所有采集样本的模型平均值:
  10. 我们将看到这种模型平均值对提高半监督学习绩效是有效的。
  11. 在第3节中,我们提出了一种方法,来自后方的MCMC采样,包括θg和θd。

3 Posterior Sampling with Stochastic Gradient HMC采用随机梯度HMC的后验采样

  1. 在贝叶斯GAN中,我们希望将发生器和鉴别器权重的后验分布边缘化,给出2.1中的无监督学习和2.2中的半监督学习。
  2. 为此,我们使用随机梯度哈密顿蒙特卡罗(SGHMC)(Chen等,2014)进行后验采样。 这种选择的原因有三个:(1)SGHMC与基于动量的SGD密切相关,我们知道这对于GAN培训非常有效;(2)我们可以将SGD的参数设置(如学习率和动量项)直接导入SGHMC; 最重要的是,(3)贝叶斯方法对GAN推理的许多实际益处来自于探索由SGHMC实现的生成器权重θg的丰富多模态分布,以便完全捕获数据分布的复杂性和熵。
  3. 诸如变分近似之类的替代方案通常将其质量集中在单一模式周围,因此由于KL-发散的不对称偏差而提供用于分布的紧凑表示以及该单模的紧凑表示。
  4. 等式4和5中的后验通常都适用于HMC技术,因为我们可以根据我们采样的参数计算损耗的梯度。
  5. SGHMC将HMC扩展到我们使用噪声估计这种梯度的情况,以确保在大量微型舱的限制内混合。
  6. 有关SGHMC的详细评论,请参阅陈等人。(2014)。 使用Chen等人的方程(15)的更新规则。 (2014),我们建议从算术1中的生成器和鉴别器权重的后验中采样。

4 Experiments

  1. 我们在六个基准(合成,MNIST,CIFAR-10,SVHN和CelebA)上评估我们提出的贝叶斯GAN(以下称为BayesGAN),每个基准都有四个不同数量的标记实例。
  2. 我们考虑多种替代方案,包括:DCGAN(Radfordet al。,2015),最近的Wasserstein GAN(W-DCGAN),十个DCGAN(DCGAN-10)的集合,由10个随机子集组成,其大小为80%。 训练集和完全监督的卷积神经网络。
  3. 我们还与LFVI-GAN报告的MNIST结果进行了比较,这是最近的预印本(Tran et al。,2017)中提到的briey,他们使用变分近似对整个数据集进行完全监督建模。
  4. 我们在4.2节详细解释了MNIST的许多结果,并且这些观察结果延续到了我们的CIFAR-10,SVHN和CelebA实验。

  1.  我们使用2层完全连接的GAN对发生器和鉴别器进行了合成数据实验。
  2. 对于合成数据上的贝叶斯GAN,我们在所有权重上放置N(0,I),并使用J = 100蒙特卡罗样本近似地积分z。
  3. 我们使用5层贝叶斯反卷积GAN(BayesGAN)进行所有其他实验用于生成模型G(z | θg)(关于结构的更多细节,参见Radford等人(2015))。
  4. 相应的鉴别器是用于无监督GAN的5层2类DCGAN和用于在K类上执行分类的半监督GAN的5层K + 1类DCGAN。
  5. 无监督和半监督DCGAN的连接结构与BayesGAN相同。
  6. 我们使用的网络与Salimans等人略有不同。 (2016)(例如,我们有4个隐藏层和每层更少的过滤器),因此结果也略有不同。所有实验均在单个TitanX GPU上进行,以确保一致性。

  1. 在所有非合成实验中,我们设定J = 20且M = 1。
  2. 对于贝叶斯GAN,我们在生成器和鉴别器权重上放置N(0; 10I)先验,并使用J蒙特卡罗样本近似地积分z。
  3. 我们运行算法1进行5000次迭代,然后每1000次迭代收集重量样本,并使用贝叶斯模型平均记录样本外预测精度(参见方程6)。 图4包含每个时期的精度图。
  4. 在表1中,我们总结了半监督结果,其中我们看到了与替代方案相比持续改进的性能。
  5. 所有运行均在标记示例的10个随机子集上取平均值。
  6. 这为我们提供了10个不同的半监督数据集,这反过来又可以估算出性能上的误差条(表1中我们显示了平均值和2个标准偏差)。
  7. 我们还定性地说明了贝叶斯GAN产生互补数据样本的能力,对应于通过从发生器权重后方采样产生的发生器的不同表示(图1,2,3)。
  8. 我们强调所有替代方案都需要Salimans等人(2016)中描述的特殊技术,例如小批量鉴别和特征归一化,而对于所提出的贝叶斯GAN的结果,我们不使用这些技术。

4.1 Synthetic Dataset

  1. 我们首先在多模态合成数据集上进行实验,作为推断多模态后验p(θg | D)的基本能力的健全性检查。 
  2. 这种能力不仅有助于避免生成器崩溃到一些训练样例,这是常规GAN训练中的过度实例,而且还允许我们探索具有不同补充属性的一组生成器,协调一致以封装富有 数据分发。
  3. 我们生成D维合成数据如下:
  4. 然后我们将常规GAN和贝叶斯GAN都用于这样的数据集,其中D = 100且d = 2。
  5. 两种模型的发生器是一个双层神经网络:10-1000-100,完全连接,具有ReLU激活。
  6. 我们将z的维数设置为10,以使常规GAN收敛(当d = 2时它不会收敛,尽管固有维数为2!)。
  7. 一致地,鉴别器网络具有以下结构:100-1000-1,完全连接,ReLU激活。
  8. 图1显示贝叶斯GAN在生成样本(我们显示其中的前两个主要成分)时定性地做得更好,并且在数量上根据Jensen-Shannon与真实分布的差异。
  9. 我们还看到,通过多维缩放(Borg和Groenen,2005),来自后发生器权重的样本清楚地形成多个不同的聚类,表明SGHMC采样正在探索多种不同的模式。

4.2 MNIST

  1. MNIST是用于评估新机器学习模型的众所周知的基准数据集。
  2. 它由60k(50k训练,10k测试)标记的手写数字图像组成。 
  3. Salimans等人。 (2016)仅使用少量标记输入显示出优异的样本外性能,令人信服地证明了良好生成建模对半监督学习的重要性。在这里,我们按照他们的MNIST实验设置。
  4. 我们使用评估贝叶斯DCGAN用于半监督学习。
  5. 我们在表1中看到,贝叶斯GAN比DCGAN,Wasserstein GAN甚至10个DCGAN的整体提高了准确性!
  6. 非常值得注意的是,使用整个n = 60,000个样本的数据集,使用100个标记的示例作为完全监督的方法能够实现几乎相同的性能水平。
  7. 为了进行比较,我们还展示了使用ns样本的完全监督模型,通常突出了半监督学习的实际效用。
  8. 此外,Tran等人。 (2017)显示完全受监督的LFVI-GAN,在整个MNIST训练集上(~=60,000个标记示例)产生140个分类错误 - 几乎是我们提出的贝叶斯GAN方法的误差的两倍,仅使用ns = 100(~=0.0002%) 标签示例!
  9. 我们怀疑这种差异主要来自(1)第2节中贝叶斯GAN的简单实用公式,(2)通过简单蒙特卡罗边界化z,以及(3)利用SGHMC探索发电机重量的广泛多模态后验分布 使用我们的方法与以单一模式为中心的变分近似(倾向于过度紧凑的表示)。

  1. 我们还可以看到来自贝叶斯DCGAN的无监督数据样本和图2中的标准DCGAN的定性差异。
  2. 顶行显示了由在发生器重量的后面的六个样本产生的六个发生器产生的样本图像,并且底行显示来自DCGAN的样本数据图像。
  3. 我们可以看到,顶行中的六个面板中的每一个都具有定性差异,几乎就像一个不同的人在每个面板中写入数字一样。
  4. 例如,面板1(左上)是相当紧凑的,而面板3相当厚,面板6(右上)具有薄且较暗的笔划。 相比之下,DCGAN底行的所有数据样本都是同质的。
  5. 在效果中,贝叶斯GAN中的每个后部重量样本对应于不同的样式,而在标准DCGAN中,样式是固定的。
  6. 实际上,我们强调,对于最大似然DCGAN的收敛,我们不得不求助于使用包括小批量识别,特征归一化和向鉴别器的每一层添加高斯噪声的技巧。
  7. 贝叶斯DCGAN不需要这些技巧。这种稳健性源于高斯先验超过权重,提供有用的归纳偏差,并且由于MCMC采样程序减轻了崩溃的风险并且有助于探索多种模式(以及每种模式内的不确定性)。
  8. 为了保持平衡,我们还强调在实践中坍塌的风险并未完全消除 - 事实上,来自p(θg | D)的一些样本仍然会产生创建熵太少的数据样本的生成器。
  9. 在实践中,采样并不能免于陷入尖锐峰值模式。 我们对未来的工作进行进一步分析。

  1. 图1:左:从pdata(x)中抽取的样本,并在应用PCA后在2-D中可视化.
  2. 右2列:在应用PCA后,从pMLGAN(x)和pBGAN(x)中抽取的样品在2D中可视化。
  3. 数据本质上是二维的,因此PCA可以使用2个主成分来解释大部分方差。
  4. 很明显,贝叶斯GAN捕获数据中的所有模式,而常规GAN无法捕获。
  5. 右:(前2)pdata(x)和p(x;θ)之间的Jensen-Shannon偏差作为GAN训练的迭代次数的函数,D = 100(上)和D = 500(下)。
  6. 在将维数减少应用于2D(数据的固有维度)之后,使用从pdata(x)和p(x;θ)绘制的大样本数据集的核密度估计来计算偏差。
  7. 在这两种情况下,贝叶斯GAN在最小化Jensen-Shannon散度方面更有效,通过探索发电机权重的完全分布,达到真实分布的收敛,这是最大可能性GAN无法实现的(无论如何 许多迭代)。
  8. (下图)使用多维尺度(使用重量样本之间的欧几里德距离度量)在2D中观察收敛后的样本集(Borg和Groenen,2005)。
  9. 人们可以清楚地看到几个集群,这意味着SGHMC采样已经发现在后在权重明显的模式。

  1. 图2:顶部:来自六个不同发生器的数据样本,对应于来自θg后面的六个样本。
  2. 数据样本显示,每个探索的权重设置都会产生互补的高度样本,对应于不同的样式。
  3. 使用贝叶斯方法自然地出现样品中的变化量。
  4. 下图:来自标准DCGAN的数据样本(训练六次)。 相比之下,这些样品的样式是同质的。

4.3 CIFAR-10

  1.  CIFAR-10也是一种流行的基准数据集(Krizhevsky等,2010),具有50k训练和10k测试图像。
  2. 由于数据是真实物体的32x32 RGB图像,因此建模更加困难。
  3. 图3显示了从四个不同的发生器产生的数据集,这些发生器对应于来自发生器重量的后部的样本。
  4. 与MNIST一样,我们看到小组之间存在有意义的定性差异。
  5. 在表1中,我们再次看到(但在这个更具挑战性的数据集上)使用贝叶斯GAN作为半监督学习设置中的生成模型显着降低了替代方案的测试集误差,尤其是当ns << n时。

  1. 表1:所有数据集的详细监督和半监督学习结果。
  2. 在几乎所有的实验中,BayesGAN明显优于DCGAN和W-DCGAN,并且通常甚至优于DCGAN的集合。
  3. 每个时期的运行时(以分钟为单位)以包括数据集名称的行提供。
  4. 虽然所有实验都是在单个GPU上进行的,但请注意DCGAN-10和BayesGAN方法可以使用多个GPU直接加速。
  5. 结果平均超过10个数据分区+ - 2 stdev。


4.4 SVHN

  1. StreetView House Numbers(SVHN)数据集由StreetView车辆拍摄的门牌号的RGB图像组成。 
  2. 与MNIST不同,数字在形状和外观上显着不同。
  3. 对于CIFAR-10,实验程序紧随其后。 大约有75k训练和25k测试图像。
  4. 我们在表1中看到BayesGAN与替代品之间的性能差异特别显着。 数据样本如图3所示。

4.5 CelebA

  1. 大型CelebA数据集包含各种背景下的12万名名人面孔(100k训练,20k测试图像)。 
  2. 为了减少背景变化,我们使用标准面部检测器(Viola和Jones,2004)将面部裁剪成标准的50 * 50尺寸,这实际上比文献中的大多数GAN应用要大。
  3. 图3显示了来自训练有素的贝叶斯GAN的数据样本。
  4. 为了评估半监督学习的表现,我们通过预测5位向量来创建32级分类任务,该向量指示脸部是否是金发,有眼镜,是男性,是苍白还是年轻。
  5. 表1显示了CelebA相同的有前景表现模式。

  1. 图3:来自四个不同发生器的CIFAR10,SVHN和CelebA数据集的数据样本,这四个不同的发生器使用来自θg后面的四个不同样本创建。
  2. 对应于不同θg的每个小组具有不同的定性属性,显示了使用完全概率方法学习的分布的不同方面的互补性质。

5 Discussion

  1. 通过在发生器的权重参数上探索丰富的多模态分布,贝叶斯GAN可以捕获多种互补和可解释的数据表示。 
  2. 我们已经表明,这种表示可以使用简单的推理过程实现半监督问题的最新技术性能。
  3. 自然高维数据的有效半监督学习对于减少深度学习对大型标记数据集的依赖性至关重要。
  4. 通常标签数据不是一种选择,或者它的成本很高(无论是通过人工还是通过昂贵的仪器(如自动驾驶的激光雷达)。
  5. 此外,半监督学习提供了一种实用且可量化的机制,可以对无监督学习中的许多最新进展进行基准测试。
  6. 在未来,人们可以估计概率GAN的边际可能性,将参数的分布进行积分。
  7. 边际似然性提供了一种自然效用函数,用于自动学习超参数,以及在不同的GAN架构之间进行模型比较。
  8. 人们还可以研究确定性近似推断的各种分歧度量(例如a-分歧族),以促进样本中的熵。
  9. 将贝叶斯GAN与非参数贝叶斯深度学习框架结合起来也是有趣的,例如深度核学习(Wilson et al。,2016a,b)。
  10. 我们希望我们的工作能够激发对贝叶斯深度学习的持续探索。

  1. 图4:作为迭代次数函数的测试精度。 我们可以看到,在大约1000次SG-HMC迭代之后,采样器混合得相当好。
  2. 我们还看到,每次迭代,SG-HMC采样器正在比替代方案更有效地学习数据分布。
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值