吴恩达深度学习课程三: 结构化机器学习项目 第一周:机器学习策略(一)正交化调优和评估指标

news/2025/11/25 13:45:31/文章来源:https://www.cnblogs.com/Goblinscholar/p/19268132

此分类用于记录吴恩达深度学习课程的学习笔记。
课程相关信息链接如下:

  1. 原课程视频链接:[双语字幕]吴恩达深度学习deeplearning.ai
  2. github课程资料,含课件与笔记:吴恩达深度学习教学资料
  3. 课程配套练习(中英)与答案:吴恩达深度学习课后习题与答案

本篇为第二课的第三周内容,1.1到1.4的内容。


本周为第三课的第一周内容,本周的内容关于在实际项目进行中的一些基本策略,并不涉及技术性的知识。
经过整个第一课和第二课后, 我们已经了解了足够支持我们构建一个完整的基础神经网络项目的知识和技术,本周便是在这些基础上的一个指导策略,可以帮助实现更好确定项目方向,优化和评估模型性能。
只要对前面两课涉及的技术原理足够了解,可以说,本周的内容不存在理解上的难度。
本篇的内容关于正交化调优和评估指标

1. 正交化调优

1.1 我们已有的调参方向

我们已经了解到了很多技术,来支持我们在模型训练中进行不同的尝试,就像课程里说的这样:
image.png

在上周的超参数调整部分里,我们已了解到了方格调参,取对数轴等帮助超参数调优的方式,这周的内容又从一个更大的角度给出了这方面的策略。

1.2 什么是正交化?

你可能在高数里看到过这个概念,我们在DL的背景下再来阐述一下这个概念:
image.png
我们不提正交化在数学里的专业概念,只理解它在我们现在的机器学习策略中的作用即可。
其实简单来说,就是把负责各个功能的内容分开,让它们不要互相影响,从而影响调优。
你可能会把它理解成控制变量,但还是我之前说的,这个范围要比我们之前提到的超参数调优要大一些。
我们来具体看看。

1.3 正交化调优的应用方式

image.png
这就是正交化的使用,不同于之前我们通过超参数调整针对某个超参数,正交化的基本思想是把调优方式分组来调优整个项目的单个环节,并尽可能地实现互不影响。
很明显,这对我们明确拟合步骤和调优方向是极有帮助的,而且逻辑通顺。
接下来我们再拓展一个专业名词:耦合

1.4 耦合和解耦合

在进入下一部分前,先来拓展两个非常常见、但在深度学习里却往往被忽略的词:耦合(Coupling)解耦合(Decoupling)
它们其实和我们刚刚讲的“正交化”是并行概念,但描述的角度不同。
我们分点来了解一下:

(1)什么是耦合?

“耦合”指的是:两个本来应该独立的部分,却互相影响、互相牵制,让你没办法单独调其中一个。

在DL中,实际上就是我们刚刚提到的非正交化,比如:

  • 你想提高模型容量,却发现训练变慢、过拟合更明显
  • 你想调学习率,却发现 batch size、正则化都跟着乱
  • 你想改善测试准确率,却发现训练准确率也跟着变了
  • 你想让损失下降,却发现它受到梯度消失干扰

这些问题的共同点是:
一个地方的问题被多个因素共同影响,你很难定位问题来源。

就像 一团线缠成一坨毛球 —— 你想拉出一根,却发现其他线也跟着动。
image.png

(2)什么是解耦?

很显然,解耦就是让每一块功能只影响它应该影响的部分,不要交叉干扰。

同样,在 DL 中,就是我们刚刚的正交化,表现为:

  • 想调学习率,就只影响优化速度,不影响模型表达能力
  • 想解决偏差,就去调网络结构,而不是学习率
  • 想解决方差,就去调正则化,而不是训练轮数
  • 想提升训练集性能,就别去乱动提升测试性能的那一套

换句话说: 训练的几个关键目标(拟合、泛化、优化稳定性、速度等)要尽量互相独立。

耦合和解耦合的说法实际上更常见于软件开发中的模块化中,用来区分功能,明确责任。我们这里拓展一下,你如果在其他地方见到,它们和这里提到的正交,非正交是一个意思,只是在不同领域的常用说法不同。

2.评估指标

我在前面的实践部分都会使用准确率来评估模型的拟合效果,而准确率就是评估指标的一种。
在这部分,我们就随课程内容展开一下在实际项目中,这方面的策略。

2.1 单一数字评估指标

我们在买东西时常说:要看性价比。
这是因为:

  • 有的商品效果好,但太贵。
  • 有的商品价格便宜,但效果不好。

