深度学习笔记(15) 人的表现
深度學習筆記(15) 人的表現
- 1. 人的表現
- 2. 可避免偏差
- 3. 理解人的表現
- 4. 超過人的表現
- 5. 改善模型的表現
1. 人的表現
在過去的幾年里,更多的機器學習團隊一直在討論如何比較機器學習系統和人類的表現
兩個主要原因:
- 深度學習系統的進步,在許多機器學習的應用領域已經開始見到算法已經可以威脅到人類的表現了
- 事實證明,當試圖讓機器做人類能做的事情時,可以精心設計機器學習系統的工作流程,讓工作流程效率更高
所以在這些場合,比較人類和機器是很自然的,或者是要讓機器模仿人類的行為
x 軸是時間,當開始往人類水平努力時,進展是很快的
但是過了一段時間,當這個算法表現比人類更好時,那么進展和精確度的提升就變得更慢了
隨著時間的推移
當繼續訓練算法時,可能模型越來越大,數據越來越多
但性能是無法超過某個理論值上限
這就是貝葉斯最優錯誤率(Bayes optimal error)
貝葉斯最優錯誤率有時寫作Bayesian,即省略optimal
就是從x到y映射的理論最優函數,永遠不會被超越
所以這紫色線
無論在一個問題上工作多少年,永遠不會超越貝葉斯錯誤率,貝葉斯最佳錯誤率
有兩個原因,為什么當超越人類的表現時,進展會慢下來
-
人類水平在很多任務中離貝葉斯最優錯誤率已經不遠了
人們非常擅長看圖像,分辨里面有沒有貓或者聽寫音頻
所以,當超越人類的表現之后也許沒有太多的空間繼續改善了 -
一旦超越了人類的表現,提高性能工具就沒那么好用了
對于人類相當擅長的任務,包括看圖識別事物,聽寫音頻,或閱讀語言
人類一般很擅長處理這些自然數據
對于人類擅長的任務,只要機器學習算法比人類差,就可以標記數據
這樣就有更多的數據可以喂給學習算法
2. 可避免偏差
用貓分類器來做例子,比如人類具有近乎完美的準確度,所以人類水平的錯誤是1%
在這種情況下,如果學習算法達到8%的訓練錯誤率和10%的開發錯誤率
算法在訓練集上的表現和人類水平的表現有很大差距的話
說明算法對訓練集的擬合并不好
所以從減少偏差和方差的工具這個角度看,在這種情況下,應把重點放在減少偏差上
需要做的是,比如說訓練更大的神經網絡,或者梯度下降久一點
但也許數據集中的圖像非常模糊
即使人類都無法判斷這張照片中有沒有貓,假設人類水平錯誤實際上是7.5%
此時系統在訓練集上的表現還好,它只是比人類的表現差一點點,沒有太多改善的空間了
不能繼續減少訓練錯誤率了
但訓練誤差和開發誤差之間有更多的改進空間
可以將這個2%的差距縮小一點,使用減少方差的手段
比如正則化,或者收集更多的訓練數據
貝葉斯錯誤率或者對貝葉斯錯誤率的估計和訓練錯誤率之間的差值稱為可避免偏差
這理論上是不可能超過貝葉斯錯誤率的,除非過擬合
而訓練錯誤率和開發錯誤率之前的差值
就大概說明算法在方差問題上還有多少改善空間
3. 理解人的表現
在醫學圖像診斷例子中,要觀察這樣的放射科圖像并做出分類診斷
假設普通的人類,未經訓練的人類,在此任務上達到3%的錯誤率
普通的醫生,也許是普通的放射科醫生,能達到1%的錯誤率
經驗豐富的醫生做得更好,錯誤率為0.7%
還有一隊經驗豐富的醫生,討論并辯論,達成共識的意見達到0.5%的錯誤率
假如系統的訓練錯誤率是5%,開發錯誤率是6%,
可避免偏差大概是2%,4%,4.3%,4.5%,這明顯比都比方差問題1%大
所以在這種情況下,應該專注于減少偏差的技術,例如培訓更大的網絡
所以此時貝葉斯錯誤率小于等于0.5%,最優錯誤率必須在0.5%以下
比如系統的訓練錯誤率是0.7%,所以你現在已經做得很好了
開發錯誤率是0.8%,在這種情況下,用0.5%來估計貝葉斯錯誤率關系就很大
因為在這種情況下,可避免偏差是0.2%,是方差問題0.1%的兩倍
這表明也許偏差和方差都存在問題,但可避免偏差問題更嚴重
如果用0.7%代替貝葉斯錯誤率,可避免偏差基本上是0%,那就可能忽略可避免偏差了
實際上應該試試能不能在訓練集上做得更好
更好的估計貝葉斯錯誤率,可以幫助更好地估計可避免偏差和方差
能夠更好的做出減少偏差或減少方差的策略
4. 超過人的表現
一組人類專家充分討論辯論之后,達到0.5%的錯誤率,單個人類專家錯誤率是1%
訓練出來的算法0.6%的訓練錯誤率,0.8%的開發錯誤率
可避免偏差的估計是至少0.1%,然后方差是0.2%
和減少可避免偏差比較起來,減少方差可能空間更大
但出來的算法0.3%訓練錯誤率,還有0.4%開發錯誤率
這是否意味著過擬合了0.2%,或者說貝葉斯錯誤率其實是0.1%呢?或者也許貝葉斯錯誤率是0.2%?
真的不知道
實際上沒有足夠的信息來判斷優化算法時應該專注減少偏差還是減少方差
這樣進展效率就會降低
所以要達到超越人類的表現往往不容易
但如果有足夠多的數據,已經有很多深度學習系統,在單一監督學習問題上已經超越了人類的水平
所以這對開發的應用是有意義的
5. 改善模型的表現
減少可避免偏差的策略:
- 規模更大的模型,這樣算法在訓練集上的表現會更好
- 訓練更久
- 更好的優化算法,比如說加入momentum或者RMSprop
- 更好的算法,比如Adam
- 更好的新神經網絡架構,如循環神經網絡和卷積神經網絡
- 更好的超參數
- 改變激活函數,改變層數或者隱藏單位數,雖然這么做可能會讓模型規模變大
減少方差的策略:
- 收集更多數據,因為收集更多數據去訓練可以更好地推廣到系統看不到的開發集數據
- 嘗試正則化,包括L2正則化,dropout正則化或者之前提到的數據增強
- 試用不同的神經網絡架構
- 超參數搜索
參考:
《神經網絡和深度學習》視頻課程
相關推薦:
深度學習筆記(14) 評估指標
深度學習筆記(13) Softmax分類
深度學習筆記(12) Batch歸一化網絡
深度學習筆記(11) 超參數調試
深度學習筆記(10) 優化算法(二)
謝謝!
總結
以上是生活随笔為你收集整理的深度学习笔记(15) 人的表现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 批量下载CMIP6数据
- 下一篇: django+djangorestfra