深度學習項目工作流程指導 -开发者知识库

深度學習項目工作流程指導 -开发者知识库,第1张

轉自:http://mp.weixin.qq.com/s?__biz=MzIzNjc1NzUzMw==&mid=2247484501&idx=2&sn=691c373ca6eb39856b6fabd7b951314a&chksm=e8d3b327dfa43a31d5f312b0cf54b8b00cc47c97ce02eec35227cea4a7b208a520849faa22ee&mpshare=1&scene=1&srcid=0306UhO7zb1ei3qepw5lsiqh#rd



開始:先考慮兩個問題

1. 衡量一下,在你要完成的任務上,人類水平怎樣?

2. 你的訓練數據和測試數據是否服從相同的概率分布?

衡量人類水平

衡量人類水平的真正目標,是為了估算貝葉斯錯誤率。知道貝葉斯錯誤率,有助於算出你的模型對於訓練數據是欠擬合還是過擬合。

更清楚地說,它有助於我們衡量吳恩達所定義的“Bias(偏差)”,稍后在工作流程中會用到。

:在統計分類中,貝葉斯錯誤率是指一類已知分類器的最低可能錯誤率。

如果訓練、測試數據服從同分布

1. 打亂數據,分割成訓練/驗證/測試集

吳恩達推薦按70%/15%/15%的比例來分割訓練/驗證(Dev)/測試集。

2. 測量訓練集錯誤和Dev集錯誤,計算偏差和方差

偏差和方差的計算方法如下:

 偏差=訓練集錯誤 - 人類錯誤

 方差=驗證集錯誤 - 訓練集錯誤

3. 你得到的偏差高嗎?如果高,先解決這個問題

舉個高偏差的例子:

錯誤類型

錯誤率

人類錯誤

  1%

訓練集錯誤

  5%

驗證集錯誤

  %

這就需要在進行下一步之前,先修正高偏差。

4. 方差高嗎?如果高,也需要先修正

舉個高方差的例子:

錯誤類型

錯誤率

人類錯誤

 1%

訓練集錯誤

  2%

驗證集錯誤

  6%

修正了高方差就完工了。

如果訓練集和測試機不服從同分布

1. 分割數據

如果你的訓練數據和測試數據不服從相同概率分布,那么要確保你的驗證數據和測試數據集服從同分布。

具體操作上,可以將測試集一半數據用於驗證,另一半留着測試;然后從訓練集中分出一小部分,用作訓練驗證集。


2. 測量錯誤,計算關鍵指標

計算這些指標能幫你了解在那些方面努力:

錯誤類型

公式

偏差

  訓練集錯誤 - 人類錯誤

方差

  訓練驗證集錯誤 - 訓練集錯誤

訓練/測試集失配

  驗證集錯誤 - 訓練驗證集錯誤

驗證集過擬合

  測試集錯誤 - 驗證集錯誤

3. 你得到的偏差高嗎?如果高,先修正偏差

一個高偏差的例子:

錯誤類型

錯誤率

人類錯誤

  1%

訓練集錯誤

  10%

訓練驗證集錯誤

  10.1%

驗證集錯誤

  10.2%

這就需要在進行下一步之前,修正高偏差。

4. 你得到的方差高嗎?如果高,先修正高方差

一個高方差的例子:

錯誤類型

錯誤率

人類錯誤

  1%

訓練集錯誤

  2%

訓練驗證集錯誤

  10.1%

驗證集錯誤

  10.2%

在進行下一步之前,先修正高方差。

5. 訓練/測試集失配率高嗎?如果高,還是要修正

一個訓練/測試集高失配率的例子:

錯誤類型

錯誤率

人類錯誤

  1%

訓練集錯誤

  2%

訓練驗證集錯誤

  2.1%

驗證集錯誤

  10%

在進行下一步之前,先修正失配率。

6. 驗證集有沒有過擬合?對過擬合進行修正

一個訓練/測試集高失配率的例子:

錯誤類型

錯誤率

人類錯誤

  1%

訓練集錯誤

  2%

訓練驗證集錯誤

  2.1%

驗證集錯誤

  2.2%

測試集錯誤

  10%

修正了高方差就完工了。

關於上文提到的各項修正

修正高偏差

吳恩達推薦下面這些修正高偏差模型的方式:

 嘗試用更大的模型

 延長訓練時間

 嘗試用新的模型架構(這個比較難)

修正高方差

依然是吳恩達推薦的修正方式:

 獲取更多數據(包括數據合成和數據擴充)

 試試加上正則化

 嘗試提早停止訓練(early stopping)

 嘗試用新的模型架構(這個比較難)

修正訓練/測試集高失配

吳恩達推薦的方式:

 獲取更多和測試集相似的數據

 嘗試數據合成和數據擴充

 嘗試用新的模型架構(這個比較難)

修正驗證集過擬合

吳恩達推薦

 獲取更多驗證數據

筆記的作者推測,這應該也包括數據合成和數據擴充。

最佳答案:

本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复