探讨|使用或不使用机器学习

news2024/11/23 16:55:50

动动发财的小手,点个赞吧!

机器学习擅长解决某些复杂问题,通常涉及特征和结果之间的困难关系,这些关系不能轻易地硬编码为启发式或 if-else 语句。然而,在决定 ML 是否是当前给定问题的良好解决方案时,有一些限制或需要注意的事项。在这篇文章[1]中,我们将深入探讨“使用或不使用 ML”这一主题,首先了解“传统”ML 模型,然后讨论随着生成式 AI 的进步,这种情况将如何变化。

为了澄清一些观点,我将使用以下举措作为示例:“作为一家公司,我想知道我的客户是否满意以及不满意的主要原因”。解决这个问题的“传统”基于机器学习的方法可能是:

  • 获取客户对您的评论(应用程序或 Play 商店、Twitter 或其他社交网络、您的网站……)
  • 使用情感分析模型将评论分为正面/中性/负面。
  • 对预测的“负面情绪”评论使用主题建模来了解它们的含义。
alt

数据有足够的质量和数量吗?

在监督 ML 模型中,训练数据对于模型学习需要预测的任何内容(在本例中为评论中的情绪)是必要的。如果数据质量低(大量错别字、缺失数据、错误……),模型就很难表现良好。

这通常被称为“垃圾输入,垃圾输出”问题:如果您的数据是垃圾,那么您的模型和预测也将是垃圾。

同样,您需要有足够的数据量供模型学习影响需要预测的不同因素。在此示例中,如果您只有负面评论标签,其中包含“无用”、“失望”或类似概念,则模型将无法了解到这些词通常在标签为“负面”时出现。

足够数量的训练数据还应该有助于确保您能够很好地表示执行预测所需的数据。例如,如果您的训练数据无法代表特定地理区域或特定人群,则模型更有可能在预测时无法很好地处理这些评论。

对于某些用例,拥有足够的历史数据也很重要,以确保我们能够计算相关的滞后特征或标签(例如“客户是否在明年支付信用额”)。

标签定义是否清晰且易于获取?

同样,对于传统的监督机器学习模型,您需要一个带标签的数据集:您知道想要预测的最终结果的示例,以便能够训练您的模型。

标签的定义是关键。在此示例中,我们的标签将是与评论相关的情绪。我们可能认为我们只能发表“正面”或“负面”评论,然后认为我们也可能发表“中立”评论。在这种情况下,根据给定的评论,通常会清楚标签是否需要是“正面”、“中立”或“负面”。但是想象一下,我们有“非常积极”、“积极”、“中立”、“消极”或“非常消极”的标签……对于给定的评论,是否很容易决定它是“积极”还是“非常积极” ”?需要避免标签缺乏明确的定义,因为使用嘈杂的标签进行训练将使模型更难学习。

现在标签的定义已经很清楚了,我们需要能够获得足够的、高质量的示例集的标签,这些示例将形成我们的训练数据。在我们的示例中,我们可以考虑手动标记一组评论,无论是在公司还是团队内部,还是将标记外部化给专业注释者(是的,有人全职为 ML 标记数据集!)。需要考虑与获得这些标签相关的成本和可行性。

alt

解决方案的部署是否可行?

为了达到最终效果,机器学习模型的预测需要可用。根据用例,使用预测可能需要特定的基础设施(例如 ML 平台)和专家(例如 ML 工程师)。

在我们的示例中,由于我们希望将模型用于分析目的,因此我们可以离线运行它,并且利用预测将非常简单。然而,如果我们想在负面评论发布后 5 分钟内自动做出回应,那就另当别论了:需要部署和集成模型才能实现这一点。总的来说,重要的是要清楚地了解使用预测的要求是什么,以确保在可用的团队和工具的情况下它是可行的。

有什么利害关系?

机器学习模型的预测总会存在一定程度的误差。事实上,ML 中有一句经典的话:

如果模型没有错误,那么数据或模型肯定有问题

理解这一点很重要,因为如果用例不允许这些错误发生,那么使用 ML 可能不是一个好主意。在我们的示例中,想象一下,我们使用该模型将客户的电子邮件分类为“是否提出指控”,而不是评论和情绪。拥有一个可以对对公司提出指控的电子邮件进行错误分类的模型并不是一个好主意,因为这可能会给公司带来可怕的后果。

使用机器学习在道德上是否正确?

已经有许多经过验证的预测模型基于性别、种族和其他敏感个人属性进行歧视的案例。因此,机器学习团队需要谨慎对待他们在项目中使用的数据和功能,同时也要质疑从道德角度来看,自动化某些类型的决策是否真的有意义。您可以查看我之前关于该主题的博客文章以了解更多详细信息。

我需要可解释性吗?

机器学习模型在某种程度上就像一个黑匣子:你输入一些信息,它们就会神奇地输出预测。模型背后的复杂性就是这个黑匣子背后的原因,特别是当我们与统计中的简单算法进行比较时。在我们的示例中,我们可能无法准确理解为什么评论被预测为“正面”或“负面”。

