什么是端到端训练

非端到端:使用多步骤多模型(传统的流水线型设计)

传统的图像识别问题往往通过分治法将其分解为预处理,特征提取和选择,分类器设计等若干步骤。分治法的动机是将图像识别的母问题分解为简单、可控且清晰的若干小的子问题。不过分步解决子问题时,尽管可以在子问题上得到最优解,但子问题上的最优解并不意味着就能得到全局问题的最后解。使用多步骤、多模型解决一个复杂任务的时候,一个明显的弊端是各个模块训练目标不一致,某个模块的目标函数可能与系统的宏观目标有偏差,这样训练出来的系统最终很难达到最优的性能;另一个问题是误差的累积,前一模块产生的偏差可能影响后一个模块。

端到端

深度学习提供了一种端到端的学习范式,整个学习的流程并不进行人为的子问题划分,而是完全交给深度学习模型直接学习从原始数据到期望输出的映射。对深度模型而言,其输入数据是未经任何人为加工的原始样本形式,后续则是堆叠在输入层上的众多操作层,这些操作层整体可以看作一个复杂的函数FCNN, 最终的损失函数由数据损失data loss和模型参数的正则化损失(regularization loss)共同组成, 模型深度的训练则是在最终损失驱动下对模型进行参数更新并将误差反向传播至网络各层。

端到端的优势

端到端模型仅使用一个模型、一个目标函数,就规避了前面的多模块固有的缺陷,这是它的优点之一;另一个优势是减少了工程的复杂度,一个网络解决所有步骤,也就是「炼丹」。

端到端的劣势

端到端模型的一个劣势,就是贡献分配问题,这也是深度学习的一个弊病。在多模块解决方案中,我们可以比较清晰地看到检测每一个模块的性能,也就是贡献;而在端到端模型中,我们很难确定模型中「组件」对最终目标的贡献是什么样的。换一句话说,模型变得更加「黑盒」了,也就降低了网络的可解释性。另外,端到端模型的灵活性也更低,比如原本的多个模块中数据的获取难度不一样的时候,可能不得不依靠额外的模型来协助训练。

什么时候用端到端,什么时候用传统流水线方法

事实证明,端到端深度学习的挑战之一是,你可能需要大量数据才能让系统表现良好,比如,你只有3000小时数据去训练你的语音识别系统,那么传统的流水线效果真的很好。但当你拥有非常大的数据集时,比如10,000小时数据或者100,000小时数据,这样端到端方法突然开始很厉害了。
所以当你的数据集较小的时候,传统流水线方法其实效果也不错,通常做得更好。你需要大数据集才能让端到端方法真正发出耀眼光芒。如果你的数据量适中,那么也可以用中间件方法。
具体案例分析:
吴恩达深度学习笔记(69)-端到端的深度学习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值