IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 李宏毅机器学习课程梳理【十三】:Semi-supervised & Unsupervised Learning -> 正文阅读

[人工智能]李宏毅机器学习课程梳理【十三】:Semi-supervised & Unsupervised Learning

摘要

半监督学习相较于监督学习,既保留标记数据用以模型训练,又大幅度增加数据的数量,未标记数据可以提高参数的准确性。半监督学习可以应用在全部类型的监督学习上,重新定义加入未标记数据后的计算过程,但不改变算法本身的原理与特点,文章将半监督学习融入Generative Model中,更改算法,观察其仍为Soft Label分类方法。半监督学习在实践中往往需要“假设”,“假设”的合理性决定结果的准确性,算法应用“假设”制定计算过程或判定标准。无监督学习适合解决自然语言处理问题。

1 基本概念

监督学习的训练集数据是 { ( x r , y ^ r ) } r = 1 R \{(x^r,\hat y^r)\}^R_{r=1} {(xr,y^?r)}r=1R?,半监督学习的训练集数据是少量 { ( x r , y ^ r ) } r = 1 R \{(x^r,\hat y^r)\}^R_{r=1} {(xr,y^?r)}r=1R?和大量 { x u } u = R R + U \{x^u\}_{u=R}^{R+U} {xu}u=RR+U?
半监督学习分为两类,Transductive learning与Inductive learning,前者使用testing set的feature,前者的未标记的数据是testing data。

可以使用testing set的feature,不可以使用testing set的label

Semi-supervised Learning在区分unlabeled data时往往依照某些假设,所以假设的合理性会很大程度上影响结果的准确性。

2 Semi-supervised Learning for Generative Model

未标记的数据可以提高 P ( C 1 ) , P ( C 2 ) , μ 1 , μ 2 , Σ P(C_1), P(C_2), \mu^1, \mu^2, \Sigma P(C1?),P(C2?),μ1,μ2,Σ等参数的准确性。

下面介绍Semi-supervised Generative Model的计算步骤。记 θ \theta θ 为所有参数,
step1:计算每一笔未标记数据 x u x^u xu的后验概率 P θ ( C 1 ∣ x u ) P_\theta(C_1|x^u) Pθ?(C1?xu),得到未标记数据属于class1的概率
step2:更新Model,记 N N N为数据总数量, N 1 N_1 N1?为有标记数据中属于class1的数量, P ( C 1 ) = N 1 + ∑ x u P ( C 1 ∣ x u ) N P(C_1)=\dfrac{N_1+\textstyle\sum_{x^u}P(C_1|x^u)}{N} P(C1?)=NN1?+xu?P(C1?xu)? μ 1 = 1 N ∑ x r ∈ C 1 x r + 1 ∑ x u P ( C 1 ∣ x u ) ∑ x u P ( C 1 ∣ x u ) x u \mu^1=\dfrac{1}{N}\displaystyle\sum_{x^r\in C_1}x^r+\dfrac{1}{\textstyle\sum_{x^u}P(C_1|x^u)}\displaystyle\sum_{x^u}P(C_1|x^u)x^u μ1=N1?xrC1??xr+xu?P(C1?xu)1?xu?P(C1?xu)xu
step3:重复step1【有了新Model后概率会变化】
step4:重复step2

上述算法的计算原理:
计算标记数据与未标记数据和的maximum likelihood, l o g L ( θ ) = ∑ x r l o g P θ ( x u , y ^ r ) + ∑ x u l o g P θ ( x u ) logL(\theta)=\displaystyle\sum_{x^r}logP_{\theta}(x^u,\hat y^r)+\displaystyle\sum_{x^u}logP_{\theta}(x^u) logL(θ)=xr?logPθ?(xu,y^?r)+xu?logPθ?(xu),其中 P θ ( x r , y ^ r ) = P θ ( x r ∣ y ^ r ) P ( y ^ r ) , P θ ( x u ) = P θ ( x u ∣ C 1 ) P ( C 1 ) + P θ ( x u ∣ C 2 ) P ( C 2 ) P_{\theta}(x^r,\hat y^r)=P_{\theta}(x^r|\hat y^r)P(\hat y^r), P_{\theta}(x^u)=P_{\theta}(x^u|C_1)P(C_1)+P_{\theta}(x^u|C_2)P(C_2) Pθ?(xr,y^?r)=Pθ?(xry^?r)P(y^?r),Pθ?(xu)=Pθ?(xuC1?)P(C1?)+Pθ?(xuC2?)P(C2?),而上述算法每更新一次Model, l o g L ( θ ) logL(\theta) logL(θ)增大,最终收敛。

