作者:Niklas Donges
編譯:ronghuaiyang
導讀
吳恩達的新書「Machine Learning Yearning」,大家看過了嗎?沒看過也沒關係,給大家介紹一下書中的6個重要概念!
Machine Learning Yearning是關於機器學習項目發展的結構化書。這本書以一種易於與隊友和合作者分享的形式,包含了在別處很難找到的實用見解。大多數人工智慧課程會向你解釋不同的ML算法是如何工作的,但這本書教你如何實際使用它們。如果你希望成為人工智慧領域的技術領導者,這本書會在你的道路上幫助你。從歷史上看,學習如何對人工智慧項目做出戰略決策的唯一途徑是參加研究生項目或獲得在公司工作的經驗。Machine Learning Yearning幫助你快速獲得這項技能,這使你能夠更好地構建複雜的人工智慧系統。
關於作者
Andrew NG是一名計算機科學家、高管、投資者、企業家,也是人工智慧領域的頂尖專家之一。他是百度的前副總裁兼首席科學家,史丹福大學(Stanford University)兼職教授,最受歡迎的機器學習在線課程之一的創造者,Coursera.com的聯合創始人,谷歌Brain的前負責人。在百度,他積極參與將他們的人工智慧團隊擴大到數千人。
介紹
這本書以一個小故事開頭。想像一下,你想建立一家領先的cat檢測系統公司。你已經構建了一個原型,但不幸的是,你的系統的性能不是很好。你的團隊提出了一些關於如何改進系統的想法,但是你不知道應該遵循哪個方向。你可能會構建世界領先的cat檢測器平台,也可能在錯誤的方向上浪費幾個月的時間。
這本書告訴你如何在這樣的情況下做出決定並分清輕重緩急。根據Andrew NG的說法,大多數機器學習的問題都會給你留下一些線索,告訴你下一步應該做什麼,以及你應該避免做什麼。他繼續解釋說,學習「閱讀」這些線索是我們這個領域的一項關鍵技能。
簡而言之,ML Yearning會讓你對機器學習項目的技術方向設置有一個深刻的理解
由於你的團隊成員在你提出新想法時可能會持懷疑態度,所以他將章節做得非常短(1-2頁),以便你的團隊成員能夠在幾分鐘內閱讀它,以理解概念背後的思想。如果你對這本書感興趣,請注意它不適合完全的初學者,因為它要求你對監督學習和深度學習有基本的了解。
在這篇文章中,我將用我自己的語言來分享這本書的六個概念。
概念1:疊代,疊代,疊代...
NG在整本書中強調,快速疊代非常重要,因為機器學習是一個疊代過程。不要考慮如何為你的問題構建完美的ML系統,你應該儘快構建一個簡單的原型。如果你不是該問題領域的專家,這一點尤其正確,因為很難正確猜測最有希望的方向。
你應該在幾天內構建第一個原型,然後就會出現一些線索,向你展示改進原型性能的最有希望的方向。在下一個疊代中,你將基於這些線索之一改進系統並構建它的下一個版本。你會一次又一次地這樣做。
他繼續解釋說,疊代越快,取得的進展就越大。這本書的其他概念,建立在這個原則之上。請注意,這是為那些只想構建基於人工智慧的應用而不是在該領域進行研究的人設計的。
概念2:使用單個評估指標
這個概念建立在前一個概念的基礎上,關於為什麼應該選擇單個評估指標的解釋非常簡單:它使你能夠快速評估算法,因此能夠更快地疊代。使用多個評估指標只會增加比較算法的難度。
假設有兩種算法。前者的準確率為94%,召回率為89%。第二種方法的準確率為88%,召回率為95%。
在這裡,如果你沒有選擇一個單獨的評估指標,那麼沒有一個分類器是明顯優於它的,因此你可能需要花費一些時間來計算它。問題是,你在每次疊代中都會為這個任務損失大量的時間,而且從長期來看,這些時間會累積起來。你將嘗試很多關於架構、參數、特性等的想法。如果你使用的是單數字評估指標(如精度或f1評分),那麼它使你能夠根據模型的性能對其進行排序,並快速決定哪個模型工作得最好。改進評估過程的另一種方法是將多個指標組合成單個指標,例如,平均多個錯誤指標。
然而,ML問題需要滿足多個指標,例如:考慮運行時間。NG解釋說,你應該定義一個「可接受的」運行時間,這使你能夠快速地對太慢的算法進行排序,並基於你的單個評估指標來比較令人滿意的算法。
簡而言之,單個評估指標使你能夠快速評估算法,從而更快地疊代。
概念3:錯誤分析非常重要
錯誤分析是查看算法輸出不正確的樣本的過程。例如,假設你的貓檢測器將鳥類誤認為貓,你已經對如何解決這個問題有了一些想法。
通過適當的錯誤分析,你可以估計一個改進的想法實際上會增加系統的性能多少,而不需要花費幾個月的時間來實現這個想法,然後意識到它對你的系統並不重要。這使你能夠決定在哪些想法上最好地使用你的資源。如果你發現錯誤分類的圖像中只有9%是鳥類,那麼你的算法對鳥類圖像的性能提高了多少並不重要,因為它不會提高超過9%的錯誤。
此外,它使你能夠快速判斷並行改進的幾個想法。你只需要創建一個電子表格,並在檢查的時候填寫一下。比如說,有100個錯誤分類的圖像,在電子表格上,為每一個分類錯誤的圖像創建一行,為每一個需要改進的想法創建一列。然後你仔細檢查每一張分類錯誤的圖片,然後看看哪個想法可以對這張圖片正確分類,並做上標記。
此外,一旦你開始查看這些樣本,你可能會發現如何改進算法的新思路。
概念4:定義一個最優的錯誤率
最佳錯誤率有助於指導你的下一步工作。在統計學中,它也常被稱為貝葉斯錯誤率。
想像一下,你正在構建一個語音到文本的系統,你發現19%的音頻文件,你希望用戶提交的,都有占主導地位的背景噪音,甚至人類都無法識別裡面說了什麼。如果是這樣的話,你知道即使是最好的系統也可能會有大約19%的錯誤。相反,如果你處理的問題的最佳錯誤率接近0%,那麼你可以希望你的系統也能做到這一點。
它還可以幫助你檢測你的算法是否受到高偏差或方差的影響,從而幫助你定義改進算法的下一步步驟。
但我們怎麼知道最佳錯誤率是多少呢?對於人類擅長的任務,你可以將系統的性能與人類的性能進行比較,從而獲得最佳錯誤率的估計值。在其他情況下,通常很難定義最佳錯誤率,這就是為什麼你應該研究人類能夠很好地解決問題的原因,我們將在下一個概念中討論這些問題。
概念5:做那些人類可以做好的事情
在整本書中,他多次解釋了為什麼建議研究人類可以自己解決的機器學習問題。例如語音識別、圖像分類、目標檢測等。這有幾個原因。
首先,它更容易獲得或創建一個帶標籤的數據集,因為如果人們能夠自己解決問題,那麼為你的學習算法提供高精度的標籤是非常簡單的。
其次,你可以使用人工性能作為你希望通過算法達到的最佳錯誤率。NG解釋說,定義了合理且可實現的最佳錯誤率有助於加快團隊的進度。它還可以幫助你檢測算法是否存在高偏差或方差。
第三,它可以讓你根據自己的直覺進行錯誤分析。例如,如果你正在構建一個語音識別系統,而你的模型對其輸入進行了錯誤分類,那麼你可以嘗試了解人類將使用哪些信息來獲得正確的轉換,並使用這些信息來相應地修改學習算法。雖然算法在越來越多的人類無法完成的任務上超越了人類,但是你應該儘量避免這些問題。
總而言之,你應該避免這些任務,因為它使你更難獲得數據的標籤,你不能再依靠人類的直覺,而且很難知道最佳錯誤率是多少。
概念6:如何劃分你的數據集
NG還提出了一種拆分數據集的方法。他建議如下:
Train Set:用它訓練你的算法,沒別的用。
Dev Set:該集合用於進行超參數調優、選擇和創建適當的特徵以及進行錯誤分析。它基本上是用來決定你的算法的。
Test Set:測試集用於評估系統的性能,但不用於決策。它只是用來評估的,沒有別的。
開發集和測試集允許你的團隊快速評估算法的執行情況。它們的目的是指導你對系統進行最重要的更改。
他建議選擇開發和測試集,它們可以反映出你需要做好的數據是什麼樣的,這些數據就是未來你的系統部署的時候用的。如果你希望數據與你現在正在訓練的數據有所不同,那麼這一點尤其正確。例如,你正在使用普通相機圖像進行訓練,但稍後你的系統將只接收手機拍攝的照片,因為它是移動應用程式的一部分。如果你無法訪問足夠的手機照片來訓練你的系統,可能會出現這種情況。因此,你應該選擇能夠反映你希望在以後的實際工作中表現良好的測試集樣本,而不是你用於訓練的數據。
另外,你應該選擇來自相同發行版的開發集和測試集。否則,你的團隊可能會構建在開發集上做得很好的東西,卻發現在你最關心的測試數據上執行得非常差。
總結
在這篇文章中,你已經了解了Machine Learning Yearning的6個概念。現在你知道了為什麼快速疊代很重要,為什麼應該使用單個評估指標,錯誤分析是什麼,以及為什麼它很重要。此外,你還了解了最佳錯誤率、為什麼應該處理人類能夠很好解決的問題以及應該如何分割數據。此外,你還了解到應該選擇開發和測試數據集,以便它們能夠反映你希望在將來很好地處理的數據,並且開發和測試集應該來自相同的分布。我希望這篇文章給你介紹了這本書的一些概念,我可以肯定地說它值得一讀。
英文原文:https://towardsdatascience.com/6-concepts-of-andrew-ngs-book-machine-learning-yearning-abaf510579d4
更多文章,請關注微信公眾號:AI公園