李宏毅ML笔记12:半监督

目录

生成式模型

有监督生成式模型

半监督生成式模型

直观解释

具体操作

基本原理

低密度分离假设

Self Training

Self Training与generative model对比

基于熵的正则化

Entropy-based Regularization公式

半监督SVM

平滑假设

图像识别

文件分类

聚类后标记

Graph-based Approach

图的建立

相似度计算

图的基本精神

图的使用

Better Representation


半监督学习(semi-supervised learning)主要有几个方式: 生成式模型(Generative Model), 低密度分离假设(Low-density Separation Assumption), 平滑假设(Smoothness Assumption)

监督学习Supervised Learning

监督学习的训练数据,由input 和对应的output组成

$$ \left\{ \left\{ {x^{r},{\hat{y}}^{r}} \right\} \right\}_{r = 1}^{R} $$

此处代表样本共R笔, x^r可代表一张图片, y^r代表图片标记.

半监督学习Semi-supervised Learning

训练数据中,部分没有标签y, 只有input x:

$$ \left\{ \left\{ {x^{r},{\hat{y}}^{r}} \right\} \right\}_{r = 1}^{R},\left\{ x^{u} \right\}_{u = R}^{R + U} $$

此处代表未标记的数据有U笔.

通常无标签的数据量远大于有标签的数据量,即U>>R.

Labelled data

  

cat

dog

Unlabeled data

半监督学习两种情况

1. Transductive Learning直推式:unlabeled data is the testing data

用了测试集feature训练.

即用有标签+无标签(测试集)数据训练,用无标签数据测试. 仅用测试集的feature无label,不会产生cheating效果.

2. Inductive Learning归纳式:unlabeled data is not the testing data

用单独的有标签数据测试. 不用测试集的feature训练,适用于连测试集feature也不知道的情况(更普遍).

使用半监督学习的原因

不缺data,只是缺有label的data,照片随处可见,但需要雇人label.

半监督学习有效原因

无标签数据的分布也携带信息.

只有labeled data时,分类的分界线:

 加入unlabeled data,特征分布变化, 影响决定, 分界线改变:

使用无标签数据时常伴随假设,假设的合理性,决定结果的好坏. 如该图的无标签数据为狗,特征分布与猫接近,很可能由于两张图片的背景都是绿色.

生成式模型

半监督生成式模型 (Semi-supervised Learning for Generative Model)

有监督生成式模型

Supervised Generative Model

这一部分可以参考李宏毅的分类一节与西瓜书的贝叶斯分类器:

https://blog.csdn.net/lagoon_lala/article/details/116674811

https://blog.csdn.net/lagoon_lala/article/details/118614330

监督学习中概率生成模型,已知样例及其类别标签. 通过估计先验概率与似然概率, 可以得出所求后验概率.

分类-生成式模型一节的例子

已知两个盒子中球数( 盒1 蓝球占4/5, 绿占1/5; 盒2蓝球占2/5, 绿占3/5), 从盒1抽的几率是2/3, 从盒2抽的几率是1/3, 拿出发现是蓝球, 分别求从盒1盒2拿的概率.

即给定一个蓝球, 求它从B1里面出来的概率:

$$ P\left( B1~ \middle| ~Blue \right) = \frac{P\left( {\text{Blue}\left| B_{1} \right.} \right)P\left( B_{1} \right)}{P\left( {\text{Blue}\left| B_{1} \right.} \right)P\left( B_{1} \right) + P\left( {\text{Blue}\left| B_{2} \right.} \right)P\left( B_{2} \right)} $$

其中P(class=B1), P(class=B2)为先验概率, P(x=Blue|class=B1)和P(x=Blue|class=B1)为似然概率/类条件概率.

假设class1和class2的分布均为高斯分布,计算出先验概率后,根据贝叶斯公式可得新生成的x所属的类别.

此处给出有标签训练样本:

$$ x^{r} \in \{C_{1},C_{2}\} $$

最大似然法, 估计先验概率P(Ci)和类条件概率P(x|Ci).

