半监督学习
1.有监督学习存在的意义
生活中大多数数据都是未标记的,而有标记的数据很少,为了解决有标签数据不足的问题创造了半监督学习方法。
其价值在于:
1、降低了对有标签数据的依赖,尤其是项目处于冷启动时
2、未标签数据的分布能提供很多信息,对模型迭代具有指导意义
3、为标签数据容易获取,数据量大,利用得当可以产生很大价值
2.半监督方法
2.1自学习
流程如下:
1、利用labeled data训练一个模型,训练方法没有任何限制
2、利用训练好的模型,对unlabled data进行predict,得到标注,称为pseudo label
3、从pseudo label中选取一些样本,放入labelled data中。选取方法也是自定义的,比如可以放入置信度比较高
4、重新训练模型,然后继续迭代。
2.2基于熵的正则化方法
思想:模型对数据的预测的概率分布尽量集中在某一个类别上,使模型区分度高,效果好。
用熵来衡量概率分分布是否在某一个类别上,熵越小代表概率分布越集中。
于是我们半监督学习的目标就明确了:
1、labeled data上,模型loss要尽量小。比如分类任务的cross-entropy
2、unlabeled data上,entropy要尽量小,使得概率分布尽量集中
目标函数:
2.3聚类
思想:利用相似度来使用unlabeled data的方法,计算某个unlabeled data和所有labeled data的相似度,和谁最接近,就使用谁的类别。
步骤:
1、利用聚类算法对所有数据进行聚类
2、同一个聚类的,认为具有同一个类别。利用labeled data获取数据集群的类别,从而得到该数据集群内unlabeled data的类别。
3、再利用得到的这些labeled data训练模型
2.4基于图的方法
思想:利用数据间的关系,结合K近邻等算法,将离散的数据构建为一张图,每个数据为图的节点,数据间的关系用图的边表示,边可以有权重。
连通在一起的节点被认为属于同一个类别,由其中labeled data节点,就可以知道它们所属的类别。
3.总结
半监督学习可以提高数据的利用效率,特别在项目冷启动环节。结合自学习、熵的正则化、聚类、图方法对数据进行标注,加快模型建立速度。