生成式模型、半监督学习和变分自编码器

统计分析有两大学派,频率学派和贝叶斯学派。贝叶斯学派认为概率有先验和后验,要计算后验概率就要以先验概率为基础。频率学派更关心的是似然函数,而贝叶斯学派更关心的是后验概率。

MAP,最大后验估计是求参数θ的一种思想,原理是贝叶斯公式,求p(θ|x)∝p(θ)p(x|θ),也就是说,以θ方式取x一定是所有可能的p(x)中概率最大的,因此知道了p(θ|x)的最大值,就知道了θ最可能的取值。

而MLE最大似然估计是直接通过数据对参数θ进行估计。

监督学习(Supervised Learning)是通过<样本,标签>进行学习的,需要标注数据,学习到一个可靠的模型需要大量的数据标注,耗费时间和精力。

生成式模型(Generative)判别式模型(Discriminative)都属于监督学习模型。试想一下一个二分类的问题,在二维空间中有两簇点,每一簇的散点各自服从不同的分布,要进行二分类只需要在两堆散点之间找到一个最好的分类面,然后给定一个点,代入分类面的直线方程计算是正还是负即可,但是,如此这般可以生成某一簇的点吗?仅仅学习到一个分类面,并不用考虑每一类点的概率分布,因此不可以生成;还有另一种分类方法,不仅仅学习分类面,而是学习每一簇点的概率分布,然后给定一个待分类点,只需要代入每一个分布函数中,计算最大的概率,就是所属的那一类,因为学习到了分布函数,因此可以根据分布函数进行生成。

生成式模型可以根据贝叶斯公式得到条件概率分布。判别模型和生成模型都要使后验概率最大化,判别式直接对后验概率进行建模,而生成式模型通过贝叶斯定理这一桥梁转化为求联合概率。关于生成和判别模型可以参考:机器学习:生成式模型和判别式模型

判别式模型从历史数据中学习到模型,然后通过提取某一测试样本的特征来计算决策函数f(x)或者条件概率p(y|x)预测目标的概率。对于条件概率建模,会学习不同类别的最优边界,捕捉不同类别的差异信息,而非本身的分布的信息,学习成本低并且需要的计算资源较少;需要的样本数也比较少,少样本就可以很好地学习,与测试时候拥有较好的性能;无法转换为生成式。

生成式模型首先对每一个类别建立一个单独的模型,在进行预测的时候首先计算联合概率p(x,y),再由贝叶斯公式计算得到每一类别的后验概率p(y|x),然后选择其中概率最大的作为目标概率,生成式模型可以体现更多的分布信息。

生成式模型可以利用隐变量,判别模型则不可以;生成模型的学习收敛速度更快;对于联合概率建模,学习所有数据的分布;推断的时候性能较差;一定条件下可以转换为判别式;需要的样本数更多,样本较少的时候学习效果较差。

常见的判别式模型有:Linear Regression、Logistic Regression、感知机模型、Maximum Entropy Model、Boosting、LDA Linear Discrimination Analysis、SVM、CART(Classification and Regression Tree)、Neural Network、Gaussian Process、CRF。

常见的生成式模型又:Naive Bayesian、KNN、Gaussian Mixed Model、HMM、Bayesian Network、Sigmoid Belief Network、Markov Random Field、Deep Belief Network、LDA。

半监督学习(semi-supervised learning)研究的是如何自动利用未标记的样本来提升学习性能?给定少量的标记样本和大量的无标记样本进行函数估计。

让学习器不依赖外界交互、自动地利用无标注数据提升学习性能。同一个类别的样本内在服从一致的分布,因此无标注数据能够给出更有意义的分类边界。

相似的数据点具有相似的标签。

半监督分类/回归:给定标注数据和无标注数据,学习一个分类器f,比只用标注数据学习的更好。半监督聚类:给定标注数据,限制两个点必须在一个簇或者一定不在一个簇。半监督降维:给定标注数据,限制两个点降维之后必须接近。

半监督学习的三个假设:

平滑假设:如果高密度空间的两个点距离较近,那么对应的输出也应接近。(监督学习的平滑假设:如果空间中两个点距离较近,那么对应的输出也应接近)

聚类假设:如果点在同一个簇,那么它们很可能属于同一个类。(可以看作平滑假设的一种特殊情形)

流形假设:高维数据大智慧分布在一个低维的流形上;邻近的样本具有相似的输出。

按照训练过程中能否预测未观察到的样本分为:纯半监督学习和直推学习。

按照具体的方法分为:

1、启发式方法

启发式方法有以下三种:

1.1   特征学习和度量学习:首先利用无标记的数据采用无监督的方式学习特征、距离函数或者核函数,然后利用有标记的数据进行监督学习。

1.2   自学习:首先利用有标记数据通过监督学习方式得到一个模型,然后利用该模型从无标记数据中挑选数据并进行标记,在每轮迭代中挑选置信度大的数据。

1.3   协同学习:在多个不同的特征集上训练多个分类器进行样本标记。

2、生成式方法:生成式方法假设标记数据和无标记数据都是由同一个潜在的模型生成的,从而把为标记数据与学习目标联系起来,未标记数据的标记看作模型的缺失参数通过MLE或者EM算法进行估计。

3、半监督SVM

4、图半监督学习

5、基于分歧的方法

