構建機器學習項目2

Error Analysis

  • Carrying out error andlysis

如果你想得到一個訓練算法來做人類可以做的任務 而且你所訓練的算法還沒有達到人類的效果 你需要手動地檢查算法中的錯誤 來得到你下一步該做什么 這個過程叫做錯誤分析

image.png

首先 拿大約100張分類錯誤的驗證集圖片并進行手動檢測 只需要數一數 看有多少張 驗證集中標錯的樣本實際上是狗的圖片 現在 假設事實證明 在驗證集中分錯的100張樣本里有5%是狗的圖片 也就是說 驗證集中分錯的100張中有5張是狗 這意味著在這100張圖片中 特指你分錯的這100張 即使完全解決狗的問題也只在這100張中多分對了5張 換言之 若只有5%的錯誤是狗照片 如果你在狗的問題上花了大量時間 最好的情況也就是 你的錯誤率 從10%下降到9.5% 對嗎 這5%是錯誤里的相對下降值,因此是從10%下降到9.5% 那么你可能可以合理地判斷出這樣并不是最好的利用時間的方式 也有可能是,但至少給了你一個上限 通過處理狗的問題能提高多少準確率 對嗎?

在機器學習中 有時我們把這稱為表現上限 意思是最好的情況是什么 關注狗的問題能有多大的幫助

在錯誤分析中 只看驗證集里你的算法判斷錯誤的樣本


image.png

綜上所述 要進行錯誤分析,你應該找到一套 在你驗證集中錯誤標識的樣本 并按假陽性和假陰性來看 并計算不同類別中的 誤判個數 在此過程中 可能會促使你提出新的錯誤類別 就像我們看到的 當你瀏覽樣本的時候 有很多Instagram濾鏡 或者Snapchat濾鏡 他們也搞亂了分類 您可以在過程中創建新類別 但通過對不同類中錯誤標識的例子計數 通常這將有助于你判斷優先級 或給你新方向的靈感

  • Cleaning up incorrectly labeled data

監督式學習的問題中,數據由輸入X和輸出的標簽Y組成 如果檢查數據集,你發現有些 輸出標簽Y錯了 (也就是說)你的部分數據,有錯誤的標簽 你值得花費時間去修正這些標簽嗎? 讓我們一起看看這個問題

深度學習算法對隨機錯誤很穩健, 但它們(深度學習算法)對系統誤差不那么穩健 比如說,如果你的標記員一直把白色的狗標記為貓, 那就會產生問題,因為你的分類器會 學著把所有的白色的狗分類成貓 但是隨機錯誤,或者接近隨機的錯誤 通常對深度學習算法來說,不算太糟糕

image.png

對于開發集和測試集中的錯誤標記數據呢?一個比較推薦的做法是,在錯誤分析的過程中 增加一列,去統計 Y的標簽錯誤的數量,這個標記員漏掉了背景里的這只貓 所以,在那里打個對勾,表示第98個例子的標簽錯了 可能在這個例子里, 這個圖片實際上是一個畫的貓,而不是真的貓 可能你想要標記員標記成0,而不是1 所以在這里打個對勾 就像你計算錯誤率 (這些錯誤率)由其他類別導致的,可以計算一下由這些錯誤標簽導致的錯誤率 在你的開發集里,Y的值是錯的 這解釋了為什么你的機器學習算法 預測了一個和數據里標簽不一致的結果 所以,現在的問題是 我們值得花費時間去糾正這6%的錯誤標記的例子嗎? 如果這些錯誤對你評估算法在開發集上的效果 有很大的影響的話 那就繼續做吧,花時間去糾正這些錯誤標簽 但是如果沒有太大影響 對你用開發集去評估模型 那你的時間最好不要花在這上面

image.png
image.png
  • Build your first system quickly, then iterate

image.png

Mismatched training and dev/test set

深度學習算法都希望有大量的訓練數據 要使它運轉在最佳狀態 訓練集中要有足量已標記訓練數據 這導致很多團隊將能找到的任何數據 都塞進訓練集,只為有更多的訓練數據 即使有些 甚至很多這種數據 來自于與開發集和測試集不同的分布 因此在深度學習時代,越來越多的團隊正在使用的 訓練數據并非來自與開發集和測試集相同的分布

  • Training and testing on different distribution

通過估計學習算法的偏差和方差 能幫你確定下一步工作的優先級 但當你的訓練集 開發集 測試集 來自不同的分布時 偏差和方差的分析方法也會相應變化 接下來一起看看如何實現

image.png
image.png
  • Bias and Variance with mismatched data distributions

image.png
image.png
image.png
  • Addressing data mismatch

如果訓練集的分布 與你的開發集和測試集的分布不同 并且如果誤差分析表明出現了數據不匹配的問題 你該怎么解決?

image.png
image.png

Learning from multiple tasks

  • Transfer learning