在其他用例中,可解释性可能是必须的。例如,在保险或银行等受到严格监管的行业。银行需要能够解释为什么向某人授予(或不授予)信贷,即使该决定是基于评分预测模型的。

这个话题与伦理道德有着密切的关系:如果我们不能完全理解模型的决策,就很难知道模型是否已经学会了歧视。

这一切会因为生成人工智能而改变吗?

随着生成式人工智能的进步,许多公司正在提供网页和 API 来使用强大的模型。这如何改变我之前提到的有关 ML 的限制和考虑因素?

  • 数据相关主题(质量、数量和标签):对于可以利用现有 GenAI 模型的用例,这肯定会发生变化。大量数据已用于训练 GenAI 模型。这些模型中的大多数都没有控制数据的质量,但这似乎弥补了它们使用的大量数据。由于这些模型,我们可能不再需要训练数据(同样,对于非常具体的用例)。这被称为零样本学习(例如“询问 ChatGPT 给定评论的情绪是什么”)和少样本学习(例如“向 ChatGPT 提供一些正面、中立和负面评论的示例,然后要求其提供对新评论的看法”)。关于这一点的一个很好的解释可以在 deeplearning.ai 时事通讯中找到。
  • 部署可行性:对于可以利用现有 GenAI 模型的用例,部署变得更加容易,因为许多公司和工具正在为这些强大的模型提供易于使用的 API。如果出于隐私原因需要对这些模型进行微调或将其引入内部,那么部署当然会变得更加困难。
alt

无论是否利用 GenAI,其他限制或考虑因素都不会改变:

  • 高风险:这将继续成为一个问题,因为 GenAI 模型的预测也存在一定程度的错误。谁没有见过 GhatGPT 产生幻觉或提供毫无意义的答案?更糟糕的是,评估这些模型变得更加困难,因为无论其准确性如何,响应听起来总是充满信心,并且评估变得主观(例如“这个响应对我有意义吗?”)。
  • 道德:仍然像以前一样重要。有证据表明 GenAI 模型可能会因用于训练的输入数据而产生偏差(链接)。随着越来越多的公司和功能开始使用这些类型的模型,明确这可能带来的风险非常重要。
  • 可解释性:由于 GenAI 模型比“传统”机器学习更大、更复杂,其预测的可解释性变得更加困难。目前正在进行研究来了解如何实现这种可解释性,但它仍然非常不成熟(链接)。

总结

在这篇博文中,我们了解了在决定是否使用 ML 时需要考虑的主要事项,以及随着生成式 AI 模型的进展,情况会发生怎样的变化。讨论的主要主题是数据的质量和数量、标签获取、部署、风险、道德和可解释性。我希望这个总结在您考虑下一个 ML 计划(或不考虑)时有用!

Reference

[1]

Source: https://towardsdatascience.com/to-use-or-not-to-use-machine-learning-d28185382c14

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/841886.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

opencv基础-38 形态学操作-闭运算(先膨胀,后腐蚀)cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)

