吴恩达深度学习笔记:机器学习(ML)策略(1)(ML strategy(1))1.3-1.4

目录

  • 第三门课 结构化机器学习项目(Structuring Machine Learning Projects)
    • 第一周 机器学习(ML)策略(1)(ML strategy(1))
      • 1.3 单一数字评估指标(Single number evaluation metric)
      • 1.4 满足和优化指标(Satisficing and optimizing metrics)

第三门课 结构化机器学习项目(Structuring Machine Learning Projects)

第一周 机器学习(ML)策略(1)(ML strategy(1))

1.3 单一数字评估指标(Single number evaluation metric)

无论你是调整超参数,或者是尝试不同的学习算法,或者在搭建机器学习系统时尝试不同手段,你会发现,如果你有一个单实数评估指标,你的进展会快得多,它可以快速告诉你,新尝试的手段比之前的手段好还是差。所以当团队开始进行机器学习项目时,我经常推荐他们为问题设置一个单实数评估指标。

在这里插入图片描述
我们来看一个例子,你之前听过我说过,应用机器学习是一个非常经验性的过程,我们通常有一个想法,编程序,跑实验,看看效果如何,然后使用这些实验结果来改善你的想法,然后继续走这个循环,不断改进你的算法。

比如说对于你的猫分类器,之前你搭建了某个分类器𝐴,通过改变超参数,还有改变训练集等手段,你现在训练出来了一个新的分类器𝐵,所以评估你的分类器的一个合理方式是观察它的查准率(precision)和查全率(recall)。

查准率和查全率的确切细节对于这个例子来说不太重要。但简而言之,查准率的定义是在你的分类器标记为猫的例子中,有多少真的是猫。
所以如果分类器𝐴有 95%的查准率,这意味着你的分类器说这图有猫的时候,有 95%的机会真的是猫。

查全率就是,对于所有真猫的图片,你的分类器正确识别出了多少百分比。实际为猫的图片中,有多少被系统识别出来?如果分类器𝐴查全率是 90%,这意味着对于所有的图像,比如说你的开发集都是真的猫图,分类器𝐴准确地分辨出了其中的 90%。

所以关于查准率和查全率的定义,不用想太多。事实证明,查准率和查全率之间往往需要折衷,两个指标都要顾及到。你希望得到的效果是,当你的分类器说某个东西是猫的时候,有很大的机会它真的是一只猫,但对于所有是猫的图片,你也希望系统能够将大部分分类为
猫,所以用查准率和查全率来评估分类器是比较合理的。

但使用查准率和查全率作为评估指标的时候,有个问题,如果分类器𝐴在查全率上表现更好,分类器𝐵在查准率上表现更好,你就无法判断哪个分类器更好。如果你尝试了很多不同想法,很多不同的超参数,你希望能够快速试验不仅仅是两个分类器,也许是十几个分类器,快速选出“最好的”那个,这样你可以从那里出发再迭代。如果有两个评估指标,就很难去快速地二中选一或者十中选一,所以我并不推荐使用两个评估指标,查准率和查全率来选择一个分类器。你只需要找到一个新的评估指标,能够结合查准率和查全率。

在这里插入图片描述
在机器学习文献中,结合查准率和查全率的标准方法是所谓的𝐹1分数,𝐹1分数的细节并不重要。但非正式的,你可以认为这是查准率𝑃和查全率𝑅的平均值。

𝐹1分数的定义是这个公式:
F 1 = 2 1 P + 1 R F1 = \frac{2}{\frac{1}{P} + \frac{1}{R}} F1=P1+R12

在数学中,这个函数叫做查准率𝑃和查全率𝑅的调和平均数。但非正式来说,你可以将它看成是某种查准率和查全率的平均值,只不过你算的不是直接的算术平均,而是用这个公式定义的调和平均。这个指标在权衡查准率和查全率时有一些优势。

在这里插入图片描述
但在这个例子中,你可以马上看出,分类器𝐴的𝐹1分数更高。假设𝐹1分数是结合查准率和查全率的合理方式,你可以快速选出分类器𝐴,淘汰分类器𝐵。