不同于生成式方法、半监督SVM和图半监督学习,这三种方法是基于单学习器的。基于分歧的方法是基于多学习器的。基本思想是通过多学习器相互提供伪标记样本的方式来提升泛化性能。

基于分歧的方法的代表,即协同训练(co-training),协同训练是多视图学习(muiti-view learning),每一个属性集构成一个视图(view),协同训练假设不同的视图之间具有相容性,即其所包含的关于输出空间的信息是一致的,而且不同视图信息之间还具有一定的互补性,协同训练就是利用这个互补性来提升学习器的泛化性能。

协同训练的方法步骤

基本步骤:

在每个视图上都基于有标记样本分别训练一个分类器,然后让每个分类器分别挑选自己最有把握的未标记样本,赋予伪标记,然后把伪标记样本提供给另一个分类器作为新增的有标记样本进行更新。

重复上述步骤直到两个分类器都不再发生变化,或者达到预定的个迭代轮数为止。

详细为:

  1. 数据预处理:首先将标注数据分为两个不相交的部分,分别训练两个分类器,同时利用未标记数据进行补充。
  2. 分类器训练:使用初始标注数据对两个分类器进行训练。
  3. 样本划分:从未标记数据中挑选出置信度高的样本,并将其标记为正例或负例,将标记为正例的样本分配给分类器1,将标记为负例的样本分配给分类器2。
  4. 样本选取:每个分类器输出其在未标记数据中最有信心的预测结果,并将他们加入到标记数据集中,以进行下一轮迭代。
  5. 重复执行步骤 4 和 5,直到分类器的性能不再提高或者达到预设的迭代次数。

需要注意的是,协同训练的成功与训练数据的划分和分类器的独立性密切相关,也需要在不影响分类器性能的前提下尽量多使用未标记数据。因此,对于不同的数据集和分类任务,需要采用不同的方法来进行协同训练,以达到最佳的效果。

6、半监督聚类

表征学习(Representation Learning):因为现实中例如图片、音频、文本、传感器等数据非常复杂、冗余而且多变,人工提取特征不仅需要大量的人力而且非常依赖专业知识。表征学习是学习特征的技术的集合,将原始数据转换为能够被机器学习有效开发的形式。避免了手动提取特征的麻烦,允许计算机学习使用特征的同时,也学习如何提取特征:学习如何学习。

监督特征学习:从被标记过的数据中学习特征。

在无监督学习中,为被标记过的数据被当作特征用来学习。

有一种表示学习的方法是对比学习。SimCLR模型是对比学习的代表作:

所谓对比学习就是,训练一个模型,可以识别图片相似与否,输入一对图片,输出结果为是否相似。为了让模型具有这样的能力,需要大量的相似、不相似的样本。图片放到表示空间里面去进行相似度计算。

SimCLR就是一个基于对比学习实现的自监督学习方法。

SimCLR的结构如下面的Figure 1所示,训练过程如下:

1. 对每一个训练集的batch的图片作增强(随机的crop, flip, color jitter, grayscale),得到batch_size*2张图片。

2. 用encoder(原论文为ResNet-50)进行编码得到表示

3. 经过非线性Dense-RuLE-Dense映射为

4. 计算图片编码后的损失,计算相似度矩阵(用余弦相似度计算),其中是缩放系数。

5. 计算损失函数NT-Xent loss(Normalised Temperature-Scale Entropy Loss)

其中NT-Xent Loss原理如下:

       1. NT-Xent Loss:取出增强的图片对,用Softmax函数得到一个batch的相似度矩阵,

       2. 计算NCE(Noise Contrastive Estimation Loss),对Softmax取负对数得到

       3. 图片对中的两张图片对换,再计算一次。

       4. 然后对所有的图片对的取平均得到损失值

自编码器(AE AutoEncoder)是一类半监督学习和非监督学习中使用的神经网络,讲输入的信息作为学习目标,进行表征学习。AE包括编码器Encoder和解码器Decoder部分。编码器用于把原始数据压缩为低维向量,Decoder把低维向量还原为原先的数据。

 

按照学习范式,自编码器有收缩自编码器(Undercomplete)、正则自编码器(Regularized),这两个是判别模型,还有生成模型 变分自编码器(Variational)。按照损失函数的约束条件分为,稀疏自编码器、去噪其编码器、卷积自编码器。

自编码器的特点是:非监督学习、前馈神经网络、生成模型、降维可以是非线性的、具有较好的特征提取能力。

变分自编码器(VAE Variational AutoEncoder)是一种包含隐变量的生成模型,它利用神经网络得到推断网络q(z|x;φ) 和生成网络p(x|z;θ),可以生成输入中不包含的数据。

一般的自编码器没有约束,具有严重的过拟合,对于编码空间的、训练集中不存在的点,进行解码容易出现混乱的内容,也即无法产生新的数据。变分自编码器就使得训练被正则化,支持生成过程。自编码器学习的是确定的函数,而VAE学习的是参数的概率分布。(参考zhuanlan.zhihu.com/p/433162159)

首先学习到编码空间的分布,然后通过采样得到编码空间的编码。

VAE的最小化损失函数,由 重构误差项 和 正则化项 组成。

推导步骤

Reparameterization Trick(重参数化技巧):

posted @ 2023-01-09 11:05  倦鸟已归时  阅读(270)  评论(0编辑  收藏  举报