1.10 理解人的表现-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授
| 1.9 可避免誤差 | 回到目錄 | 1.11 超越人的表現 |
理解人的表現 (Understanding Human-level Performance)
人類水平表現這個詞在論文里經常隨意使用,但我現在告訴你這個詞更準確的定義,特別是使用人類水平表現這個詞的定義,可以幫助你們推動機器學習項目的進展。還記得上個視頻中,我們用過這個詞“人類水平錯誤率”用來估計貝葉斯誤差,那就是理論最低的錯誤率,任何函數不管是現在還是將來,能夠到達的最低值。我們先記住這點,然后看看醫學圖像分類例子。
假設你要觀察這樣的放射科圖像,然后作出分類診斷,假設一個普通的人類,未經訓練的人類,在此任務上達到3%的錯誤率。普通的醫生,也許是普通的放射科醫生,能達到1%的錯誤率。經驗豐富的醫生做得更好,錯誤率為0.7%。還有一隊經驗豐富的醫生,就是說如果你有一個經驗豐富的醫生團隊,讓他們都看看這個圖像,然后討論并辯論,他們達成共識的意見達到0.5%的錯誤率。所以我想問你的問題是,你應該如何界定人類水平錯誤率?人類水平錯誤率3%,1%, 0.7%還是0.5%?
你也可以暫停視頻思考一下,要回答這個問題,我想請你記住,思考人類水平錯誤率最有用的方式之一是,把它作為貝葉斯錯誤率的替代或估計。如果你愿意,也可以暫停視頻,思考一下這個問題。
但這里我就直接給出人類水平錯誤率的定義,就是如果你想要替代或估計貝葉斯錯誤率,那么一隊經驗豐富的醫生討論和辯論之后,可以達到0.5%的錯誤率。我們知道貝葉斯錯誤率小于等于0.5%,因為有些系統,這些醫生團隊可以達到0.5%的錯誤率。所以根據定義,最優錯誤率必須在0.5%以下。我們不知道多少更好,也許有一個更大的團隊,更有經驗的醫生能做得更好,所以也許比0.5%好一點。但是我們知道最優錯誤率不能高于0.5%,那么在這個背景下,我就可以用0.5%估計貝葉斯錯誤率。所以我將人類水平定義為0.5%,至少如果你希望使用人類水平錯誤來分析偏差和方差的時候,就像上個視頻那樣。
現在,為了發表研究論文或者部署系統,也許人類水平錯誤率的定義可以不一樣,你可以使用1%,只要你超越了一個普通醫生的表現,如果能達到這種水平,那系統已經達到實用了。也許超過一名放射科醫生,一名醫生的表現,意味著系統在一些情況下可以有部署價值了。
本視頻的要點是,在定義人類水平錯誤率時,要弄清楚你的目標所在,如果要表明你可以超越單個人類,那么就有理由在某些場合部署你的系統,也許這個定義是合適的。但是如果您的目標是替代貝葉斯錯誤率,那么這個定義(經驗豐富的醫生團隊——0.5%)才合適。
要了解為什么這個很重要,我們來看一個錯誤率分析的例子。比方說,在醫學圖像診斷例子中,你的訓練錯誤率是5%,你的開發錯誤率是6%。而在上一張幻燈片的例子中,我們的人類水平表現,我將它看成是貝葉斯錯誤率的替代品,取決于你是否將它定義成普通單個醫生的表現,還是有經驗的醫生或醫生團隊的表現,你可能會用1%或0.7%或0.5%。同時也回想一下,前面視頻中的定義,貝葉斯錯誤率或者說貝葉斯錯誤率的估計和訓練錯誤率直接的差值就衡量了所謂的可避免偏差,這(訓練誤差與開發誤差之間的差值)可以衡量或者估計你的學習算法的方差問題有多嚴重。
所以在這個第一個例子中,無論你做出哪些選擇,可避免偏差大概是4%,這個值我想介于……,如果你取1%就是4%,如果你取0.5%就是4.5%,而這個差距(訓練誤差與開發誤差之間的差值)是1%。所以在這個例子中,我得說,不管你怎么定義人類水平錯誤率,使用單個普通醫生的錯誤率定義,還是單個經驗豐富醫生的錯誤率定義或經驗豐富的醫生團隊的錯誤率定義,這是4%還是4.5%,這明顯比都比方差問題更大。所以在這種情況下,你應該專注于減少偏差的技術,例如培訓更大的網絡。
現在來看看第二個例子,比如說你的訓練錯誤率是1%,開發錯誤率是5%,這其實也不怎么重要,這種問題更像學術界討論的,人類水平表現是1%或0.7%還是0.5%。因為不管你使用哪一個定義,你測量可避免偏差的方法是,如果用那個值,就是0%到0.5%之前,對吧?那就是人類水平和訓練錯誤率之前的差距,而這個差距是4%,所以這個4%差距比任何一種定義的可避免偏差都大。所以他們就建議,你應該主要使用減少方差的工具,比如正則化或者去獲取更大的訓練集。
什么時候真正有效呢?
就是比如你的訓練錯誤率是0.7%,所以你現在已經做得很好了,你的開發錯誤率是0.8%。在這種情況下,你用0.5%來估計貝葉斯錯誤率關系就很大。因為在這種情況下,你測量到的可避免偏差是0.2%,這是你測量到的方差問題0.1%的兩倍,這表明也許偏差和方差都存在問題。但是,可避免偏差問題更嚴重。在這個例子中,我們在上一張幻燈片中討論的是0.5%,就是對貝葉斯錯誤率的最佳估計,因為一群人類醫生可以實現這一目標。如果你用0.7代替貝葉斯錯誤率,你測得的可避免偏差基本上是0%,那你就可能忽略可避免偏差了。實際上你應該試試能不能在訓練集上做得更好。
我希望講這個能讓你們有點概念,知道為什么機器學習問題上取得進展會越來越難,當你接近人類水平時進展會越來越難。
在這個例子中,一旦你接近0.7%錯誤率,除非你非常小心估計貝葉斯錯誤率,你可能無法知道離貝葉斯錯誤率有多遠,所以你應該盡量減少可避免偏差。事實上,如果你只知道單個普通醫生能達到1%錯誤率,這可能很難知道是不是應該繼續去擬合訓練集,這種問題只會出現在你的算法已經做得很好的時候,只有你已經做到0.7%, 0.8%, 接近人類水平時會出現。
而在左邊的兩個例子中,當你遠離人類水平時,將優化目標放在偏差或方差上可能更容易一點。這就說明了,為什么當你們接近人類水平時,更難分辨出問題是偏差還是方差。所以機器學習項目的進展在你已經做得很好的時候,很難更進一步。
總結一下我們講到的,如果你想理解偏差和方差,那么在人類可以做得很好的任務中,你可以估計人類水平的錯誤率,你可以使用人類水平錯誤率來估計貝葉斯錯誤率。所以你到貝葉斯錯誤率估計值的差距,告訴你可避免偏差問題有多大,可避免偏差問題有多嚴重,而訓練錯誤率和開發錯誤率之間的差值告訴你方差上的問題有多大,你的算法是否能夠從訓練集泛化推廣到開發集。
今天講的和之前課程中見到的重大區別是,以前你們比較的是訓練錯誤率和0%,直接用這個值估計偏差。相比之下,在這個視頻中,我們有一個更微妙的分析,其中并沒有假設你應該得到0%錯誤率,因為有時貝葉斯錯誤率是非零的,有時基本不可能做到比某個錯誤率閾值更低。所以在之前的課程中,我們測量的是訓練錯誤率,然后觀察的是訓練錯誤率比0%高多少,就用這個差值來估計偏差有多大。而事實證明,對于貝葉斯錯誤率幾乎是0%的問題這樣就行了,例如識別貓,人類表現接近完美,所以貝葉斯錯誤率也接近完美。所以當貝葉斯錯誤率幾乎為零時,可以那么做。但數據噪點很多時,比如背景聲音很嘈雜的語言識別,有時幾乎不可能聽清楚說的是什么,并正確記錄下來。對于這樣的問題,更好的估計貝葉斯錯誤率很有必要,可以幫助你更好地估計可避免偏差和方差,這樣你就能更好的做出決策,選擇減少偏差的策略,還是減少方差的策略。
回顧一下,對人類水平有大概的估計可以讓你做出對貝葉斯錯誤率的估計,這樣可以讓你更快地作出決定是否應該專注于減少算法的偏差,或者減少算法的方差。這個決策技巧通常很有效,直到你的系統性能開始超越人類,那么你對貝葉斯錯誤率的估計就不再準確了,但這些技巧還是可以幫你做出明確的決定。
現在,深度學習的令人興奮的發展之一就是對于越來越多的任務,我們的系統實際上可以超越人類了。在下一個視頻中,讓我們繼續談談超越人類水平的過程。
課程板書
| 1.9 可避免誤差 | 回到目錄 | 1.11 超越人的表現 |
總結
以上是生活随笔為你收集整理的1.10 理解人的表现-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1.9 可避免误差-深度学习第三课《结构
- 下一篇: 1.11 超过人的表现-深度学习第三课《