我发现很多机器学习团队就是这样,有一个定义明确的开发集用来测量查准率和查全率,再加上这样一个单一数值评估指标,有时我叫单实数评估指标,能让你快速判断分类器𝐴或者分类器𝐵更好。所以有这样一个开发集,加上单实数评估指标,你的迭代速度肯定会很快,它可以加速改进您的机器学习算法的迭代过程。

在这里插入图片描述
我们来看另一个例子,假设你在开发一个猫应用来服务四个地理大区的爱猫人士,美国、中国、印度还有世界其他地区。我们假设你的两个分类器在来自四个地理大区的数据中得到了不同的错误率,比如算法𝐴在美国用户上传的图片中达到了 3%错误率,等等。

所以跟踪一下,你的分类器在不同市场和地理大区中的表现应该是有用的,但是通过跟踪四个数字,很难扫一眼这些数值就快速判断算法𝐴或算法𝐵哪个更好。如果你测试很多不同的分类器,那么看着那么多数字,然后快速选一个最优是很难的。所以在这个例子中,我建议,除了跟踪分类器在四个不同的地理大区的表现,也要算算平均值。假设平均表现是一个合理的单实数评估指标,通过计算平均值,你就可以快速判断。

看起来算法𝐶的平均错误率最低,然后你可以继续用那个算法。你必须选择一个算法,然后不断迭代,所以你的机器学习的工作流程往往是你有一个想法,你尝试实现它,看看这个想法好不好。

所以本视频介绍的是,有一个单实数评估指标真的可以提高你的效率,或者提高你的团队做出这些决策的效率。现在我们还没有完整讨论如何有效地建立评估指标。在下一个视频中,我会教你们如何设置优化以及满足指标,我们来看下一段视频。

1.4 满足和优化指标(Satisficing and optimizing metrics)

要把你顾及到的所有事情组合成单实数评估指标有时并不容易,在那些情况里,我发现有时候设立满足和优化指标是很重要的,让我告诉你是什么意思吧。

在这里插入图片描述
假设你已经决定你很看重猫分类器的分类准确度,这可以是𝐹1分数或者用其他衡量准确度的指标。但除了准确度之外,我们还需要考虑运行时间,就是需要多长时间来分类一张图。分类器𝐴需要 80 毫秒,𝐵需要 95 毫秒,𝐶需要 1500 毫秒,就是说需要 1.5 秒来分类图像。

在这里插入图片描述
你可以这么做,将准确度和运行时间组合成一个整体评估指标。所以成本,比如说,总体成本是𝑐𝑜𝑠𝑡 = 𝑎𝑐𝑐𝑢𝑟𝑎𝑐𝑦 − 0.5 × runningTime,这种组合方式可能太刻意,只用这样的公式来组合准确度和运行时间,两个数值的线性加权求和。

你还可以做其他事情,就是你可能选择一个分类器,能够最大限度提高准确度,但必须满足运行时间要求,就是对图像进行分类所需的时间必须小于等于 100 毫秒。所以在这种情况下,我们就说准确度是一个优化指标,因为你想要准确度最大化,你想做的尽可能准确,但是运行时间就是我们所说的满足指标,意思是它必须足够好,它只需要小于 100 毫秒,达到之后,你不在乎这指标有多好,或者至少你不会那么在乎。所以这是一个相当合理的权衡方式,或者说将准确度和运行时间结合起来的方式。实际情况可能是,只要运行时间少于 100毫秒,你的用户就不会在乎运行时间是 100 毫秒还是 50 毫秒,甚至更快。

在这里插入图片描述

通过定义优化和满足指标,就可以给你提供一个明确的方式,去选择“最好的”分类器。在这种情况下分类器 B 最好,因为在所有的运行时间都小于 100 毫秒的分类器中,它的准确度最好。

所以更一般地说,如果你要考虑𝑁个指标,有时候选择其中一个指标做为优化指标是合理的。所以你想尽量优化那个指标,然后剩下𝑁 − 1个指标都是满足指标,意味着只要它们达到一定阈值,例如运行时间快于 100 毫秒,但只要达到一定的阈值,你不在乎它超过那个门槛之后的表现,但它们必须达到这个门槛。
在这里插入图片描述

这里是另一个例子,假设你正在构建一个系统来检测唤醒语,也叫触发词,这指的是语音控制设备。比如亚马逊 Echo,你会说“Alexa”,或者用“Okay Google”来唤醒谷歌设备,或者对于苹果设备,你会说“Hey Siri”,或者对于某些百度设备,我们用“你好百度”唤醒。

