天天看點

6 個核心理念!诠釋了吳恩達新書《Machine Learning Yearning》

吳恩達的《Machine Learning Yearning》主要講的是如何建構好的機器學習項目。這本書包含了很難在其他地方找到的實際見解,其格式很容易與隊友和合作者分享。大多數人工智能技術課程都會向你解釋不同的 ML 算法如何在架構下工作,但是這本書教你如何實際使用它們。如果你渴望成為人工智能的技術上司者,這本書将幫助你的道路。曆史上,學習如何對人工智能項目做出戰略決策的唯一方法是參加研究所學生課程或獲得在公司工作的經驗。《Machine Learning Yearning》是有助于你快速獲得這種技能,這使你能夠更好地建立複雜的人工智能系統。

關于作者

6 個核心理念!诠釋了吳恩達新書《Machine Learning Yearning》

吳恩達是一位計算機科學家、執行官、投資者、企業家,也是人工智能領域的 Top 專家之一。他是百度的前副總裁兼首席科學家,斯坦福大學的兼職教授,最受歡迎的機器學習線上課程之一的建立者,coursera.com 的聯合創始人和谷歌大腦的前任負責人。在百度,他曾将人工智能團隊擴充到數千人。

介紹

《Machine Learning Yearning》這本書從一個小故事開始。想象一下,你想在公司裡建立一個性能領先的貓識别系統。您已經建構了一個原型,但不幸的是,您的系統的性能沒有那麼好。您的團隊提出了幾個關于如何改進系統的想法,但是您對遵循哪個方向感到困惑。你可能建立世界領先的貓識别系統,或者在錯誤的方向上浪費數月的時間。

這本書是要告訴你如何在這樣的情況下作出決定,找到最優解決方案。吳恩達提出大多數機器學習問題都會留下關于下一步該如何做的線索,以及你應該避免做的事情。他繼續解釋說,學習“閱讀”這些線索是我們領域的一項關鍵技能。

簡而言之,ML Yearning 為你提供一份關于如何設定機器學習項目技術方向的深層次的了解。

由于你的團隊成員在你提出新想法時可能會持懷疑态度,是以吳恩達把這些章節寫得很短(1-2 頁),這樣你的團隊成員就可以在幾分鐘内讀懂它來了解這些概念背後的概念。如果你有興趣讀這本書,請注意,它不适合完全初學者,因為它需要基本熟悉監督學習和深入學習。

在這篇文章中,我将用我自己的語言總結這本書的 6 個核心理念。

1. 疊代、疊代、再疊代

吳恩達在書中強調,快速疊代非常重要,因為機器學習是一個疊代過程。不要考慮如何為您的問題建構完美的 ML 系統,您應該盡可能快地建構一個簡單的原型。如果你不是問題領域的專家,這一點尤其正确,因為很難正确猜測最有希望的方向。

你應該在幾天内建構第一個原型,然後彈出提示,向你展示改進原型性能的最有希望的方向。在下一個疊代中,你将根據其中的一個提示繼續改進系統,并建構下一個版本的系統。你會一次又一次地這樣做。

吳恩達繼續解釋說,疊代的越快,你将取得更多的進展。這本書的其它概念,都是建立在這一原則的基礎上。但請注意,這是為那些隻想建構基于人工智能的應用程式而不想在該領域進行研究的人設計的。

2. 使用單一的評價名額

6 個核心理念!诠釋了吳恩達新書《Machine Learning Yearning》

這個概念建立在前一個概念的基礎上,關于為什麼選擇單個數字的評估度量的解釋非常簡單:它使您能夠快速評估算法,是以您能夠更快地疊代。使用多個評估名額隻會使比較算法變得更加困難。

假設你有兩個算法。第一個具有 94% 的精确率和 89% 的召回率。第二種方法的精确率為 88%,召回率為 95%。

如果你沒有選擇一個評估名額,那麼不知道哪個分類器是更好的,是以可能需要花費一些時間來弄清楚。問題是,在每次疊代中都會為這個任務浪費大量時間,并且從長遠來看,累積起來耗費的時間更多。你将嘗試許多關于體系結構、參數、功能等想法。如果使用單個數字評估名額(如精确率或 F1 分數),則可以根據模型的性能對所有模型進行排序,并快速确定哪個模型最有效。改進評估過程的另一種方法是将多個度量合并為一個度量,例如,通過平均多個錯誤度量。

然而,仍然存在需要滿足多個名額的 ML 問題,例如:運作時間。吳恩達解釋說,你應該定義一個“可接受的”運作時間,這使你能夠快速地整理出速度太慢的算法,并根據你的單個評估名額得到令人滿意的算法。

簡言之,單個評估名額能使你能夠快速評估算法,進而更快地疊代。

3. 錯誤分析是關鍵

6 個核心理念!诠釋了吳恩達新書《Machine Learning Yearning》

錯誤分析是檢視分析算法輸出錯誤的過程。例如,假設你的貓識别器把鳥誤認為貓,并且你已經對如何解決這個問題有了一些想法。

通過适當的錯誤分析,你可以估計改進的想法實際上會提高系統性能的程度,而無需花費數月的時間來實作這個想法,然後發現它對提升系統并不重要。這使你能夠決定哪種想法是值得花最多的資源去實作的。如果你發現錯誤分類的圖像中隻有 9% 是鳥,那麼無論你多大程度上改進算法在鳥分類上的性能,結果并不重要,因為它不會提高超過 9% 的性能。

