是否要使用端到端的深度學習?(Whether to use end to-end learning?)
假設你正在搭建一個機器學習系統,你要決定是否使用端對端方法,我們來看看端到端深度學習的一些優缺點,這樣你就可以根據一些准則,判斷你的應用程序是否有希望使用端到端方法。
優點:
端到端學習真的只是讓數據說話。所以如果你有足夠多的(x, y)數據,那么不管從x到y最適合的函數映射是什么,如果你訓練一個足夠大的神經網絡,希望這個神經網絡能自己搞清楚,而使用純機器學習方法,直接從x到y輸入去訓練的神經網絡,可能更能夠捕獲數據中的任何統計信息,而不是被迫引入人類的成見。
端到端深度學習的第二個好處就是這樣,所需手工設計的組件更少,所以這也許能夠簡化你的設計工作流程,你不需要花太多時間去手工設計功能,手工設計這些中間表示方式。
缺點:
它可能需要大量的數據。要直接學到這個x到y的映射,你可能需要大量(x, y)數據。
另一個缺點是,它排除了可能有用的手工設計組件。如果你沒有很多數據,你的學習算法就沒辦法從很小的訓練集數據中獲得洞察力。所以手工設計組件在這種情況,可能是把人類知識直接注入算法的途徑。我覺得學習算法有兩個主要的知識來源,一個是數據,另一個是你手工設計的任何東西,可能是組件,功能,或者其他東西。所以當你有大量數據時,手工設計的東西就不太重要了,但是當你沒有太多的數據時,構造一個精心設計的系統,實際上可以將人類對這個問題的很多認識直接注入到問題里,進入算法里應該挺有幫助的。