當前位置:
首頁 > 科技 > 吳恩達新書《機器學習訓練秘籍》六大要點總結

吳恩達新書《機器學習訓練秘籍》六大要點總結

乾明 編譯整理

量子位 報道 | 公眾號 QbitAI

如何讀懂吳恩達的《機器學習訓練秘籍》?

學霸的筆記來了!

近日,一位名叫Niklas Donges的工程師小哥發表了一篇博客文章,提煉出了《機器學習訓練秘籍》中的六大要點。

這本書讀起來並不那麼容易,不僅需要掌握理論知識,還需要一定的實戰經驗。

跟著這份要點,你能學到如何選擇問題、分割數據集、迭代模型等等,來又快又好地構建一個機器學習系統。

量子位將主要內容編譯如下,希望能夠為你帶來啟發。

迭代、迭代、迭代

在整本書中,吳恩達都在強調,機器學習是一個迭代的過程,快速迭代非常重要。

與其花大量時間考慮如何構建一個完美的機器學習系統,還不如儘快構建一個簡單的原型。

在幾天內構建第一個原型,然後就會看到新的線索,告訴你該選擇什麼樣的方向去改進原型的性能。

在下一次迭代中,可以根據這些線索改進系統,並構建系統的下一個版本。一次接一次,循環往複。

吳恩達說,迭代的速度越快,原型取得的進步就越大。

其他的幾個要點,都是基於這一原則。

不過要注意,這一原則只適用於構建人工智慧應用程序解決世界問題的人,對於想要在這個領域進行研究的人,僅供參考。

使用單一的評估指標

為什麼應該選擇單一的評估指標,理由非常簡單:能夠快速對演算法性能表現進行評估,進而更快地進行迭代。

使用多個指標進行評估,只會讓這個過程變得更困難。

假設有兩個演算法,一個準確率(precision)為94%,召回率(recall )為89% 。另一個準確率為88% ,召回率為95% 。

像這樣不用單一指標,就很難判斷孰優孰劣,需要花一些時間來評估到底哪一個演算法更適合你要解決的問題。

而且,在後面的每次迭代中,都會在這個流程上損失大量的時間。

如果使用的是單一的評估指標,比如精度或f1評分,就可以根據性能對所有的演算法或者模型進行排序,並快速決定哪一個最有效。

改進評估過程的另一種方法,是將幾個指標合併成一個指標,比如,取多個誤差指標的平均值。

但是,與機器學習有關的問題解決方案,需要滿足的不止一個指標,例如說,除了要考慮誤差之外,還都要有足夠短的運行時間。

吳恩達解釋說,應該定義一個可以「可以接受的」運行時間,這可以快速排除速度太慢的演算法,並根據單一評估指標來找出好的演算法。

簡而言之,單一評估指標可以快速評估演算法表現,加快迭代速度。

誤差分析至關重要

誤差分析,是查看演算法輸出不正確的樣例的過程。想像一下,一個貓鑒別器,將鳥類誤認為是貓,你可能會有好幾種改進的方法。

通過適當的誤差分析,可以對這些改進的方法進行評估,看看它們能否提高系統的性能。而不必花幾個月的時間來實現這些方法,到最後才發現沒用。

這能夠幫你做出更好的決定。

如果所有被鑒別器錯誤分類的圖像中只有9%是鳥類,那就不用專門針對鳥類圖像進行優化了,因為提升再多最多也不超過這9%的誤差。

此外,誤差分析也能對幾個可以同時進行的改進方法進行評估。

首先,創建一個電子表格,在每一行填入每個錯誤分類的圖像,在每一列,填入改進方法。

之後,檢查每一個被錯誤分類的圖像和標記,看看正確的分類是什麼。

通過電子表格可以看出,哪種方法能更好地改進演算法。比如,使用「方法1」,系統可以正確分類40%的錯誤分類圖像,「方法2」12% ,「方法3」只有9% 。基於此,可以得出結論,方法1是應該進行的改進。

通常情況下,只要一看這些樣本,如何改進演算法就會一目了然。

明確定義最優誤差率

最優誤差率,有助於推進後續的迭代步驟。在統計學中,它也經常被稱為貝葉斯誤差率(Bayes error rate)。

