其他分享
首页 > 其他分享> > 为机器学习项目设定和衡量目标

为机器学习项目设定和衡量目标

作者:互联网

为机器学习项目设定和衡量目标

这篇文章涵盖了我们生产中的机器学习课程的“目标和成功措施”讲座的一些内容。其他章节见 表中的内容 .

由于高度重视机器学习,许多项目专注于优化 ML 模型以提高准确性。但是,在构建生产系统时,机器学习组件有助于系统的总体目标。要成功构建产品,了解整个系统的目标和系统内模型的目标都很重要。此外,理想情况下,我们以可衡量的方式定义目标,以便我们可以评估我们是否实现了这些目标,或者至少在实现目标方面取得了进展。在本章中,我们将讨论如何在不同层次上设定目标,并讨论如何定义和评估措施。

运行示例:自助法律聊天机器人

考虑一下您正在通过向律师和律师事务所提供营销服务来建立业务。具体来说,您提供的工具可以让您的客户集成到他们的网站中以吸引客户。除了社交媒体活动、问答网站和流量分析等更传统的机制之外,您还计划提供一个聊天机器人,潜在客户可以在其中通过文本聊天提出问题,并可能收到指向他们问题的初始指针,例如,查找表格申请离婚并回答有关儿童监护权规则的问题。聊天机器人可能会直接回答一些问题,否则会要求提供联系信息以将潜在客户与律师联系起来,并且可能还会安排会议。您已经有了人工操作员的版本,但这非常昂贵,您希望使聊天机器人自动化。您希望提供一个现代的聊天机器人,它使用自然语言技术来理解用户的问题并从知识数据库中提供答案,而不是老式的结构化聊天机器人遵循预先配置的文本选择的流程图。

您计划基于许多可用的聊天机器人商业框架之一构建此框架,其中包含您从过去版本中与人工操作员一起获得的训练数据。任务包括了解用户谈论的内容,并通过后续问题和答案引导对话。

Example of a chatbot trying to engage with a user.

设定目标

设定清晰易懂的目标有助于确定项目的方向,并将从事项目不同部分的所有团队成员聚集在共同的愿景下。在许多项目中,所有团队成员的目标可能是隐含的或不明确的,因此一些成员可能只关注他们的局部子问题,例如优化模型的准确性,而不考虑更广泛的背景。当产品的想法从新的机器学习创新中出现时,例如寻找智能聊天机器人的新应用,团队可能会被技术的兴奋所迷惑,并且从不退后一步思考产品的目标他们正在围绕模型进行构建。

从技术上讲,目标是关于意图的规定性陈述。通常实现目标需要多个代理的合作,其中代理可以是人类、各种硬件组件以及现有和新的软件组件。目标通常足够笼统,足以被广泛的利益相关者理解,包括负责不同组件的团队成员,以及客户、监管机构和其他相关方。正是目标的这种相互关联的性质,使得理解目标对于实现正确的结果和以有意义的方式协调各个参与者非常重要。

建立高层次的项目目标通常是引出系统需求的第一步,并且在收集需求、设计解决方案或在生产中观察系统时,可能会定期重新审视这些目标。目标对于设计过程也很有用,在分解系统并将职责分配给组件时,我们可以确定组件目标并确保它们与整体系统目标保持一致。目标通常为更具体的技术要求和设计决策提供依据。目标还为我们如何评估系统在评估中的成功提供了初步指导,以衡量我们实现目标的程度。例如,将自助法律聊天机器人的明确目标传达给研究模型的数据科学家将提供有关哪些模型功能和质量很重要以及它们如何支持系统用户和开发系统的组织的背景信息。

不同层次的目标

可以在多个层面讨论目标,解开不同的目标有助于更好地理解系统的目的。当被问及软件系统的目标是什么时,开发人员通常会根据他们的软件为用户提供的服务给出答案,通常是帮助用户完成某些任务或自动化某些任务——例如,我们的法律聊天机器人试图回答法律问题。但是,当

为了理清不同的目标,对不同层次的目标提出质疑并讨论不同目标之间的关系是很有用的。我们发现 Hulten 的目标分类很有用(并建议在第 4 章进行完整的讨论) 构建智能系统 ):

组织目标: 最一般的目标通常是在构建软件系统的组织的组织级别。在非营利组织之外,组织目标几乎总是与金钱相关:收入、利润或股价。对于非营利组织,它们可​​能与组织的特定使命有关,例如增加动物福利、减少二氧化碳排放、改善社会正义和治愈疾病。我们聊天机器人场景中的公司是一家通过许可营销服务来追求短期或长期利润的营利性企业。