此外,吳恩達提出幾個使你能夠快速進行錯誤分析的想法。您隻需要建立一個電子表格,然後從驗證集中選取 100 個錯誤分類的圖像。在電子表格中,為每一個錯誤分類的圖像建立一行,為每一個需要改進的想法建立一列。然後你檢查每一個錯誤分類的圖像,并記錄哪些改進想法能夠使該錯誤圖像被正确分類。

比如,這樣做之後你會發現,使用 IDEA-1,系統将正确分類 40% 的錯誤分類圖像,使用 IDEA-2,正确分類 12%,使用 IDEA-3,正确分類隻有 9%。然後你就會知道,IDEA-1 是你的團隊應該做的最有希望的改進。

此外,一旦你開始檢視這些錯誤分類的圖像,你還可能會發現改進算法的新想法。

4. 定義一個最佳錯誤率

最佳錯誤率有助于指導您接下來的步驟。在統計學中,它也經常被稱為貝葉斯誤差率。

想象一下,你正在建構一個語音轉文本的系統,你發現使用者送出的 19% 的音頻檔案有比較大的背景噪音,甚至人都無法識别其中所說的内容。如果是這樣的話,即使是最好的系統也可能有高達 19% 的誤差。相反,如果你處理的是一個最佳錯誤率接近 0% 的資料集,你的系統應該會表現得更好。

定義一個最佳錯誤率還會幫助你檢測算法是否存在高偏差或方差,這有助于你定義下一步改進算法。

但我們如何知道最佳錯誤率是多少呢?對于人類擅長的任務,您可以将系統的性能與人類的性能進行比較,進而估計出最佳錯誤率。在其他情況下,通常很難定義一個最佳錯誤率,這就是為什麼你應該研究人類在某些問題上能夠做得很好的問題,我們将在下一部分讨論。

5. 努力解決人類能做得很好的問題

在整本書中,吳恩達解釋了好幾次為什麼建議專注于人類擅長的領域上研究機器學習。例如語音識别、圖像分類、目标檢測等。這有幾個原因。

首先,更容易獲得或建立一個标記的資料集,因為如果人們能夠自己解決問題,那麼他們很容易為你的學習算法提供高精度的标簽。

其次,你可以使用人工性能作為希望用機器算法達到的最佳錯誤率。吳恩達解釋說,定義了一個合理且可實作的最佳錯誤有助于加快團隊的進度。它還可以幫助你檢測你的機器算法是否存在高偏差或方差。

第三,它能使你能夠根據人類直覺進行錯誤分析。例如,如果你正在建構語音識别系統,并且你的模型對輸入進行了錯誤的分類,那麼你可以嘗試了解人類将使用哪些資訊來獲得正确的識别,并使用這些資訊相應地修改學習算法。雖然算法在越來越多的任務上超過了人類,而人類自己卻做不好,但是你應該盡量避免這些問題。

總的來說,你應該避免這些人類不擅長的任務,因為這會使你的資料更難獲得标簽,你不能再依靠人類的直覺,而且很難知道最佳錯誤率是什麼。

6. 如何劃分資料集

吳恩達還提出了一種如何分割資料集的方法。他建議如下:

訓練集:使用它,你可以訓練你的算法,而不需要其他任何東西。

驗證集:這個集合用于進行超參數調整、選擇和建立适當的特性以及進行錯誤分析。它基本上是用來決定你的算法的。

測試集:測試集用于評估系統的性能,但不用于做決定。它隻是用來評估的,沒有别的。

驗證集和測試集允許你的團隊快速評估算法的性能。它們的目的是指導你對系統進行最重要的更改。

吳恩達建議使用驗證集和測試集,以便在未來系統部署之後,你希望在哪個資料集上表現得更好。如果你實際用到的資料與目前訓練的資料不同,這一點尤其重要。例如,你訓練模型的時候使用的普通相機拍攝的圖檔,但實際應用中系統将隻接收手機拍攝的照片,因為它是一個手機 app 應用。如果你沒有足夠的手機照片來訓練你的系統,這可能就會出問題。是以,您應該選擇測試集,這些測試集反映出你希望在以後的實際情況中表現出色的資料類型,而不是用于訓練的資料。

另外,您應該選擇來自同一分布的驗證集和測試集。否則,你的團隊有可能會在驗證集上建構一些性能良好的模型,結果發現它在測試資料上的性能非常差,這是你最關心的。

總結

在這篇文章中,我向大家介紹了《Machine Learning Yearning》這本書的 6 個核心概念。現在你知道了,為什麼快速疊代很重要,為什麼應該使用單個評估名額,以及什麼是錯誤分析,為什麼它至關重要。此外,你還了解了最佳錯誤率、為什麼你應該處理人類可以做得很好的機器學習問題以及如何劃分資料。另外,您應該選擇來自同一分布的驗證集和測試集。希望這篇文章能給你介紹一下這本書的一些關鍵概念,我可以肯定地說這本書值得一讀。

資源

最後,附上吳恩達《Machine Learning Yearning》的電子書,包含英文版和官方授權翻譯的中文版!供大家參考學習。

繼續閱讀