日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

03.结构化机器学习项目 W2.机器学习策略(2)

發布時間:2024/7/5 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 03.结构化机器学习项目 W2.机器学习策略(2) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 1. 進行誤差分析
    • 2. 清除標注錯誤的數據
    • 3. 快速搭建你的第一個系統,并進行迭代
    • 4. 使用來自不同分布的數據,進行訓練和測試
    • 5. 數據分布不匹配時,偏差與方差的分析
    • 6. 定位數據不匹配問題
    • 7. 遷移學習 Transfer learning
    • 8. 多任務學習 Multi-task learning
    • 9. 什么是端到端的深度學習
    • 10. 是否要使用端到端的深度學習
    • 測試題

參考:
吳恩達視頻課
深度學習筆記

1. 進行誤差分析

舉例:

圖片貓分類器,算法將一些狗🐶分類為貓😺

  • 收集 n 個預測錯誤的開發集樣本,手動檢查
    (錯誤分類的圖片里面有多少比例是狗🐶,假如錯誤率10%,其中狗占5%,那么你完全解決了狗的問題,能降低錯誤率到 9.5%,結合你花費的時間,評估下值不值當;如果錯誤分類中,狗占50%,那么解決狗的問題,就能降低錯誤率到 5%,還是很值得一試的)
  • 通常做法,統計各種誤差的比例,檢查哪種誤差占比較高,優先解決

2. 清除標注錯誤的數據


你發現訓練數據里有標簽標錯了。怎么辦?

  • 深度學習算法對于訓練集中的隨機錯誤是相當健壯的(robust),所以可以不用管
  • 你有時間,修正下也沒問題

如果你要更正標簽,請注意:

  • 同時在 開發集和測試集 上操作(同一分布)
  • 檢查了判斷錯誤的樣本,也需要考慮到判斷正確的樣本(可能是標簽就錯了,恰好預測的一致),但通常此步不會做,太耗時了(比如98%的判對了,檢查98%的數據?太多了)
  • 修正 開發集 / 測試集 的標簽,而修正 訓練集 的標簽是合理的,訓練集 通常比前2者大得多,算法是相當健壯的

老師建議:

  • 需要人工分析錯誤
  • 親自去查看錯誤樣本,統計數量,找到優先處理的任務

3. 快速搭建你的第一個系統,并進行迭代

幾乎所有的機器學習程序可能會有50個不同的方向可以前進,并且每個方向都是相對合理的,可以改善你的系統?如何集中精力

老師建議:

  • 快速設立 開發集和測試集,還有指標(定目標,定錯了,也可以改)
  • 搭好系統原型,訓練一下,看看效果,在 開發集 / 測試集上,評估指標表現如何
  • 用之前說的偏差方差分析錯誤分析,確定下一步優先做什么(哪些工作最有希望提升)

4. 使用來自不同分布的數據,進行訓練和測試

5. 數據分布不匹配時,偏差與方差的分析

如果 訓練數據 和 開發數據 來自不同的分布,特別是,也許算法在訓練集上做得不錯,可能因為訓練集 很容易識別(高分辨率,清晰的圖像),但開發集 難以識別得多。

所以也許 開發集 增加的 9%誤差,沒有方差問題,只反映了 開發集 包含更難準確分類的圖片。

當你看 訓練誤差,再看 開發誤差,有兩件事變了:

  • 算法只見過訓練集數據,沒見過 開發集數據
  • 開發集 數據來自不同的分布

你同時改變了兩件事情,很難確認這增加的 9%誤差,有多少是因為算法沒看到開發集中的數據導致的,這是問題方差的部分,有多少是因為開發集數據就是不一樣

為了分辨清楚兩個因素的影響,定義一組新的數據,稱之為訓練-開發集,它是從 訓練集 的分布里隨機分出來的,但不用來訓練


case A:

  • 訓練誤差 & 訓練-開發誤差,差距 8 %,但是兩者數據是同分布的,所以問題是泛化性能差,高方差問題

case B:

  • 訓練誤差 & 訓練-開發誤差,差距 0.5 %,方差問題很小,但是在 開發集 上誤差為 10%,訓練-開發集 & 開發集 上的數據,模型都沒有在上面訓練過,由于他們是不同分布,模型擅長前者,而你關心的開發集,模型表現不好,這稱之為數據不匹配



本節總結:

  • 如何使用來自 和開發集、測試集 不同分布的 訓練數據,這可以提供更多訓練數據,有助于提高算法性能
  • 但是,潛在問題就不只是 偏差 和 方差 問題,引入了 數據不匹配 問題

沒有特別系統的方法去解決數據不匹配問題,但可以做一些嘗試,見下節

6. 定位數據不匹配問題

發現有嚴重的數據不匹配,親自做誤差分析,了解 訓練集 和 開發集 / 測試集 的具體差異

為了避免對 測試集 過擬合,要做誤差分析,應該人工去看 開發集 而不是 測試集

舉例:
開發一個語音激活的后視鏡應用,你可能要聽一下 開發集 的樣本,弄清楚 開發集 和 訓練集 有什么不同:

  • 比如,發現很多開發集樣本汽車噪音很多
  • 比如,后視鏡經常識別錯誤街道號碼