由于组织目标通常是高层次的,并且追求现在难以衡量的长期目标,因此通常 领先指标 被用作更容易观察到的代理措施,预计与未来的组织成功相关。例如,在聊天机器人场景中,获得聊天机器人许可的律师数量可以很好地代表预期的季度利润,新许可和取消许可的比率可以洞察收入趋势,推荐和客户满意度是未来趋势的潜在指标在许可证销售中。在许多组织中,领先指标也可能被定义为 关键绩效指标 .

系统目标: 在构建系统时,我们通常可以根据系统应该产生的具体结果来阐明系统的目标。例如,自助法律聊天机器人的目标是通过提供现代实用的网页和帮助律师与潜在客户建立联系来提升个人律师的目标,但也只是以简单快捷的方式帮助潜在客户的实际目标法律问题。系统目标描述了系统试图在行为或质量方面实现的目标。

用户目标: 用户通常使用具有特定目标的软件系统。在某些情况下,例如聊天机器人示例,我们有不同类型的用户:一方面,律师是许可聊天机器人以吸引新客户的用户。另一方面,提出法律问题的客户也是希望获得法律建议的系统用户。我们可以尝试衡量系统对其用户的服务程度,例如生成的潜在客户数量或表明他们的问题已被机器人充分回答的客户数量。我们还可以探索用户对系统特定功能的目标,例如,系统在自动化简单任务方面的有效程度,例如为小额索赔法院的邻里纠纷准备文件。

除了直接用户外,往往还有一些人间接受到系统的影响,或者对系统有期望的人。在我们的聊天机器人示例中,这可能包括法官和被告,他们可能面临越来越多的合法聊天机器人使用支持的论点,但也包括可能担心谁可以提供法律建议的监管机构。了解他们的目标也将有助于我们引出对系统的更详细要求,我们将在下一章讨论。

模型目标: 从机器学习模型的角度来看,目标几乎总是优化预测的准确性。模型质量可以用测试数据离线测量(我们将在本章讨论 模型质量:测量预测精度 ),但我们通常也可以通过观察遥测来近似生产环境中的准确度(参见章节 生产质量保证 )。在我们的聊天机器人场景中,我们可能会尝试衡量我们的自然语言处理组件在多大程度上正确理解客户的问题并明智地回答它。

目标之间的关系

各个级别的目标通常不是独立的。满意的用户往往是回头客,可能会向其他人推荐我们的产品,从而帮助获得利润。如果系统和用户目标一致,那么更好地满足其目标的系统可能会使用户更快乐,并且用户可能更愿意与系统合作(例如,对提示做出反应)。更好的模型有望使我们的用户更快乐或以各种方式为使系统实现其目标做出贡献。在我们的聊天机器人场景中,我们希望更好的自然语言模型带来更好的聊天体验,让更多的潜在客户与系统交互,为律师带来更多的客户联系,让律师开心,然后他们续签执照,……

Different kinds of goals often support each other, but they do not always align.

请注意,用户目标、模型目标、系统目标和组织目标并不总是一致的。模型准确性提高 5% 不太可能直接转化为用户满意度提高 5% 和利润提高 5%。在章节中 从模型到系统 ,我们已经从 预订网站 ,其中许多实验中改进的模型并没有转化为改进的酒店预订(组织目标的领先指标)。在聊天机器人的例子中,这种潜在的冲突更加明显:更先进的自然语言能力和模型的法律知识可能会导致更多的法律问题可以在不涉及律师的情况下得到解答,从而使寻求法律建议的客户感到高兴,但可能会减少随着越来越少的客户签订服务合同,律师对聊天机器人的满意度。提供基本能力而不必准确处理极端案例可能是完全令人满意的,因为失败是可以接受的 一个足够好的模型可能就足够了 .

清楚地确定各个级别的目标并了解它们之间的关系通常是一个好主意。将模型目标置于用户和组织目标的背景下尤为重要。平衡相互冲突的目标可能需要进行一些深思熟虑和协商,这在需求工程中是很正常的,我们将在下一章中探讨。首先识别这些冲突是很有价值的,因为它允许明确的讨论和设计来解决它们。

需求工程师对目标的分析远远超出了我们在此所能描述的范围。例如,有几个符号 目标建模 ,描述目标(在不同层次和不同重要性)及其关系(各种形式的支持和冲突以及替代方案),并且有正式的过程 目标细化 明确地将目标相互关联,直至细粒度的需求。对于想要更深入地探索目标和需求的项目,我们建议您探索相关文献并与需求工程专家合作。

