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

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

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

本篇为第三课的第二周内容,2.9到2.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 门禁系统的面部识别

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

一般来说,我们在这种系统录入的都是证件照,也就是较为精美的正面照。
但是,很显然,在真实扫脸中我们不会这么标准,这就像我们之前常常提到的分布不同问题,会很大程度影响模型的实用性。
因此,“检测人脸”这一步是我们根据正常逻辑加入的,是我们为了帮助提高拟合手动设计的步骤。
我们可以训练两个模型来实现这个系统:

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

当然,这只是一个示例,也有其他的方法和技术。
现在,再来看看端对端逻辑下的系统实现:
image.png

很显然,要想实现端对端学习,最重要的前提就是极大规模的数据集
而实际上,在门禁系统中,上面这种非端对端的学习方式反而更好,为什么?
我们来看看二者的对比,归根到底,还是数据问题。
image.png
因此,在数据量不足的情况下,传统非端对端的学习方式反而效果更好。
那端对端有什么较为突出的应用领域吗?有的兄弟,有的。
我们继续下一个例子。

2.2 语言翻译

如果我们人工把中文翻译成英文,你在脑海可能会一个个拼出每个字对应的英文单词再组合。
为什么说在这个领域端对端学习更好,很简单,数据容易获取
你在翻译软件输入一句中文并翻译成英文,好了,现在你已经得到一个样本和其相应的标签了。
这样,模型可能不理解单个英文字母是什么,不理解具体的语言逻辑,但是它就是可以通过自己的学习方式进行翻译。
显然,这得益于海量的数据支持。

3. 端对端学习的优缺?

端到端学习听起来很“酷”,直接输入 \(x\),直接输出 \(y\),就像魔法一样。但任何技术都有两面,端到端学习也一样。
最后我们通过对比来看看它的优缺点,也当作是对它的总结。

项目端到端学习(End-to-End)传统分步骤方法(Pipeline)
设计复杂度结构简单,不需要人为拆分步骤需要人工划分多步骤、设计特征
对数据的依赖极强,需要海量数据数据需求较少,模块可分开训练
整体性能可达到更好的“全局最优”可能受制于每个子模块的局部最优
可解释性差,内部逻辑是黑箱好,每个步骤都可观察、可调试
调试难度高,出错很难定位低,可逐个模块定位问题
鲁棒性(分布变化)容易受到数据分布偏差影响更稳,因为每步可强制规则约束
适用场景翻译、语音识别等“数据巨大”的任务医疗影像、人脸识别等数据有限任务
内容概要:本文介绍了基于贝叶斯优化的CNN-LSTM混合神经网络在时间序列预测中的应用,并提供了完整的Matlab代码实现。该模型结合了卷积神经网络(CNN)在特征提取方面的优势长短期记忆网络(LSTM)在处理时序依赖问题上的强大能力,形成一种高效的混合预测架构。通过贝叶斯优化算法自动调参,提升了模型的预测精度泛化能力,适用于风电、光伏、负荷、交通流等多种复杂非线性系统的预测任务。文中还展示了模型训练流程、参数优化机制及实际预测效果分析,突出其在科研工程应用中的实用性。; 适合人群:具备一定机器学习基基于贝叶斯优化CNN-LSTM混合神经网络预测(Matlab代码实现)础和Matlab编程经验的高校研究生、科研人员及从事预测建模的工程技术人员,尤其适合关注深度学习智能优化算法结合应用的研究者。; 使用场景及目标:①解决各类时间序列预测问题,如能源出力预测、电力负荷预测、环境数据预测等;②学习如何将CNN-LSTM模型贝叶斯优化相结合,提升模型性能;③掌握Matlab环境下深度学习模型搭建超参数自动优化的技术路线。; 阅读建议:建议读者结合提供的Matlab代码进行实践操作,重点关注贝叶斯优化模块混合神经网络结构的设计逻辑,通过调整数据集和参数加深对模型工作机制的理解,同时可将其框架迁移至其他预测场景中验证效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值