1. 程式人生 > >機器學習中的End-to-End到底是怎麼回事?

機器學習中的End-to-End到底是怎麼回事?

簡單講就是,Input--->系統(這裡指神經網路)--->Output(直接給出輸入,NN神經網路就給出結果,一氣喝成!!!)

  機器之心:那你現在最主要的興趣是在視覺和在語言處理這方面的這個方向嗎?

  田淵棟:這些方向都會有涉及。但現在時代不同了,不應該把自己限制在視覺或者某個特定方向。

  機器之心:不是一個專門的應用。

  田淵棟:對,因為感覺上自然語言處理、影象、語音,這些基本上都是應用了。所以說如果必要的話,其實可以在這個中間進行切換,或者做一些交叉的方向。以前做這三個方向,可能需要大量的領域知識,特別是做自然語言處理,要學以前語言學的文獻。要做分詞,比如說每個詞給一些詞性。要做一些語法的分析、語素的分析,有很多很多的步驟。但現在的趨勢是從頭到尾都讓機器學。

  機器之心:就是他們說的 end-to-end。

  田淵棟:是的,end-to-end 端對端的學習。比如說自然語言這一塊,並沒有比以前的效果好太多,但整個流程變得很簡單方便,將來進步的速度可能就會變快。比如機器翻譯裡面,你把一個句子,直接通過神經網路翻譯成另外一個語言的句子,這樣就比以前快。以前可能要分詞呀,詞性標註呀,對每個詞找到另外一個語言對應的詞或者片語,找到之後再重新排列一下,最後才產生一個句子。要通過幾個步驟,但是現在在概念上,只要一步就算出來。【注:現在基於神經網路的翻譯系統確實比以前好很多了 】。

  為什麼會出現端對端呢?我覺得主要是因為神經網路這個模型的優點。神經網路模型是個非常靈活可擴充的模型,隨便連一下,然後做後向傳遞就可以了。大家一開始沒有意識到它的厲害,覺得做這個系統得要分幾步吧,神經網路只是其中一步,前面和後面還是通過傳統方式來做比較安全。後來大家就慢慢意識到,為什麼不用神經網路把整個系統打通?那樣的話,又省時效果也會更好。自然而然,大家都會思考端對端的思路。我覺得現在基本上端對端的效果,主要體現在整個迭代的速度上,從設計模型到訓練,到看到結果,到修改模型這樣一個迴圈的速度會很快,效果也通常會變得更好。人優化引數的時候,可能半小時優化一次,看看結果如何;機器優化引數,可能一秒就優化幾百次。所以這個時間的改進是數量級上的改進。

  資料集的獲得,現在主要是在網上花錢,人工標註。比如說一張圖幾塊錢的,然後讓人去做。就發動群眾的力量嘛,看大家有沒有空。有空閒著無聊了,就標註兩張。這樣把力量彙集起來。