【深度学习】端到端学习 (end-to-end) 理解

什么是端到端学习?

In end-to-end reinforcement learning, the end-to-end process, in other words, the entire process from sensors to motors in a robot or agent involves a single, layered or recurrent neural network without modularization. ——维基百科

端到端学习是一种解决问题的思路,与之对应的是多步骤解决问题,也就是将一个问题拆分为多个步骤分步解决,每个步骤是一个独立的任务,其结果的好坏会影响到下一步骤,从而影响整个训练的结果。

而端到端就是不经过复杂的中间建模过程,由输入端的数据直接得到输出端的结果(也就是一步搞定问题),预测结果与真实结果相比较会得到一个误差,然后我们采用比如梯度下降的方法使得误差结果减少,模型最终达到收敛,达到预期的结果。

端到端的好处

  • 缩减人工的预处理、后续处理和特征提取步骤,减少了人为的工作量
  • 尽可能是模型从原始输入到最终输出。给模型更多可以根据数据自动调节的空间,增加模型的整体契合度。

举个例子

相对于深度学习,传统的机器学习过程往往由不同的模块和不同的功能组成,比如卡尔曼滤波运用在轨迹数据的标记和运动物标的识别。这整个过程需要进行数据标注,图像数据的转换,卡尔曼滤波方法的运用等一系列的过程,而每个过程又是相互独立的,每一步都需要我们对数据进行单独的标注等工作。其坏处就是会影响结果的准确性。

一般情况下,更常见的是介于两者之间的解决思路,先把任务拆解为简单的两步解决。例如人脸识别门禁系统,不是由检测到的图片直接得到结果(识别出该员工的id),而是第一步将检测到的图片中的人脸部分放大居中,第二步通过识别得到该员工的id。

什么时候用端到端?

端到端学习并不应该作为我们的一个追求目标,是否要采用端到端学习的一个重要考虑因素是:有没有足够的数据对应端到端的过程,以及我们有没有一些领域知识能够用于整个系统中的一些模块。

你可能感兴趣的:(深度学习,Deep,Learning)