数据标注
本节课主要讲数据如果没有足够的标注(label)应该怎么办。
出处:https://www.bilibili.com/video/BV1HL41147aL?spm_id_from=333.999.0.0
参考:https://www.bilibili.com/read/cv13774488?spm_id_from=333.999.0.0
一、数据标注思路
最理想的情况就是有足够的数据与足够的标注(label),而你如果想要改善数据的标注(label):
- 当你已经有一部分标注,可以使用半监督学习
- 如果你的标志不够多,但你有钱,可以花钱去众包,找人来标注
- 如果你的标注不够,但你又没钱,你需要弱监督学习
- 实在不行用无监督学习方法
二、半监督学习 Semi-Supervised Learning(SSL)
1.目标对象
半监督学习适用于标注不完整的数据集。虽然有一小部分数据有标注,但是绝大部分数据是没有标注的。比如说浏览一个网站,大多数用户是简单的浏览,虽然形成了很多数据,但是作用不大,没有提供有效的反馈;一小部分用户是可以提供反馈的,你可以清洗这小部分数据,然后进行之后的操作。
2.假设
- 连续性假设:如果一个样本与另一个样本是相似的,那么这两个样本可能是相似的。
- 聚类假设:可能出现数据存在内在的类别, 同一类的数据具有相同的标签,比如用户群体可能会出现相似点。
- 流型假设:可能看起来你收集的数据维度较高,其实实际上是维度低一些的。数据实际上是一个低维度的流型(manifold)。
3.举例——自学习(self-training)
简单过程:
(1)通过已有标注的数据建立一个模型;
(2)用这个模型对未标注的数据来产生一个标签(label);
(3)只保留其中质量最好的标签并将这些数据加到已标注数据内。
(4)迭代上述操作,直至结束。
自学习过程中的模型需要优先考虑标注的准确性,可以使用一些消耗大的模型。
三、数据众包 Crowdsourcing
1.影响因素
使用用众包方法来标注数据时,会受到标数据的人的教育水平、工作态度影响,所以你需要考虑:
- 用户界面尽量方便易懂,需要关注分类人的学历背景,并给予一定的指示。
- 成本,不同任务价格有所区别。
- 质量控制,需要想办法来确保标注的质量。
2.举例——主动学习(Active learning)
常常和半监督学习结合起来,掺杂人的主观分工,在已有的样本中进行标注。
简单过程:
(1)通过已有标注的数据建立一个模型;
(2)用这个模型对未标注的数据来产生一个标签(label);
(3)保留其中置信度高的数据标签并将这些数据加入到已标注数据内;对于置信度低的数据进行人工(众包)标记,放置在数据集中。
(4)迭代上述操作,直至结束。
3.质量控制
可以把一个任务分给多个人来完成,少数服从多数进行标注;也可以用来检验结果。
四、弱监督学习 Weak Supervision
1.评价
半自动的生成标号,比人工标注差一点,但是也可以训练出不错的模型。
2.举例——程序编程
通过总结规律,进行分类。假如我想区分邮件是否恶意,可以通过if语句,如果有“check out”可能是广告……