Day 11 : 用於生产的机械学习 - Data Labeling 资料标注

标注资料与特徵工程是处理资料重要的步骤,目的都是为了让模型效果最佳化,标注的一致性、特徵工程到位都对模型影响至关重要。现实生活情境的资料标注向来不是件容易的事情,但资料在变、世界在变,为了 ML 系统的健康,还是好好地面对 dirty work 吧。

标注资料

  • 标注资料的方式可归类为:
    • 处理过程反馈 Process Feedback
    • 人工标注 Human Labeling
    • 半监督学习
    • 主动学习
    • 弱监督学习

处理过程反馈 Process Feedback

  • 譬如网页服务中,预测点击与实际点击的差异,这样的差异可能纪录在服务的 log 里,重要的影响商业决策的可以捕捉特徵作为後续分析。
  • Logstash
    是免费且开源的数据处理管道,能从多个来源采集数据、转换数据,然後发送至所需的储存库中。
  • Fluentd 是一个开源的数据收集器,它可以让您统一数据的收集和使用,以便更好地使用和理解数据。
  • Google Cloud Logging、 AWS ElasticSearch、Azure Monitor 皆可完成相似任务。

人工标注 Human Labeling

  • 相较自动标注,较耗时、成本较高,而且有些资料人看不懂很难标注(像是 CT、MRI 需要专业判断)。好处是比较能掌控。
  • 人工标注通常不是一个人的事情,不是找个研究生/工读生就可以搞定,在不同人、不同时空进行标注,需要有「标注指引」来协助标注一致。
  • 图像的标注:
    • 特徵边界不一致、标签也不一致。
    • 有了「标注指引」方便团队沟通或唤醒回忆,指引包含建议标注方式、正确/错误样态范例。
  • 语音的标注:
    #如果是您要如何让以下记录方式一致?
    
    A: 嗯...下次会议在11/01举行。
    B: 嗯,下次会议再11/1举行。
    C: 下次会议在11月1日举行。
    D: [语助词]下次会议在11月1日举行。
    
    • 例如会议纪录逐字稿,常见的是语助词认知不同,采取统一的文字标注方式(譬如采取 B 方案)整理後较为理想。
  • 杂讯的处理:
    • 文字、语音、影像等资料集,如果遇到杂讯影响模型判断之处,可以再增加栏位描述。
    • 譬如语音判断弱点在室内吵杂处、室外车流处,增加栏位以标示是否在前述情境。
    • 影像在昏暗处、模糊处也可以增加栏位标示情境。
    • 如果是连专业人士都无法准确判断的杂讯,不建议让电脑学习,训练结果较不可控。
  • 标注工具:
    • 举例如 LabelImg可以标注影像,并且导出 XML、CSV、支援YOLO 等格式。

半监督学习 Semi-supervised Labeling

  • 指由人工标注一部份资料(监督式学习),其余资料集透过非监督式学习完成。
  • 应用最好的监督、非监督方法,使用少量的标注提升模型准确性。
  • 李弘毅老师 2016 年 ML Lecture 12: Semi-supervised
    有推导过程可参考。

主动学习 Active learning

  • 选择最重要的样本去标注。
  • 提升预测准确性。

弱监督 Weak supervision

  • Snorkel 是弱监督的方便模组。 Snorkel 为史丹福於2016年发起的专案,让使用者能够以程序方式标记、构建和管理训练数据。

系统化标记作法

小结

  • 人工标注是较可控,但耗时费力又花钱的做法,大量未标注的资料可以透过半监督式学习、主动学习、弱监督等方式取得协助批次标注的效果。
  • 如果可以采取云端平台商的一系列解决方案,会减省资料整合的时间,相对会比开源解决方案较经济,就看评估取舍。

参考


<<:  电子书阅读器上的浏览器 [Day11] 移植 Firefox 阅读模式

>>:  ML是一种方法 | ML#Day3

standardize VS normalize

当我们想要把资料丢进model前,常常会需要把资料标准化,尤其是针对跟距离有关的模型(像是knn, ...

Day29物件导向

物件导向程序设计可以看作一种在程序中包含各种独立而又互相呼叫的物件思想,当我们提到物件导向的时候,它...

学校体温自动上传爬虫(学习记录)

动机 因为疫情,这学习开始学校要求大家每天都要在九点前到学校网站上传体温,我觉得非常麻烦。 动点,果...

Day 12 - PHP SDK: 建立信用卡、虚拟帐号订单

昨天发布了 Sinopac PHP SDK,接着来有几天的篇幅会介绍如何使用。今天先来谈谈建立订单的...

Day 30 - Finite State Machine x XState 推荐学习资源

说到学习资源,最容易学习的方式就是从母语开始 中文文章 Jerry Hong 的部落格 Jerry ...