现在,如果只看价格和效果这两个评估指标,你会发现很难评价上面两种商品间的好坏,因为它们各有优劣
所以,我们用性价比这个单一数字评估指标结合这两种指标来评价商品,就避免了上面的纠结。

在DL领域也是一样的道理,我们来看一下分类模型里面常用的几个评估指标,如果你要写这方面的论文,就几乎逃不开它们。

(1)准确率 Accuracy

准确率是我们最熟悉的指标,它衡量的是:模型预测正确的样本占全部样本的比例。
公式为:

\[\text{Accuracy}=\frac{TP + TN}{TP + TN + FP + FN} \]

其中:

  • TP(True Positive):真正例,预测“是”且实际上“是”
  • TN(True Negative):真负例,预测“否”且实际上“否”
  • FP(False Positive):假正例,预测“是”但实际上“否”
  • FN(False Negative):假负例,预测“否”但实际上“是”

第一次看这几个字母组合可能会有些分不过来,但在各个分类指标中,他们都会和你常见。

现在来看个例子:
假设你有一个 10 个样本的猫狗分类模型:
如果模型预测对了 8 张,那么:

\[\text{Accuracy}=\frac{8}{10}=0.8 \]

听上去不错,但这个指标有一个致命缺点当正负样本极不均衡时,准确率可能毫无意义。

这句话是什么意思?
继续我们之前的数据集设定:

  • 99 张
  • 1 张
    这是一个 极度不平衡 的数据集。
    现在假设模型非常“懒”,它学会了一个“最优生存策略”:无论输入什么,都预测:猫。
    准确率:

\[\text{Accuracy}=\frac{99}{100}=99% \]

看上去非常漂亮,但模型完全没用!
因为它根本没有学会识别“狗”是什么样子,它只是迎合了数据分布,而不是真正地在分类。
因此,就出现了其他指标,我们继续。

(2)精确率 Precision

精确率关注的是: 模型预测为“正”的样本里,有多少是真正的正样本?
换句话说,它衡量的是: “你说这些是猫,结果你说对了吗?”
公式为:

\[\text{Precision}=\frac{TP}{TP + FP} \]

再重复一下,其中:

  • TP(True Positive):预测为正且实际为正
  • FP(False Positive):预测为正但实际为负(误报)

精确率解决的问题是:“我不想模型乱报。”
例如肿瘤筛查,如果模型只要看到一点点异常就高喊“癌症!癌症!”,
虽然可能很“敏感”,但全部都是误报,用户会被吓死。
这时就需要精确率来约束模型的“靠谱程度”。

你有实际 10 张猫图,模型预测“是猫”的有 8 张,其中:

  • 5 张是真的猫(TP = 5)
  • 3 张其实是狗但被误判成猫(FP = 3)

那么:

\[\text{Precision}=\frac{5}{5+3}=0.625 \]

含义就是:模型说“这里有猫”时,只有 62.5% 的概率是对的。

(3)召回率 Recall

召回率关注的是:在所有实际为“正”的样本中,模型能找对多少?
特别适合“找到所有风险”、“不能漏报”的任务:
比如风控报警、欺诈检测等。
公式为:

\[\text{Recall}=\frac{TP}{TP+FN} \]

继续重复,其中:

  • TP:模型找对的正样本
  • FN:漏掉的正样本

假设真实有 10 个“猫”,模型找到了其中 7 个:

  • TP = 7
  • FN = 3

\[\text{Recall}=\frac{7}{7+3}=0.7 \]

这意味着:模型成功找出了 70% 的猫,还有 30% 被漏掉了。
如果任务是:
“不能漏掉任何一只猫(例如找可疑人员)”,
那么 0.7 的召回率就是完全不可接受的。

(4)F1分数 F1-score

知道了召回率和精确率的概念后,你应该就会发现:

  • 只提高召回率,往往会降低精确率
  • 只提高精确率,又可能会降低召回率

就像这样:
image.png

因此,我们需要一个指标:
能综合衡量精确率(Precision)与召回率(Recall)
F1 正是:

\[\text{F1} = 2\cdot \frac{\text{Precision}\cdot \text{Recall}}{\text{Precision}+\text{Recall}} \]

现在假设:

  • 模型找到的都是猫(预测为猫的 10 个里,有 8 个是真的)
    → Precision = 0.8
  • 实际上有 12 只猫,模型找到了 8 只
    → Recall = 0.67
    那么F1就是:

\[\text{F1}=2\cdot\frac{0.8\times 0.67}{0.8+0.67} = 0.73 \]

可以看到:F1代表了两者的平衡程度
当任务要求是既不能漏太多,也不能乱报太多时,F1 就非常关键了。