3 Low-density Separation Assumption

是一个常用假设,营造一个非黑即白的世界,假设两个class之间会有一个低密度的分界线。
Low-density Separation Assumption最具代表性的方法是Self-training,给定一些标记数据与未标记数据,第一步根据标记数据训练一个模型 f ? f^* f?,第二步Pseudo-label用 f ? f^* f?给未标记数据分类,第三步从未标记数据集中拿出一部分data,【如何拿出的算法需要自己设计】,加入到标记数据集中。于是标记数据集改变,重复上述三个步骤。

在使用Neural Network时,算法要使用Hard label,这样能体现把“权重”变为“非黑即白”的效果,会有较好表现
1

Low-density Separation Assumption另一个代表方法是Entropy-based Regularization,增加一项“用数字的方法定义分类结果的好坏”,即用一个值来表示这个Model的概率分布是集中还是分散。在图2的例子中,这一项为 E ( y u ) = ? ∑ m = 1 5 y m u l n ( y m u ) E(y^u)=-\displaystyle\sum_{m=1}^5y_m^uln(y_m^u) E(yu)=?m=15?ymu?ln(ymu?),希望在unlabel data上entropy越小越好。Loss function为 L = ∑ x r C ( y r , y ^ r ) + λ ∑ x u E ( y u ) L=\displaystyle\sum_{x^r}C(y^r,\hat y^r)+\lambda\displaystyle\sum_{x^u}E(y^u) L=xr?C(yr,y^?r)+λxu?E(yu),这样减小过拟合的可能。
2

4 Smoothness Assumption

另一个常用的假设,指x的分布是不平均的,它在一些地方很集中,一些地方很分散;如果 x 1 , x 2 x^1,x^2 x1,x2可以在高密度的地方距离较近,那么 y ^ 1 , y ^ 2 \hat y^1,\hat y^2 y^?1,y^?2的结果相似。可以理解成 x 1 , x 2 x^1,x^2 x1,x2可以有一条数据高密度的路径相连,那么两者的结果很像。
实践Smoothness Assumption的方法一:Cluster and then Label。画出数据的概率分布图,就可以很直观地根据密集度做聚类分析。但问题是仅根据像素做聚类分析不太准,如果想有效,需要deep auto-encoder做特征变换再聚类分析。
实践Smoothness Assumption的方法二:Graph-based Approach。引入图结构来表达“高密度的路径”。将所有的data point建成一张图,能通过节点连接上的可以看作一个class,如图3所示。
3
如何建Graph?
第一步,定义 x i , x j x^i,x^j xi,xj之间的相似度 s ( x i , x j ) s(x^i,x^j) s(xi,xj),比如基于auto-encoder抽出的feature算相似度、采用Gaussian Radial Basis Function: s ( x i , x j ) = e x p ( ? γ ∣ ∣ x i ? x j ∣ ∣ 2 ) s(x^i,x^j)=exp(-\gamma||x^i-x^j||^2) s(xi,xj)=exp(?γxi?xj2),【用指数可使距离稍远的点相似度下降很快】
第二步,添加edge,可以做出几类图,如K Nearest Neighbor、e-Neighborhood(相似度大于e者连起来)
4
第三步,给edge赋权值,权值与连接的两个data points之间的相似度 s ( x i , x j ) s(x^i,x^j) s(xi,xj)成正比。
具体计算如下:
在图结构上面定义the smoothness of the labels: S = 1 2 ∑ i , j w i , j ( y i ? y j ) 2 S=\dfrac{1}{2}\displaystyle\sum_{i,j}w_{i,j}(y^i-y^j)^2 S=21?i,j?wi,j?(yi?yj)2,这个求和是对所有数据(R+U),无论是否标记。S越小越好。下图给出更简便的计算过程,W填入权值,为对称阵;D为对角阵。
5
Loss function: L = ∑ x r C ( y r , y ^ r ) + λ S L=\displaystyle\sum_{x^r}C(y^r,\hat y^r)+\lambda S L=xr?C(yr,y^?r)+λS

5 总结与展望

半监督学习与无监督学习的未标记数据较容易获取,通过改变算法,如加入图结构等方法将其利用,提高结果的准确性。半监督学习常用的Low-density Separation Assumption与Smoothness Assumption假设,为未标记数据的区分划定标准,并给出了实践算法的定性分析与定量计算。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-16 11:44:45  更:2021-08-16 11:46:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 20:57:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码