你意識到,開發集有可能跟訓練集不同或者更難識別:

  • 那么你可以嘗試把訓練數據變得更像開發集一點,
  • 也可以收集更多類似你的開發集測試集的數據。
  • 所以,如果你發現車輛背景噪音是主要誤差來源,那么你可以模擬車輛噪聲數據;
    或者你發現很難識別街道號碼,你可以有意識地收集更多人們說數字的音頻數據,加到你的訓練集里

    如果你的目標是讓訓練數據更接近開發集,怎么做呢?

    • 人工合成數據(artificial data synthesis)(干凈的語音+汽車背景噪聲)

    人工數據合成有一個潛在問題

    • 比如說,你在安靜的背景里錄得 10000小時 音頻數據
    • 你只錄了 1 小時 車輛背景噪音
    • 將這 1小時 汽車噪音循環放 10000次,并疊加到上面的語音
    • 人聽起來,這個音頻沒什么問題
    • 但是有一個風險,有可能你的學習算法對這1小時汽車噪音過擬合,你只錄了1小時汽車噪音,只模擬了全部數據空間的一小部分(噪聲過于單一),你可以找 10000 小時不同的噪聲疊加在音頻上是合理的

    老師還舉了一個例子:汽車識別,用合成的汽車圖片去訓練,也可能出現上面的問題,你很可能只合成了成千上萬種汽車當中的一小部分子集

    7. 遷移學習 Transfer learning

    有時候神經網絡可以從一個任務中學習知識,并將這些知識應用到另一個獨立的任務中。
    例如,已經訓練好一個神經網絡識別貓,然后使用那些知識或部分知識去幫助您更好地閱讀x射線掃描圖,這就是所謂的遷移學習


    把圖像識別中學到的知識遷移到放射科診斷上來,為什么有效果

    • 有很多低層次特征,比如邊緣檢測、曲線檢測、陽性對象檢測(positive objects),模型從非常大的圖像識別數據庫中學到了很多結構信息,圖像形狀的信息,學到線條、點、曲線這些知識,這些知識有可能幫助你的放射科診斷模型學習更快一些,或者需要更少的學習數據

    遷移學習什么時候是有意義的呢?

    • 起作用的場合是,在遷移來源問題中有很多數據,但遷移目標問題沒有那么多數據。(你有100萬張圖像識別數據,而只有100張X射線圖像)
    • 數據量如果反過來了,遷移學習可能就沒有意義了(沒有太大的幫助)

    遷移學習確實可以顯著提高你的學習任務的性能

    8. 多任務學習 Multi-task learning

    無人駕駛車的例子,圖片中你要檢測很多對象(人,車,交通燈,停車標志等等),那么輸出標簽是多個標簽

    那么損失函數為:
    1m∑i=1m∑j=14L(y^j(i),yj(i))\frac{1}{m} \sum_{i=1}^{m} \sum_{j=1}^{4} L\left(\hat{y}_{j}^{(i)}, y_{j}^{(i)}\right)m1?i=1m?j=14?L(y^?j(i)?,yj(i)?)

    建立單個神經網絡,模型告訴你,每張圖里面有沒有這四個物體。

    也可以訓練四個不同的神經網絡,而不是訓練一個網絡做四件事情。但神經網絡一些早期特征(前面的低層次網絡結構),在識別不同物體時都會用到訓練一個神經網絡做四件事情 訓練四個完全獨立的神經網絡分別做四件事,性能要更好

    多任務學習也可以處理圖像只有部分物體被標記的情況。
    比如有的圖片有人,但是沒有加人的標簽,還有一些是問號,但是沒關系,算法依然可以在上面進行訓練(求和的時候會忽略問號)

    多任務學習什么時候有意義?

    • 訓練任務可以共用低層次特征
    • 單項任務可以從多任務學習得到很大性能提升,前提:其他任務數據總量加起來必須比單個任務的數據量大的多
    • 訓練一個足夠大的神經網絡,多任務學習肯定不會或者很少會降低性能,單獨訓練神經網絡來單獨完成各個任務性能要更好

    實踐中,多任務學習使用頻率要低于 遷移學習計算機視覺
    一個例外是物體檢測,人們經常訓練一個神經網絡同時檢測很多不同物體,這比訓練單獨的神經網絡來檢測視覺物體要更好

    9. 什么是端到端的深度學習

    以前有一些數據處理系統或者學習系統,它們需要多個階段的處理。那么端到端深度學習就是忽略所有這些不同的階段用單個神經網絡代替它。它需要很多的數據來訓練,才可能有好的效果。

    端到端深度學習系統是可行的,它表現可以很好(例如,機器翻譯),也可以簡化系統架構,讓你不需要搭建那么多手工設計的單獨組件,但它并不是每次都能成功(從X射線照片判斷年齡)

    10. 是否要使用端到端的深度學習

    其優點:

    • 讓數據自己說話,沒有人為的加入各種規則
    • 更少的手工設計,簡化工作流程

    其缺點:

    • 有可能排除了有用的手工設計組件,精心設計的人工組件可能非常有用,但它們也有可能真的降低算法的性能(數據量很大的時候,人工組件可能降低算法性能)

    是否使用?

    • 你有足夠多的數據嗎,去學習一個復雜的映射函數關系

    老師認為:純粹的端到端深度學習方法,前景不如更復雜的多步方法(比如人臉識別,人臉每次的位置是變化的,先識別出有人臉,然后把人臉區域截取出來,再對其進行預測,分步進行)。因為目前能收集到的數據,還有我們現在訓練神經網絡的能力是有局限的

    測試題

    參考博文鏈接


    我的CSDN博客地址 https://michael.blog.csdn.net/

    長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!

    總結

    以上是生活随笔為你收集整理的03.结构化机器学习项目 W2.机器学习策略(2)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。