假设每个类别都是高斯分布, 可估计出两个分布的参数mean=μi, covariance matrix=Σ(通常公用协方差矩阵).

已知参数:

$$ P\left( C_{1} \right),P\left( C_{2} \right),\mu^{1},\mu^{2},\Sigma $$

即可估测新样本属于某个类别的概率:

$$ P\left( C_{1} \middle| x \right) = \frac{P\left( x \middle| C_{1} \right)P\left( C_{1} \right)}{P\left( x \middle| C_{1} \right)P\left( C_{1} \right) + P\left( x \middle| C_{2} \right)P\left( C_{2} \right)} $$

半监督生成式模型

Semi-supervised Generative Model

直观解释

根据无标签数据(绿点),原先的参数不合理. re-estimate:

1. μ, Σ. 需要使得分布更接近整体样本点.

2. P(Ci). 现在右侧样本点更多, 右侧的先验概率更大.

无标签数据对参数产生影响, 分类边界发生变化.

具体操作

二元分类半监督, step1是EM 算法里的期望E,step2则是最大化M:

0. 先随机初始化一组参数(random或用有标签数据训练):

$$ \theta = \left\{ {P\left\{ C_{1} \right\},P\left\{ C_{2} \right\},\mu^{1},\mu^{2},\Sigma} \right\} $$

step1:利用初始model计算每一笔无标签数据的后验概率(属于class 1的概率), 这个概率值取决于模型参数θ:

$$ P_{\theta}\left( C_{1} \middle| x^{u} \right) $$

step2:更新模型

其中, N含义N1含义

不考虑无标记数据

考虑无标记数据

P(Ci)

类别先验(prior) 概率

公式

$$ P(C_1)=\frac{N1}{N} $$

$$ P\left( C_{1} \right) = \frac{N_{1} + {\sum_{x^{u}}{P\left( C_{1} \middle| x^{u} \right)\ }}}{N} $$

含义

其中, 无标记数据中C1出现的次数=每个无标签数据为C1的后验概率和.

其中, 无标记数据中C1出现的次数=每个无标签数据为C1的后验概率和.

分布期望μi

公式

$$ \mu^{1} = \frac{1}{N_{1}}{\sum_{x^{r} \in C_{1}}x^{r}} $$

$$ \mu^{1} = \frac{1}{N_{1}}{\sum_{x^{r} \in C_{1}}x^{r}} + \frac{1}{\sum_{x^{u}}{P\left( C_{1} \middle| x^{u} \right)\ }}{\sum_{x^{u}}{P\left( C_{1} \middle| x^{u} \right)x^{u}}} $$

含义

所有有标记的x均值.

有标签数据直接算, 无标签用概率算期望值.

3. 得到一组新的参数,回到step1后验概率不同->step2 model不同->step1循环.

理论上该方法保证是可以收敛的,但初始值会影响收敛的结果.

基本原理

目标为求参数θ:

$$ \theta = \left\{ {P\left\{ C_{1} \right\}, P\left\{ C_{2} \right\}, \mu^{1}, \mu^{2}, \Sigma} \right\} $$

有标记数据的最大似然

对数似然函数为:

$$ \log L\left( \theta \right) = {\sum_{({x^{r},{\hat{y}}^{r}})}{\log P_{\theta}\left( x^{r} \middle| {\hat{y}}^{r} \right)}} $$

已知θ, 其中每一笔训练数据的似然是可以算出来的.

所有的有标记数据最大似然取对数之和, 即为总的对数似然函数. 只需找参数θ最大化该对数似然函数. (有闭式解)

有标记+无标记的最大似然

对数似然函数为:

$$ \log L\left( \theta \right) = {\sum_{({x^{r},{\hat{y}}^{r}})}{\log P_{\theta}\left( x^{r} \middle| {\hat{y}}^{r} \right)}} + {\sum_{x^{u}}{\log P_{\theta}\left( x^{u} \right)}} $$

其中无标签样本先验估计:

$$ P_{\theta}\left( x^{u} \right) = P_{\theta}\left( x^{u} \middle| C_{1} \right)P\left( C_{1} \right) + P_{\theta}\left( x^{u} \middle| C_{2} \right)P\left( C_{2} \right) $$

