吳恩達新書《Machine Learning Yearning》中7個實用建議(附論文)

資料派THU發表於2018-05-29

作者:Dan Clark, KDnuggets

翻譯:顧佳妮

校對:丁楠雅

本文約2200字,建議閱讀8分鐘。

本文為你介紹吳恩達新書中的7個使用建議,致力於講明白機器學習演算法是怎樣工作的,以及如何構建一個機器學習專案。


《Machine Learning Yearning》是人工智慧和深度學習界的專家吳恩達寫的一本書,這本書致力於講明白機器學習演算法是怎樣工作的,以及如何構建一個機器學習專案。這裡我們選取了這本書中7個非常有用的建議向大家介紹。


人工智慧、機器學習和深度學習這些概念在飛速發展同時促使著工業界發生轉變。吳恩達是這個領域的領軍人物之一,他是Coursera聯合創始人,百度人工智慧團隊的前負責人,以及谷歌大腦的前負責人。他正在寫一本叫做《Machine Learning Yearning》的書來教大家怎樣構建一個機器學習專案(網上可以得到免費的初稿)。


吳恩達在書中寫道:這本書不在於教你機器學習演算法,而是教你怎樣使用機器學習演算法。有些人工智慧培訓班會交給你一個工具,而這本書教你的是怎樣使用這個工具。如果你想成為人工智慧行業中的技術領袖,然後為自己的團隊設定目標的話,這本書會給予你幫助。



我們讀了初稿,然後從中選取了7個最有趣實用的建議:


一、優化指標和滿意度指標


在評估一個演算法時,你應該考慮使用多個衡量指標,而不是採用一個單一的公式。其中一個方法是同時使用優化指標和滿意度指標。



通過上面表格中的例子,我們先預設一個可以接受的執行時間比如小於100毫秒,這個執行時間的衡量標準就可以作為我們的滿意度指標。分類器的執行時間只要在這個標準下就可以了。在這裡準確率是一個優化的指標,這是一個評價演算法的非常有效又簡便的衡量手段。


二、儘快選定專案需要的驗證集或測試集:

不要害怕後期是否需要替換


吳恩達表示當開始構建一個新專案時,他會盡快確定驗證集或測試集來給團隊一個定義明確的目標。起先會設定一個為期一週的目標,這個時候最好能夠儘快想出方案然後推動專案往下進行,就算想出的方案不是那麼完善也比顧慮太多要好。


話雖如此,要是你突然意識到一開始的驗證集或測試集是錯的,不要害怕去改正它。以下三個原因可能造成選出不正確的驗證集:


  • 真正要解決的問題的資料分佈和驗證集的分佈大不相同。

  • 驗證集過擬合。

  • 選擇的衡量標準並不是這個專案真正想要的優化目標。


要記住做出變更並不是什麼大問題,只要往下繼續並讓你的團隊知道當下新的目標是什麼就可以了。


三、機器學習是一個迭代優化的過程:

不要指望它一開始就能起作用


吳恩達說他做一個機器學習專案包括三個步驟:


  • 從產生一個想法開始。

  • 用程式碼實現這個想法。

  • 做實驗判斷這個想法如何。



這個迴圈走得越快,專案的進展就越快。這也說明了為什麼在一開始確定好驗證集是非常重要的,因為這樣可以在迭代優化過程中省下很多時間。衡量資料集上的表現也可以讓你迅速知道專案是否在一個正確的方向上。


四、快速開發第一個系統然後迭代


正如第3點中所說,構建機器學習演算法是一個迭代的過程。在吳恩達的書裡有一章節的篇幅說明快速開發一個系統的好處:“不要試圖一開始就去設計和開發出一個完美的系統,而是應該在幾天內迅速發開訓練一個基本的系統。就算這個初步的系統離你可以發開的最好版本還差得很遠,檢驗這個基本系統的功能也是很有價值的,這樣你可以迅速找到證據來確定值得你投入時間的最有保障的發展方向。


五、並行地評估多個想法


當團隊對改進一個演算法有很多想法時,你可以並行地高效評估這些主意。這裡用識別貓咪影象的演算法來舉例,吳恩達介紹說當他想要過目100個被錯誤分類的驗證集圖片的時候,他會用一個電子錶來記錄然後一邊檢查一邊填寫。



上表中包括了每一張圖片為什麼會被分錯類,還有額外註釋便於日後的回顧。當完成這個表的時候,你就能獲知哪些想法可以消除更多的誤差,哪些想法應該被追蹤。


六、考慮是否要修正錯誤標註的測試集


