關於深度學習(神經網絡)的一些想法在幾十年前就有了,那爲什麼它們到現在才流行起來了呢?

推動其近期發展的主要因素有兩個:

  • 數據可用性(data availability):如今人們在數字設備(筆記本電腦、移動設備等)上花費的時間越來越多,對應的數字化行爲與活動產生了海量的數據,而這些數據都可以提供給我們的學習算法用來訓練。
  • 計算規模(computational scale):在近幾年前,我們纔開始有能力訓練出規模足夠大的神經網絡來使用現有的海量數據集。

具體來說,即使你積累了更多的數據,但應用在類似於對數幾率迴歸(logistic regression)這樣較傳統的學習算法上,其性能表現(performance)也將趨於 “平穩” 。這意味着算法的學習曲線將 “變得平緩” ,就算提供更多的數據,算法的性能也將不再提升。

傳統學習算法似乎並不知道要如何來處理現今這般規模量級的數據。

在同樣的監督學習任務下,選擇訓練一個小型的神經網絡(neutral network, NN),你可能會獲得較好的性能表現:

該圖顯示了在小數據集上應用神經網絡的效果會更好,但這種效果與將神經網絡應用在大數據集時不太一致。在小數據集情況下,傳統算法是否會表現得更好,取決於人們如何進行特徵選擇工程。例如,假設你只有 20 個訓練樣本,那麼使用對數幾率迴歸還是神經網絡可能無關緊要;此時人爲的特徵選擇工程比起選擇哪種算法將產生更大的影響。但如果你有 100 萬個樣本數據,我會贊成你使用神經網絡。

這裏的 “小型神經網絡” 指的是隻含有少量的隱藏元/層/參數的神經網絡。但如果你訓練的神經網絡規模越來越大,最終很有可能會獲得更好的表現:

因此,爲了獲得最佳的性能表現,你可以這樣做:

  1. 訓練大型的神經網絡,效果如同上圖的綠色曲線;
  2. 擁有海量的數據。

在算法訓練時,許多其它的細節也同等重要,例如神經網絡的架構。但目前來說,提升算法性能的更加可靠的方法仍然是訓練更大的網絡以及獲取更多的數據。完成 1 和 2 的過程異常複雜,本書將對其中的細節作進一步的討論。我們將從傳統學習算法與神經網絡中都起作用的通用策略入手,循序漸進地講解至最前沿的構建深度學習系統的策略。

喜歡就

相關文章