在工业生产活动中,有一类常见机器学习问题,就是如何基于有噪声样本标签训练模型,以进行故障检测和分类。

先解释下什么是有噪声样本标签,它指的是训练模型用的样本标签并非完全准确,部分样本的标签有标错的情况。

对于这个问题,为了便于大家理解,我们以一个成功实践的项目为例,以实例为大家讲述如何实现。

一、人工测量电子开关的问题

在大型工业设备中,有一类广泛使用的电子开关,这些电子开关使用久了,会逐渐老化故障,进而影响设备运行,因此需要替换。

目前业内的常见做法是首先进行一系列的人工测量,然后通过经验来判断电子开关是否已经损坏,并将损坏的电子开关替换。这里面测量数据只是用作参考,实际上并没有明确的损坏标准,操作中还是以经验为主。

这种方式其实是存在很多问题的。

比如,人和人之间是有个体差异的,每个人的经验是不一样的,这样就导致最终的判断结果也没法相同。

就有可能导致本来正常的电子开关,被判断为坏的或者即将损坏的,以此进行替换就会造成浪费。

同样的,也有可能把坏的或者即将损坏的判断为正常的电子开关,继续使用,导致更大的损失。

因此,如果能够利用机器学习的技术,避免人工经验判断的误差或错误,提升判断的准确性,就能给我们的客户带来很大的价值。

于是,我们开始考虑通过机器学习如何去实现?

二、如何避免训练出“有噪声”的模型

对于机器学习来说,解决这类问题的难点在于,样本数据的标签是有噪声的或者说不完全准确的。

如果直接使用这些样本进行训练,无论我们采用哪种分类算法(决策树、逻辑回归 ,亦或是近年较为流行的 XGBoost),最终训练出的模型都是对噪声样本拟合较好的“有噪声”的模型。

如果我们用这样的模型去判断和分类,准确度是很难超过经验丰富的“老司机”的,所以这样的模型并没有多大的意义。

那么基于永洪的产品 Yonghong Z-Suite ,我们可以怎么做呢?

对Z-Suite比较熟悉的朋友都知道,我们的产品里内置了常见的算法模型(分类、聚类、决策树、神经网络、关联模型、时序预测等),采用图形化操作,可以通过简单的拖拽,快速实现典型数据挖掘算法。

除此之外,还内置了R语言支持,提供了强大的模型扩展能力。

因此,我们借助这一能力,通过R语言模型扩展实现的算法,解决了有噪声样本标签分类的问题。

