2.3 快速搭建你的第一个系统,并进行迭代-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授
| 2.2 清除標注錯誤的數據 | 回到目錄 | 2.4 在不同的劃分上進行訓練并測試 |
快速搭建你的第一個系統,并進行迭代 (Build Your First System Quickly, Then Iterate)
如果你正在開發全新的機器學習應用,我通常會給你這樣的建議,你應該盡快建立你的第一個系統原型,然后快速迭代。
讓我告訴你我的意思,我在語音識別領域研究了很多年,如果你正在考慮建立一個新的語音識別系統,其實你可以走很多方向,可以優先考慮很多事情。
比如,有一些特定的技術,可以讓語音識別系統對嘈雜的背景更加健壯,嘈雜的背景可能是說咖啡店的噪音,背景里有很多人在聊天,或者車輛的噪音,高速上汽車的噪音或者其他類型的噪音。有一些方法可以讓語音識別系統在處理帶口音時更健壯,還有特定的問題和麥克風與說話人距離很遠有關,就是所謂的遠場語音識別。兒童的語音識別帶來特殊的挑戰,挑戰來自單詞發音方面,還有他們選擇的詞匯,他們傾向于使用的詞匯。還有比如說,說話人口吃,或者說了很多無意義的短語,比如“哦”,“啊”之類的。你可以選擇很多不同的技術,讓你聽寫下來的文本可讀性更強,所以你可以做很多事情來改進語音識別系統。
一般來說,對于幾乎所有的機器學習程序可能會有50個不同的方向可以前進,并且每個方向都是相對合理的可以改善你的系統。但挑戰在于,你如何選擇一個方向集中精力處理。即使我已經在語音識別領域工作多年了,如果我要為一個新應用程序域構建新系統,我還是覺得很難不花時間去思考這個問題就直接選擇方向。所以我建議你們,如果你想搭建全新的機器學習程序,就是快速搭好你的第一個系統,然后開始迭代。我的意思是我建議你快速設立開發集和測試集還有指標,這樣就決定了你的目標所在,如果你的目標定錯了,之后改也是可以的。但一定要設立某個目標,然后我建議你馬上搭好一個機器學習系統原型,然后找到訓練集,訓練一下,看看效果,開始理解你的算法表現如何,在開發集測試集,你的評估指標上表現如何。當你建立第一個系統后,你就可以馬上用到之前說的偏差方差分析,還有之前最后幾個視頻討論的錯誤分析,來確定下一步優先做什么。特別是如果錯誤分析讓你了解到大部分的錯誤的來源是說話人遠離麥克風,這對語音識別構成特殊挑戰,那么你就有很好的理由去集中精力研究這些技術,所謂遠場語音識別的技術,這基本上就是處理說話人離麥克風很遠的情況。
建立這個初始系統的所有意義在于,它可以是一個快速和粗糙的實現(quick and dirty implementation),你知道的,別想太多。初始系統的全部意義在于,有一個學習過的系統,有一個訓練過的系統,讓你確定偏差方差的范圍,就可以知道下一步應該優先做什么,讓你能夠進行錯誤分析,可以觀察一些錯誤,然后想出所有能走的方向,哪些是實際上最有希望的方向。
所以回顧一下,我建議你們快速建立你的第一個系統,然后迭代。不過如果你在這個應用程序領域有很多經驗,這個建議適用程度要低一些。還有一種情況適應程度更低,當這個領域有很多可以借鑒的學術文獻,處理的問題和你要解決的幾乎完全相同,所以,比如說,人臉識別就有很多學術文獻,如果你嘗試搭建一個人臉識別設備,那么可以從現有大量學術文獻為基礎出發,一開始就搭建比較復雜的系統。但如果你第一次處理某個新問題,那我真的不鼓勵你想太多,或者把第一個系統弄得太復雜。我建議你們構建一些快速而粗糙的實現,然后用來幫你找到改善系統要優先處理的方向。我見過很多機器學習項目,我覺得有些團隊的解決方案想太多了,他們造出了過于復雜的系統。我也見過有限團隊想的不夠,然后造出過于簡單的系統。平均來說,我見到更多的團隊想太多,構建太復雜的系統。
所以我希望這些策略有幫助,如果你將機器學習算法應用到新的應用程序里,你的主要目標是弄出能用的系統,你的主要目標并不是發明全新的機器學習算法,這是完全不同的目標,那時你的目標應該是想出某種效果非常好的算法。所以我鼓勵你們搭建快速而粗糙的實現,然后用它做偏差/方差分析,用它做錯誤分析,然后用分析結果確定下一步優先要做的方向。
課程板書
| 2.2 清除標注錯誤的數據 | 回到目錄 | 2.4 在不同的劃分上進行訓練并測試 |
總結
以上是生活随笔為你收集整理的2.3 快速搭建你的第一个系统,并进行迭代-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2.2 清除标注错误的数据-深度学习第三
- 下一篇: 2.4 使用来自不同分布的数据,进行训练