End to end:指的是输入原始数据,输出的是最后结果,应用在特征学习融入算法,无需单独处理。html
end-to-end(端对端)的方法,一端输入个人原始数据,一端输出我想获得的结果。只关心输入和输出,中间的步骤所有都无论。算法
简单来讲就是深度神经网络处理问题不须要像传统模型那样,如同生产线般一步步去处理输入数据直至输出最后的结果(其中每一步处理过程都是通过人为考量设定好的 (“hand-crafted” function))。网络
与之相反,只需给出输入数据以及输出,神经网络就能够经过训练自动“学得”以前那些一步接一步的 “hand-crafted” functions。学习
一、传统系统须要几个模块串行分别设计,end2end把中间模块都去掉了。
以机器翻译为例 要设计翻译模型 语言模型 调序模型
端到端就是直接一个模型搞定spa
二、cnn就是比较典型的end2end模型。在图像分类里输入image各通道像素,输出图像类别。 相比于非end2end,conv层的卷积核能够充当feature extractor部分而不须要额外的工做去作特征工程的内容。尽管每一层须要本身设计,但如何获得feature并不须要额外的操做。翻译
三、另外一种理解:就是输入一头猪,输出的是香肠设计
对于视觉领域而言,end-end一词多用于基于视觉的机器控制方面,具体表现是,神经网络的输入为原始图片,神经网络的输出为(能够直接控制机器的)控制指令,如:视频
1. Nvidia的基于CNNs的end-end自动驾驶,输入图片,直接输出steering angle。从视频来看效果拔群,但其实这个系统目前只能作简单的follow lane,与真正的自动驾驶差距较大。亮点是证明了end-end在自动驾驶领域的可行性,而且对于数据集进行了augmentation。连接:https://devblogs.nvidia.com/parallelforall/deep-learning-self-driving-cars/htm
2. Google的paper: Learning Hand-Eye Coordination for Robotic Grasping with Deep Learning and Large-Scale Data Collection,也能够算是end-end学习:输入图片,输出控制机械手移动的指令来抓取物品。这篇论文很赞,推荐:https://arxiv.org/pdf/1603.02199v4.pdfblog
3. DeepMind神做Human-level control through deep reinforcement learning,其实也能够归为end-end,深度加强学习开山之做,值得学习:http://www.nature.com/nature/journal/v518/n7540/full/nature14236.html
4. Princeton大学有个Deep Driving项目,介于end-end和传统的model based的自动驾驶之间,输入为图片,输出一些有用的affordance(实在不知道这词怎么翻译合适…)例如车身姿态、与前车距离、距路边距离等,而后利用这些数据经过公式计算所需的具体驾驶指令如加速、刹车、转向等。连接:http://deepdriving.cs.princeton.edu/