即共同考虑来自两个类别的可能(全概率公式).

接着求最大似然, 此时无闭式解, 需要迭代求解(iteratively).

低密度分离假设

Low-density Separation Assumption

该方法比较通用, 即假设非黑即白. 类别交界处data密度(density)低,有明显鸿沟.

不考虑无标签样本时, 两种分界线都是正确的, 但考虑无标签样本(绿点), 则左侧分界线更好.

Self Training

low-density separation最具代表性的方法.

给定有标签数据与无标签数据:

$$ \left\{ \left\{ {x^{r},{\hat{y}}^{r}} \right\} \right\}_{r = 1}^{R},\left\{ x^{u} \right\}_{u = 1}^{U} $$

循环以下过程:

1. 从有标签数据训练一个model f^*,训练方式没有限制.

2. 根据f^*对无标签数据进行标记, 即Pseudo label:

$$ \left\{ \left\{ {x^{u},y^{u}} \right\} \right\}_{u = 1}^{U} $$

3. 从无标签数据中取部分data加入有标签数据(加入时可以给样本权重),data的选取规则没有限制.

4. 得到更多有标签数据重新回头训练

该过程不适用Regression, 给出模型生成的y重新训练, 对模型没有影响(数值一致).

Self Training与generative model对比

Self Training

Generative Model

hard label

soft label

假设一笔data强制属于某个class

一笔data按照概率划分,不同部分属于不同class

以neural network为例:

从有标签数据得一组参数θ^*,输入一个无标签数据,通过该模型得到输出:

它有0.7的概率属于class 1,0.3的概率属于class 2.

hard label对该数据的标记为:

$$ \begin{bmatrix} 1 \\ 0 \\ \end{bmatrix} $$

soft label对该数据的标记为:

$$ \begin{bmatrix} 0.7 \\ 0.3 \\ \end{bmatrix} $$

此时soft label没用,因为原始的model预测就是0.7, 0.3, 相同值再丢回训练, 仍然得同一组参数.

强制分类hard label基于low density separation假设, 提升分类效果.

基于熵的正则化

Entropy-based Regularization

hard label根据概率强制标签太武断.

(比如神经网络)输出的y是概率分布(distribution), 不根据概率强制标记, 但假设输出的概率分布很集中.

好的情况: 不知道标签是哪一类,但只要模型对样本x的输出分布概率集中在某个类别.

不好的情况: 分布分散.

Entropy-based Regularization公式

用数值评价分布的集中程度(模型好坏): entropy

$$ E\left( y^{u} \right) = - {\sum_{m = 1}^{5}{y_{m}^{u}ln\left( y_{m}^{u} \right)}} $$

其中m代表类别序号, u为样本序号, y^u_m为样本u属于类别m的几率.

代入以上3种情况:

$$ E\left( y^{u} \right) = -[1\cdot \ln 1 + 4\cdot \left( 0\cdot\ln 0 \right)] = 0 $$

$$ E\left( y^{u} \right) = -[1\cdot \ln 1 + 4\cdot \left( 0\cdot\ln 0 \right)] = 0 $$

$$ E\left( y^{u} \right) = - 5\cdot\frac{1}{5}\cdot\ln\left( \frac{1}{5} \right) = \ln 5 $$

目标为无标签样本的entropy最小,则损失函数定义为:

$$ L = {\sum_{x^{r}}{C\left( {y^{r},{\hat{y}}^{r}} \right) + \lambda{\sum_{x^{u}}{E\left( y^{u} \right)}}}} $$

其中分为两部分:

1. 有标签数据输出类别对比真实标记,用cross entropy表示.

2. 无标签数据, 输出的分布entropy越小越好.

两项综合可以用λ加权,决定哪个部分更重要.

第二项很像正则项regularization,(正则项一般是参数的 L1L2范数)故该方法称为Entropy-based Regularization.

训练时可以用梯度下降法, 因为两项都可微.

半监督SVM

有标签数据

对属于两个类别的数据,找分界线boundary:

1. 使margin最大,让类别分的越开越好

2. 分类错误最小

无标签数据

穷举所有可能的类别标记,如:

对每一种结果计算SVM,选择margin最大,误差error最小的情况:

数据量大时,难以穷举,可用approximate:先给定一组label,每次改一笔无标签数据的label,如果objective function变大就改变该label.

平滑假设

Smoothness Assumption

基本精神

近朱者赤,近墨者黑. 蓬生麻中, 不扶而直; 白沙在涅,与之俱黑. 相似的x有相同的label y.

精确假设

1. x的分布不平均. 某些地方很集中, 某些地方很分散.

2. 位于稠密数据区域(high density region)的两个样本很接近, 其label y才相同. 即两个点可以通过高密度路径连接(connected by a high density path)

3. 当两个样例被稀疏数据区域分开时,它们的类标签趋于不同

data的分布如图, 其中的三笔data, x1, x2, x3:

 

1. 只考虑相似度,x2, x3更接近.

2. 平滑假设,相似需要处于同一块高密度区域的,经高密度路径相连. x2, x3之间“断开”,没有high density path. x1, x2更相似.

图像识别

digits detection手写数字识别.

1. 只考虑pixel相似度,右'2'与'3'更接近.

 2. 平滑假设,两个'2'之间有连续过渡形态(间接相似的垫脚石). 但右'2'与'3'之间没有.

人脸的过渡样本同理.

文件分类

file classification

对天文学(astronomy)和旅行(travel)的文章分类,分别有其词汇分布. (Asteroid小行星, Comet彗星, zodiac黃道帶, Zion耶路撒冷zaɪən)

 如果无标记与有标记文章的词汇有相同或重合(overlap),容易分类;

真实情况可能没有重复词汇,一篇文章涉及的词汇相对于总词汇表是稀疏的(sparse).

但无标记数据足够多,可得相似传递的形式,建立起文档之间相似的桥梁.

聚类后标记

cluster and then label, 平滑假设的实现方法.

数据分布如图:

先进行聚类, 可分成3个cluster:

再进行训练, 如cluster1种类别1的最多, 就认为这个cluster均为类别1.

 但这种方法不一定会得到好的结果,除非这个cluster很强, 能把同一个类别样本cluster在一起.

如图像分类用pixel的相似度cluster,结果一般很差,需要设计描述图像的方法(类似Deep Autoencoder提取feature), cluster才会有效果.

Graph-based Approach

引入图结构表达高密度路径连接(connected by a high density path).

样本为点建成一个graph, 根据相似度建立边. 两点中有路径相连则为同类别(一个连通子图).

图的建立

有时图的表示很自然, 比如网页之间的链接关系、论文之间的引用关系.

有时候需要凭经验寻找vertex间关系. 图的好坏对结果有至关重要的影响.

1. 定义两样本相似度

$$ s\left( {x^{i},x^{j}} \right) $$

基于pixel的表现不太好;基于autoencoder提取的feature计算相似度,表现较好.

2. 加入边edge

建graph方式:

k nearest neighbor:设k=3,则每个点与相似度最高3个点相连.

e-neighborhood:每个点与相似度超过阈值e的点相连.

3. Edge权重

与相似度s成正比.

相似度计算

RBF(高斯径向基Gaussian Radial Basis Function):

$$ s\left( {x^{i},x^{j}} \right) = exp\left( {- \gamma\left\| {x^{i} - x^{j}} \right\|^{2}} \right) $$

xi, xj为vector,计算两者Euclidean Distance(欧几里得距离),乘参数γ后再取e的指数.

取e的指数(exponential)通常提升表现. 该函数下降得很快. 在这里只有当非常接近的时候,相似度similarity大;距离稍微远一点,相似度变得很小.

使用exponential的RBF可以做到只有非常近的两个点才能相连,稍微远一点就无法相连的效果,避免跨区域相连.

图的基本精神

图中已有labeled data,则与其相连点为同类的概率上升:

 图的最大好处: 每一笔数据影响其邻居,影响随着边传递到很远的点.

 如果图建的足够好,两个部分分别被label为蓝色和红色的点传递完两张完整的图.

 data要够多,否则可能传递到一半,graph断掉,信息传递失效.