我们扩展实现的这种算法,是根据MIT的一篇论文(链接:https://arxiv.org/abs/1705.01936)提供的思路,将其与 XGBoost 分类算法结合而成的。

这种算法的思路如下:

首先,训练模型的样本数据来自于历史测量数据,数据的标签都是人工根据经验判断的,所以会发生标签误判的情况,换句话说,训练模型使用的是有噪声的样本数据。

然后使用常规分类算法比如 Logistic Regression、Bayes,SVM、XGBoost 等在有噪声的样本数据集上训练出分类器;

分类器对预测的正负标签给出概率(0~1),概率越大说明预测为正标签的可信度越高,概率越小说明预测为负标签的可信度越高,概率接近0.5的预测标签的可信度并不高,可能是有噪声的数据;

假定有噪声的数据在数据集中占比不大,如果剔除可信度不高的数据,用剩下的相对可靠的数据训练分类模型,那么分类器的准确度理论上将有所提高。

三、排除不可靠数据,提高模型准确度

基于以上思路,我们在 Yonghong Z-Suite 中实现的分类算法步骤如下(详细算法推导论证过程可参照上面提到的论文):

通过选定的二分类算法(我们使用的是XGBoost),利用有噪声样本数据进行模型训练,并得到每个样本x预测结果为true(true表示电子开关合格,false表示不合格,以下同)的概率g(x)。
计算样本数据中标记为true的比率Ps1(即样本数据中电子开关标记合格的百分比)。
计算门限概率LBy=1,如果上面第1步的预测概率g(x)大于LBy=1,则表示该样本的真实标签很可能是true(合格);同理计算UBy=0,如果上面第1步的预测概率g(x)小于UBy=0,则表示该样本的真实标签很可能是false(不合格)。LBy=1定义为标记为true的样本数据的g(x)的期望;UBy=0定义为标记为false的样本数据的g(x)的期望
根据上面第2,3步得出的Ps1,LBy=1和UBy=0,计算出样本数据中的真实标签为true,但是被误标记为false的比率ρ0 =P(s=0|y=1),以及样本数据中的真实标签为false,但是被误标记为true的比率ρ1=P(s=1|y=0)。这里面y表示真实标签,s表示样本标签。
然后根据贝叶斯公式计算出样本数据中标记为不合格但是实际合格的概率π0=P(y=1|s=0)和标记为合格但是实际不合格的概率π1=P(y=0|s=1)。
在标记true的样本数据中剪除g(x)最小的比例为π1的那些样本(正样本pruning过程);在标记false的样本数据中剪除g(x)最大的比例为π0的样本(负样本pruning过程);这两类样本被认定为不一致的可能对预测结果产生干扰的错误标记样本,因此需要移除。
对剩余样本加权后(因为有样本移除,所以需要对剩余样本进行加权修正),重新训练模型。
根据生成模型对新的电子开关测试数据进行计算,判断其合格或不合格。
该算法通过排除训练模型中不可靠(不一致)的数据,提升了剩余数据的质量,并利用这些数据进行模型训练,因而提高了模型的准确度,有效的解决了有噪声样本训练带来的模型不准的问题。

四、预测准确度提升20%

我们将该模型应用在上述电子开关测试项目,并将其与电子开关进行二次测试(对换下的电子开关的深入测试,基本可以认为是真实标签)的结果进行对比,发现预测准确度从人工预测的60%~70%提升到了80%左右,整体的预测准确度提升了近20%,这为我们的客户带来了十分明显的价值,客户对我们的这一算法赞赏有加。

在此基础上,我们将 Logistic Regression、Bayes 和 XGBoost 三种模型集成到一起,作为 RankPruning 算法的基础模型。测试结果表明,模型精度在 XGBoost 基础上,又有了近2%的额外的小幅提升。

亚瑟·克拉克说过:“任何足够先进的技术都等同于魔术。”

机器学习在今天互联网的环境里,可能已经不是什么新鲜事了,但是对于传统的工业和制造业来说,能够大幅度提升效率、节约成本的技术,就是能为他们带来价值的。

同样的,我们也觉得机器学习的真正应用不是通过概念或者思想的方式,而是通过实践。我们在把机器学习技术实际落地、想办法为客户创造价值的过程中,也在逐渐对机器学习的理解进入更深的层次。

我们将这个经验分享出来,目的是帮助大家在基于有噪声样本标签,进行故障检测和分类的时候,能够有更科学和精确的方式,也为大家在大数据领域机器学习的应用提供一些具有参考价值的案例。

干货:如何利用机器学习实现有噪声标签样本分类模型?相关推荐

  1. 【多标签文本分类】融合CNN-SAM与GAT的多标签文本分类模型

    ·阅读摘要:   在本文中,作者基于CNN.Attention.GAT提出CS-GAT模型,在一些通用数据集上,表现良好. ·参考文献:   [1] 融合CNN-SAM与GAT的多标签文本分类模型   ...

  2. 【机器学习笔记14】softmax多分类模型【下篇】从零开始自己实现softmax多分类器(含具体代码与示例数据集)

    文章目录 推荐阅读 前言 关于代码 第一部分 Softmax分类器相关公式与步骤 相关公式 梯度下降步骤 数据集获取 从零开始实现softmax多分类器 导入数据 初始框架 step1:将label向 ...

  3. C++利用opencv调用pytorch训练好的分类模型

    pytorch保存模型 import torch.onnxd = torch.rand(1, 3, 224, 224,dtype=torch.float,device = 'cuda') m = mo ...

  4. DivideMix: Salesforce提出使用半监督学习大幅改进含噪声标签的学习

    点击我爱计算机视觉标星,更快获取CVML新技术 分享一篇今天新出的论文DivideMix: Learning with Noisy Labels as Semi-supervised Learning ...

  5. Python 3 利用机器学习模型 进行手写体数字检测

    0.引言 介绍了如何生成手写体数字的数据,提取特征,借助 sklearn 机器学习模型建模,进行识别手写体数字 1-9 模型的建立和测试. 用到的几种模型: 1. LR,Logistic Regres ...

  6. python机器学习手写字体识别_Python 3 利用机器学习模型 进行手写体数字检测

    0.引言 介绍了如何生成手写体数字的数据,提取特征,借助 sklearn 机器学习模型建模,进行识别手写体数字 1-9 模型的建立和测试. 用到的几种模型: 1. LR,Logistic Regres ...

  7. 多标签文本分类研究进展概述

    多标签文本分类研究进展概述 1.多标签文本分类的研究还有很大的提升空间. 2.多标签文本分类的基本流程,包括数据集获取.文本预处理.模型训练和预测结果: 3.多标签文本分类的方法:传统机器学习的方法和 ...

  8. 论文研读-机器学习可视化-面向可视解释的零样本分类主动学习

    面向可视解释的零样本分类主动学习 1 文章概要 1.1 摘要 1.2 引言 1.2.1 零样本分类 1.1.2 解决方案 1.2.3 文章贡献 1.3 组织结构 2 相关工作 3 用于零样本学习的人机 ...

  9. 【多标签文本分类】Semantic-Unit-Based Dilated Convolution for Multi-Label Text Classification

    ·阅读摘要:   在本文中,作者基于Seq2Seq模型,提出多级膨胀卷积.混合注意力机制两点来加以改进,应用于多标签文本分类,提高了效果. ·参考文献:   [1] Semantic-Unit-Bas ...

最新文章

  1. 近朱者赤,近墨者还是赤
  2. property classmethod staticmethod的用法
  3. jvm性能调优 - 02JVM中内存区域
  4. 相机开发:海康板卡相机开发
  5. P4331 [BalticOI 2004]Sequence 数字序列(左偏树)
  6. PHP超全局变量$_SERVER
  7. linux下查看cpu信息
  8. maven不引入parent_Maven从入门到放弃
  9. centOS 6.5上安装mysql5.7压缩版
  10. Elasticell-聊聊Raft的优化
  11. Cterm里面自动发帖的Python脚本
  12. [深度学习从入门到女装]V-Net
  13. 综合布线系统在计算机信息系统中属于,计算机信息系统综合布线问题
  14. 联友科技软件测试,联友科技
  15. [单刷APUE系列]第十二章——线程控制
  16. 五、Netty核心技术之线程模型讲解
  17. 你以为买到了牛逼的Python课程,其实被割了韭菜!
  18. 机器学习实战(3)——分类
  19. 有关meta learning 要读的论文清单
  20. 生物科学与计算机科学计算案例,北京林业大学计算生物学与生物信息学考研经验-生物科学技术辅导...

热门文章

  1. Linux查找文件内容
  2. C# Web实时消息后台服务器推送技术---GoEasy
  3. 个人作业-Week2:案例分析
  4. WPF ---- ​xmal 解析器没有办法解析类的TypeConverter
  5. iptables中文man文档
  6. a different object with the same identifier val...
  7. docker commit 命令
  8. Qt编程之右键单击QTreeWidgetItem弹出菜单
  9. RDIFramework.NET ━ 9.5 组织机构管理 ━ Web部分
  10. led显字风扇原理?