闭运算是先膨胀、后腐蚀的运算,它有助于关闭前景物体内部的小孔,或去除物体上的小黑点,还可以将不同的前景图像进行连接。 例如,在图 8-17 中,通过先膨胀后腐蚀的闭运算去除了原始图像内部的小孔(内部闭合的…

PCIe枚举源码分析

枚举的过程也就是RC的系统软件通过配置空间访问来确定以及扫描整个总线拓扑的过程。 PCIe的拓扑结构如下: • Root Complex是树的根,它一般实现了一个主桥设备(host bridge), 一条内部PCIe总线(BUS 0),以及通过若干个PCI bridge扩展出一些r…

性能测试监控指标及分析调优指南

目录 一、哪些因素会成为系统的瓶颈 二、哪些指标做为衡量系统的性能 三、性能测试注意的问题 四、定位性能问题的时候,可以使用自下而上的策略分析排查 五、优化性能问题的时候,可以使用自上而下的策略进行优化 一、哪些因素会成为系统的瓶颈 CPU&…

Vercel 部署的项目发现APIkeys过期了怎么办

好不容易部署的Vercel,发现APIkeys过期了显示,查了查资料发现只要更新下新的apikeys,然后再重新部署下就好了。 重新设置APIkeys 1.1. 进去 Vercel 项目内部控制台,点击顶部的 Settings 按钮; 1.2 点击环境变量Enviorn…

K8S系列文章之 开源的堡垒机 jumpserver

一、jumpserver作为一款开源的堡垒机,不管是企业还是个人,我觉得都是比较合适的,而且使用也比较简单。 二、这里记录一下安装和使用过程。 1、安装,直接docker不是就行 version: 3 services:xbd-mysql:image: mysql:8.0.19restart…

Spring Data JPA源码

导读: 什么是Spring Data JPA? 要解释这个问题,我们先将Spring Data JPA拆成两个部分,即Sping Data和JPA。 从这两个部分来解释。 Spring Data是什么? 摘自: https://spring.io/projects/spring-data Spring Data’s mission is to provide a familiar and cons…

Nginx可视化NginxWebUI

Nginx可视化Web Github:https://github.com/cym1102/nginxWebUI 支持window、linux 安装方式支持docker、window直接运行 jar包cmd运行:port可自行替换 java -jar -Dfile.encodingUTF-8 D:/软件/Nginx-Ui/nginxWebUI-3.6.3.jar --server.port8380 --project.hom…

nvm下载安装配置

一、作用 nvm是node版本管理的工具,具有管理、下载、切换node版本等能力。经常不同项目需要依赖不同版本的node,此时nvm就能有效的解决node版本切换的问题。 二、nvm下载安装配置 (1)安装包地址 https://github.com/coreybutl…

Net强大混淆和代码保护 LogicNP Crypto Obfuscator

.Net 的强大混淆和代码保护确实有效! .Net 汇编代码保护和混淆 自动异常报告 优化和性能改进 更小和简化的部署 您希望您的混淆器... 使用高级混淆技术确保对您的代码和知识产权提供最佳保护。使用智能规则和自动排除 避免常见混淆问题。 拥有简单的用户…

P2824 [HEOI2016/TJOI2016] 排序

题目 思路 直接模拟排序肯定会TLE,所以我们想一种离线的方法:01排序 利用二分答案check一下d,设序列中大于等于d的数为1,小于d的数为0 完成后再进行排序:这样升序排列就是将0放前面1放后面,降序排列则相反…

Linux下C/C++的gdb工具与Python的pdb工具常见用法之对比

1、gdb和pdb分别是什么? 1.1、gdb GDB(GNU Debugger)是一个功能强大的命令行调试工具,由GNU项目开发,用于调试C、C等编程语言的程序。它在多个操作系统中都可以使用,包括Linux、MacOS和Windows&#xff0…

C#与C/C++交互(1)——需要了解的基础知识

【前言】 C#中用于实现调用C/C的方案是P/Invoke(Platform Invoke),让托管代码可以调用库中的函数。类似的功能,JAVA中叫JNI,Python中叫Ctypes。 常见的代码用法如下: [DllImport("Test.dll", E…

关于游戏的笔记

关于搭建秦时明月2一键端,并且开启秘境神秘商人东海寻仙幻化 1.该游戏下主要的目录 gm端 服务框架 服务端 2.修改对应的文件 C:\qs\Q2Server\server\conf_common\ManagerAddress.xmlC:\qs\Q2Server\server\conf_manager\GateServer.xml修改ip 3.启动gm startup…

SpringCloud(32):Nacos配置管理应用于分布式系统

1 从单体架构到微服务 1.1 单体架构 Web应用程序发展的早期,大部分web工程师将所有的功能模块打包到一起并放在一个web容器中运行,所有功能 模块使用同一个数据库,同时,它还提供API或者UI访问的web模块等。 尽管也是模块化逻辑…

事务,不只ACID | 京东物流技术团队

1. 什么是事务? 应用在运行时可能会发生数据库、硬件的故障,应用与数据库的网络连接断开或多个客户端端并发修改数据导致预期之外的数据覆盖问题,为了提高应用的可靠性和数据的一致性,事务应运而生。 从概念上讲,事务…

ML之特征工程进阶

术语表 术语 释义 sklearn fraternization 特征工程 Feature scaling 特征缩放 Feature Retrieval 特征检索 NLP 全称: Natural Language Processing 自然语言处理 Corpus 语料库 特征工程概述 定义 特征工程并非是一个问题,而是关于特征的一系列问题…

这应该是最全的,Fiddler手机App抓包详解,看完还不会来找我...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 什么是抓包&#…

Centos7配置网卡信息及固定IP

找到网卡配置文件 Centos7之后的网卡配置文件统一放在/etc/sysconfig/network-scripts,在这个目录会找到以ifcfg开头的,和本机网卡数量对应的配置文件,如下: 执行该命令,进入该目录: cd /etc/sysconfig/network-scripts 再执行该命令 ll …

DAY02_Spring—第三方资源配置管理Spring容器Spring注解开发Spring整合Mybatis和Junit

目录 一 第三方资源配置管理1 管理DataSource连接池对象问题导入1.1 管理Druid连接池1.2 管理c3p0连接池 2 加载properties属性文件问题导入2.1 基本用法2.2 配置不加载系统属性2.3 加载properties文件写法 二 Spring容器1 Spring核心容器介绍问题导入1.1 创建容器1.2 获取bean…

Killing LeetCode [83] 删除排序链表中的重复元素

Description 给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。 Intro Ref Link:https://leetcode.cn/problems/remove-duplicates-from-sorted-list/ Difficulty:Easy Tag&am…