目录
Self Training与generative model对比
Entropy-based Regularization公式
半监督学习(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,(正则项一般是参数的 L1或L2范数)故该方法称为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