吳恩達《Machine Learning Yearning》完整中文版開源

圖片描述

吳恩達《Machine Learning Yearning》完整中文版開源啦!

《Machine Learning Yearning》是吳恩達歷時兩年,根據自己多年實踐經驗整理出來的一本機器學習、深度學習實踐經驗寶典。作爲一本 AI 實戰聖經,本書主要教你如何在實踐中使機器學習算法的實戰經驗。

吳恩達稱:這本書的主題是“如何構建機器學習項目”。

“這本書的重點不在於教授具體的機器學習算法,而在於如何使機器學習算法真正發揮作用。有一些技術類的人工智能課程會給你一個錘子;而這本書會教你如何使用這個錘子。如果你渴望成爲人工智能領域的技術領導者,並想了解如何爲你的團隊設定方向,那麼這本書將會有所幫助。”

圖片描述
圖片描述

1、機器學習爲什麼需要策略

機器學習(machine learning)已然成爲無數重要應用的基石——如今,在網絡搜索、垃圾郵件檢測、語音識別以及產品推薦等領域,你都能夠發現它的身影。如果你或你的團隊正在研發一款機器學習相關應用,並期待取得較快進展,那麼這本書將會是你的得力助手。

案例:建立貓咪圖片初創公司

想象一下,你正在建立一家初創公司,這家公司的產品目標是爲貓咪愛好者們提供數不盡的貓咪圖片,你打算應用神經網絡(neural network)技術來構建一套計算機視覺系統,通過該系統來識別圖片中的貓。

圖片描述

但悲劇的是,目前你的學習算法準確度還不夠好。爲了改進這個貓咪檢測器,你正面臨着巨大的壓力。可你該怎麼做呢?

你的團隊給出了許多建議,例如:

  • 獲取更多的數據,即收集更多的貓咪圖片
  • 收集更加多樣化的訓練數據集,圖片中貓的位置可能不常見,也有可能顏色奇異,或者拍攝時使用不同的相機參數
  • 通過增加梯度下降的迭代次數,使算法訓練得久一些
  • 嘗試一個擁有更多層/更多隱藏元/更多參數的,規模更大的神經網絡
  • 嘗試一個更小的神經網絡
  • 嘗試加入正則化(例如 L2 正則化)
  • 改變神經網絡的架構(激活函數,隱藏元數量等等)

在上面衆多的方向中,如果你做出了正確的選擇,就將建立起一個效果領先的貓咪圖片識別平臺,並帶領你的公司取得成功。但如果你選擇了一個糟糕的方向,則可能因此浪費掉幾個月的時間。那麼你該如何做出決定呢?

這本書將告訴你應該怎麼做。衆多的機器學習問題會留下一些線索,告訴你什麼樣的嘗試有用,什麼樣的沒用。而學會解讀這些線索將會節省你幾個月甚至幾年的開發時間。

2、如何使用此書來幫助你的團隊

完成本書的閱讀後,你將進一步理解如何爲一個機器學習項目設定技術方向,但團隊成員可能不理解你爲何要推薦某個特定的方向。有時你希望你的團隊定義一個單值評估指標,但他們並不認可你的想法,此時你將如何說服他們?

這正是我決定縮短章節篇幅的原因——這樣你就能夠將它們打印出來,並且讓你的成員僅閱讀其中他們需要了解的那幾頁。

優先級的稍加改變會對團隊的生產力產生巨大的影響,我希望你能幫助團隊做出一些這樣的改變,從而成爲團隊裏的超級英雄!

圖片描述

3、先修知識與符號說明

如果你有學習過機器學習相關課程(例如我在 Coursera 開設的機器學習 MOOC),或者有過監督學習的應用經驗,這本書的內容對你而言則不難理解。

本書假設你熟悉監督學習(supervised learning)概念,即使用標註(labeled)的訓練樣本(x,y)來學習一個從 x 映射到 y 的函數。監督學習算法主要包括線性迴歸(linear regression)、對數機率迴歸(logistic regression,又譯作邏輯迴歸、邏輯斯蒂迴歸)和神經網絡(neural network)。雖然機器學習的形式有許多種,但當前具備實用價值的大部分機器學習算法都來自於監督學習。

我將經常提及神經網絡(也被人們稱爲“深度學習” ),但你只需對這個概念有基礎的瞭解便可以閱讀本書後面的內容。

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

圖片描述

4、規模驅動機器學習發展

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

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

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

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

圖片描述

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

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

圖片描述

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

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

圖片描述

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

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

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


以上內容節選自《Machine Learning Yearning》,完整內容請點擊下方鏈接閱讀。

Github:https://github.com/deeplearni...

在線閱讀:https://deeplearning-ai.githu...

中文版:https://github.com/deeplearni...

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章