吴恩达深度学习课程三: 结构化机器学习项目 第二周:误差分析与学习方法(五)端到端学习

此分类用于记录吴恩达深度学习课程的学习笔记。

课程相关信息链接如下:

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

本篇为第三课的第二周内容,2.92.10的内容,也是本篇的理论部分的最后一篇。


本周为第三课的第二周内容,本周的内容关于在上周的基础上继续展开,并拓展介绍了几种"学习方法",可以简单分为误差分析和学习方法两大部分。

其中,对于后者的的理解可能存在一些难度。同样,我会更多地补充基础知识和实例来帮助理解。本篇的内容关于端到端学习,与其说它是一种学习方式,不如说它更像一种学习逻辑,并不难理解,因此本篇的篇幅也较短。

1.什么是端到端学习?

现在有这样一道数学题摆在我们面前:

\[5 \times 10 =? \]

相信你在看到题面的时候就已经得到答案了,但是别着急,我们来理顺一下得出答案的思路。

  1. 首先,我们要学习阿拉伯数字本身,学习个位数和十位数的区别。
  2. 然后,我们要学习加法的运算规则,他的表示符号。
  3. 在之后,我们在加法的基础上学习乘法和相关表示与计算。
  4. 最后,我们才得出了计算结果:50

虽然我们一下子就算出了答案,但我们的脑子里一定会有这样一步步的过程:理解符号 → 理解运算 → 理解组合 → 得到答案。

而现在,如果你没有任何数学基础,我只告诉你:

\[4 \times 5 =20,1\times 2 =2,3\times 4 =12······ \]

你解出这道题吗?答案很显然,我们最多蒙一蒙。
但是机器能。

在深度学习的世界里,有一种完全不同的思路。

这种思路不需要我们一层层地把规则写明,也不需要我们告诉模型"先学数字、再学加法、最后学乘法"。
它允许模型直接从输入跳到输出。
不需要人为地拆分中间步骤。

在这种方式下,我们会对模型说:

"这是输入 \(x\),这是输出 \(y\)。

中间怎么处理?你自己学。"

就像只给学生看大量的"题目 → 答案"

却完全不教任何运算规则。

模型必须自己推理出所有隐含的步骤 ,并在内部构建出自己的处理流程。

这种方式就是:端到端学习(End-to-End Learning)

我们来看看课程中一些实际应用的例子,看看端对端学习的适用情况和领域。

2. 端对端学习在什么时候适用?

我们举两个例子来说明这个问题。

2.1 门禁系统的面部识别

先来看看非端对端逻辑下的门禁系统要经过什么样的步骤:

一般来说,我们在这种系统录入的都是证件照,也就是较为精美的正面照。

但是,很显然,在真实扫脸中我们不会这么标准 ,这就像我们之前常常提到的分布不同问题,会很大程度影响模型的实用性。

因此,"检测人脸"这一步是我们根据正常逻辑加入的,是我们为了帮助提高拟合手动设计的步骤。

我们可以训练两个模型来实现这个系统:

  1. 从不同角度、距离的人脸检测模型。
  2. 检测到的人脸与数据库的对比识别模型。

当然,这只是一个示例,也有其他的方法和技术。

现在,再来看看端对端逻辑下的系统实现:

很显然,要想实现端对端学习,最重要的前提就是极大规模的数据集

而实际上,在门禁系统中,上面这种非端对端的学习方式反而更好 ,为什么?

我们来看看二者的对比,归根到底,还是数据问题。

因此,在数据量不足的情况下,传统非端对端的学习方式反而效果更好。

那端对端有什么较为突出的应用领域吗?有的兄弟,有的。

我们继续下一个例子。

2.2 语言翻译

如果我们人工把中文翻译成英文,你在脑海可能会一个个拼出每个字对应的英文单词再组合。

为什么说在这个领域端对端学习更好,很简单,数据容易获取
你在翻译软件输入一句中文并翻译成英文,好了,现在你已经得到一个样本和其相应的标签了。

这样,模型可能不理解单个英文字母是什么,不理解具体的语言逻辑,但是它就是可以通过自己的学习方式进行翻译。

显然,这得益于海量的数据支持。

3. 端对端学习的优缺?

端到端学习听起来很"酷",直接输入 \(x\),直接输出 \(y\),就像魔法一样。但任何技术都有两面,端到端学习也一样。

最后我们通过对比来看看它的优缺点,也当作是对它的总结。

项目 端到端学习(End-to-End) 传统分步骤方法(Pipeline)
设计复杂度 结构简单,不需要人为拆分步骤 需要人工划分多步骤、设计特征
对数据的依赖 极强,需要海量数据 数据需求较少,模块可分开训练
整体性能 可达到更好的"全局最优" 可能受制于每个子模块的局部最优
可解释性 差,内部逻辑是黑箱 好,每个步骤都可观察、可调试
调试难度 高,出错很难定位 低,可逐个模块定位问题
鲁棒性(分布变化) 容易受到数据分布偏差影响 更稳,因为每步可强制规则约束
适用场景 翻译、语音识别等"数据巨大"的任务 医疗影像、人脸识别等数据有限任务
相关推荐
星云数灵1 小时前
机器学习入门实战:使用Scikit-learn完成鸢尾花分类
人工智能·python·机器学习·ai·数据分析·pandas·python数据分析
smilejingwei2 小时前
Text2SQL 破局技术解析之二:MQL 实现与复杂性
ai·text2sql·spl·chatbi
AI即插即用2 小时前
即插即用系列 | CVPR 2024 ABC-Attention:基于双线性相关注意力的红外小目标检测
图像处理·人工智能·深度学习·目标检测·计算机视觉·cnn·视觉检测
AI即插即用2 小时前
即插即用系列 | WACV 2025 SvANet:专为极小目标(<1%)设计的尺度变化注意力网络,医学图像分割新SOTA!
人工智能·深度学习·神经网络·目标检测·计算机视觉·cnn·视觉检测
程序员鱼皮2 小时前
我要吐了,现在上线个小程序这么麻烦吗?!
ai·程序员·软件开发·编程经验
蜡笔小嘟2 小时前
使用gemini 3 pro实现可视化大屏
前端·ai·gemini·gemini3peo
源于花海2 小时前
昇腾Catlass的算子优化:Transformer中小批量矩阵乘法优化与性能提升实践
深度学习
源于花海2 小时前
PyTorch模型轻松迁移昇腾平台:BERT优化与RoPE自定义算子实战
深度学习
梓贤Vigo2 小时前
【Axure原型分享】AI图片变清晰
ai·交互·产品经理·axure·原型