吳恩達【深度學習工程師】學習筆記(十)
吳恩達【深度學習工程師】專項課程包含以下五門課程:
1、神經網路和深度學習;
2、改善深層神經網路:超引數除錯、正則化以及優化;
3、結構化機器學習專案;
4、卷積神經網路;
5、序列模型。
今天介紹《結構化機器學習專案》系列第二講:機器學習策略(2)。
主要內容:
1、進行錯誤分析;
3、快速構建系統並迭代;
4、在不同的資料分佈上訓練和測試;
5、遷移學習;
6、多工學習;
7、end-to-end學習
進行錯誤分析
對已經建立的機器學習模型進行錯誤分析(error analysis)十分必要,而且有針對性地、正確地進行錯誤分析更加重要。
例如:一個貓分類識別問題,已有模型錯誤率為10%。分析錯誤原因,發現該模型會將一些狗類圖片誤分類成貓。一種常規解決辦法是擴大狗類樣本,增強模型對該類(負樣本)的訓練力度。但是,擴大狗類樣本後重新訓練模型,會對降低模型錯誤率到底有多大效果呢?
我們可以從分類錯誤的樣本中統計出狗類的樣本數量。根據狗類樣本所佔的比重,判斷這一問題的重要性。
假如狗類樣本所佔比重僅為5%,即時我們擴大狗類樣本,提升模型對其識別率,改進後的模型錯誤率最多隻會降低到9.5%。相比10%,並沒有顯著改善。我們把這種效能限制稱為ceiling on performance。相反,假如錯誤樣本中狗類所佔比重為50%,那麼改進後的模型錯誤率最多可以降低到5%,效能改善空間很大。因此值得去花費更多的時間擴大狗類樣本。
這種錯誤分析能夠避免花費大量的時間精力去做一些對提高模型效能收效甚微的工作,讓我們專注解決影響模型正確率的主要問題,十分必要。並且可以同時評估多個影響模型效能的因素,通過各自在錯誤樣本中所佔的比例來判斷其重要性。
例如,一個貓分類識別模型中,可能有以下幾個影響因素:
-
修正狗被誤識別成貓的圖片的情況
-
修正貓科動物(獅子,豹等)被誤識別成貓的圖片的情況
-
提高模糊圖片識別的效能
一般來講,佔比越大,影響越大,就應該花費時間和精力著重解決這一問題。
監督式學習中,訓練樣本有時候會出現輸出y錯誤標籤的情況,即incorrectly labeled examples。如果這些錯誤標籤的情況是隨機性的,DL演算法對其包容性是比較強的,一般可以直接忽略,無需修復。
剛才說的是訓練樣本中出現錯誤標籤,如果是dev/test sets中出現錯誤標籤,該怎麼辦呢?
方法很簡單,利用error analysis,統計dev sets中所有分類錯誤的樣本中錯誤
-
所有 dev set error: 10%
-
錯誤標籤引起的error: 0.6%
-
其它原因引起的error: 9.4%
上面資料表明錯誤標籤引起的error所佔的比例僅為0.6%,佔dev set error的6%,而其它型別錯誤佔dev set error的94%。因此,這種情況下,可以忽略錯誤標籤。
如果優化DL演算法後,出現種情況:
-
所有dev set error: 2%
-
錯誤標籤引起的error: 0.6%
-
其它原因引起的error: 1.4%
上面資料表明錯誤標籤引起的error所佔的比例依然為0.6%,但是卻佔dev set error的30%,而其它型別錯誤佔dev set error的70%。這種情況下錯誤標籤不可忽略,需要修正。
dev set的主要作用是在不同演算法之間進行比較,選擇錯誤率最小的演算法模型。如果有錯誤標籤的存在,當不同演算法錯誤率比較接近的時候,我們無法僅僅根據dev set error準確指出哪個演算法模型更好,必須修正錯誤標籤。
關於修正錯誤dev/test set data,有幾條建議:
-
對dev 和test sets使用相同的處理過程,確保它們仍然來自於相同的分佈;
-
考慮你的演算法正確的例子,以及錯誤的例子
-
Train 和 dev/test 資料現在可能來自稍微不同的分佈
快速構建系統並迭代
構建一個機器學習應用模型的步驟,首先是快速構建第一個簡單模型,然後再反覆迭代優化。
-
設定 dev/test set 和度量標準
-
快速構建初始化系統
-
使用Bias/Variance 分析 & 錯誤分析優先考慮下一步
在不同分佈上訓練和測試
當train set與dev/test set不來自同一個分佈的時候,我們應該如何構建準確的機器學習模型呢?
以貓類識別為例,train set的大小為200 000,圖片來自於網路下載,比較清晰;dev/test set的大小為10 000,圖片來自使用者手機拍攝,比較模糊。面對train set與dev/test set分佈不同的情況,有兩種解決方法。
第一種方法:將train set和dev/test set完全混合,然後在隨機選擇一部分作為train set,另一部分作為dev/test set。這種做法的優點是實現train set和dev/test set分佈一致,缺點是dev/test set中webpages圖片所佔的比重比mobile app圖片大得多。這樣,dev set的演算法模型對比驗證,仍然主要由webpages決定,實際應用的mobile app圖片所佔比重很小,達不到驗證效果。
第二種方法:將原來的train set和一部分dev/test set組合當成train set,剩下的dev/test set分別作為dev set和test set。其關鍵在於dev/test set全部來自於mobile app。這樣保證了驗證集最接近實際應用場合。這種方法效能表現比較好
關於如何解決train set與dev/test set樣本分佈不一致的問題,有兩條建議:
-
進行手動錯誤分析,嘗試瞭解訓練開發/測試集之間的差異;
-
使train set更相似,或者收集更多類似於dev/dev集的資料。
為了讓train set與dev/test set類似,我們可以使用人工資料合成的方法(artificial data synthesis)。
例如說話人識別問題,實際應用場合(dev/test set)是包含背景噪聲的,而訓練樣本train set很可能沒有背景噪聲。為了讓train set與dev/test set分佈一致,我們可以在train set上人工新增背景噪聲,合成類似實際場景的聲音。這樣會讓模型訓練的效果更準確。但是,我們不能給每段語音都增加同一段背景噪聲,這樣會出現對背景噪音的過擬合,效果不佳。這就是人工資料合成需要注意的地方。
遷移學習
如果我們已經有一個訓練好的神經網路,用來做影象識別。現在,我們想要構建另外一個通過X光片進行診斷的模型。遷移學習的做法是無需重新構建新的模型,而是利用之前的神經網路模型,只改變樣本輸入、輸出及輸出層的權重係數
W[L],b[L]。也就是說對新的樣本(X,Y),重新訓練輸出層權重係數W[L],b[L],而其它層所有的權重係數W[l],b[l]保持不變。
遷移學習,重新訓練權重係數,如果需要構建新模型的樣本數量較少,那麼可以像剛才所說的,只訓練輸出層的權重係數W[L],b[L],保持其它層所有的權重係數W[l],b[l]不變。這種做法相對來說比較簡單。如果樣本數量足夠多,那麼也可以只保留網路結構,重新訓練所有層的權重係數。這種做法使得模型更加精確,因為畢竟樣本對模型的影響最大。選擇哪種方法通常由資料量決定。
遷移學習可以保留原神經網路的一部分,再新增新的網路層。可以去掉輸出層後再增加額外一些神經層。
總體來說,遷移學習的應用場合主要包括三點:
-
任務 A 和 B 有相同的輸入 x;
-
在任務A上有非常多的資料在任務,在任務B上只有少量的資料;
-
來自A的低階特徵有助於學習B。
多工學習
多工學習(multi-task learning)就是構建神經網路同時執行多個任務。類似將多個神經網路融合在一起,用一個網路模型來實現多種分類效果。如果有C個,那麼輸出y的維度是(C,1)。例如汽車自動駕駛中,需要實現的多工為行人、車輛、交通標誌和訊號燈。如果檢測出汽車和交通標誌,則y為:
y=⎡⎣⎢⎢⎢0110⎤⎦⎥⎥⎥多工學習模型的cost function為:
1m∑i=1m∑j=1cL(y^(i)j,y(i)j)其中,j表示任務下標,總有c個任務。對應的loss function為:
L(y^(i)j,y(i)j)=−y(i)jlogy^(i)j−(1−y(i)j)log(1−y^(i)j)多工學習是使用單個神經網路模型來實現多個任務。實際上,也可以分別構建多個神經網路來實現。但是,如果各個任務之間是相似問題(例如都是圖片類別檢測),則可以使用多工學習模型。另外,多工學習中,可能存在訓練樣本Y某些label空白的情況,這並不影響多工模型的訓練。
總體來說,多工學習的應用場合主要包括三點:
-
訓練一系列能共享低階特徵的相關任務;
-
通常每個任務的資料量都差不多;
-
可以訓練一個足夠的的神經網路來完成任務。
end-to-end學習
相關推薦
吳恩達【深度學習工程師】 04.卷積神經網絡 第三周目標檢測 (1)基本的對象檢測算法
元素 需要 有關 卷積 訓練 特定 步長 來看 選擇 該筆記介紹的是《卷積神經網絡》系列第三周:目標檢測(1)基本的對象檢測算法 主要內容有: 1.目標定位 2.特征點檢測 3.目標檢測 目標定位 使用算法判斷圖片中是不是目標物體,如果是還要再圖片中標出其位置並
吳恩達【深度學習工程師】學習筆記(二)
吳恩達【深度學習工程師】專項課程包含以下五門課程: 1、神經網路和深度學習; 2、改善深層神經網路:超引數除錯、正則化以及優化; 3、結構化機器學習專案; 4、卷積神經網路; 5、序列模型。 今天介紹《神經網路與深度學習》系列第二講:神經網
吳恩達【深度學習工程師】學習筆記(十)
吳恩達【深度學習工程師】專項課程包含以下五門課程: 1、神經網路和深度學習; 2、改善深層神經網路:超引數除錯、正則化以及優化; 3、結構化機器學習專案; 4、卷積神經網路; 5、序列模型。 今天介紹《結構化機器學習專案》系列第二講:機器學習策略(2)。 主要內容:
吳恩達【深度學習工程師】學習筆記(一)
吳恩達【深度學習工程師】專項課程包含以下五門課程: 1、神經網路和深度學習; 2、改善深層神經網路:超引數除錯、正則化以及優化; 3、結構化機器學習專案; 4、卷積神經網路; 5、序列模型。 今天介紹《神經網路與深度學習》系列第一講:深度學習概述。 主要內容:
【PP生產訂單】入門介紹(十)
上一講具體講了生產訂單報工確認的相關配置。 這一講我們就來看一下報工的前臺操作。 主要事務程式碼有CO11和CO11N(新介面)。 首先看CO11,我們輸入了訂單號回車後會出現介面讓我們選擇具體工序,而不用手動去輸入,避免輸錯。 而CO11N作為新介面就略微麻煩
【Java程式設計思想】讀書筆記(一)第一章---第五章
Java程式設計思想(第四版)學習筆記 第一章---第五章 第一章:物件導論 1.1抽象過程 1. 2訪問控制 第二章:一切都是物件 2. 1用引用操縱物件 2. 2基本型別 第三章:操作符
【官網翻譯】效能篇(十)效能提示
前言 本文翻譯自Android開發者官網的一篇文件,主要用於介紹app開發中效能優化的一實踐要點。 中國版官網原文地址為:https://developer.android.google.cn/tr
【吳恩達 Coursera深度學習課程】 Neural Networks and Deep Learning 第一週課後習題
因為這學期選了深度學習的課程,所以也會自學一下相關內容,在網上選擇了吳恩達的深度學習來進行學習,首先是第一門課程,Neural Networks and Deep Learning。第一週的內容是深度學習概論,課後習題為十個選擇題,個人觀點,僅供參考,歡迎指正。這題問為什麼稱
吳恩達:深度學習作業2相關
.com image 就是 訓練數據 自己 包括 數據量 很好 我們 深度學習小知識點:(欠擬合與過擬合) 1.出現欠擬合應該怎樣解決:(欠擬合就是模型沒能很好的捕捉到數據的特征,不能很好地擬合數據) 欠擬合的情況如圖所示: a.增加特征項,出現欠擬合的原因一般是特征項不
吳恩達《深度學習》第一門課(1)深度學習引言
數據規模 梯度 神經網絡 以及 應該 精確 構建 關於 http 1.1歡迎 主要講了五門課的內容: 第一門課:神經網絡基礎,構建網絡等; 第二門課:神經網絡的訓練技巧; 第三門課:構建機器學習系統的一些策略,下一步該怎麽走(吳恩達老師新書《Machine Learning
吳恩達《深度學習》第一門課(4)深層神經網絡
加網 分享 傳遞 height 經驗 技術分享 image 進行 sig 4.1深層神經網絡 (1)到底是深層還是淺層是一個相對的概念,不必太糾結,以下是一個四層的深度神經網絡: (2)一些符號定義: a[0]=x(輸入層也叫做第0層) L=4:表示網絡的層數 g:表示激
吳恩達《深度學習》第四門課(1)卷積神經網絡
圖像分割 1.5 共享 信號處理 soft 沒有 樣本 填充 單元 1.1計算機視覺 (1)計算機視覺的應用包括圖像分類、目標檢測、圖像分割、風格遷移等,下圖展示了風格遷移案例: (2)圖像的特征量非常之大,比如一個3通道的1000*1000的照片,其特征為3*1000*
吳恩達《深度學習》第四門課(2)卷積神經網絡:實例探究
之一 所有 展示 數據擴充 簡介 設置 假設 通道 開源 2.1為什麽要進行實例探究 (1)就跟學編程一樣,先看看別人怎麽寫的,可以模仿。 (2)在計算機視覺中一個有用的模型,,用在另一個業務中也一般有效,所以可以借鑒。 (3)本周會介紹的一些卷積方面的經典網絡經典的包括:
吳恩達《深度學習》第五門課(2)自然語言處理與詞嵌入
星級 技術 ima lac 個數 應該 ras 時有 根據 2.1詞匯表征 (1)使用one-hot方法表示詞匯有兩個主要的缺點,以10000個詞為例,每個單詞需要用10000維來表示,而且只有一個數是零,其他維度都是1,造成表示非常冗余,存儲量大;第二每個單詞表示的向量相
深度學習,周志華,機器學習,西瓜書,TensorFlow,Google,吳軍,數學之美,李航,統計學習方法,吳恩達,深度學習筆記,pdf下載
1. 機器學習入門經典,李航《統計學習方法》 2. 周志華的《機器學習》pdf 3.《數學之美》吳軍博士著pdf 4. Tensorflow 實戰Google深度學習框架.pdf 5.《TensorFlow實戰》黃文堅 高清完整PDF 6. 復旦大
吳恩達Coursera深度學習課程 deeplearning.ai (5-3) 序列模型和注意力機制--程式設計作業(二):觸發字檢測
Part 2: 觸發字檢測 關鍵詞語音喚醒 觸發字檢測 歡迎來到這個專業課程的最終程式設計任務! 在本週的視訊中,你瞭解瞭如何將深度學習應用於語音識別。在本作業中,您將構建一個語音資料集並實現觸發字檢測演算法(有時也稱為關鍵字檢測或喚醒檢測)。觸發字
吳恩達Coursera深度學習課程 deeplearning.ai (4-1) 卷積神經網路--程式設計作業
Part 1:卷積神經網路 本週課程將利用numpy實現卷積層(CONV) 和 池化層(POOL), 包含前向傳播和可選的反向傳播。 變數說明 上標[l][l] 表示神經網路的第幾層 上標(i)(i) 表示第幾個樣本 上標[i][i] 表示第幾個mi