简而言之测量

如果目标是可衡量的,那么目标可以成为指导项目的有效控制,使我们能够评估我们能够在多大程度上实现目标或新功能(例如机器学习组件提供的功能)对我们的贡献有多大组织目标。

测量 不仅对目标很重要,而且对贯穿整个开发过程的各种活动也很重要。我们将在本书中的许多主题的背景下讨论测量,包括建立和评估质量要求以及讨论设计备选方案(第 1 章)。 机器学习组件的质量属性 ),评估模型的准确性(章节 模型质量 )、监控系统质量(章节 运营规划 生产质量保证 ),评估公平性(第 公平 ),并监控开发进度(第 数据科学和软件工程过程模型 )。也就是说,度量对于所有类型的活动都很重要,因此,在本章的其余部分,我们将简要深入探讨度量:如何设计度量、常见陷阱以及如何评估度量。

一切都是可衡量的

在最简单的形式中,测量只是通过某种规则将数字分配给对象或事件的属性。更实际地,我们执行测量以了解有关对象或事件的某些信息,以便做出某些决定。因此,Douglas Hubbard 将测量定义为 “基于一个或多个观察结果定量表达的不确定性减少。”

在他的书中 如何测量任何东西 ,” 哈伯德提出这样的论点,即我们在决策中足够关心的所有事情都可以以某种形式衡量,即使它通常被认为是 “无形” 但并非每次测量都是经济或精确的。这个论点本质上是这样的:(1)如果我们 关心 关于一个属性,那么它必须是 可检测 .这包括质量、风险和安全性等属性,因为我们更关心实现某些结果而不是其他结果。 (2) 如果它完全可以检测到,即使只是部分检测到,那么一定有某种方法可以检测到 区分好坏 ,因此我们可以分配数字。这些数字并不总是准确的,但它们为我们提供了额外的信息,以减少我们的不确定性,这有助于我们做出更好的决策。

通常,我们可以投入更多精力来获得更好的措施。例如,在决定聘请哪位候选人来开发聊天机器人时,我们可以依靠容易收集的信息,例如大学成绩或过去的工作清单,但我们也可以通过请专家判断他们过去工作的例子来投入更多的精力或要求候选人解决​​一些重要的样本任务,可能需要延长观察期,甚至雇用他们进行延长试用期。通常,通过对测量的更多投资,我们可以改进我们的测量,从而减少决策中的不确定性,从而使我们能够做出更好的决策。最后,在测量上投入多少取决于做出更好决策的预期回报。例如,做出更好的招聘决定可以带来巨大的好处,因此在决定今晚晚餐的地点时,我们可能会在评估候选人方面投入比衡量餐厅质量更多的投资。

在软件工程和数据科学中,测量普遍用于支持决策制定。例如,在决定资助哪个项目时,我们可能会衡量每个项目的风险和潜力;在决定何时停止测试时,我们可能会衡量我们发现了多少错误或我们已经覆盖了多少代码;在决定哪个模型更好时,我们会测量测试数据或生产中的预测准确性。

关于术语。物化 通常是将观察结果转化为数字的过程——它是所有测量的基础。一个 措施 和一个 公制 指衡量某事的方法或标准格式,例如分类器的误报预测百分比或每周编写的代码行数。度量和度量这两个术语经常可以互换使用,本书中我们将只使用度量这个术语,尽管作者会做出区分,例如度量源自多个度量或度量是标准化度量。最后, 操作化 是指识别和实施测量某些因素的方法,例如,从日志文件中识别误报预测或从版本控制系统中识别每个开发人员更改和添加的行。

定义措施

在整个开发生命周期中,我们经常使用大量的措施。对于许多任务,已经存在公认的测量方法,例如测量分类器的精度、测量网络延迟或测量公司利润。但是,为项目定义自定义措施或实施措施的自定义方式同样常见,例如衡量通过聊天机器人满意地回答的客户请求数量或通过调查观察到使用聊天机器人衡量律师的满意度。除了目标设定之外,我们将特别看到在评估生产中的模型时需要创造性地创建度量,正如我们将在本章中讨论的那样 生产质量保证 .

