【深度学习】半监督学习入门:伪标签学习和无监督SVM
一、半监督学习
1-1、什么是半监督学习
让学习器不依赖外界交互、自动地利用未标记样本来提升学习性能,就是半监督学习(semi-supervised learning)。
要利用未标记样本,必然要做一些将未标记样本所揭示的数据分布信息与类别标记相联系的假设。假设的本质是“相似的样本拥有相似的输出”。
半监督学习可进一步划分为纯(pure)半监督学习和直推学习(transductive learning),前者假定训练数据中的未标记样本并非待测的数据,
而后者则假定学习过程中所考虑的未标记样本恰是待预测数据,学习的目的就是在这些未标记样本上获得最优泛化性能。
1-2、无标记样本的意义
图片来源: A Tutorial on Graph-based Semi-Supervised Learning Algorithms for Speech and Spoken Language Processing
左图表示根据现有的数据,我们得到的分类边界如左图中蓝线所示。但是当我们有了无标签数据的分布信息后,两个类的分类超平面就变得比较明确了。
因此,使用无标签数据有着提高分类边界的准确性,提高模型的稳健性。
1-3、伪标签(Pseudo-Labelling)学习
来源: Pseudo-labeling a simple semi-supervised learning method
伪标签学习也可以叫简单自训练(simple self-training):用有标签数据训练一个分类器,然后用这个分类器对无标签数据进行分类,
这样就会产生伪标签(pseudo label)或软标签(soft label),挑选你认为分类正确的无标签样本(此处应该有一个挑选准则),把选出来的无标签样本用来训练分类器。
上图反映的便是简单的伪标签学习的过程,具体描述如下:
i)使用有标签数据训练模型;
ii)使用训练的模型为无标签的数据预测标签,即获得无标签数据的伪标签;
iii)使用(ii)获得的伪标签和标签数据集重新训练模型;
最终的模型是(iii)训练得到,用于对测试数据的最终预测。
伪标签方法在实际的使用过程中,会在(iii)步中增加一个参数:采样比例(sample_rate),表示无标签数据中本用作伪标签样本的比率。
伪标签方法的更加详细介绍以及Python实现可以最后的参考文献。
二、半监督学习方法
2-1、半监督SVM(Semi-Supervised Support Vector Machine,简称S3VM)
有监督学习中的传统SVM试图找到一个划分超平面,使得两侧支持向量之间的间隔最大,即“最大划分间隔”思想。对于半监督学习,S3VM则考虑超平面需穿过数据低密度的区域。
TSVM是半监督支持向量机中的最著名代表,TSVM主要思想是尝试将每个未标记样本分别作为正例或反例,在所有结果中,寻找一个在所有样本上间隔最大的划分超平面。
TSVM采用局部搜索的策略来进行迭代求解,即首先使用有标记样本集训练出一个初始SVM,接着使用该学习器对未标记样本进行标记,这样所有样本都有了标记,
并基于这些有标记的样本重新训练SVM,之后再寻找易出错样本不断调整。
2-2、半监督深度学习
2-2-1、无标签数据初始化网络
一个好的初始化可以使得网络的结果准确率提高,迭代次数更少。因此该方式即是利用无标签数据让网络有一个好的初始化。
初始化的两种方法,无监督预训练与伪有监督预训练
无监督预训练:用所有训练数据训练自动编码器(AutoEncoder),然后把自编码网络的参数作为初始参数,用有标签数据微调网络(验证集)。
伪有监督预训练:通过半监督算法或聚类算法等方式,给无标签数据附上伪标签信息,先用这些伪标签信息来预训练网络,然后再用有标签数据来微调网络(验证集)。
2-2-2、有标签数据提取特征的半监督学习
i)用有标签数据训练网络(此时网络一般过拟合);
ii)通过隐藏层提取特征,以这些特征来用某种分类算法对无标签数据进行分类;
iii)挑选认为分类正确的无标签数据加入到训练集;
重复上述过程。
想法美好,实际应用不太行,误差会放大。
2-2-3、网络本身的半监督学习(端到端的半监督深度模型)
ICML 2013 的文章Pseudo-Label : The Simple and Efficient Semi-Supervised Learning Method for Deep Neural Networks:
该文章简单的说就是在伪标签学习中使用深度学习网络作为分类器,就是把网络对无标签数据的预测,作为无标签数据的伪标签(Pseudo label),用来对网络进行训练。
但方法虽然简单,但是效果很好,比单纯用有标签数据有不少的提升。其主要的贡献在于损失函数的构造:
损失函数的第一项是有标签数据的损失,第二项是无标签数据的损失,
在无标签数据的损失中, 为无标签数据预测得到的伪标签,是直接取网络对无标签数据的预测的最大值为标签。
其中 决定着无标签数据的代价在网络更新的作用,选择合适的 很重要,太大性能退化,太小提升有限。
在网络初始时,网络的预测时不太准确的,因此生成的伪标签的准确性也不高。
在初始训练时, 要设为 0,然后再慢慢增加,论文中给出其增长函数。
Semi-Supervised Learning with Ladder Networks:
ladderNet 是有监督算法和无监督算法的有机结合。上面提及到的无监督预训练+有监督微调的思想中所有监督和无监督是分开的,两个阶段的训练相互独立,并不能称之为真正的半监督学习。
无监督学习是用重构样本进行训练,其编码(学习特征)的目的是尽可能地保留原始数据的信息;而有监督学习是用于分类,希望只保留其本质特征,去除不必要的特征。
举例来说:我们的分类任务判断一张人脸图片是单眼皮,还是双眼皮;那么有监督学习经过训练完毕后,就会尽可能的把与这个分类任务无关的信息过滤掉,过滤的越好,那么分类的精度将会更高。
比如一个人的嘴巴、鼻子信息这些都是与这个分类任务无关的,那么就要尽量的过滤掉。
因此,基于这个原因以至于一直以来有监督学习和无监督学习不能很好的兼容在一起。
ladderNet 成功的原因在于损失函数和 skip connection 。通过在每层的编码器和解码器之间添加跳跃连接(skip connection),减轻模型较高层表示细节的压力,
使得无监督学习和有监督学习能结合在一起,并在最高层添加分类器。
损失函数的第一项是有标签样本数据的交叉熵损失函数,第二项是无监督各层噪声解码器重构误差欧式损失函数。
其他的几种半监督网络的具体见参考文献[4]中.
Temporal Ensembling for Semi-supervised Learning
Mean teachers are better role models: Weight-averaged consistency targets improve semi-supervised deep learning results
Mean teacher是对模型的参数进行移动平均(weight-averaged),使用这个移动平均模型参数的就是 teacher model 。
其思想有点类似于网络模型融合中的随机加权平均(SWA,Stochastic Weight Averaging)。
参考文献
[1]. 周志华. 机器学习[M]. Qing hua da xue chu ban she, 2016.
[2].【译文】伪标签学习导论 - 一种半监督学习方法
[3].半监督深度学习小结
[4].深度学习的自编码
[5].深度学习(三十二)半监督阶梯网络学习笔记
感谢并转自kamekin:https://www.cnblogs.com/kamekin/p/9683162.html
【深度学习】半监督学习入门:伪标签学习和无监督SVM相关推荐
- 监督学习和无监督学习_让半监督学习再次伟大!谷歌最新无监督数据增强研究,全面超越现有半监督学习方法...
新智元报道 来源:GoogleAI 编辑:元子 [新智元导读]Google AI最新研究用无监督数据增强推进半监督学习,取得令人瞩目的成果.该方法超越了所有现有的半监督学习方法,并实现了仅使用 ...
- 无监督特征学习(半监督学习+自学习)
综述 如果已经有一个足够强大的机器学习算法,为了获得更好的性能,最靠谱的方法之一是给这个算法以更多的数据.机器学习界甚至有个说法:"有时候胜出者并非有最好的算法,而是有更多的数据." ...
- 【李宏毅机器学习】Semi-supervised Learning 半监督学习(p24) 学习笔记
文章目录 Semi-supervised Learning Introduction Supervised Learning Semi-supervised Learning Why semi-sup ...
- 强化学习之基础入门_强化学习基础
强化学习之基础入门 Reinforcement learning is probably one of the most relatable scientific approaches that re ...
- 《异常检测——从经典算法到深度学习》16 基于VAE和LOF的无监督KPI异常检测算法
<异常检测--从经典算法到深度学习> 0 概论 1 基于隔离森林的异常检测算法 2 基于LOF的异常检测算法 3 基于One-Class SVM的异常检测算法 4 基于高斯概率密度异常检测 ...
- 《异常检测——从经典算法到深度学习》18 USAD:多元时间序列的无监督异常检测
<异常检测--从经典算法到深度学习> 0 概论 1 基于隔离森林的异常检测算法 2 基于LOF的异常检测算法 3 基于One-Class SVM的异常检测算法 4 基于高斯概率密度异常检测 ...
- 训练损失越来越大_无需contrastive学习,微软亚研提基于实例分类无监督预训练方法...
机器之心发布 机器之心编辑部 在本文中,微软亚洲研究院的研究员和实习生们提出了一个简单且高效的无监督预训练方法--参数化实例分类(PIC).和目前最常用的非参数化对比学习方法不同,PIC 采用了类似于 ...
- 【深度学习】半监督学习入门:Mean teachers
- 深度学习第一篇论文——半监督学习Mean Teacher 的学习
最近一个月刚接触深度学习,导师给了一篇论文(mean teacher)让我先理解然后跑论文里面的代码,这个过程中我出现了很多问题,借这篇blog记录下来,也是鼓励自己接着学下去. Mean Teach ...
最新文章
- android launchmode singleinstance问题
- Synchronize读脏
- 贴花纸怎么贴_木纹纸怎么贴? 贴木纹纸的方法与详细步骤
- js入门系列演示·数组
- zabbix监控系列(5)之通过trap模式监控网络设备
- linux 关于目录的命令,Linux ---- 关于目录基本命令
- java 时分秒 转换 秒_【Java】 秒转时分秒天
- 联想y7000/r7000 2020款加装固态硬盘及硬盘分区,硬盘测速方法
- 第十一章 文件操作_C语言fopen函数的用法,C语言打开文件详解
- Response.setContentType类型按文件扩展名首字母分类大全
- 随堂记录1--硬件-安装系统-重定向-cp-mv-rm-find-alias-显示20-30行-替换find+sed-selinux-iptables-LANG...
- 22个无版权限制的高清无码图库站
- 郭敬明唯美悲伤的短句分享
- 前端 | Chrome打不开HTTPS个人网站的解决办法
- 计算机学院2022级新生邀请赛(三)
- xbox手柄适配器驱动_将Xbox MN-740无线适配器的固件刷新到D-Link 108AG以支持WPA安全...
- openCV_C++笔记 : ROI感兴趣区域与Rect类
- vue父子组件通信以及非父子组件通信的方法
- 在我们与“黑客帝国”之间,有一座堡垒——OpenAI发展史
- css 滤镜之Gradient