深度學習中最有力的方法之一,是有時你可以把在一個任務中神經網絡 學習到的東西,應用到另一個任務中去。 比如,你可以讓神經網絡 學習去識別物體,比如貓,然后用學習到的 (一部分)知識 來幫助你更好地識別X射線的結果。 這就是所謂的遷移學習

你有幾種方法來重新訓練這個放射數據的神經網絡。 如果你只有一個小的放射數據集, 你可以只重新訓練最后一層的權值,就是WL 和PL,同時保留其它所有參數。 如果你有足夠的數據, 你也可以重新訓練神經網絡的其余所有層。 我們的經驗就是如果你有一個小規模的數據集, 那么就去重新訓練最后一層和輸出層的神經網絡, 或者你也可以訓練最后一到兩層的神經網絡。 但是如果你有大量的數據, 你或許可以對這個神經網絡的所有參數都進行重新訓練。 要是你對神經網絡的所有參數進行重新訓練, 那么這樣訓練的初始化階段 有時候被我們叫做預訓練(pre-training) 原因是,你在是使用圖像識別的數據 來預初始化(pre-initialize)或者說預訓練神經網絡的權重。 然后如果你在之后對所有的權重進行更新, 那么在放射掃描的數據上的訓練有時候被我們叫做微調(fine tuning) 所以有時候你會在深度學習領域聽到預訓練(pre-training)和微調(fine tuning)這些詞, 上面我所說的就是他們在遷移學習中 表達的真正含義

image.png

那么遷移學習在什么時候有用呢 當你在你的被遷移的模型中擁有大量的數據, 而你在你需要解決的問題上擁有相對較少的數據時, 遷移學習是適用的

image.png
  • Multi-task learning

遷移過程是有先后順序的 從任務A中學習,然后將其遷移到任務B。 在多任務學習中,你(多個任務)一起開始 嘗試讓一個神經網絡同時做幾件事 然后,每個任務將會幫助完成其他任務

image.png
image.png

End-to-end deep learning

  • What is end-to-end deep learning

近期,深度學習最令人興奮的進展之一 是端到端深度學習的崛起 那么,什么是“端到端“的深度學習呢? 簡單地說,我們有一些數據處理系統 或者是由多個階段組成的學習系統 端到端的深度學習做的 就是它可以捕獲所有的階段 并且,通常可以將其替代為單個神經網絡 也就是說運行速度更快 以語音識別為例 其目標是接收輸入音頻片段X 將其轉換為該音頻剪輯對應的 腳本輸出Y。 傳統的語音識別分為多個處理階段。 首先,需要提取音頻的一些特征, 一些人工設計的音頻特征。 或許你聽說過MFCC 這種算法(MFCC), 用于提取一組特定的人工設計的音頻特征。 提取了低級特征之后, 可以應用機器學習算法 從音頻剪輯中查找音素 音素是聲音的基本單位 比如說,單詞"cat"由三個音構成 Cu,Ah和Tu,算法會提取出這三個音素 然后把音素串在一起,形成單詞 再將這些單詞串在一起,構成音頻剪輯的腳本。 不同于上述由多個階段組成的途徑(管道) 端到端的深度學習 可以訓練一個龐大的神經網絡,只需輸入音頻片段, 然后直接輸出腳本

當你的數據集較小時, 傳統的管道方法實際上同樣有效, 有時甚至更好。 你需要一個大的數據集以便端到端的方法真正突顯其作用。 如果你有中等量的數據, 可以采用折衷的方法:輸入音頻, 繞過這些特征,只學習輸出神經網絡的音素, 然后繼續其它階段。 因此這是端到端學習的一個步驟, 不是徹底的端到端學習

image.png

所以在實際應用中, 把整個問題分成兩個子問題來解決會 比完全端到端的深度學習方案得到更好的性能。 盡管如果你有足夠的數據, 也許端到端的方案會更加好, 但是目前來說在實際應用中這不是最好的方法

image.png
image.png
  • Whether to use end-to-end deep learning

image.png
image.png
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 文章主要分為:一、深度學習概念;二、國內外研究現狀;三、深度學習模型結構;四、深度學習訓練算法;五、深度學習的優點...
    艾剪疏閱讀 21,917評論 0 58
  • 誤差分析 人工檢查你的算法犯的錯誤,也許可以讓你了解接下來應該做什么,這個過程稱為誤差分析 eg 假設正在調試貓分...
    徐凱_xp閱讀 641評論 0 0
  • 昨天早上醒來,就發現微博被沉珂的一條長微博給炸了。 她說,我是沉珂,大家好,七年不見。 我記得,在大學的這幾年,我...
    祝瀟穎閱讀 378評論 0 2
  • 公司的清潔工阿姨,說是阿姨,看年紀應該只有30幾歲。平時交集不多,她每天按點來打掃下衛生,清理垃圾之類。就這樣一份...
  • 你何時而來謎一樣的存在我用過去的常量假設將來推演現在的邊界為你清除內心所有的濫情讓每一顆細胞留白心中無愛方能鐘我所...
    楓之然閱讀 483評論 8 20