【论文笔记】如何理解深度学习中的End to End

End to end:指的是输入原始数据,输出的是最后结果,应用在特征学习融入算法,无需单独处理。html

end-to-end(端对端)的方法,一端输入个人原始数据,一端输出我想获得的结果。只关心输入和输出,中间的步骤所有都无论。算法

  端到端指的是输入是原始数据,输出是最后的结果,原来输入端不是直接的原始数据,而是在原始数据中提取的特征,这一点在图像问题上尤其突出,由于图像像素数太多,数据维度高,会产生维度灾难,因此原来一个思路是手工提取图像的一些关键特征,这实际就是就一个降维的过程。
  那么问题来了,特征怎么提?
  特征提取的好坏异常关键,甚至比学习算法还重要,举个例子,对一系列人的数据分类,分类结果是性别,若是你提取的特征是头发的颜色,不管分类算法如何,分类效果都不会好,若是你提取的特征是头发的长短,这个特征就会好不少,可是仍是会有错误,若是你提取了一个超强特征,好比染色体的数据,那你的分类基本就不会错了。
  这就意味着,特征须要足够的经验去设计,这在数据量愈来愈大的状况下也愈来愈困难。
  因而就出现了端到端网络,特征能够本身去学习,因此 特征提取这一步也就融入到算法当中,不须要人来干预了

  简单来讲就是深度神经网络处理问题不须要像传统模型那样,如同生产线般一步步去处理输入数据直至输出最后的结果(其中每一步处理过程都是通过人为考量设定好的 (“hand-crafted” function))。网络

  与之相反,只需给出输入数据以及输出,神经网络就能够经过训练自动“学得”以前那些一步接一步的 “hand-crafted” functions。学习

相关理解:

一、传统系统须要几个模块串行分别设计,end2end把中间模块都去掉了。
以机器翻译为例 要设计翻译模型 语言模型 调序模型
端到端就是直接一个模型搞定spa

二、cnn就是比较典型的end2end模型。在图像分类里输入image各通道像素,输出图像类别。 相比于非end2end,conv层的卷积核能够充当feature extractor部分而不须要额外的工做去作特征工程的内容。尽管每一层须要本身设计,但如何获得feature并不须要额外的操做。翻译

三、另外一种理解:就是输入一头猪,输出的是香肠设计

End-to-end在不一样应用场景下有不一样的具体诠释,

对于视觉领域而言,end-end一词多用于基于视觉的机器控制方面,具体表现是,神经网络的输入为原始图片,神经网络的输出为(能够直接控制机器的)控制指令,如:视频

1. Nvidia的基于CNNs的end-end自动驾驶,输入图片,直接输出steering angle。从视频来看效果拔群,但其实这个系统目前只能作简单的follow lane,与真正的自动驾驶差距较大。亮点是证明了end-end在自动驾驶领域的可行性,而且对于数据集进行了augmentation。连接:htm

2. Google的paper: Learning Hand-Eye Coordination for Robotic Grasping with Deep Learning and Large-Scale Data Collection,也能够算是end-end学习:输入图片,输出控制机械手移动的指令来抓取物品。这篇论文很赞,推荐:blog

3. DeepMind神做Human-level control through deep reinforcement learning,其实也能够归为end-end,深度加强学习开山之做,值得学习:

4. Princeton大学有个Deep Driving项目,介于end-end和传统的model based的自动驾驶之间,输入为图片,输出一些有用的affordance(实在不知道这词怎么翻译合适…)例如车身姿态、与前车距离、距路边距离等,而后利用这些数据经过公式计算所需的具体驾驶指令如加速、刹车、转向等。连接:

总之

end-end不是什么新东西,也不是什么神奇的东西,仅仅是直接输入原始数据,直接输出最终目标的一种思想。
相关文章
相关标签/搜索