當你進行誤差分析時,有可能會注意到驗證集的某些樣本是被錯誤標註的,例如圖片在人工標註時被打上了錯誤的標籤。如果你懷疑其中一部分誤差是由這些錯誤標註造成,那可以在剛才提到的電子表格中多加一個類別。



當表格快完成的時候,就可以考慮這些錯誤標註是否值得花時間修復了。書中給出了兩個可能的場景來幫助我們判斷這些錯誤是否值得修復。


  • 例1:


測試集上總體正確率……………………  90%(10%的總體錯誤率)

由於標錯的樣本造成的錯誤率……   0.6% (6%的測試集錯誤率)

由於其他原因造成的錯誤率…………  9.4% (94%的測試集錯誤率)


“在資料集中,相比於9.4%可以改進的錯誤率,由於錯誤標註導致的0.6%的錯誤率是無足輕重的。當然修正這個錯誤標註沒有什麼壞處,但是也沒有必要做。你的系統整體錯誤率是10%還是9.4%都是可接受的。“


  • 例2:


測試集上總體正確率……………………  98%(2%的總體錯誤率)

由於標錯的樣本造成的錯誤率……   0.6% (30%的測試集錯誤率)

由於其他原因造成的錯誤率…………  1.4% (70%的測試集錯誤率)


“驗證集上30%的錯誤是由於誤標註造成的,已經對準確率的評估增加了極大比重的錯誤。這個時候就值得來改善測試集的標籤質量了。處理好錯誤標註的樣本可以幫你解決分類器的錯誤率是1.4%還是2%的問題,相對來說這兩者有巨大不同。“


七、考慮把驗證集分成小的子集

 

如果你在一個較大的驗證集上有20%的錯誤率,那麼值得把這個驗證集分成兩個子集:


舉一個演算法在5000個驗證集上分錯1000個樣本的例子。假設我們想要人工檢查100個錯誤樣本(10%的錯誤樣本)對其進行錯誤分析,那麼應該從驗證集中隨機抽取10%然後放到一邊,暫時稱它為“引人關注的驗證集”來提醒我們要看一下這部分驗證集(在語音識別專案中,你需要聽一下錄音片段,這個時候可能將劃出來的驗證集稱為引人關注的驗證集)。這個需要關注的驗證集中有500個樣本,我們可以預期演算法會在其中分錯100個左右。


驗證集的第二個子集叫做黑箱驗證集,裡面剩有4500個樣本。可以用黑箱驗證集中樣本的的錯誤率來自動評估分類器的效果。可以用這個測試集來選演算法或者調引數。而然,需要注意的是你應該避免具體去看這些樣本。我們之所以使用黑箱這個詞是因為我們只需要用這部分子集來評價分類器即可。


參考文獻


  • Don’t learn Machine Learning in 24 hours

https://www.kdnuggets.com/2018/04/dont-learn-machine-learning-24-hours.html


  • A Basic Recipe for Machine Learning

https://www.kdnuggets.com/2018/02/basic-recipe-machine-learning.html


  • 10 Free Must-Read Books for Machine Learning and Data Science

https://www.kdnuggets.com/2017/04/10-free-must-read-books-machine-learning-data-science.html


原文標題:7 Useful Suggestions from Andrew Ng “Machine Learning Yearning”

原文連結:https://www.kdnuggets.com/2018 /05/7-useful-suggestions-machine-learning-yearning.html

譯者簡介




顧佳妮,香港科技大學研究生,對資料探勘和機器學習領域有極大的興趣。目前就職Teradata從事資料探勘與數學建模工作,擅長數學建模和資料庫運維,致力於在數學科學的道路上發展。

翻譯組招募資訊

工作內容:將選取好的外文前沿文章準確地翻譯成流暢的中文。如果你是資料科學/統計學/計算機專業的留學生,或在海外從事相關工作,或對自己外語水平有信心的朋友,資料派翻譯組歡迎你們加入!

你能得到:提高對於資料科學前沿的認知,提高對外文新聞來源渠道的認知,海外的朋友可以和國內技術應用發展保持聯絡,資料派團隊產學研的背景為志願者帶來好的發展機遇。

其他福利:和來自於名企的資料科學工作者,北大清華以及海外等名校學生共同合作、交流。

點選文末“閱讀原文”加入資料派團隊~


轉載須知

如需轉載,請在開篇顯著位置註明作者和出處(轉自:資料派THU ID:DatapiTHU),並在文章結尾放置資料派醒目二維碼。有原創標識文章,請傳送【文章名稱-待授權公眾號名稱及ID】至聯絡郵箱,申請白名單授權並按要求編輯。

釋出後請將連結反饋至聯絡郵箱(見下方)。未經許可的轉載以及改編者,我們將依法追究其法律責任。



點選“閱讀原文”擁抱組織

相關文章