吴恩达DeepLearningCourse3-结构化机器学习项目
文章目錄
- 第一周:機器學習策略1
- 正交化
- 單一數字評估指標
- 滿足和優化指標
- 訓練/開發/測試集
- 機器學習和人的表現
- 第二周:機器學習策略2
- 進行誤差分析
- 修正標注錯誤的數據
- 使用來自不同分布的數據進行訓練和測試
- 數據分布不匹配時的偏差與方差的分析
- 處理數據分布不匹配問題
- 遷移學習
- 多任務學習
- 端到端的深度學習
第一周:機器學習策略1
正交化
需要正交化的四個標準
-訓練集的表現:訓練更大的神經網絡、使用優化算法
-開發集的表現:正則化、使用更大的訓練集
-測試集的表現:使用更大的開發集
-真實應用中的表現:改變開發集或成本函數
單一數字評估指標
思想是,使用單一的數字來對不同的模型進行評估。
例:貓識別器
A算法的查準率為95%,查全率為90%
B算法的查準率為98%,查全率為85%
通過計算兩種算法的查準率和查全率的調和平均數(F1-Score),以此評估A和B。
滿足和優化指標
滿足指標:所有參選算法必須滿足,且只有滿足和不滿足的差別(考查課)。
優化指標:數值不同,其結果就不同(考試課)。
訓練/開發/測試集
訓練/開發/測試集的選擇:
核心是”瞄準靶心“,即將來源不同的所有數據隨機混洗,放入開發集和測試集,此時開發集和測試集都來自同一分布,這分布就是所有數據混在一起。在設立開發集和測試集時,要選擇能夠反映未來會得到的數據的開發集和測試集。如果開發集與測試集/開發集、測試集與真實數據偏差較大,則無法達到預期效果。
訓練/開發/測試集的劃分:
傳統機器學習一般采用7/3或6/2/2的劃分。如今可獲得的數據量增多,開發集和測試集的占比更小(如1%)。
訓練/開發/測試集,以及評估指標的更改:
當訓練/開發/測試集,以及評估指標不符合實際要求時,需要立即調整。評估指標可以有效加快工作效率,在團隊工作中可以先快速確立指標,再根據實際修改。
機器學習和人的表現
①模型的準確度隨著時間通常呈現上圖趨勢。
導致上圖趨勢的原因:在模型表現低于人類水平時,可以通過一系列的工具提升訓練效果,而超過人類水平時可利用的工具會明顯減少。可以用人類水平表現估計貝葉斯誤差,從而分析偏差/方差的問題。另一方面,人類水平在許多工作中都接近貝葉斯誤差,超越人類水平后,留給模型的進步空間小。
②可避免偏差:貝葉斯誤差和訓練集誤差的差距。
③人類水平表現:人類能達到的最高水平(最接近貝葉斯偏差的水平)。
第二周:機器學習策略2
進行誤差分析
在開發集或測試集里找一組錯誤樣本,統計屬于不同錯誤類型的錯誤數量。通過統計不同錯誤標記類型占總數的百分比,幫助發現哪些問題需要優先解決。
修正標注錯誤的數據
深度學習算法對隨機誤差很健壯,但對系統性的錯誤就沒那么健壯了。比如,做標記的人一直把白色的狗標記成貓,分類器學習之后,會把所有白色的狗都分類為貓。
根據錯誤標記引起的錯誤百分比判斷,如果這些標記錯誤嚴重影響了在開發集上評估算法的能力,那么就應該去花時間修正錯誤的標簽。但如果它們沒有嚴重影響到你用開發集評估成本偏差的能力,那么可能就不應該時間去處理。
注意:修正標簽要同時作用到開發集和測試集上。
使用來自不同分布的數據進行訓練和測試
假設有200,000張網絡貓圖和10,000張用戶拍照貓圖,模型的目標是識別用戶上傳的貓圖。如果將兩種來源的數據混洗并放入訓練、開發、測試集中,有悖于設立開發集的目的(瞄準的目標)。此時可以將200,000張網絡貓圖全部放入訓練集(也可以放部分用戶貓圖),開發集和測試集只使用用戶貓圖。
數據分布不匹配時的偏差與方差的分析
訓練-開發集:從訓練集劃分出的子集,不參與訓練,和訓練集同一來源。
方差問題:如果 訓練-開發集 的誤差高于 訓練集 的誤差,說明盡管神經網絡在訓練集中表現良好,但無法泛化到來自相同分布的訓練-開發集里,無法很好地泛化推廣到來自同一分布但以前沒見過的數據中,所以存在方差問題。
數據不匹配問題:算法擅長處理和關心的數據分布不同。
處理數據分布不匹配問題
誤差分析,看看訓練集和開發集,了解這兩個數據分布到底有什么不同,然后看看是否有辦法收集更多看起來像開發集的數據作訓練。其中一種方法是人工數據合成。使用人工數據合成時,一定要謹慎,因為有可能從所有可能性的空間只選了很小一部分去模擬數據,從而對這部分數據產生了過擬合。
遷移學習
適用情況:任務A和任務B是相關的,A任務具有龐大的數據輸入,并已經訓練出神經網絡。B任務的數據量較少,且需要獲得B任務的神經網絡。由于任務B單個輸入樣本的價值高于A,所以要求A的輸入數據量足夠大,才能在遷移學習中起作用。
為什么遷移學習可以起作用:有很多低層次特征,比如說邊緣檢測、曲線檢測、陽性對象檢測),從非常大的圖像識別數據庫中習得這些能力可能有助于你的學習算法在任務B(同屬于圖像試別任務)中訓練得更快/需要數據量更少。
操作方法:將任務A的最后一層替換為一層或多層神經網絡,并初始化權重。如果B的數據足夠多,可以用其訓練新神經網絡所有層的參數;如果不夠多,則只訓練新層的參數。
多任務學習
和使用Softmax進行多分類不同,多分類問題將單個標簽分配給單個樣本(如輸入是貓/是狗/是老鼠),而多任務學習的一個輸入可以有多個不同的標簽(有無貓/有無狗/有無老鼠)。
多任務學習的優點:可以訓練多個不同的神經網絡,而不是訓練一個網絡做多件事情。但神經網絡一些早期特征,在識別不同物體時都會用到,訓練一個神經網絡做四件事情會比訓練四個完全獨立的神經網絡分別做四件事性能要更好。
多任務學習的使用條件:訓練的一組任務可以共用低層次特征、(通常)每個任務的數據量很接近、神經網絡足夠大。
端到端的深度學習
直觀上理解,由輸入直接得到輸出,而不包含任何中間環節的學習(也可能因此錯過了這些環節具有的優點)。
端到端的深度學習要求具有巨大的數據量,且任務越復雜,數據量的需求越大。如:識別圖像中人臉的位置 比 識別圖像中人臉的特征 更簡單,數據需求量更小。
對同一個問題,如果將其分解成若干步驟,每個步驟都具有足夠的數據量;如果采用端到端的深度學習,數據量可能不夠。
總結
以上是生活随笔為你收集整理的吴恩达DeepLearningCourse3-结构化机器学习项目的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 白背木耳的功效与作用、禁忌和食用方法
- 下一篇: 吴恩达DeepLearningCours