天天看點

(轉)為什麼選擇機器學習政策

轉自 吳恩達deeplearningai

機器學習(machine learning)是無數重要應用的基礎,其包含網絡搜尋、垃圾郵件檢測、語音識别以及産品推薦等内容。假如你和你的團隊正在研發一項機器學習應用,并且想要取得較為快速的進展,本書的一些内容将會有所幫助。

假設你正在建立一家初創公司,該公司将為貓咪愛好者們提供不計其數的貓咪圖檔。與此同時,你決定使用神經網絡(neural network)技術來建構一套計算機視覺系統,用來識别圖檔中的貓。

你的團隊有許多的改進方案,例如:

  • 擷取更多的資料,即收集更多貓的圖檔
  • 收集更加多樣化的訓練資料集,比如處于不常見位置的貓的圖檔,顔色奇異的貓的圖檔,以及使用不同相機參數拍攝的貓的圖檔
  • 通過增加梯度下降(gradient descent)的疊代次數,使算法訓練得久一些
  • 嘗試一個擁有更多層(layer)/更多隐藏元(hidden units)/更多參數(parameters)的,規模更大的神經網絡
  • 嘗試加入正則化(例如 L2 正則化)
  • 改變神經網絡的架構(激活函數,隐藏元數量等等)
  • ...

如果你能夠在以上可能的方向中做出正确的選擇,那麼你将建立起一個領先的貓咪圖檔識别平台,并帶領你的公司獲得成功。但如果你選擇了一個糟糕的方向,則可能是以浪費掉幾個月甚至數年的開發時間。

監督學習(supervised learning)是指使用已标記(labeled)的訓練樣本  來學習一個從  映射到  的函數。監督學習算法主要包括線性回歸(linear regression)、對數幾率回歸(logistic regression,又譯作邏輯回歸)和神經網絡(neural network)。雖然機器學習的形式有許多種,但目前具備實用價值的大部分機器學習算法都來自于監督學習。

我将經常提及神經網絡(和“深度學習”中所提到的一緻),但你隻需對此有基礎的了解就可以閱讀後面的内容。

如果對上文提到的一些概念你還不是很熟悉,可以在 Coursera 觀看《機器學習》前三周的課程内容。(課程位址:http://ml-class.org)

不少關于深度學習(神經網絡)的想法已經存在了數十年,而這些想法為什麼現在才流行起來了呢?

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

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

具體而言,即使你積累了更多的資料,但應用在類似于對數幾率回歸(logistic regression)這樣的舊學習算法上,其性能表現(performance)也将趨于”平穩“。這意味着算法的學習曲線将”變得平緩“,即使提供更多的資料,算法的性能也将停止提升。

舊的學習算法似乎并不知道要如何來處理如今這個規模量級的資料。

如果你在相同的監督學習任務上選擇訓練出一個小型的神經網絡(neutral network, NN),則可能會獲得較好的性能表現.

是以,為了獲得最佳的性能表現,你可以這樣做:

(i) 訓練大型的神經網絡,效果如同上圖的綠色曲線;

(ii) 擁有海量的資料。

在算法訓練時,許多其它的細節也同等重要,例如神經網絡的架構。但目前來說,提升算法性能的更加可靠的方法仍然是訓練更大的網絡以及擷取更多的資料。

完成 (i) 和 (ii) 的過程異常複雜,本書将對其中的細節作進一步的讨論。我們将從傳統學習算法與神經網絡中都起作用的通用政策入手,循序漸進地講解至最前沿的建構深度學習系統的政策。

繼續閱讀