对的,这些就是唤醒词,可以唤醒这些语音控制设备,然后监听你想说的话。所以你可能会在乎触发字检测系统的准确性,所以当有人说出其中一个触发词时,有多大概率可以唤醒你的设备。

你可能也需要顾及假阳性(false positive)的数量,就是没有人在说这个触发词时,它被随机唤醒的概率有多大?所以这种情况下,组合这两种评估指标的合理方式可能是最大化精确度。所以当某人说出唤醒词时,你的设备被唤醒的概率最大化,然后必须满足 24 小时内最多只能有 1 次假阳性,对吧?所以你的设备平均每天只会没有人真的在说话时随机唤醒一次。所以在这种情况下,准确度是优化指标,然后每 24 小时发生一次假阳性是满足指标,你只要每 24 小时最多有一次假阳性就满足了。

在这里插入图片描述

总结一下,如果你需要顾及多个指标,比如说,有一个优化指标,你想尽可能优化的,然后还有一个或多个满足指标,需要满足的,需要达到一定的门槛。现在你就有一个全自动的方法,在观察多个成本大小时,选出"最好的"那个。现在这些评估指标必须是在训练集或开发集或测试集上计算或求出来的。所以你还需要做一件事,就是设立训练集、开发集,还有测试集。在下一个视频里,我想和大家分享一些如何设置训练、开发和测试集的指导方针,我们下一个视频继续。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PDF编辑流程,另附5款好用的PDF编辑器

pdf作为一个用来定稿打印的格式,偏偏许多时候需要事后去编辑它。而它格式复杂、混乱,解码困难,再好的编辑器也难免乱码。这里就从目前的pdf编辑流程上给大家稍微科普下。 首先,PDF编辑软件读取需要编辑的PDF文件,解析PDF文件的内…

被踢指数高!这本8.8分双1区“毕业神刊”,2个月可录!虽备受国人喜爱,但需谨慎投稿!

【欧亚科睿学术】 近期,经查询,小编发现ELSEVIER旗下一本热门顶刊竟在JCAR官网上显示被踢指数高。 图片来源:JCAR KNOWLEDGE-BASED SYSTEMS(ISSN :0950-7051)是人工智能领域的一本国际性、跨学科期刊。目前,该期刊影响…

Qt实用技能-必看系列

注:所有qt项目不能放到含中文的目录中 如何将material库添加进项目 1.构建运行项目 2.切换到debug目录,复制.a文件 3.粘贴到新建的libs目录 4.新建include目录存放头文件,将原项目所有头文件一并复制粘贴到include。 5.将文件与我们的项目产生联系。在pro文件将编译依赖的…

Linux线程 -- 互斥锁 和 条件变量

在多线程编程中,互斥量(mutex)是用于保护共享资源的同步机制,确保在任一时刻只有一个线程能够访问共享资源。互斥量用于防止竞态条件(race conditions),确保数据一致性。 基本概念 互斥量&…

计网期末复习指南(六):应用层(DNS、FTP、URL、HTTP、SMTP、POP3)

前言:本系列文章旨在通过TCP/IP协议簇自下而上的梳理大致的知识点,从计算机网络体系结构出发到应用层,每一个协议层通过一篇文章进行总结,本系列正在持续更新中... 计网期末复习指南(一):计算…

图论:倍增求解最近公共祖先LCA

说明:CSDN和公众号文章同步发布,需要第一时间收到最新内容,请关注公众号【比特正传】。 最近公共祖先LCA是NOI大纲中指定的提高组的图论部分的知识点,难度系数为6,提高组考察难度为5~8。 引入 树是一种特殊的图&…

6 -力扣高频 SQL 50 题(基础版)

6. 使用唯一标识码替换员工ID -- MySQL中的left join是一种连接方式 -- 它以左表为基准,返回左表中所有的行,同时返回右表中与左表匹配的行。 -- 如果右表中没有匹配的行,则用NULL填充。 select unique_id,name from Employees e left join …

告别繁琐,Xinstall一键解决App代理结算难题!

