整理并翻译来自吴恩达深度学习系列视频:结构化机器学习项目2.90和2.10.
One of the most exciting recent development in deep learning, has been the rise of end-to-end deep learning.
Briefly, there have been some data processing systems, or learning systems that require multiple stages of processing. And what end-to-end deep learning does, is it can take multiple stages and replace it usually with just a single neural network.
端到端的深度学习
有些数据处理系统,或者机器学习系统需要多个阶段的处理。端到端的深度学习,做的是用单个深度神经网络(一般情况下)去替代多个阶段的处理过程。
如上图,传统的语音识别大致包括四个步骤,而端到端的深度学习直接接收声音输入,然后完成听译过程。
它目前面临的其中一个挑战是,你可能需要大量的数据才能使它运行得很好。
Counter Example
在上图的人脸识别中,可能把问题拆分成识别人脸的位置和身份识别(与库中已有人脸对比)两个子过程可能使我们得到最优解而不是端到端的深度学习。因为两个子问题都有大量的数据和成熟的解决方案。而关于直接从图片映射到人的身份这个数据集可能只有很小的一部分数据,在该情况下端到端的深度学习不能取得更好的效果。
下面是2个正面的例子。
端对端学习的优缺点
优点:
- 让数据说话
- 不需要手动设计组件
缺点:
- 可能需要大量的数据
- 排除了可能是有用的手动设计组件
什么时候使用端到端的深度网络
如图:一个正例,一个反例。
关键问题: 你是否有足够多的数据去学习一个能从x直接映射到y的函数。
除了数据,我觉得吴恩达教授没有直接点出的一点是,有些问题中,人工设计的完备且合理的组件可能会发挥很大的作用。
在语音识别的例子中,从声位到字再到听译这个人工设计的过程及其相应组件可能不太恰当,限制了学习算法的发挥。而人脸识别这个例子,人脸位置识别和身份识别两个组件就十分恰当,所以才能得到优于端到端学习的效果。
所以组件的合理性和完备性及其适用性也是我们去考虑要不要舍弃去进行端到端学习的一个考量。