准确地说明措施。 一般来说,准确描述度量以避免歧义是一种很好的做法。这对于目标设定很重要,特别是对于跨团队交流假设和保证,例如将模型的质量传达给将模型集成到产品中的团队。作为一个经验法则,想象一个争议,你需要在法官面前争论你实现了该措施的某个目标,并且其他人负责独立重新实施该措施——你希望对措施的描述准确足以对这些设置有合理的信心。考虑以下示例:

对度量的描述很少是完美的和没有歧义的,但更好的描述会更准确。在可用的情况下依靠定义明确且普遍接受的标准措施是一个好主意。

组成措施。 措施通常由其他措施组成。尤其是产品质量、用户满意度或开发人员生产力等更高级别的衡量标准通常是多方面的,并且可能会考虑许多不同的观察结果,这些观察结果可能会以不同的方式进行权衡。例如,众所周知,“软件可维护性”很难衡量,但可以将其分解为“可纠正性”、“可测试性”和“可扩展性”等概念,然后更容易找到更具体的方法来定义衡量标准,例如将可测试性衡量为实现语句覆盖所需的工作量。

Example of developing a measure for code maintainability from lower-level measures.

在制定新措施时,尤其是更复杂的组合措施时,许多研究人员发现 目标-问题-度量方法 有用:首先明确确定措施的目标,然后确定有助于回答目标是否实现的问题,最后确定有助于回答问题的具体措施。该方法还鼓励明确利益相关者和背景因素。这种结构化方法的主要好处是它避免了临时措施并专注于易于量化的内容,而是专注于自上而下的设计,从明确定义措施的目标开始,然后维护对特定测量活动如何收集对该目标实际有意义的信息的清晰映射。

测量。 一旦我们定义了一个衡量标准,我们就可以真正走出去衡量事物。为此,我们需要收集数据并根据我们的度量从该数据中得出一个值。通常,实际测量需要三个要素:

  1. 措施: 首先,度量本身,描述了我们试图捕捉的内容,如上所述。
  2. 数据采集​​: 一种从系统收集数据的方法,可能会更改系统以收集其他数据。
  3. 运营: 从数据中计算度量的机制。

在某些情况下,数据收集和操作很简单,因为从测量中可以明显看出需要收集哪些数据以及如何解释数据——例如,测量当前许可我们软件的律师数量可以通过查找来回答我们的许可证数据库和衡量测试质量的分支覆盖率标准工具(如 Jacoco)存在,甚至可能在测量本身的描述中被提及。在其他情况下,应该测量什么是很清楚的,但我们需要确定如何使用我们拥有的数据实际操作测量 - 例如,如何从聊天机器人产生的服务器日志中识别聊天机器人的响应时间,可能会改变聊天机器人软件来创建更多我们可以分析的日志 生产质量保证 .

评估测量的质量

创建新的衡量标准并加以实施很容易,但衡量标准是否真正表达了我们打算衡量的内容以及我们是否得到有意义的数字并不总是很清楚。

准确度和精度。 对任何测量过程进行推理的一个有用区别是区分准确性和精度(在评估模型质量的情况下,不要与召回率和精度混淆)。

与机器学习预测的准确性类似, 准确性 测量过程的关键在于测量值(平均而言)与我们想要表示的真实值的接近程度,通常是现实世界中的某个量。例如,我们测量的聊天机器人订阅的准确性是根据它与实际订阅数量的接近程度来评估的,用户满意度测量的准确性是根据测量值代表我们用户实际满意度的程度来评估的.

相比之下, 精确 指测量过程产生相同结果的可靠性(无论是否正确)。也就是说,精度是 测量噪声 .例如,如果我们反复计算数据库中的订阅数量,我们将始终得到相同的结果,但如果我们反复询问用户的满意度,我们可能会观察到测量的满意度有所不同。

理想情况下,我们希望测量既准确又精确,但并非总是如此。我们可以有不精确但准确的测量:如果我们只是重复测量多次并平均观察结果,我们会得到一个非常准确的结果(假设随机噪声)。例如,执行时间的大多数度量都受到随机噪声和背景进程的影响,但它们在多次测量中取平均值。相比之下,也有一些测量值会产生非常精确但不准确的数据,例如落后的时钟:无论我们平均进行多少次测量,它都会始终显示错误的时间。精确但不准确的测量是危险的,因为它们看起来非常自信(没有噪音)但完全错误。

准确度和精度之间差异的可视化,例如显示多个结果如何彼此非常接近(精确)但远离目标(不准确)。 CC-BY-4.0 由 阿尔贝克 .

在测量中,我们通常同时关注不准确和不精确(噪声),我们需要以完全不同的方式解决这些问题:

在软件工程环境中,几乎所有通过自动计算而不依赖人工输入或传感器输入进行的测量几乎总是高度精确的(使用相同的输入重复运行相同的算法将产生相同的输出),但如果存在是数据收集或操作中的错误。

有效性。 最后,对于新的措施,评估测量有效性是值得的。作为绝对最小值,度量标准的开发者应该绘制观察和样本的分布,并手动检查一些结果以确保它们有意义。如果测量很重要,有效性评估可以走得更远,可以遵循结构化的评估程序(例如,如优秀论文中所建议的那样 “软件工程指标:他们衡量什么以及我们如何知道” )。通常,有效性评估至少会询问三种有效性问题。 构造效度: 我们是否正在测量我们打算测量的内容?抽象概念是否与所使用的特定规模和操作相匹配? 预测效度: 该度量是否有能力(部分)解释我们关心的质量?它是否真的提供了有意义的信息来减少我们想要做出的决定的不确定性? 外部有效性: 该措施及其操作化是否泛化超出了最初制定的具体观察?

陷阱:路灯效应

对于许多决策和目标来说,很难想出经济的好措施。在创建新度量和设定目标时,很容易将注意力集中在易于度量的特征上,例如因为度量已经存在。因此,我们可能经常使用廉价来收集与难以衡量的目标相关性较差的代理措施,例如使用客户与聊天机器人交换的消息数量(易于从日志中衡量)作为客户满意度的代理措施与聊天机器人。

对难以衡量的概念使用方便的代理的诱惑被称为 路灯效果 ,一种常见的观察偏差。这个名字来源于一个醉汉在街灯下寻找钥匙而不是在一个街区外丢失钥匙的轶事,因为“这就是灯所在的地方”。创建好的措施可能需要一些努力和成本,但与基于我们已有数据的临时措施相比,做出更好的决策可能是值得的。

Comic illustrating the streetlight effect: Focusing attention on aspects that are easy to observe.

陷阱:用作激励措施的措施

度量对于做出更好的决策、观察系统的改进和设定目标可能很有用,但总是存在针对仅部分代表目标的度量进行优化的危险。在实践中,大多数度量仅接近实际目标,并且可以通过游戏以不一定满足目标的方式优化度量。例如,衡量软件中修复的错误数量作为良好测试实践的指标可能是一个合理的近似值,但如果开发人员根据修复的错误数量进行评估,他们可能会决定通过故意引入他们自己的错误来玩弄这个衡量标准。然后可以随后修复。如果他们下定决心,人类和机器通常擅长发现漏洞并优化措施。这也经常被称为 古德哈特定律 “当一项措施成为目标时,它就不再是一个好的措施。”

在机器学习的背景下,这个问题经常发生在 对齐问题 ,其中系统针对可能不完全符合系统设计者目标的特定适应度函数(度量)进行优化。例如,终结者电影中常见的科幻比喻是一台机器,它决定通过杀死所有人类来实现其保卫和平的目标。我们将在后面的安全章节中回到这个问题。当讨论为机器学习模型的预测提供的解释是否只是邀请用户与系统博弈时,也会出现这个问题,正如我们将在本章中讨论的那样 可解释性和可解释性 .

除了有意尝试衡量衡量之外,许多研究表明,基于衡量作为外在动机的激励(例如,基于某些衡量结果的奖金支付)对于创造性工作来说是有问题的。它会降低内在动机,可能会让人上瘾,并鼓励作弊和短期思维。设定目标和定义措施有助于使团队走上共同的道路并促进沟通,但要避免将措施用作激励措施。

概括

要设计软件产品及其机器学习组件,最好先了解系统的目标,包括构建系统的组织的目标、用户和其他利益相关者的目标以及 ML 的目标和有助于系统目标的非 ML 组件。在设定目标时,提供措施来帮助我们评估目标的实现程度或我们是否正在朝着这些目标取得进展,这很重要,但也可能具有挑战性。

通常,在构建软件系统时,度量对于许多活动都很重要。即使是看似无形的属性也可以(在某种程度上)用正确的度量来衡量。有些措施是标准的并被广泛接受,但在许多情况下,我们可以定义、实施和验证我们自己的措施。好的措施是具体的、准确的和精确的,并且符合它们的设计目的。

延伸阅读

与所有章节一样,本文在知识共享 4.0 BY-SA 许可下发布。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/11938/39150408

标签:设定,机器,机器人,测量,衡量,目标,聊天,我们,度量
来源: https://www.cnblogs.com/amboke/p/16654230.html