假設你正在構建一個語音-文本轉換系統,其中19%的音頻文件有顯著的背景噪音,哪怕是人類都沒法聽清楚。

這種情況下,即使是最好的人工智慧系統,也可能會有大約19%的誤差。

如果處理最優誤差率接近0%的問題,人工智慧系統也應該以0誤差為目標。

它還可以幫助你檢測演算法是否受到了高偏差或高方差的影響,這有助於接下來改進演算法。

但是我們如何知道最優誤差率是多少呢?對於人類擅長的任務,可以將系統的性能與人類進行比較,從而估算出最優誤差率。

在其他情況下,通常很難定義一個最優誤差率。所以,應該專註於人類能夠做的很好的問題。

解決人類能做得很好的問題

在整本書中,吳恩達一直建議大家研究人類能做得很好的問題,比如語音識別、圖像分類、物體檢測等等,也多次解釋了為什麼。

首先,獲取或創建一個有標籤的數據集比較容易,如果人們可以自己解決問題,他們可以直接為學習演算法提供高精度的標籤。

第二,可以使用人的表現作為演算法的最優誤差率。吳恩達解釋說,定義了合理且可實現的最優誤差有助於推動團隊的進步。它還可以檢測演算法是否存在高偏差或高方差。

第三,能夠對人類直覺進行誤差分析。如果你在構建一個語音識別系統,對輸入進行了錯誤分類,你可以試著去理解,人類會根據哪些信息來獲得正確的分類,然後使用這些信息改進演算法。

儘管演算法在越來越多的人類無法完成的任務上超越了人類,但還是應該盡量避開這些任務。

這使得獲取數據標籤變得更加困難,不能再依靠人類的直覺,也很難知道最優誤差率是多少。

如何拆分數據集

任務選定了, 也知道應該如何迭代模型了,該怎麼選擇數據集呢?

吳恩達還提出了分割數據集的方法。他的建議如下:

訓練集:只是來訓練演算法,不再用於其他用途。

驗證集:這個數據集用於進行超參數調整,選擇和創建合適的特性,以及進行誤差分析。它基本上就是用來決定演算法的。

測試集:用於評估系統的性能,但不用於做決策。 它只是用來評估的,沒有別的用途。

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

吳恩達建議,選擇驗證和測試數據集的時候一定要慎重。

這些數據,一定要與系統要解決的問題有很高的關聯性,這樣才能夠幫助系統進一步優化。

尤其是系統將要處理的數據與訓練過程中使用的數據差別較大的時候,一定要注意這一點。

比如說,使用普通相機拍攝出來的照片訓練模型,但之後這個模型要來處理智能手機拍攝出來照片。但又沒有足夠的智能手機拍攝的照片當做訓練集。

這時,就應該使用智能手機拍攝的照片當做驗證集與測試集,來迭代模型。

在測試集中,應該選擇那些能夠準確反映系統表現的數據,而不是用來訓練的數據。

此外,在選擇驗證集和測試集數據的時候,要注意一致性。

如果出現系統在驗證集上表現良好,在測試數據上表現極差的情況,就麻煩了。

傳送門

《機器學習訓練秘籍》中文版:

https://accepteddoge.com/machine-learning-yearning-cn/docs/ch58/

博客原文:

https://towardsdatascience.com/6-concepts-of-andrew-ngs-book-machine-learning-yearning-abaf510579d4

加入社群

量子位現開放「AI 行業」社群,面向AI行業相關從業者,技術、產品等人員,根據所在行業可選擇相應行業社群,在量子位公眾號(QbitAI)對話界面回復關鍵詞「行業群」,獲取入群方式。行業群會有審核,敬請諒解。

此外,量子位AI社群正在招募,歡迎對AI感興趣的同學,在量子位公眾號(QbitAI)對話界面回復關鍵字「交流群」,獲取入群方式。

誠摯招聘

量子位正在招募編輯/記者,工作地點在北京中關村。期待有才氣、有熱情的同學加入我們!相關細節,請在量子位公眾號(QbitAI)對話界面,回復「招聘」兩個字。

喜歡就點「好看」吧 !

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 量子位 的精彩文章:

德國學者給CNN潑冷水:圖像分類策略太簡單,提高準確率全靠調參
TensorFlow可以「預裝」數據集了,新功能Datasets出爐

TAG:量子位 |