吳恩達《Machine Learning Yearning》完整中文版開源啦!git
《Machine Learning Yearning》是吳恩達歷時兩年,根據本身多年實踐經驗整理出來的一本機器學習、深度學習實踐經驗寶典。做爲一本 AI 實戰聖經,本書主要教你如何在實踐中使機器學習算法的實戰經驗。github
吳恩達稱:這本書的主題是「如何構建機器學習項目」。「這本書的重點不在於教授具體的機器學習算法,而在於如何使機器學習算法真正發揮做用。有一些技術類的人工智能課程會給你一個錘子;而這本書會教你如何使用這個錘子。若是你渴望成爲人工智能領域的技術領導者,並想了解如何爲你的團隊設定方向,那麼這本書將會有所幫助。」算法
機器學習(machine learning)已然成爲無數重要應用的基石——現在,在網絡搜索、垃圾郵件檢測、語音識別以及產品推薦等領域,你都可以發現它的身影。若是你或你的團隊正在研發一款機器學習相關應用,並期待取得較快進展,那麼這本書將會是你的得力助手。網絡
想象一下,你正在創建一家初創公司,這家公司的產品目標是爲貓咪愛好者們提供數不盡的貓咪圖片,你打算應用神經網絡(neural network)技術來構建一套計算機視覺系統,經過該系統來識別圖片中的貓。架構
但悲劇的是,目前你的學習算法準確度還不夠好。爲了改進這個貓咪檢測器,你正面臨着巨大的壓力。可你該怎麼作呢?機器學習
你的團隊給出了許多建議,例如:函數
在上面衆多的方向中,若是你作出了正確的選擇,就將創建起一個效果領先的貓咪圖片識別平臺,並帶領你的公司取得成功。但若是你選擇了一個糟糕的方向,則可能所以浪費掉幾個月的時間。那麼你該如何作出決定呢?性能
這本書將告訴你應該怎麼作。衆多的機器學習問題會留下一些線索,告訴你什麼樣的嘗試有用,什麼樣的沒用。而學會解讀這些線索將會節省你幾個月甚至幾年的開發時間。學習
完成本書的閱讀後,你將進一步理解如何爲一個機器學習項目設定技術方向,但團隊成員可能不理解你爲什麼要推薦某個特定的方向。有時你但願你的團隊定義一個單值評估指標,但他們並不承認你的想法,此時你將如何說服他們?大數據
這正是我決定縮短章節篇幅的緣由——這樣你就可以將它們打印出來,而且讓你的成員僅閱讀其中他們須要瞭解的那幾頁。
優先級的稍加改變會對團隊的生產力產生巨大的影響,我但願你能幫助團隊作出一些這樣的改變,從而成爲團隊裏的超級英雄!
若是你有學習過機器學習相關課程(例如我在 Coursera 開設的機器學習 MOOC),或者有過監督學習的應用經驗,這本書的內容對你而言則不難理解。
本書假設你熟悉監督學習(supervised learning)概念,即便用標註(labeled)的訓練樣本(x,y)來學習一個從 x 映射到 y 的函數。監督學習算法主要包括線性迴歸(linear regression)、對數概率迴歸(logistic regression,又譯做邏輯迴歸、邏輯斯蒂迴歸)和神經網絡(neural network)。雖然機器學習的形式有許多種,但當前具有實用價值的大部分機器學習算法都來自於監督學習。
我將常常說起神經網絡(也被人們稱爲「深度學習」 ),但你只需對這個概念有基礎的瞭解即可以閱讀本書後面的內容。
若是對上文提到的一些概念你還不是很熟悉,能夠在 Coursera 觀看《機器學習》前三週的課程內容。(課程地址:http://ml-class.org)
關於深度學習(神經網絡)的一些想法在幾十年前就有了,那爲何它們到如今才流行起來了呢?
推進其近期發展的主要因素有兩個:
具體來講,即便你積累了更多的數據,但應用在相似於對數概率迴歸(logistic regression)這樣較傳統的學習算法上,其性能表現(performance)也將趨於 「平穩」 。這意味着算法的學習曲線將 「變得平緩」 ,就算提供更多的數據,算法的性能也將再也不提高。
傳統學習算法彷佛並不知道要如何來處理現今這般規模量級的數據。
在一樣的監督學習任務下,選擇訓練一個小型的神經網絡(neutral network, NN),你可能會得到較好的性能表現:
該圖顯示了在小數據集上應用神經網絡的效果會更好,但這種效果與將神經網絡應用在大數據集時不太一致。在小數據集狀況下,傳統算法是否會表現得更好,取決於人們如何進行特徵選擇工程。例如,假設你只有 20 個訓練樣本,那麼使用對數概率迴歸仍是神經網絡可能可有可無;此時人爲的特徵選擇工程比起選擇哪一種算法將產生更大的影響。但若是你有 100 萬個樣本數據,我會同意你使用神經網絡。
這裏的 「小型神經網絡」 指的是隻含有少許的隱藏元/層/參數的神經網絡。但若是你訓練的神經網絡規模愈來愈大,最終頗有可能會得到更好的表現:
所以,爲了得到最佳的性能表現,你能夠這樣作:
在算法訓練時,許多其它的細節也同等重要,例如神經網絡的架構。但目前來講,提高算法性能的更加可靠的方法仍然是訓練更大的網絡以及獲取更多的數據。完成 1 和 2 的過程異常複雜,本書將對其中的細節做進一步的討論。咱們將從傳統學習算法與神經網絡中都起做用的通用策略入手,按部就班地講解至最前沿的構建深度學習系統的策略。
以上內容節選自《Machine Learning Yearning》,完整內容請點擊下方連接閱讀。
Github:https://github.com/deeplearni...