奔走的老鱼 發表於 2025-12-4 12:50:00

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

<p>此分类用于记录吴恩达深度学习课程的学习笔记,目前已完结,点击进入全集目录<br>
课程相关信息链接如下:</p>
<ol>
<li>原课程视频链接:[双语字幕]吴恩达深度学习deeplearning.ai</li>
<li>github课程资料,含课件与笔记:吴恩达深度学习教学资料</li>
<li>课程配套练习(中英)与答案:吴恩达深度学习课后习题与答案</li>
</ol>
<p>本篇为第三课的第二周内容,2.9到2.10的内容,也是本篇的理论部分的最后一篇。</p>
<hr>
<p>本周为第三课的第二周内容,本周的内容关于在上周的基础上继续展开,并拓展介绍了几种“学习方法”,可以简单分为误差分析和学习方法两大部分。<br>
其中,对于后者的的理解可能存在一些难度。同样,我会更多地补充基础知识和实例来帮助理解。本篇的内容关于<strong>端到端学习</strong>,与其说它是一种学习方式,不如说它更像一种学习逻辑,并不难理解,因此本篇的篇幅也较短。</p>
<h1 id="1什么是端到端学习">1.什么是端到端学习?</h1>
<p>现在有这样一道数学题摆在我们面前:</p>
<p></p><div class="math display">\[5 \times 10 =?
\]</div><p></p><p>相信你在看到题面的时候就已经得到答案了,但是别着急,我们来理顺一下得出答案的思路。</p>
<ol>
<li>首先,我们要学习阿拉伯<strong>数字本身</strong>,学习个位数和十位数的区别。</li>
<li>然后,我们要学习<strong>加法</strong>的运算规则,他的表示符号。</li>
<li>在之后,我们在加法的基础上学习<strong>乘法</strong>和相关表示与计算。</li>
<li>最后,我们才得出了计算结果:50</li>
</ol>
<p>虽然我们一下子就算出了答案,但我们的脑子里一定会有这样<strong>一步步的过程</strong>:理解符号 → 理解运算 → 理解组合 → 得到答案。</p>
<p>而现在,如果你<strong>没有任何数学基础</strong>,我只告诉你:</p>
<p></p><div class="math display">\[4 \times 5 =20,1\times 2 =2,3\times 4 =12······
\]</div><p></p><p>你解出这道题吗?答案很显然,我们最多蒙一蒙。<br>
<strong>但是机器能。</strong><br>
在深度学习的世界里,有一种完全不同的思路。<br>
这种思路不需要我们一层层地把规则写明,也不需要我们告诉模型“先学数字、再学加法、最后学乘法”。<br>
<strong>它允许模型直接从输入跳到输出。</strong><br>
<strong>不需要人为地拆分中间步骤。</strong><br>
在这种方式下,我们会对模型说:</p>
<blockquote>
<p>“这是输入 <span class="math inline">\(x\)</span>,这是输出 <span class="math inline">\(y\)</span>。<br>
中间怎么处理?你自己学。”</p>
</blockquote>
<p>就像只给学生看大量的“题目 → 答案”<br>
却完全不教任何运算规则。<br>
模型必须<strong>自己推理出所有隐含的步骤</strong>,并在内部构建出自己的处理流程。<br>
这种方式就是:<strong>端到端学习(End-to-End Learning)</strong><br>
我们来看看课程中一些实际应用的例子,看看端对端学习的适用情况和领域。</p>
<h1 id="2-端对端学习在什么时候适用">2. 端对端学习在什么时候适用?</h1>
<p>我们举两个例子来说明这个问题。</p>
<h2 id="21-门禁系统的面部识别">2.1 门禁系统的面部识别</h2>
<p>先来看看非端对端逻辑下的门禁系统要经过什么样的步骤:<br>
<img src="https://img2024.cnblogs.com/blog/3708248/202512/3708248-20251204124736239-2018019707.png" alt="image.png" loading="lazy"></p>
<p>一般来说,我们在这种系统录入的都是证件照,也就是较为精美的正面照。<br>
但是,很显然,在真实扫脸中我们不会这么<strong>标准</strong>,这就像我们之前常常提到的分布不同问题,会很大程度影响模型的实用性。<br>
因此,“检测人脸”这一步是我们根据正常逻辑加入的,是我们<strong>为了帮助提高拟合手动设计的步骤。</strong><br>
我们可以训练两个模型来实现这个系统:</p>
<ol>
<li>从不同角度、距离的人脸检测模型。</li>
<li>检测到的人脸与数据库的对比识别模型。</li>
</ol>
<p>当然,这只是一个示例,也有其他的方法和技术。<br>
现在,再来看看端对端逻辑下的系统实现:<br>
<img src="https://img2024.cnblogs.com/blog/3708248/202512/3708248-20251204124531630-2137172656.png" alt="image.png" loading="lazy"></p>
<p>很显然,要想实现端对端学习,最重要的前提就是<strong>极大规模的数据集</strong>。<br>
而实际上,在门禁系统中,上面这种<strong>非端对端的学习方式反而更好</strong>,为什么?<br>
我们来看看二者的对比,归根到底,还是数据问题。<br>
<img src="https://img2024.cnblogs.com/blog/3708248/202512/3708248-20251204124530544-94102875.png" alt="image.png" loading="lazy"><br>
因此,在数据量不足的情况下,传统非端对端的学习方式反而效果更好。<br>
那端对端有什么较为突出的应用领域吗?有的兄弟,有的。<br>
我们继续下一个例子。</p>
<h2 id="22-语言翻译">2.2 语言翻译</h2>
<p>如果我们人工把中文翻译成英文,你在脑海可能会一个个拼出每个字对应的英文单词再组合。<br>
为什么说在这个领域端对端学习更好,很简单,<strong>数据容易获取</strong>。<br>
<strong>你在翻译软件输入一句中文并翻译成英文,好了,现在你已经得到一个样本和其相应的标签了。</strong><br>
这样,模型可能不理解单个英文字母是什么,不理解具体的语言逻辑,但是它就是可以通过自己的学习方式进行翻译。<br>
显然,这得益于海量的数据支持。</p>
<h1 id="3-端对端学习的优缺">3. 端对端学习的优缺?</h1>
<p>端到端学习听起来很“酷”,直接输入 <span class="math inline">\(x\)</span>,直接输出 <span class="math inline">\(y\)</span>,就像魔法一样。但任何技术都有两面,端到端学习也一样。<br>
最后我们通过对比来看看它的优缺点,也当作是对它的总结。</p>
<table>
<thead>
<tr>
<th>项目</th>
<th>端到端学习(End-to-End)</th>
<th>传统分步骤方法(Pipeline)</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>设计复杂度</strong></td>
<td>结构简单,不需要人为拆分步骤</td>
<td>需要人工划分多步骤、设计特征</td>
</tr>
<tr>
<td><strong>对数据的依赖</strong></td>
<td><strong>极强,需要海量数据</strong></td>
<td>数据需求较少,模块可分开训练</td>
</tr>
<tr>
<td><strong>整体性能</strong></td>
<td>可达到更好的“全局最优”</td>
<td>可能受制于每个子模块的局部最优</td>
</tr>
<tr>
<td><strong>可解释性</strong></td>
<td>差,内部逻辑是黑箱</td>
<td>好,每个步骤都可观察、可调试</td>
</tr>
<tr>
<td><strong>调试难度</strong></td>
<td>高,出错很难定位</td>
<td>低,可逐个模块定位问题</td>
</tr>
<tr>
<td><strong>鲁棒性(分布变化)</strong></td>
<td>容易受到数据分布偏差影响</td>
<td>更稳,因为每步可强制规则约束</td>
</tr>
<tr>
<td><strong>适用场景</strong></td>
<td>翻译、语音识别等“数据巨大”的任务</td>
<td>医疗影像、人脸识别等数据有限任务</td>
</tr>
</tbody>
</table><br><br>
来源:https://www.cnblogs.com/Goblinscholar/p/19306504
頁: [1]
查看完整版本: 吴恩达深度学习课程三: 结构化机器学习项目 第二周:误差分析与学习方法(五)端到端学习