1、半监督学习
今天在阅读一篇论文时了解了这个之前一直不太清晰的概念。下面是查阅了相关资料后对半监督学习的理解。如有错误,望更正。
半监督学习是一种介于监督学习和无监督学习之间的学习凡是,我们都知道,在监督学习中,样本的类比、类别标签都是已知的,学习的目的是找到样本的特征与类别标签之间的联系。一般来讲训练样本的数量越多,训练得到的分类器的分类精度也会越高。但是在很多现实问题当中,一方面是由于人工标记样本的成本很高,导致有标签的数据十分稀少。(如果是让算法工程师亲自去标记数据,会消耗相当大的时间和精力;也有很多公司采取雇佣一定数量的数据标记师,这种做法也无疑是耗费了大量金钱在数据标记上。)而另一方面,无标签的数据很容易被收集到,其数量往往是有标签样本的上百倍。因此,半监督学习(这里仅针对半监督分类),就是要利用大量的无标签样本和少量带有标签的样本来训练分类器,解决有标签样本不足的难题。
2、self-training
self-training可能是最早提出的半监督学习方法,最早可以追溯到1965.self-training相比于其他半监督学习方法的优势在于简单以及不需要任何假设。
上面是self-training的算法流程图,简单介绍一下:
- 1、将初始化的有标签数据作为初始的训练集(Xtrain,ytrain)=(X_l,y_l),根据该训练集训练得到一个初始分类器 C i n t C_{int} Cint
- 2、利用 C i n t C_{int} Cint对无标签数据集 X u X_u Xu进行分类,选出最有把握的样本 X c o n f , y c o n f X_{conf},y_{conf} Xconf,yconf(可以设定阈值来选择)
- 3、从 X u X_u Xu中去掉 X c o n f , y c o n f X_{conf},y_{conf} Xconf,yconf
- 4、将 X c o n f , y c o n f X_{conf},y_{conf} Xconf,yconf加入到有标签数据集中, ( X t r a i n , y t r a i n ) ← ( X l , y l ) ∪ ( X c o n f , y c o n f ) (Xtrain,ytrain)←(X_l,y_l)∪(X_{conf},y_{conf}) (Xtrain,ytrain)←(Xl,yl)∪(Xconf,yconf)
- 5,根据新的训练集训练新的分类器,重复步骤2到5直到满足停止条件(例如所有无标签样本都被标记完了)
最后得到的分类器就是最终的分类器。
3、协同学习 (co-training)
和自我学习一样,协同学习的目的也是为了用现有的有标签的数据去标记其他数据。具体步骤如下:假设现在有数据集,每组数据有2个特征(feature): x1 和 x2。我们把其中有标签的那部分数据集称为L (表示为[x1,x2,y]),没有标签的数据集称为U (表示为[x1,x2])。
初始化数据,把L 分为L1 ([x1,y]) 和L2 ([x2,y])。这里注意,L 是一个数据集,里面包涵了很多数据,我就顺便提醒一下。
重复:a) 分别用L1和L2训练出一个模型 F1和F2
b) 分别用模型F1和F2去预测U (给U打标签),同样这里也是只选出最有把握的一些结果。
c) 把F1预测的结果放入L2,把F2预测的结果放入L1 (交叉放置)
d) 更新L 和 U
- 直到数据集不发生变化 (和自我学习一样)
4、参考资料
1)半监督学习之self-training
2)半监督分类的方式:self-training和co-training的算法简述
今天的文章半监督学习概述分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/6054.html