图的使用

定义图中label的smoothness.

例: 图中两顶点相连的边上数值为权重. y为data的label, 可看出左边图更平滑.

smoothness计算:

相连的点两两拿出, 比较label, 再乘边的权重.

$$ S = \frac{1}{2}{\sum_{i,j}{w_{i,j}\left( {y^{i} - y^{j}} \right)^{2}}} $$

代入该例子

𝑆=1/2(0+0+0+1)=0.5

𝑆=1/2(2*1+1*0+3*1+1*1)=3

smoothness值越小代表越平滑.

Smoothness式化简

有标记和无标记的y组成R+U维 vector:

$$ \mathbf{y} = \left\lbrack {\cdots y^{i}\cdots y^{j}\cdots} \right\rbrack^{\mathbf{T}} $$

smoothness可改写:

$$ S = \frac{1}{2}{\sum_{i,j}{w_{i,j}\left( {y^{i} - y^{j}} \right)^{2} = \mathbf{y}^{T}L\mathbf{y}}} $$

式中符号含义:

L定义

$$ L = D - W $$

L为图的拉普拉斯矩阵Graph Laplacian .

为(R+U)×(R+U)矩阵

W

$$ \begin{bmatrix}\begin{matrix}0 & 2 \\2 & 0 \\\end{matrix} & \begin{matrix}3 & 0 \\1 & 0 \\\end{matrix} \\\begin{matrix}3 & 1 \\0 & 0 \\\end{matrix} & \begin{matrix}0 & 1 \\1 & 0 \\\end{matrix} \\\end{bmatrix}  $$

样本点两两连接权重的矩阵

D

W的每行的值之和放在该行对角线对应元素

通过Smoothness定义式子估计平滑程度. 该式中的标记y,为神经网络输出,取决于神经网络参数. 因此训练时损失函数加一项S:

$$ L = {\sum_{x^{r}}{C\left( {y^{r},{\hat{y}}^{r}} \right)}} + \lambda S $$

S也可看作正则项.

训练时,不一定只对输出算Smoothness,可对任意隐藏层加smooth的限制.

Better Representation

具体在无监督学习介绍

Better Representation的精神是,去芜存菁,化繁为简

世界现象复杂,背后有较简单规律,透过现象看核心, 可以简化训练.

在神雕侠侣中,杨过要在三招之内剪掉樊一翁的胡子,虽然胡子的变化是比较复杂的,但头的变化是有限的.

胡子=original representation

头=better representation

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
李宏毅是一位著名的机器学习和深度学习专家,他在教学视频中也提到了Transformer模型。下面是一些关于李宏毅关于Transformer的笔记总结: 1. Transformer 是一种基于注意力机制(attention mechanism)的序列到序列(sequence-to-sequence)模型。它在自然语言处理任务中取得了很大的成功。 2. Transformer 模型的核心思想是完全摒弃了传统的循环神经网络(RNN)结构,而是采用了自注意力机制(self-attention mechanism)来建模输入序列之间的依赖关系。 3. 自注意力机制能够将输入序列中的每个位置与其他位置建立联系,从而捕捉到全局上下文的信息。它能够解决传统的RNN模型在处理长序列时的梯度消失和梯度爆炸问题。 4. Transformer 模型由编码器(Encoder)和解码器(Decoder)两部分组成。编码器负责将输入序列表示为高维向量,解码器则根据编码器的输出生成目标序列。 5. 编码器和解码器由多个层堆叠而成,每一层都包含了多头自注意力机制和前馈神经网络。多头自注意力机制可以并行地学习输入序列中不同位置之间的关系。 6. Transformer 模型还引入了残差连接(residual connection)和层归一化(layer normalization)来帮助模型更好地进行训练和优化。 这些是李宏毅关于Transformer的一些主要笔记总结,希望对你有所帮助。注意,这些总结仅代表了我对李宏毅在其教学视频中所讲述内容的理解,如有误差请以李宏毅本人的观点为准。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值