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/