我们总结一下:

指标 关注点 典型问题 适用场景
Accuracy 总体正确率 模型整体表现怎样? 类别均衡的分类任务
Precision 报准了没有 我说“是”的里有多少是真的? 误报代价高(垃圾邮件、安检)
Recall 找全了没有 所有真正的“是”我找到了多少? 漏报代价高(医疗、风控)
F1-score 平衡两者 报准与找全的折中 对误报和漏报都敏感

根据我们的任务需求,我们需要选择合适的评估指标来衡量性能。
很显然,在大多情况下,用F1-score作为单一评估指标,会比只用Precision或者Recall作为指标更为全面。
就像在这个课程里的例子里一样:
image.png
在前两者各有优劣的情况下,你可以通过F1分数比较出两个分类器的综合性能高低。

2.2 满足和优化指标

我们现在以及有了很多指标,但实际,在不同任务中,对不同指标的重视程不同。
因为我们又在此基础上,把指标分成满足指标和优化指标,他们因任务不同而不同。

在这个课程实例里来介绍一下:
image.png
现在假如这个分类器是针对某种医学图像的识别,那么我们就会这么设置:

  • 优化指标:准确率,很显然,这是最重要的。
  • 满足指标:运行时间,我们接受为了正确地识别病情多等一秒。
    在这种情景下,使用分类器 C 是最合适的,我们设置运行时间在2000ms以下即可满足,从而把更多资源投入准确率,实现优化

那现在再换一种情况,这个分类器是某种危险信号的识别,那我们就会这么设置:

  • 优化指标:运行时间,我们必须以极快的速度侦察危险。
  • 满足指标:准确率,虚惊一场总比没命强。
    那么显示,使用分类器 B 更合适的。我们设置准确率在90%以上即可,从而把更多资源投入运行时间。

现在,给出二者的概念:

满足指标指的是:这些指标只要达到某条线即可,不强求做到最好。
优化指标指的是:这是我们真正要拉满、要尽可能提升的指标。

因为一个模型不可能同时把所有指标都变成最优。
必须先明确“最低要求是什么”,然后把资源集中在真正关键的指标上。

这便是指标部分的策略。

3.总结

概念 原理 比喻
正交化调优 将训练目标拆分成互不干扰的小块,各调各的。 就像把厨房、客厅、卧室分开装修,不会你刷墙时把厨房的地板一起搞脏。
耦合 / 解耦合 耦合:互相牵连。解耦:各做各的事。 耦合像一团乱麻的耳机线;解耦像一根根排好序的键盘线。
单一数字评价指标 用一个数字融合多个维度来评估。 就像“性价比”:不用纠结贵不贵、好不好,一看这个就知道买不买。
精确率(Precision) 预测出的正类里有多少是真的。 它关注“你说有猫,那你说对了吗?”
召回率(Recall) 所有真实正类里,你找出了多少。 它关注“所有的猫,你有没有一个不漏地找出来?”
F1-score Precision 与 Recall 的调和平均。 既不能乱喊“有猫!”,也不能漏掉猫,是一种“说得准 + 找得全”的折中。
满足指标 & 优化指标 满足指标达线即可;优化指标才是你真正要卷的。 满足指标像考驾照过线就行;优化指标像真实上路,还得开得又稳又快。

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

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

相关文章

Mac与Kali主机间SSH连接故障排除:主机密钥变更的解决便捷的方案

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年11月高新技术企业认定公司推荐榜单与选择指南:权威评测与高性价比解决方案

随着高新技术企业认定政策不断优化,越来越多的企业开始寻求专业机构协助申报。2024年国家高新技术企业认定数量突破45万家,较上年增长12%,市场竞争日趋激烈。企业选择认定服务机构时往往面临资质难辨、服务内容不清…

2025年11月高新技术企业认定公司推荐榜单与选择指南:权威解析与综合对比

随着中国创新驱动发展战略的深入推进,高新技术企业认定已成为科技型企业发展的重要里程碑。对于企业管理者而言,选择专业可靠的认定服务机构至关重要。本文基于行业现状分析,结合多维度评估,为企业提供客观、可操作…

为什么软件反应特别慢?一次因版本架构错误导致的性能问题排查记录

为什么软件反应特别慢?一次因版本架构错误导致的性能问题排查记录 最近在安装一款软件时遇到一个奇怪的问题:系统资源占用正常,但软件本身却反应极其迟缓,几乎无法正常使用。整个排查过程折腾了好一会儿,最终才发…

Enefit - Kaggle项目