在移动互联网的浪潮中,App的推广和运营成为了众多企业和开发者关注的焦点。然而,随着App市场的日益竞争,代理结算的复杂性和繁琐性成为了许多推广者头疼的问题。为了解决这个问题,Xinstall凭借其专业的技术和丰富的服务经验&#…

项目更换服务器时间少8小时

时区错误 输入 date 查看当前的linux系统时间 hwclock --show 查看当前linux硬件时间 如果发现系统时间和硬件时间不同步,而且硬件时间是正确的,可以用以下命令:hwclock --hctosys 把硬件时间同步到系统时间 mysql时区错误可以参考这位大…

java环境部署

jdk下载 如果你电脑已经下载了 jdk ,那你可以跳过这一步了 jdk 的下载路径:https://www.oracle.com/java/technologies/downloads 我这里下载的是java21 你们可以选择自己需要下载的 游览进去的页面是这样子的(相比以前这个页面发生很大变化了&#x…

《额尔古纳河右岸》有感

看完了迟子建老师的《额尔古纳河右岸》,老规矩,写点东西吧。最近一段时间确实挺迷茫的,所以给自己找了点事儿,看看书。期初并不能认真看进去,慢慢的看见去之后,就愈发想知道故事的后来。 书里有太多关于死亡…

用增之Firebase

目录 简介 开发准备: 1、在Firebase平台创建项目 2、将项目关联到应用 3、项目配置 简介 前面讲了google ddl部分,本篇为Firebase的事件上报部分,包括在FireBase平台创建应用 , 如果有用到ddl…

如何判断ubuntu是桌面版(destop版)还是服务版(server版)?(systemctl status display-manager)

文章目录 用命令systemctl status display-manager 用命令systemctl status display-manager systemctl status display-manager如果是ubuntu desktop,将显示服务正在运行,如: 如果是ubuntu server,将不会显示服务,提…

《缺失MRI模态下的脑肿瘤分割的潜在相关表示学习》| 文献速递-深度学习肿瘤自动分割

Title 题目 Latent Correlation Representation Learning for Brain Tumor Segmentation With Missing MRI Modalities 《缺失MRI模态下的脑肿瘤分割的潜在相关表示学习》 01 文献速递介绍 脑肿瘤是世界上最具侵略性的癌症之一,脑肿瘤的早期诊断在临床评估和治…

【Javascript系统学习】

语法与数据类型 语法 var\let\const 用 var 或 let 语句声明的变量,如果没有赋初始值,则其值为 undefined。如果访问一个未声明的变量会导致抛出 ReferenceError 异常: undefined 值在布尔类型环境中会被当作 false数值类型环境中 undefin…

APP分发移动应用分发未来:内容驱动

APP分发移动应用分发未来:内容驱动 一、引言 随着移动互联网技术的不断进步和用户需求的日益多样化,移动应用分发行业正面临着前所未有的机遇与挑战。在这个过程中,内容驱动成为了一个重要的趋势,它不仅可以提升用户体验&#x…

香橙派OrangePi AIpro上手笔记——之USB摄像头目标检测方案测试(三)

整期笔记索引 香橙派OrangePi AIpro上手笔记——之USB摄像头目标检测方案测试(一) 香橙派OrangePi AIpro上手笔记——之USB摄像头目标检测方案测试(二) 香橙派OrangePi AIpro上手笔记——之USB摄像头目标检测方案测试(…

前端之HTML语言之基础标签(持续更新)(基础部分更新结束)

前端之HTML语言 学习完后端的各种层之后,今天开始学习前端,前端和后端都是一个项目的组成部分。 前端对应得到语言是HTML,HTML最重要的有三块,行为,样式,J结构。行为就是交互,理解为鼠标的点击…

Python数据分析案例45——基于融合模型(Stack)的电商用户购买行为预测

案例背景 最近618快到了,上电商购买的人很多,正好我手上还有这个用户购买行为的数据,就做了一个机器学习模型流程,然后也使用的都是常见的机器学习模型,但是加了一点创新吧,使用了stacking融合模型。简单来…

【python】成功解决“NameError: name ‘X’ is not defined”错误的全面指南

成功解决“NameError: name ‘X’ is not defined”错误的全面指南 一、引言 在Python编程中,NameError: name X is not defined是一个常见的错误。这个错误通常意味着我们试图使用一个未定义的变量名X。本文将详细解析这一错误的原因,并提供一系列实用…