项目简述 对能源系统中的安装了太阳能的消费者兼生产者(prosumers)消费或生产的电力进行预测以减少电力不平衡带来的损失或者说调节电力不平衡的费用。 问题描述 预测具体任务:实际是属于区域的电力预测,基本单元是…

2025年11月审计报告事务所推荐:知名机构选择指南及避坑要点详解

对于许多企业管理者而言,选择一家合适的审计报告事务所是确保财务合规、优化财税管理的重要环节。尤其在当前经济环境下,政策对民营企业财税透明度的要求不断提高,审计需求呈现专业化、定制化趋势。根据国家相关部门…

2025年11月高新技术企业认定公司推荐:榜单与权威选择指南

在当今经济环境下,高新技术企业认定已成为众多科技型企业发展的重要一环。对于许多企业管理者而言,选择一家专业可靠的认定服务机构至关重要。这些用户通常包括初创科技企业创始人、成长型企业的财务负责人以及寻求转…

Axis(/ˈksɪs/) Axes(/ˈksiːz/)两者的区别?

一、发音(国际音标+中文谐音,附重音提示)单词 国际音标 重音位置 中文谐音(便于记忆) 发音要点Axis /ˈksɪs/ 第1音节 阿克西斯(“阿”重读) 开头“ax”发 /ks/(类似“艾克斯”快速连读),结尾“is”发 /ɪs…

Vue 2 和 Vue 3 的简要对比

Vue 2 和 Vue 3 的简要对比特性维度 Vue 2 (使用 Vue CLI) Vue 3 (推荐使用 Vite)构建工具 Vue CLI (基于 Webpack) Vite (基于 ESM,开发服务器启动和热更新更快)响应式原理 Object.defineProperty (对数组和新增属性…

C# Avalonia 18- ControlTemplates - FlipPanelAlternateTemplate

C# Avalonia 18- ControlTemplates - FlipPanelAlternateTemplate增加了动画以及用Style重写了样式。 FlipPanel.cs控制逻辑using Avalonia; using Avalonia.Animation.Easings; using Avalonia.Controls; using Avalo…

kube-proxy iptables 模式的原理

这是一个理解 Kubernetes Service 网络核心机制的关键知识点。总的来说,kube-proxy iptables 模式的核心原理是:监听 Kubernetes API 中 Service 和 Endpoint 的变化,然后动态地在每个节点的 iptables 中设置相应的…

Android EDLA开发认证说明和编写流程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

**`Series` / `DataFrame`** 和 **`ndarray`** 除了“容器”,还有别的叫法吗?

在数据科学和编程语境中,Series / DataFrame 和 ndarray 确实常被称作“容器”,但根据不同的抽象层次、使用场景或技术文档,它们还有更精确或更专业的称呼。下面我们分别说明:一、Series 和 DataFrame 的其他常见叫…

2025年11月审计报告事务所推荐榜单与选择指南:一份详尽的行业分析报告

在选择审计报告事务所时,企业决策者往往面临诸多考量,包括事务所的资质完备性、服务范围覆盖度、团队专业能力以及过往服务案例的真实反馈。当前,随着经济环境变化与监管政策趋严,企业对审计服务的需求不仅限于合规…

XML 序列化工具类

/// <summary> /// XML 序列化工具类 /// </summary> public static class XmlHelper {#region 基本序列化/反序列化/// <summary>/// 将对象序列化为 XML 字符串/// </summary>/// <typep…

2025年11月智能语音机器人品牌推荐对比分析:三大阵营专业维度深度评测报告

根据中国信息通信研究院发布的2024年智能语音产业发展白皮书显示,中国智能语音市场规模已达到382亿元,同比增长28.5%。随着人工智能技术的快速发展,智能语音交互在客服、教育、医疗等领域的渗透率持续提升。艾瑞咨询…

详解C语言操作符 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Numpy和Pandas都有哪些容器类型?Int64和DataFrame都叫数据类型?

要理清这个问题,核心是区分 “容器类型”(用于“装数据”的结构)和 “数据类型”(容器中“单个数据”的存储格式)——这是两个不同维度的概念。下面先分别拆解 NumPy 和 Pandas 的容器类型,再明确“Int64”与“S…

2025年11月智能AI客服品牌推荐热度榜:基于性能指标的结果承诺保障方案

行业格局分析 根据中国信息通信研究院发布的2024年人工智能产业发展报告,中国智能客服市场规模已达到285亿元,同比增长32.5%。智能客服在金融、政务、电商等行业的渗透率超过60%,成为企业数字化转型的核心应用场景。…

Cmake构建配置示例

配置构建产物位置 # Create build directory echo "Creating build directory..." mkdir -p build_static cd build_static# Configure QuantLib to build only static library echo "Configuring Quan…