日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人工智能 > pytorch >内容正文

pytorch

深度学习笔记第三门课 结构化机器学习项目 第一周 机器学习(ML)策略(1)...

發(fā)布時(shí)間:2025/3/8 pytorch 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习笔记第三门课 结构化机器学习项目 第一周 机器学习(ML)策略(1)... 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本文是吳恩達(dá)老師的深度學(xué)習(xí)課程[1]筆記部分。

作者:黃海廣[2]

主要編寫(xiě)人員:黃海廣、林興木(第四所有底稿,第五課第一二周,第三周前三節(jié))、祝彥森:(第三課所有底稿)、賀志堯(第五課第三周底稿)、王翔、胡瀚文、 余笑、 鄭浩、李懷松、 朱越鵬、陳偉賀、 曹越、 路皓翔、邱牧宸、 唐天澤、 張浩、 陳志豪、 游忍、 澤霖、沈偉臣、 賈紅順、 時(shí)超、 陳哲、趙一帆、 胡瀟楊、段希、于沖、張?chǎng)钨?/p>

參與編輯人員:黃海廣、陳康凱、石晴路、鐘博彥、向偉、嚴(yán)鳳龍、劉成 、賀志堯、段希、陳瑤、林家泳、王翔、 謝士晨、蔣鵬

備注:筆記和作業(yè)(含數(shù)據(jù)、原始作業(yè)文件)、視頻都在?github[3]中下載。

我將陸續(xù)將課程筆記發(fā)布在公眾號(hào)“機(jī)器學(xué)習(xí)初學(xué)者”,敬請(qǐng)關(guān)注。

第三門(mén)課 結(jié)構(gòu)化機(jī)器學(xué)習(xí)項(xiàng)目(Structuring Machine Learning Projects)

第一周 機(jī)器學(xué)習(xí)(ML)策略(1)(ML strategy(1))

1.1 為什么是ML策略?(Why ML Strategy?)

大家好,歡迎收聽(tīng)本課,如何構(gòu)建你的機(jī)器學(xué)習(xí)項(xiàng)目也就是說(shuō)機(jī)器學(xué)習(xí)的策略。我希望通過(guò)這門(mén)課程你們能夠?qū)W到如何更快速高效地優(yōu)化你的機(jī)器學(xué)習(xí)系統(tǒng)。那么,什么是機(jī)器學(xué)習(xí)策略呢?

我們從一個(gè)啟發(fā)性的例子開(kāi)始講,假設(shè)你正在調(diào)試你的貓分類器,經(jīng)過(guò)一段時(shí)間的調(diào)整,你的系統(tǒng)達(dá)到了90%準(zhǔn)確率,但對(duì)你的應(yīng)用程序來(lái)說(shuō)還不夠好。

你可能有很多想法去改善你的系統(tǒng),比如,你可能想我們?nèi)ナ占嗟挠?xùn)練數(shù)據(jù)吧。或者你會(huì)說(shuō),可能你的訓(xùn)練集的多樣性還不夠,你應(yīng)該收集更多不同姿勢(shì)的貓咪圖片,或者更多樣化的反例集。或者你想再用梯度下降訓(xùn)練算法,訓(xùn)練久一點(diǎn)。或者你想嘗試用一個(gè)完全不同的優(yōu)化算法,比如Adam優(yōu)化算法。或者嘗試使用規(guī)模更大或者更小的神經(jīng)網(wǎng)絡(luò)。或者你想試試dropout或者正則化。或者你想修改網(wǎng)絡(luò)的架構(gòu),比如修改激活函數(shù),改變隱藏單元的數(shù)目之類的方法。

當(dāng)你嘗試優(yōu)化一個(gè)深度學(xué)習(xí)系統(tǒng)時(shí),你通常可以有很多想法可以去試,問(wèn)題在于,如果你做出了錯(cuò)誤的選擇,你完全有可能白費(fèi)6個(gè)月的時(shí)間,往錯(cuò)誤的方向前進(jìn),在6個(gè)月之后才意識(shí)到這方法根本不管用。比如,我見(jiàn)過(guò)一些團(tuán)隊(duì)花了6個(gè)月時(shí)間收集更多數(shù)據(jù),卻在6個(gè)月之后發(fā)現(xiàn),這些數(shù)據(jù)幾乎沒(méi)有改善他們系統(tǒng)的性能。所以,假設(shè)你的項(xiàng)目沒(méi)有6個(gè)月的時(shí)間可以浪費(fèi),如果有快速有效的方法能夠判斷哪些想法是靠譜的,或者甚至提出新的想法,判斷哪些是值得一試的想法,哪些是可以放心舍棄的。

我希望在這門(mén)課程中,可以教給你們一些策略,一些分析機(jī)器學(xué)習(xí)問(wèn)題的方法,可以指引你們朝著最有希望的方向前進(jìn)。這門(mén)課中,我會(huì)和你們分享我在搭建和部署大量深度學(xué)習(xí)產(chǎn)品時(shí)學(xué)到的經(jīng)驗(yàn)和教訓(xùn),我想這些內(nèi)容是這門(mén)課程獨(dú)有的。比如說(shuō),很多大學(xué)深度學(xué)習(xí)課程很少提到這些策略。事實(shí)上,機(jī)器學(xué)習(xí)策略在深度學(xué)習(xí)的時(shí)代也在變化,因?yàn)楝F(xiàn)在對(duì)于深度學(xué)習(xí)算法來(lái)說(shuō)能夠做到的事情,比上一代機(jī)器學(xué)習(xí)算法大不一樣。我希望這些策略能幫助你們提高效率,讓你們的深度學(xué)習(xí)系統(tǒng)更快投入實(shí)用。

1.2 正交化(Orthogonalization)

搭建建立機(jī)器學(xué)習(xí)系統(tǒng)的挑戰(zhàn)之一是,你可以嘗試和改變的東西太多太多了。包括,比如說(shuō),有那么多的超參數(shù)可以調(diào)。我留意到,那些效率很高的機(jī)器學(xué)習(xí)專家有個(gè)特點(diǎn),他們思維清晰,對(duì)于要調(diào)整什么來(lái)達(dá)到某個(gè)效果,非常清楚,這個(gè)步驟我們稱之為正交化,讓我告訴你是什么意思吧。

這是一張老式電視圖片,有很多旋鈕可以用來(lái)調(diào)整圖像的各種性質(zhì),所以對(duì)于這些舊式電視,可能有一個(gè)旋鈕用來(lái)調(diào)圖像垂直方向的高度,另外有一個(gè)旋鈕用來(lái)調(diào)圖像寬度,也許還有一個(gè)旋鈕用來(lái)調(diào)梯形角度,還有一個(gè)旋鈕用來(lái)調(diào)整圖像左右偏移,還有一個(gè)旋鈕用來(lái)調(diào)圖像旋轉(zhuǎn)角度之類的。電視設(shè)計(jì)師花了大量時(shí)間設(shè)計(jì)電路,那時(shí)通常都是模擬電路來(lái)確保每個(gè)旋鈕都有相對(duì)明確的功能。如一個(gè)旋鈕來(lái)調(diào)整這個(gè)(高度),一個(gè)旋鈕調(diào)整這個(gè)(寬度),一個(gè)旋鈕調(diào)整這個(gè)(梯形角度),以此類推。

相比之下,想象一下,如果你有一個(gè)旋鈕調(diào)的是表示圖像高度,表示圖像寬度,表示梯形角度,表示圖像在水平軸上的坐標(biāo)之類的。如果你調(diào)整這個(gè)(其中一個(gè))旋鈕,那么圖像的高度、寬度、梯形角度、平移位置全部都會(huì)同時(shí)改變,如果你有這樣的旋鈕,那幾乎不可能把電視調(diào)好,讓圖像顯示在區(qū)域正中。

所以在這種情況下,正交化指的是電視設(shè)計(jì)師設(shè)計(jì)這樣的旋鈕,使得每個(gè)旋鈕都只調(diào)整一個(gè)性質(zhì),這樣調(diào)整電視圖像就容易得多,就可以把圖像調(diào)到正中。

接下來(lái)是另一個(gè)正交化例子,你想想學(xué)車的時(shí)候,一輛車有三個(gè)主要控制,第一是方向盤(pán),方向盤(pán)決定你往左右偏多少,還有油門(mén)和剎車。就是這三個(gè)控制,其中一個(gè)控制方向,另外兩個(gè)控制你的速度,這樣就比較容易解讀。知道不同控制的不同動(dòng)作會(huì)對(duì)車子運(yùn)動(dòng)有什么影響。

想象一下,如果有人這么造車,造了個(gè)游戲手柄,手柄的一個(gè)軸控制的是轉(zhuǎn)向角-速度,然后還有一個(gè)軸控制的是轉(zhuǎn)向角車速,理論上來(lái)說(shuō),通過(guò)調(diào)整這兩個(gè)旋鈕你是可以將車子調(diào)整到你希望得到的角度和速度,但這樣比單獨(dú)控制轉(zhuǎn)向角度,分開(kāi)獨(dú)立的速度控制要難得多。

所以正交化的概念是指,你可以想出一個(gè)維度,這個(gè)維度你想做的是控制轉(zhuǎn)向角,還有另一個(gè)維度來(lái)控制你的速度,那么你就需要一個(gè)旋鈕盡量只控制轉(zhuǎn)向角,另一個(gè)旋鈕,在這個(gè)開(kāi)車的例子里其實(shí)是油門(mén)和剎車控制了你的速度。但如果你有一個(gè)控制旋鈕將兩者混在一起,比如說(shuō)這樣一個(gè)控制裝置同時(shí)影響你的轉(zhuǎn)向角和速度,同時(shí)改變了兩個(gè)性質(zhì),那么就很難令你的車子以想要的速度和角度前進(jìn)。然而正交化之后,正交意味著互成90度。設(shè)計(jì)出正交化的控制裝置,最理想的情況是和你實(shí)際想控制的性質(zhì)一致,這樣你調(diào)整參數(shù)時(shí)就容易得多。可以單獨(dú)調(diào)整轉(zhuǎn)向角,還有你的油門(mén)和剎車,令車子以你想要的方式運(yùn)動(dòng)。

那么這與機(jī)器學(xué)習(xí)有什么關(guān)系呢?要弄好一個(gè)監(jiān)督學(xué)習(xí)系統(tǒng),你通常需要調(diào)你的系統(tǒng)的旋鈕。

確保四件事情,首先,你通常必須確保至少系統(tǒng)在訓(xùn)練集上得到的結(jié)果不錯(cuò),所以訓(xùn)練集上的表現(xiàn)必須通過(guò)某種評(píng)估,達(dá)到能接受的程度,對(duì)于某些應(yīng)用,這可能意味著達(dá)到人類水平的表現(xiàn),但這取決于你的應(yīng)用,我們將在下周更多地談?wù)勅绾闻c人類水平的表現(xiàn)進(jìn)行比較。但是,在訓(xùn)練集上表現(xiàn)不錯(cuò)之后,你就希望系統(tǒng)也能在開(kāi)發(fā)集上有好的表現(xiàn),然后你希望系統(tǒng)在測(cè)試集上也有好的表現(xiàn)。在最后,你希望系統(tǒng)在測(cè)試集上系統(tǒng)的成本函數(shù)在實(shí)際使用中表現(xiàn)令人滿意,比如說(shuō),你希望這些貓圖片應(yīng)用的用戶滿意。

我們回到電視調(diào)節(jié)的例子,如果你的電視圖像太寬或太窄,你想要一個(gè)旋鈕去調(diào)整,你可不想要仔細(xì)調(diào)節(jié)五個(gè)不同的旋鈕,它們也會(huì)影響別的圖像性質(zhì),你只需要一個(gè)旋鈕去改變電視圖像的寬度。

所以類似地,如果你的算法在成本函數(shù)上不能很好地?cái)M合訓(xùn)練集,你想要一個(gè)旋鈕,是的我畫(huà)這東西表示旋鈕,或者一組特定的旋鈕,這樣你可以用來(lái)確保你的可以調(diào)整你的算法,讓它很好地?cái)M合訓(xùn)練集,所以你用來(lái)調(diào)試的旋鈕是你可能可以訓(xùn)練更大的網(wǎng)絡(luò),或者可以切換到更好的優(yōu)化算法,比如Adam優(yōu)化算法,等等。我們將在本周和下周討論一些其他選項(xiàng)。

相比之下,如果發(fā)現(xiàn)算法對(duì)開(kāi)發(fā)集的擬合很差,那么應(yīng)該有獨(dú)立的一組旋鈕,是的,這就是我畫(huà)得毛毛躁躁的另一個(gè)旋鈕,你希望有一組獨(dú)立的旋鈕去調(diào)試。比如說(shuō),你的算法在開(kāi)發(fā)集上做的不好,它在訓(xùn)練集上做得很好,但開(kāi)發(fā)集不行,然后你有一組正則化的旋鈕可以調(diào)節(jié),嘗試讓系統(tǒng)滿足第二個(gè)條件。類比到電視,就是現(xiàn)在你調(diào)好了電視的寬度,如果圖像的高度不太對(duì),你就需要一個(gè)不同的旋鈕來(lái)調(diào)節(jié)電視圖像的高度,然后你希望這個(gè)旋鈕盡量不會(huì)影響到電視的寬度。增大訓(xùn)練集可以是另一個(gè)可用的旋鈕,它可以幫助你的學(xué)習(xí)算法更好地歸納開(kāi)發(fā)集的規(guī)律,現(xiàn)在調(diào)好了電視圖像的高度和寬度。

如果它不符合第三個(gè)標(biāo)準(zhǔn)呢?如果系統(tǒng)在開(kāi)發(fā)集上做的很好,但測(cè)試集上做得不好呢?如果是這樣,那么你需要調(diào)的旋鈕,可能是更大的開(kāi)發(fā)集。因?yàn)槿绻陂_(kāi)發(fā)集上做的不錯(cuò),但測(cè)試集不行這可能意味著你對(duì)開(kāi)發(fā)集過(guò)擬合了,你需要往回退一步,使用更大的開(kāi)發(fā)集。

最后,如果它在測(cè)試集上做得很好,但無(wú)法給你的貓圖片應(yīng)用用戶提供良好的體驗(yàn),這意味著你需要回去,改變開(kāi)發(fā)集或成本函數(shù)。因?yàn)槿绻鶕?jù)某個(gè)成本函數(shù),系統(tǒng)在測(cè)試集上做的很好,但它無(wú)法反映你的算法在現(xiàn)實(shí)世界中的表現(xiàn),這意味著要么你的開(kāi)發(fā)集分布設(shè)置不正確,要么你的成本函數(shù)測(cè)量的指標(biāo)不對(duì)。

我們很快會(huì)逐一講到這些例子,我們以后會(huì)詳細(xì)介紹這些特定的旋鈕,在本周和下周晚些時(shí)候會(huì)介紹的。所以如果現(xiàn)在你無(wú)法理解全部細(xì)節(jié),別擔(dān)心,但我希望你們對(duì)這種正交化過(guò)程有個(gè)概念。你要非常清楚,到底是四個(gè)問(wèn)題中的哪一個(gè),知道你可以調(diào)節(jié)哪些不同的東西嘗試解決那個(gè)問(wèn)題。

當(dāng)我訓(xùn)練神經(jīng)網(wǎng)絡(luò)時(shí),我一般不用early stopping,這個(gè)技巧也還不錯(cuò),很多人都這么干。但個(gè)人而言,我覺(jué)得用early stopping有點(diǎn)難以分析,因?yàn)檫@個(gè)旋鈕會(huì)同時(shí)影響你對(duì)訓(xùn)練集的擬合,因?yàn)槿绻阍缙谕V?#xff0c;那么對(duì)訓(xùn)練集的擬合就不太好,但它同時(shí)也用來(lái)改善開(kāi)發(fā)集的表現(xiàn),所以這個(gè)旋鈕沒(méi)那么正交化。因?yàn)樗瑫r(shí)影響兩件事情,就像一個(gè)旋鈕同時(shí)影響電視圖像的寬度和高度。不是說(shuō)這樣就不要用,如果你想用也是可以的。但如果你有更多的正交化控制,比如我這里寫(xiě)出的其他手段,用這些手段調(diào)網(wǎng)絡(luò)會(huì)簡(jiǎn)單不少。

所以我希望你們對(duì)正交化的意義有點(diǎn)概念,就像你看電視圖像一樣。如果你說(shuō),我的電視圖像太寬,所以我要調(diào)整這個(gè)旋鈕(寬度旋鈕)。或者它太高了,所以我要調(diào)整那個(gè)旋鈕(高度旋鈕)。或者它太梯形了,所以我要調(diào)整這個(gè)旋鈕(梯形角度旋鈕),這就很好。

在機(jī)器學(xué)習(xí)中,如果你可以觀察你的系統(tǒng),然后說(shuō)這一部分是錯(cuò)的,它在訓(xùn)練集上做的不好、在開(kāi)發(fā)集上做的不好、它在測(cè)試集上做的不好,或者它在測(cè)試集上做的不錯(cuò),但在現(xiàn)實(shí)世界中不好,這就很好。必須弄清楚到底是什么地方出問(wèn)題了,然后我們剛好有對(duì)應(yīng)的旋鈕,或者一組對(duì)應(yīng)的旋鈕,剛好可以解決那個(gè)問(wèn)題,那個(gè)限制了機(jī)器學(xué)習(xí)系統(tǒng)性能的問(wèn)題。

這就是我們這周和下周要講到的,如何診斷出系統(tǒng)性能瓶頸到底在哪。還有找到你可以用的一組特定的旋鈕來(lái)調(diào)整你的系統(tǒng),來(lái)改善它特定方面的性能,我們開(kāi)始詳細(xì)講講這個(gè)過(guò)程吧。

1.3 單一數(shù)字評(píng)估指標(biāo)(Single number evaluation metric)

無(wú)論你是調(diào)整超參數(shù),或者是嘗試不同的學(xué)習(xí)算法,或者在搭建機(jī)器學(xué)習(xí)系統(tǒng)時(shí)嘗試不同手段,你會(huì)發(fā)現(xiàn),如果你有一個(gè)單實(shí)數(shù)評(píng)估指標(biāo),你的進(jìn)展會(huì)快得多,它可以快速告訴你,新嘗試的手段比之前的手段好還是差。所以當(dāng)團(tuán)隊(duì)開(kāi)始進(jìn)行機(jī)器學(xué)習(xí)項(xiàng)目時(shí),我經(jīng)常推薦他們?yōu)閱?wèn)題設(shè)置一個(gè)單實(shí)數(shù)評(píng)估指標(biāo)。

我們來(lái)看一個(gè)例子,你之前聽(tīng)過(guò)我說(shuō)過(guò),應(yīng)用機(jī)器學(xué)習(xí)是一個(gè)非常經(jīng)驗(yàn)性的過(guò)程,我們通常有一個(gè)想法,編程序,跑實(shí)驗(yàn),看看效果如何,然后使用這些實(shí)驗(yàn)結(jié)果來(lái)改善你的想法,然后繼續(xù)走這個(gè)循環(huán),不斷改進(jìn)你的算法。

比如說(shuō)對(duì)于你的貓分類器,之前你搭建了某個(gè)分類器,通過(guò)改變超參數(shù),還有改變訓(xùn)練集等手段,你現(xiàn)在訓(xùn)練出來(lái)了一個(gè)新的分類器B,所以評(píng)估你的分類器的一個(gè)合理方式是觀察它的查準(zhǔn)率(precision)和查全率(recall)。

查準(zhǔn)率和查全率的確切細(xì)節(jié)對(duì)于這個(gè)例子來(lái)說(shuō)不太重要。但簡(jiǎn)而言之,查準(zhǔn)率的定義是在你的分類器標(biāo)記為貓的例子中,有多少真的是貓。所以如果分類器有95%的查準(zhǔn)率,這意味著你的分類器說(shuō)這圖有貓的時(shí)候,有95%的機(jī)會(huì)真的是貓。

查全率就是,對(duì)于所有真貓的圖片,你的分類器正確識(shí)別出了多少百分比。實(shí)際為貓的圖片中,有多少被系統(tǒng)識(shí)別出來(lái)?如果分類器查全率是90%,這意味著對(duì)于所有的圖像,比如說(shuō)你的開(kāi)發(fā)集都是真的貓圖,分類器準(zhǔn)確地分辨出了其中的90%。

所以關(guān)于查準(zhǔn)率和查全率的定義,不用想太多。事實(shí)證明,查準(zhǔn)率和查全率之間往往需要折衷,兩個(gè)指標(biāo)都要顧及到。你希望得到的效果是,當(dāng)你的分類器說(shuō)某個(gè)東西是貓的時(shí)候,有很大的機(jī)會(huì)它真的是一只貓,但對(duì)于所有是貓的圖片,你也希望系統(tǒng)能夠?qū)⒋蟛糠址诸悶樨?#xff0c;所以用查準(zhǔn)率和查全率來(lái)評(píng)估分類器是比較合理的。

但使用查準(zhǔn)率和查全率作為評(píng)估指標(biāo)的時(shí)候,有個(gè)問(wèn)題,如果分類器在查全率上表現(xiàn)更好,分類器在查準(zhǔn)率上表現(xiàn)更好,你就無(wú)法判斷哪個(gè)分類器更好。如果你嘗試了很多不同想法,很多不同的超參數(shù),你希望能夠快速試驗(yàn)不僅僅是兩個(gè)分類器,也許是十幾個(gè)分類器,快速選出“最好的”那個(gè),這樣你可以從那里出發(fā)再迭代。如果有兩個(gè)評(píng)估指標(biāo),就很難去快速地二中選一或者十中選一,所以我并不推薦使用兩個(gè)評(píng)估指標(biāo),查準(zhǔn)率和查全率來(lái)選擇一個(gè)分類器。你只需要找到一個(gè)新的評(píng)估指標(biāo),能夠結(jié)合查準(zhǔn)率和查全率。

在機(jī)器學(xué)習(xí)文獻(xiàn)中,結(jié)合查準(zhǔn)率和查全率的標(biāo)準(zhǔn)方法是所謂的分?jǐn)?shù),分?jǐn)?shù)的細(xì)節(jié)并不重要。但非正式的,你可以認(rèn)為這是查準(zhǔn)率和查全率的平均值。正式來(lái)看,分?jǐn)?shù)的定義是這個(gè)公式:

在數(shù)學(xué)中,這個(gè)函數(shù)叫做查準(zhǔn)率和查全率的調(diào)和平均數(shù)。但非正式來(lái)說(shuō),你可以將它看成是某種查準(zhǔn)率和查全率的平均值,只不過(guò)你算的不是直接的算術(shù)平均,而是用這個(gè)公式定義的調(diào)和平均。這個(gè)指標(biāo)在權(quán)衡查準(zhǔn)率和查全率時(shí)有一些優(yōu)勢(shì)。

但在這個(gè)例子中,你可以馬上看出,分類器的分?jǐn)?shù)更高。假設(shè)分?jǐn)?shù)是結(jié)合查準(zhǔn)率和查全率的合理方式,你可以快速選出分類器,淘汰分類器。

我發(fā)現(xiàn)很多機(jī)器學(xué)習(xí)團(tuán)隊(duì)就是這樣,有一個(gè)定義明確的開(kāi)發(fā)集用來(lái)測(cè)量查準(zhǔn)率和查全率,再加上這樣一個(gè)單一數(shù)值評(píng)估指標(biāo),有時(shí)我叫單實(shí)數(shù)評(píng)估指標(biāo),能讓你快速判斷分類器或者分類器更好。所以有這樣一個(gè)開(kāi)發(fā)集,加上單實(shí)數(shù)評(píng)估指標(biāo),你的迭代速度肯定會(huì)很快,它可以加速改進(jìn)您的機(jī)器學(xué)習(xí)算法的迭代過(guò)程。

我們來(lái)看另一個(gè)例子,假設(shè)你在開(kāi)發(fā)一個(gè)貓應(yīng)用來(lái)服務(wù)四個(gè)地理大區(qū)的愛(ài)貓人士,美國(guó)、中國(guó)、印度還有世界其他地區(qū)。我們假設(shè)你的兩個(gè)分類器在來(lái)自四個(gè)地理大區(qū)的數(shù)據(jù)中得到了不同的錯(cuò)誤率,比如算法在美國(guó)用戶上傳的圖片中達(dá)到了3%錯(cuò)誤率,等等。

所以跟蹤一下,你的分類器在不同市場(chǎng)和地理大區(qū)中的表現(xiàn)應(yīng)該是有用的,但是通過(guò)跟蹤四個(gè)數(shù)字,很難掃一眼這些數(shù)值就快速判斷算法或算法哪個(gè)更好。如果你測(cè)試很多不同的分類器,那么看著那么多數(shù)字,然后快速選一個(gè)最優(yōu)是很難的。所以在這個(gè)例子中,我建議,除了跟蹤分類器在四個(gè)不同的地理大區(qū)的表現(xiàn),也要算算平均值。假設(shè)平均表現(xiàn)是一個(gè)合理的單實(shí)數(shù)評(píng)估指標(biāo),通過(guò)計(jì)算平均值,你就可以快速判斷。

看起來(lái)算法的平均錯(cuò)誤率最低,然后你可以繼續(xù)用那個(gè)算法。你必須選擇一個(gè)算法,然后不斷迭代,所以你的機(jī)器學(xué)習(xí)的工作流程往往是你有一個(gè)想法,你嘗試實(shí)現(xiàn)它,看看這個(gè)想法好不好。

所以本視頻介紹的是,有一個(gè)單實(shí)數(shù)評(píng)估指標(biāo)真的可以提高你的效率,或者提高你的團(tuán)隊(duì)做出這些決策的效率。現(xiàn)在我們還沒(méi)有完整討論如何有效地建立評(píng)估指標(biāo)。在下一個(gè)視頻中,我會(huì)教你們?nèi)绾卧O(shè)置優(yōu)化以及滿足指標(biāo),我們來(lái)看下一段視頻。

1.4 滿足和優(yōu)化指標(biāo)(Satisficing and optimizing metrics)

要把你顧及到的所有事情組合成單實(shí)數(shù)評(píng)估指標(biāo)有時(shí)并不容易,在那些情況里,我發(fā)現(xiàn)有時(shí)候設(shè)立滿足和優(yōu)化指標(biāo)是很重要的,讓我告訴你是什么意思吧。


假設(shè)你已經(jīng)決定你很看重貓分類器的分類準(zhǔn)確度,這可以是分?jǐn)?shù)或者用其他衡量準(zhǔn)確度的指標(biāo)。但除了準(zhǔn)確度之外,我們還需要考慮運(yùn)行時(shí)間,就是需要多長(zhǎng)時(shí)間來(lái)分類一張圖。分類器需要80毫秒,需要95毫秒,需要1500毫秒,就是說(shuō)需要1.5秒來(lái)分類圖像。

你可以這么做,將準(zhǔn)確度和運(yùn)行時(shí)間組合成一個(gè)整體評(píng)估指標(biāo)。所以成本,比如說(shuō),總體成本是,這種組合方式可能太刻意,只用這樣的公式來(lái)組合準(zhǔn)確度和運(yùn)行時(shí)間,兩個(gè)數(shù)值的線性加權(quán)求和。

你還可以做其他事情,就是你可能選擇一個(gè)分類器,能夠最大限度提高準(zhǔn)確度,但必須滿足運(yùn)行時(shí)間要求,就是對(duì)圖像進(jìn)行分類所需的時(shí)間必須小于等于100毫秒。所以在這種情況下,我們就說(shuō)準(zhǔn)確度是一個(gè)優(yōu)化指標(biāo),因?yàn)槟阆胍獪?zhǔn)確度最大化,你想做的盡可能準(zhǔn)確,但是運(yùn)行時(shí)間就是我們所說(shuō)的滿足指標(biāo),意思是它必須足夠好,它只需要小于100毫秒,達(dá)到之后,你不在乎這指標(biāo)有多好,或者至少你不會(huì)那么在乎。所以這是一個(gè)相當(dāng)合理的權(quán)衡方式,或者說(shuō)將準(zhǔn)確度和運(yùn)行時(shí)間結(jié)合起來(lái)的方式。實(shí)際情況可能是,只要運(yùn)行時(shí)間少于100毫秒,你的用戶就不會(huì)在乎運(yùn)行時(shí)間是100毫秒還是50毫秒,甚至更快。

通過(guò)定義優(yōu)化和滿足指標(biāo),就可以給你提供一個(gè)明確的方式,去選擇“最好的”分類器。在這種情況下分類器B最好,因?yàn)樵谒械倪\(yùn)行時(shí)間都小于100毫秒的分類器中,它的準(zhǔn)確度最好。

所以更一般地說(shuō),如果你要考慮個(gè)指標(biāo),有時(shí)候選擇其中一個(gè)指標(biāo)做為優(yōu)化指標(biāo)是合理的。所以你想盡量?jī)?yōu)化那個(gè)指標(biāo),然后剩下個(gè)指標(biāo)都是滿足指標(biāo),意味著只要它們達(dá)到一定閾值,例如運(yùn)行時(shí)間快于100毫秒,但只要達(dá)到一定的閾值,你不在乎它超過(guò)那個(gè)門(mén)檻之后的表現(xiàn),但它們必須達(dá)到這個(gè)門(mén)檻。

這里是另一個(gè)例子,假設(shè)你正在構(gòu)建一個(gè)系統(tǒng)來(lái)檢測(cè)喚醒語(yǔ),也叫觸發(fā)詞,這指的是語(yǔ)音控制設(shè)備。比如亞馬遜Echo,你會(huì)說(shuō)“Alexa”,或者用“Okay Google”來(lái)喚醒谷歌設(shè)備,或者對(duì)于蘋(píng)果設(shè)備,你會(huì)說(shuō)“Hey Siri”,或者對(duì)于某些百度設(shè)備,我們用“你好百度”喚醒。

對(duì)的,這些就是喚醒詞,可以喚醒這些語(yǔ)音控制設(shè)備,然后監(jiān)聽(tīng)你想說(shuō)的話。所以你可能會(huì)在乎觸發(fā)字檢測(cè)系統(tǒng)的準(zhǔn)確性,所以當(dāng)有人說(shuō)出其中一個(gè)觸發(fā)詞時(shí),有多大概率可以喚醒你的設(shè)備。

你可能也需要顧及假陽(yáng)性(false positive)的數(shù)量,就是沒(méi)有人在說(shuō)這個(gè)觸發(fā)詞時(shí),它被隨機(jī)喚醒的概率有多大?所以這種情況下,組合這兩種評(píng)估指標(biāo)的合理方式可能是最大化精確度。所以當(dāng)某人說(shuō)出喚醒詞時(shí),你的設(shè)備被喚醒的概率最大化,然后必須滿足24小時(shí)內(nèi)最多只能有1次假陽(yáng)性,對(duì)吧?所以你的設(shè)備平均每天只會(huì)沒(méi)有人真的在說(shuō)話時(shí)隨機(jī)喚醒一次。所以在這種情況下,準(zhǔn)確度是優(yōu)化指標(biāo),然后每24小時(shí)發(fā)生一次假陽(yáng)性是滿足指標(biāo),你只要每24小時(shí)最多有一次假陽(yáng)性就滿足了。

總結(jié)一下,如果你需要顧及多個(gè)指標(biāo),比如說(shuō),有一個(gè)優(yōu)化指標(biāo),你想盡可能優(yōu)化的,然后還有一個(gè)或多個(gè)滿足指標(biāo),需要滿足的,需要達(dá)到一定的門(mén)檻。現(xiàn)在你就有一個(gè)全自動(dòng)的方法,在觀察多個(gè)成本大小時(shí),選出"最好的"那個(gè)。現(xiàn)在這些評(píng)估指標(biāo)必須是在訓(xùn)練集或開(kāi)發(fā)集或測(cè)試集上計(jì)算或求出來(lái)的。所以你還需要做一件事,就是設(shè)立訓(xùn)練集、開(kāi)發(fā)集,還有測(cè)試集。在下一個(gè)視頻里,我想和大家分享一些如何設(shè)置訓(xùn)練、開(kāi)發(fā)和測(cè)試集的指導(dǎo)方針,我們下一個(gè)視頻繼續(xù)。

1.5 訓(xùn)練/開(kāi)發(fā)/測(cè)試集劃分(Train/dev/test distributions)

設(shè)立訓(xùn)練集,開(kāi)發(fā)集和測(cè)試集的方式大大影響了你或者你的團(tuán)隊(duì)在建立機(jī)器學(xué)習(xí)應(yīng)用方面取得進(jìn)展的速度。同樣的團(tuán)隊(duì),即使是大公司里的團(tuán)隊(duì),在設(shè)立這些數(shù)據(jù)集的方式,真的會(huì)讓團(tuán)隊(duì)的進(jìn)展變慢而不是加快,我們看看應(yīng)該如何設(shè)立這些數(shù)據(jù)集,讓你的團(tuán)隊(duì)效率最大化。

在這個(gè)視頻中,我想集中討論如何設(shè)立開(kāi)發(fā)集和測(cè)試集,開(kāi)發(fā)(dev)集也叫做開(kāi)發(fā)集(development set),有時(shí)稱為保留交叉驗(yàn)證集(hold out cross validation set)。然后,機(jī)器學(xué)習(xí)中的工作流程是,你嘗試很多思路,用訓(xùn)練集訓(xùn)練不同的模型,然后使用開(kāi)發(fā)集來(lái)評(píng)估不同的思路,然后選擇一個(gè),然后不斷迭代去改善開(kāi)發(fā)集的性能,直到最后你可以得到一個(gè)令你滿意的成本,然后你再用測(cè)試集去評(píng)估。

現(xiàn)在,舉個(gè)例子,你要開(kāi)發(fā)一個(gè)貓分類器,然后你在這些區(qū)域里運(yùn)營(yíng),美國(guó)、英國(guó)、其他歐洲國(guó)家,南美洲、印度、中國(guó),其他亞洲國(guó)家和澳大利亞,那么你應(yīng)該如何設(shè)立開(kāi)發(fā)集和測(cè)試集呢?

其中一種做法是,你可以選擇其中4個(gè)區(qū)域,我打算使用這四個(gè)(前四個(gè)),但也可以是隨機(jī)選的區(qū)域,然后說(shuō),來(lái)自這四個(gè)區(qū)域的數(shù)據(jù)構(gòu)成開(kāi)發(fā)集。然后其他四個(gè)區(qū)域,我打算用這四個(gè)(后四個(gè)),也可以隨機(jī)選擇4個(gè),這些數(shù)據(jù)構(gòu)成測(cè)試集。

事實(shí)證明,這個(gè)想法非常糟糕,因?yàn)檫@個(gè)例子中,你的開(kāi)發(fā)集和測(cè)試集來(lái)自不同的分布。我建議你們不要這樣,而是讓你的開(kāi)發(fā)集和測(cè)試集來(lái)自同一分布。我的意思是這樣,你們要記住,我想就是設(shè)立你的開(kāi)發(fā)集加上一個(gè)單實(shí)數(shù)評(píng)估指標(biāo),這就是像是定下目標(biāo),然后告訴你的團(tuán)隊(duì),那就是你要瞄準(zhǔn)的靶心,因?yàn)槟阋坏┙⒘诉@樣的開(kāi)發(fā)集和指標(biāo),團(tuán)隊(duì)就可以快速迭代,嘗試不同的想法,跑實(shí)驗(yàn),可以很快地使用開(kāi)發(fā)集和指標(biāo)去評(píng)估不同分類器,然后嘗試選出最好的那個(gè)。所以,機(jī)器學(xué)習(xí)團(tuán)隊(duì)一般都很擅長(zhǎng)使用不同方法去逼近目標(biāo),然后不斷迭代,不斷逼近靶心。所以,針對(duì)開(kāi)發(fā)集上的指標(biāo)優(yōu)化。

然后在左邊的例子中,設(shè)立開(kāi)發(fā)集和測(cè)試集時(shí)存在一個(gè)問(wèn)題,你的團(tuán)隊(duì)可能會(huì)花上幾個(gè)月時(shí)間在開(kāi)發(fā)集上迭代優(yōu)化,結(jié)果發(fā)現(xiàn),當(dāng)你們最終在測(cè)試集上測(cè)試系統(tǒng)時(shí),來(lái)自這四個(gè)國(guó)家或者說(shuō)下面這四個(gè)地區(qū)的數(shù)據(jù)(即測(cè)試集數(shù)據(jù))和開(kāi)發(fā)集里的數(shù)據(jù)可能差異很大,所以你可能會(huì)收獲"意外驚喜",并發(fā)現(xiàn),花了那么多個(gè)月的時(shí)間去針對(duì)開(kāi)發(fā)集優(yōu)化,在測(cè)試集上的表現(xiàn)卻不佳。所以,如果你的開(kāi)發(fā)集和測(cè)試集來(lái)自不同的分布,就像你設(shè)了一個(gè)目標(biāo),讓你的團(tuán)隊(duì)花幾個(gè)月嘗試逼近靶心,結(jié)果在幾個(gè)月工作之后發(fā)現(xiàn),你說(shuō)“等等”,測(cè)試的時(shí)候,"我要把目標(biāo)移到這里",然后團(tuán)隊(duì)可能會(huì)說(shuō)"好吧,為什么你讓我們花那么多個(gè)月的時(shí)間去逼近那個(gè)靶心,然后突然間你可以把靶心移到不同的位置?"。

所以,為了避免這種情況,我建議的是你將所有數(shù)據(jù)隨機(jī)洗牌,放入開(kāi)發(fā)集和測(cè)試集,所以開(kāi)發(fā)集和測(cè)試集都有來(lái)自八個(gè)地區(qū)的數(shù)據(jù),并且開(kāi)發(fā)集和測(cè)試集都來(lái)自同一分布,這分布就是你的所有數(shù)據(jù)混在一起。

這里有另一個(gè)例子,這是個(gè)真實(shí)的故事,但有一些細(xì)節(jié)變了。所以我知道有一個(gè)機(jī)器學(xué)習(xí)團(tuán)隊(duì),花了好幾個(gè)月在開(kāi)發(fā)集上優(yōu)化,開(kāi)發(fā)集里面有中等收入郵政編碼的貸款審批數(shù)據(jù)。那么具體的機(jī)器學(xué)習(xí)問(wèn)題是,輸入為貸款申請(qǐng),你是否可以預(yù)測(cè)輸出,是他們有沒(méi)有還貸能力?所以這系統(tǒng)能幫助銀行判斷是否批準(zhǔn)貸款。所以開(kāi)發(fā)集來(lái)自貸款申請(qǐng),這些貸款申請(qǐng)來(lái)自中等收入郵政編碼,zip code就是美國(guó)的郵政編碼。但是在這上面訓(xùn)練了幾個(gè)月之后,團(tuán)隊(duì)突然決定要在,低收入郵政編碼數(shù)據(jù)上測(cè)試一下。當(dāng)然了,這個(gè)分布數(shù)據(jù)里面中等收入和低收入郵政編碼數(shù)據(jù)是很不一樣的,而且他們花了大量時(shí)間針對(duì)前面那組數(shù)據(jù)優(yōu)化分類器,導(dǎo)致系統(tǒng)在后面那組數(shù)據(jù)中效果很差。所以這個(gè)特定團(tuán)隊(duì)實(shí)際上浪費(fèi)了3個(gè)月的時(shí)間,不得不退回去重新做很多工作。

這里實(shí)際發(fā)生的事情是,這個(gè)團(tuán)隊(duì)花了三個(gè)月瞄準(zhǔn)一個(gè)目標(biāo),三個(gè)月之后經(jīng)理突然問(wèn)"你們?cè)囋嚸闇?zhǔn)那個(gè)目標(biāo)如何?",這新目標(biāo)位置完全不同,所以這件事對(duì)于這個(gè)團(tuán)隊(duì)來(lái)說(shuō)非常崩潰。

所以我建議你們?cè)谠O(shè)立開(kāi)發(fā)集和測(cè)試集時(shí),要選擇這樣的開(kāi)發(fā)集和測(cè)試集,能夠反映你未來(lái)會(huì)得到的數(shù)據(jù),認(rèn)為很重要的數(shù)據(jù),必須得到好結(jié)果的數(shù)據(jù),特別是,這里的開(kāi)發(fā)集和測(cè)試集可能來(lái)自同一個(gè)分布。所以不管你未來(lái)會(huì)得到什么樣的數(shù)據(jù),一旦你的算法效果不錯(cuò),要嘗試收集類似的數(shù)據(jù),而且,不管那些數(shù)據(jù)是什么,都要隨機(jī)分配到開(kāi)發(fā)集和測(cè)試集上。因?yàn)檫@樣,你才能將瞄準(zhǔn)想要的目標(biāo),讓你的團(tuán)隊(duì)高效迭代來(lái)逼近同一個(gè)目標(biāo),希望最好是同一個(gè)目標(biāo)。

我們還沒(méi)提到如何設(shè)立訓(xùn)練集,我們會(huì)在之后的視頻里談?wù)勅绾卧O(shè)立訓(xùn)練集,但這個(gè)視頻的重點(diǎn)在于,設(shè)立開(kāi)發(fā)集以及評(píng)估指標(biāo),真的就定義了你要瞄準(zhǔn)的目標(biāo)。我們希望通過(guò)在同一分布中設(shè)立開(kāi)發(fā)集和測(cè)試集,你就可以瞄準(zhǔn)你所希望的機(jī)器學(xué)習(xí)團(tuán)隊(duì)瞄準(zhǔn)的目標(biāo)。而設(shè)立訓(xùn)練集的方式則會(huì)影響你逼近那個(gè)目標(biāo)有多快,但我們可以在另一個(gè)講座里提到。我知道有一些機(jī)器學(xué)習(xí)團(tuán)隊(duì),他們?nèi)绻茏裱@個(gè)方針,就可以省下幾個(gè)月的工作,所以我希望這些方針也能幫到你們。

接下來(lái),實(shí)際上你的開(kāi)發(fā)集和測(cè)試集的規(guī)模,如何選擇它們的大小,在深度學(xué)習(xí)時(shí)代也在變化,我們會(huì)在下一個(gè)視頻里提到這些內(nèi)容。

1.6 開(kāi)發(fā)集和測(cè)試集的大小(Size of dev and test sets)

在上一個(gè)視頻中你們知道了你的開(kāi)發(fā)集和測(cè)試集為什么必須來(lái)自同一分布,但它們規(guī)模應(yīng)該多大?在深度學(xué)習(xí)時(shí)代,設(shè)立開(kāi)發(fā)集和測(cè)試集的方針也在變化,我們來(lái)看看一些最佳做法。

你可能聽(tīng)說(shuō)過(guò)一條經(jīng)驗(yàn)法則,在機(jī)器學(xué)習(xí)中,把你取得的全部數(shù)據(jù)用70/30比例分成訓(xùn)練集和測(cè)試集。或者如果你必須設(shè)立訓(xùn)練集、開(kāi)發(fā)集和測(cè)試集,你會(huì)這么分60%訓(xùn)練集,20%開(kāi)發(fā)集,20%測(cè)試集。在機(jī)器學(xué)習(xí)的早期,這樣分是相當(dāng)合理的,特別是以前的數(shù)據(jù)集大小要小得多。所以如果你總共有100個(gè)樣本,這樣70/30或者60/20/20分的經(jīng)驗(yàn)法則是相當(dāng)合理的。如果你有幾千個(gè)樣本或者有一萬(wàn)個(gè)樣本,這些做法也還是合理的。

但在現(xiàn)代機(jī)器學(xué)習(xí)中,我們更習(xí)慣操作規(guī)模大得多的數(shù)據(jù)集,比如說(shuō)你有1百萬(wàn)個(gè)訓(xùn)練樣本,這樣分可能更合理,98%作為訓(xùn)練集,1%開(kāi)發(fā)集,1%測(cè)試集,我們用和縮寫(xiě)來(lái)表示開(kāi)發(fā)集和測(cè)試集。因?yàn)槿绻阌?百萬(wàn)個(gè)樣本,那么1%就是10,000個(gè)樣本,這對(duì)于開(kāi)發(fā)集和測(cè)試集來(lái)說(shuō)可能已經(jīng)夠了。所以在現(xiàn)代深度學(xué)習(xí)時(shí)代,有時(shí)我們擁有大得多的數(shù)據(jù)集,所以使用小于20%的比例或者小于30%比例的數(shù)據(jù)作為開(kāi)發(fā)集和測(cè)試集也是合理的。而且因?yàn)樯疃葘W(xué)習(xí)算法對(duì)數(shù)據(jù)的胃口很大,我們可以看到那些有海量數(shù)據(jù)集的問(wèn)題,有更高比例的數(shù)據(jù)劃分到訓(xùn)練集里,那么測(cè)試集呢?

要記住,測(cè)試集的目的是完成系統(tǒng)開(kāi)發(fā)之后,測(cè)試集可以幫你評(píng)估投產(chǎn)系統(tǒng)的性能。方針就是,令你的測(cè)試集足夠大,能夠以高置信度評(píng)估系統(tǒng)整體性能。所以除非你需要對(duì)最終投產(chǎn)系統(tǒng)有一個(gè)很精確的指標(biāo),一般來(lái)說(shuō)測(cè)試集不需要上百萬(wàn)個(gè)例子。對(duì)于你的應(yīng)用程序,也許你想,有10,000個(gè)例子就能給你足夠的置信度來(lái)給出性能指標(biāo)了,也許100,000個(gè)之類的可能就夠了,這數(shù)目可能遠(yuǎn)遠(yuǎn)小于比如說(shuō)整體數(shù)據(jù)集的30%,取決于你有多少數(shù)據(jù)。

對(duì)于某些應(yīng)用,你也許不需要對(duì)系統(tǒng)性能有置信度很高的評(píng)估,也許你只需要訓(xùn)練集和開(kāi)發(fā)集。我認(rèn)為,不單獨(dú)分出一個(gè)測(cè)試集也是可以的。事實(shí)上,有時(shí)在實(shí)踐中有些人會(huì)只分成訓(xùn)練集和測(cè)試集,他們實(shí)際上在測(cè)試集上迭代,所以這里沒(méi)有測(cè)試集,他們有的是訓(xùn)練集和開(kāi)發(fā)集,但沒(méi)有測(cè)試集。如果你真的在調(diào)試這個(gè)集,這個(gè)開(kāi)發(fā)集或這個(gè)測(cè)試集,這最好稱為開(kāi)發(fā)集。

不過(guò)在機(jī)器學(xué)習(xí)的歷史里,不是每個(gè)人都把術(shù)語(yǔ)定義分得很清的,有時(shí)人們說(shuō)的開(kāi)發(fā)集,其實(shí)應(yīng)該看作測(cè)試集。但如果你只要有數(shù)據(jù)去訓(xùn)練,有數(shù)據(jù)去調(diào)試就夠了。你打算不管測(cè)試集,直接部署最終系統(tǒng),所以不用太擔(dān)心它的實(shí)際表現(xiàn),我覺(jué)得這也是很好的,就將它們稱為訓(xùn)練集、開(kāi)發(fā)集就好。然后說(shuō)清楚你沒(méi)有測(cè)試集,這是不是有點(diǎn)不正常?我絕對(duì)不建議在搭建系統(tǒng)時(shí)省略測(cè)試集,因?yàn)橛袀€(gè)單獨(dú)的測(cè)試集比較令我安心。因?yàn)槟憧梢允褂眠@組不帶偏差的數(shù)據(jù)來(lái)測(cè)量系統(tǒng)的性能。但如果你的開(kāi)發(fā)集非常大,這樣你就不會(huì)對(duì)開(kāi)發(fā)集過(guò)擬合得太厲害,這種情況,只有訓(xùn)練集和測(cè)試集也不是完全不合理的。不過(guò)我一般不建議這么做。

總結(jié)一下,在大數(shù)據(jù)時(shí)代舊的經(jīng)驗(yàn)規(guī)則,這個(gè)70/30不再適用了。現(xiàn)在流行的是把大量數(shù)據(jù)分到訓(xùn)練集,然后少量數(shù)據(jù)分到開(kāi)發(fā)集和測(cè)試集,特別是當(dāng)你有一個(gè)非常大的數(shù)據(jù)集時(shí)。以前的經(jīng)驗(yàn)法則其實(shí)是為了確保開(kāi)發(fā)集足夠大,能夠達(dá)到它的目的,就是幫你評(píng)估不同的想法,然后選出還是更好。測(cè)試集的目的是評(píng)估你最終的成本偏差,你只需要設(shè)立足夠大的測(cè)試集,可以用來(lái)這么評(píng)估就行了,可能只需要遠(yuǎn)遠(yuǎn)小于總體數(shù)據(jù)量的30%。

所以我希望本視頻能給你們一點(diǎn)指導(dǎo)和建議,讓你們知道如何在深度學(xué)習(xí)時(shí)代設(shè)立開(kāi)發(fā)和測(cè)試集。接下來(lái),有時(shí)候在研究機(jī)器學(xué)習(xí)的問(wèn)題途中,你可能需要更改評(píng)估指標(biāo),或者改動(dòng)你的開(kāi)發(fā)集和測(cè)試集,我們會(huì)講什么時(shí)候需要這樣做。

1.7 什么時(shí)候該改變開(kāi)發(fā)/測(cè)試集和指標(biāo)?(When to change dev/test sets and metrics)

你已經(jīng)學(xué)過(guò)如何設(shè)置開(kāi)發(fā)集和評(píng)估指標(biāo),就像是把目標(biāo)定在某個(gè)位置,讓你的團(tuán)隊(duì)瞄準(zhǔn)。但有時(shí)候在項(xiàng)目進(jìn)行途中,你可能意識(shí)到,目標(biāo)的位置放錯(cuò)了。這種情況下,你應(yīng)該移動(dòng)你的目標(biāo)。

我們來(lái)看一個(gè)例子,假設(shè)你在構(gòu)建一個(gè)貓分類器,試圖找到很多貓的照片,向你的愛(ài)貓人士用戶展示,你決定使用的指標(biāo)是分類錯(cuò)誤率。所以算法和分別有3%錯(cuò)誤率和5%錯(cuò)誤率,所以算法似乎做得更好。

但我們實(shí)際試一下這些算法,你觀察一下這些算法,算法由于某些原因,把很多色情圖像分類成貓了。如果你部署算法,那么用戶就會(huì)看到更多貓圖,因?yàn)樗R(shí)別貓的錯(cuò)誤率只有3%,但它同時(shí)也會(huì)給用戶推送一些色情圖像,這是你的公司完全不能接受的,你的用戶也完全不能接受。相比之下,算法有5%的錯(cuò)誤率,這樣分類器就得到較少的圖像,但它不會(huì)推送色情圖像。所以從你們公司的角度來(lái)看,以及從用戶接受的角度來(lái)看,算法實(shí)際上是一個(gè)更好的算法,因?yàn)樗蛔屓魏紊閳D像通過(guò)。

那么在這個(gè)例子中,發(fā)生的事情就是,算法A在評(píng)估指標(biāo)上做得更好,它的錯(cuò)誤率達(dá)到3%,但實(shí)際上是個(gè)更糟糕的算法。在這種情況下,評(píng)估指標(biāo)加上開(kāi)發(fā)集它們都傾向于選擇算法,因?yàn)樗鼈儠?huì)說(shuō),看算法A的錯(cuò)誤率較低,這是你們自己定下來(lái)的指標(biāo)評(píng)估出來(lái)的。但你和你的用戶更傾向于使用算法,因?yàn)樗粫?huì)將色情圖像分類為貓。所以當(dāng)這種情況發(fā)生時(shí),當(dāng)你的評(píng)估指標(biāo)無(wú)法正確衡量算法之間的優(yōu)劣排序時(shí),在這種情況下,原來(lái)的指標(biāo)錯(cuò)誤地預(yù)測(cè)算法A是更好的算法這就發(fā)出了信號(hào),你應(yīng)該改變?cè)u(píng)估指標(biāo)了,或者要改變開(kāi)發(fā)集或測(cè)試集。在這種情況下,你用的分類錯(cuò)誤率指標(biāo)可以寫(xiě)成這樣:

是你的開(kāi)發(fā)集例子數(shù),用表示預(yù)測(cè)值,其值為0或1,這符號(hào)表示一個(gè)函數(shù),統(tǒng)計(jì)出里面這個(gè)表達(dá)式為真的樣本數(shù),所以這個(gè)公式就統(tǒng)計(jì)了分類錯(cuò)誤的樣本。這個(gè)評(píng)估指標(biāo)的問(wèn)題在于,它對(duì)色情圖片和非色情圖片一視同仁,但你其實(shí)真的希望你的分類器不會(huì)錯(cuò)誤標(biāo)記色情圖像。比如說(shuō)把一張色情圖片分類為貓,然后推送給不知情的用戶,他們看到色情圖片會(huì)非常不滿。

其中一個(gè)修改評(píng)估指標(biāo)的方法是,這里(與之間)加個(gè)權(quán)重項(xiàng),即:

我們將這個(gè)稱為,其中如果圖片不是色情圖片,則。如果是色情圖片,可能就是10甚至100,這樣你賦予了色情圖片更大的權(quán)重,讓算法將色情圖分類為貓圖時(shí),錯(cuò)誤率這個(gè)項(xiàng)快速變大。這個(gè)例子里,你把色情圖片分類成貓這一錯(cuò)誤的懲罰權(quán)重加大10倍。

如果你希望得到歸一化常數(shù),在技術(shù)上,就是對(duì)所有求和,這樣錯(cuò)誤率仍然在0和1之間,即:

加權(quán)的細(xì)節(jié)并不重要,實(shí)際上要使用這種加權(quán),你必須自己過(guò)一遍開(kāi)發(fā)集和測(cè)試集,在開(kāi)發(fā)集和測(cè)試集里,自己把色情圖片標(biāo)記出來(lái),這樣你才能使用這個(gè)加權(quán)函數(shù)。

但粗略的結(jié)論是,如果你的評(píng)估指標(biāo)無(wú)法正確評(píng)估好算法的排名,那么就需要花時(shí)間定義一個(gè)新的評(píng)估指標(biāo)。這是定義評(píng)估指標(biāo)的其中一種可能方式(上述加權(quán)法)。評(píng)估指標(biāo)的意義在于,準(zhǔn)確告訴你已知兩個(gè)分類器,哪一個(gè)更適合你的應(yīng)用。就這個(gè)視頻的內(nèi)容而言,我們不需要太注重新錯(cuò)誤率指標(biāo)是怎么定義的,關(guān)鍵在于,如果你對(duì)舊的錯(cuò)誤率指標(biāo)不滿意,那就不要一直沿用你不滿意的錯(cuò)誤率指標(biāo),而應(yīng)該嘗試定義一個(gè)新的指標(biāo),能夠更加符合你的偏好,定義出實(shí)際更適合的算法。

你可能注意到了,到目前為止我們只討論了如何定義一個(gè)指標(biāo)去評(píng)估分類器,也就是說(shuō),我們定義了一個(gè)評(píng)估指標(biāo)幫助我們更好的把分類器排序,能夠區(qū)分出它們?cè)谧R(shí)別色情圖片的不同水平,這實(shí)際上是一個(gè)正交化的例子。

我想你處理機(jī)器學(xué)習(xí)問(wèn)題時(shí),應(yīng)該把它切分成獨(dú)立的步驟。一步是弄清楚如何定義一個(gè)指標(biāo)來(lái)衡量你想做的事情的表現(xiàn),然后我們可以分開(kāi)考慮如何改善系統(tǒng)在這個(gè)指標(biāo)上的表現(xiàn)。你們要把機(jī)器學(xué)習(xí)任務(wù)看成兩個(gè)獨(dú)立的步驟,用目標(biāo)這個(gè)比喻,第一步就是設(shè)定目標(biāo)。所以要定義你要瞄準(zhǔn)的目標(biāo),這是完全獨(dú)立的一步,這是你可以調(diào)節(jié)的一個(gè)旋鈕。如何設(shè)立目標(biāo)是一個(gè)完全獨(dú)立的問(wèn)題,把它看成是一個(gè)單獨(dú)的旋鈕,可以調(diào)試算法表現(xiàn)的旋鈕,如何精確瞄準(zhǔn),如何命中目標(biāo),定義指標(biāo)是第一步。

然后第二步要做別的事情,在逼近目標(biāo)的時(shí)候,也許你的學(xué)習(xí)算法針對(duì)某個(gè)長(zhǎng)這樣的成本函數(shù)優(yōu)化,,你要最小化訓(xùn)練集上的損失。你可以做的其中一件事是,修改這個(gè),為了引入這些權(quán)重,也許最后需要修改這個(gè)歸一化常數(shù),即:

再次,如何定義并不重要,關(guān)鍵在于正交化的思路,把設(shè)立目標(biāo)定為第一步,然后瞄準(zhǔn)和射擊目標(biāo)是獨(dú)立的第二步。換種說(shuō)法,我鼓勵(lì)你們將定義指標(biāo)看成一步,然后在定義了指標(biāo)之后,你才能想如何優(yōu)化系統(tǒng)來(lái)提高這個(gè)指標(biāo)評(píng)分。比如改變你神經(jīng)網(wǎng)絡(luò)要優(yōu)化的成本函數(shù)。

在繼續(xù)之前,我們?cè)僦v一個(gè)例子。假設(shè)你的兩個(gè)貓分類器和,分別有用開(kāi)發(fā)集評(píng)估得到3%的錯(cuò)誤率和5%的錯(cuò)誤率。或者甚至用在網(wǎng)上下載的圖片構(gòu)成的測(cè)試集上,這些是高質(zhì)量,取景框很專業(yè)的圖像。但也許你在部署算法產(chǎn)品時(shí),你發(fā)現(xiàn)算法看起來(lái)表現(xiàn)更好,即使它在開(kāi)發(fā)集上表現(xiàn)不錯(cuò),你發(fā)現(xiàn)你一直在用從網(wǎng)上下載的高質(zhì)量圖片訓(xùn)練,但當(dāng)你部署到手機(jī)應(yīng)用時(shí),算法作用到用戶上傳的圖片時(shí),那些圖片取景不專業(yè),沒(méi)有把貓完整拍下來(lái),或者貓的表情很古怪,也許圖像很模糊,當(dāng)你實(shí)際測(cè)試算法時(shí),你發(fā)現(xiàn)算法表現(xiàn)其實(shí)更好。

這是另一個(gè)指標(biāo)和開(kāi)發(fā)集測(cè)試集出問(wèn)題的例子,問(wèn)題在于,你做評(píng)估用的是很漂亮的高分辨率的開(kāi)發(fā)集和測(cè)試集,圖片取景很專業(yè)。但你的用戶真正關(guān)心的是,他們上傳的圖片能不能被正確識(shí)別。那些圖片可能是沒(méi)那么專業(yè)的照片,有點(diǎn)模糊,取景很業(yè)余。

所以方針是,如果你在指標(biāo)上表現(xiàn)很好,在當(dāng)前開(kāi)發(fā)集或者開(kāi)發(fā)集和測(cè)試集分布中表現(xiàn)很好,但你的實(shí)際應(yīng)用程序,你真正關(guān)注的地方表現(xiàn)不好,那么就需要修改指標(biāo)或者你的開(kāi)發(fā)測(cè)試集。換句話說(shuō),如果你發(fā)現(xiàn)你的開(kāi)發(fā)測(cè)試集都是這些高質(zhì)量圖像,但在開(kāi)發(fā)測(cè)試集上做的評(píng)估無(wú)法預(yù)測(cè)你的應(yīng)用實(shí)際的表現(xiàn)。因?yàn)槟愕膽?yīng)用處理的是低質(zhì)量圖像,那么就應(yīng)該改變你的開(kāi)發(fā)測(cè)試集,讓你的數(shù)據(jù)更能反映你實(shí)際需要處理好的數(shù)據(jù)。

但總體方針就是,如果你當(dāng)前的指標(biāo)和當(dāng)前用來(lái)評(píng)估的數(shù)據(jù)和你真正關(guān)心必須做好的事情關(guān)系不大,那就應(yīng)該更改你的指標(biāo)或者你的開(kāi)發(fā)測(cè)試集,讓它們能更夠好地反映你的算法需要處理好的數(shù)據(jù)。

有一個(gè)評(píng)估指標(biāo)和開(kāi)發(fā)集讓你可以更快做出決策,判斷算法還是算法更優(yōu),這真的可以加速你和你的團(tuán)隊(duì)迭代的速度。所以我的建議是,即使你無(wú)法定義出一個(gè)很完美的評(píng)估指標(biāo)和開(kāi)發(fā)集,你直接快速設(shè)立出來(lái),然后使用它們來(lái)驅(qū)動(dòng)你們團(tuán)隊(duì)的迭代速度。如果在這之后,你發(fā)現(xiàn)選的不好,你有更好的想法,那么完全可以馬上改。對(duì)于大多數(shù)團(tuán)隊(duì),我建議最好不要在沒(méi)有評(píng)估指標(biāo)和開(kāi)發(fā)集時(shí)跑太久,因?yàn)槟菢涌赡軙?huì)減慢你的團(tuán)隊(duì)迭代和改善算法的速度。本視頻講的是什么時(shí)候需要改變你的評(píng)估指標(biāo)和開(kāi)發(fā)測(cè)試集,我希望這些方針能讓你的整個(gè)團(tuán)隊(duì)設(shè)立一個(gè)明確的目標(biāo),一個(gè)你們可以高效迭代,改善性能的目標(biāo)。

1.8 為什么是人的表現(xiàn)?(Why human-level performance?)

在過(guò)去的幾年里,更多的機(jī)器學(xué)習(xí)團(tuán)隊(duì)一直在討論如何比較機(jī)器學(xué)習(xí)系統(tǒng)和人類的表現(xiàn),為什么呢?

我認(rèn)為有兩個(gè)主要原因,首先是因?yàn)樯疃葘W(xué)習(xí)系統(tǒng)的進(jìn)步,機(jī)器學(xué)習(xí)算法突然變得更好了。在許多機(jī)器學(xué)習(xí)的應(yīng)用領(lǐng)域已經(jīng)開(kāi)始見(jiàn)到算法已經(jīng)可以威脅到人類的表現(xiàn)了。其次,事實(shí)證明,當(dāng)你試圖讓機(jī)器做人類能做的事情時(shí),可以精心設(shè)計(jì)機(jī)器學(xué)習(xí)系統(tǒng)的工作流程,讓工作流程效率更高,所以在這些場(chǎng)合,比較人類和機(jī)器是很自然的,或者你要讓機(jī)器模仿人類的行為。

我們來(lái)看幾個(gè)這樣的例子,我看到很多機(jī)器學(xué)習(xí)任務(wù)中,當(dāng)你在一個(gè)問(wèn)題上付出了很多時(shí)間之后,所以軸是時(shí)間,這可能是很多個(gè)月甚至是很多年。在這些時(shí)間里,一些團(tuán)隊(duì)或一些研究小組正在研究一個(gè)問(wèn)題,當(dāng)你開(kāi)始往人類水平努力時(shí),進(jìn)展是很快的。但是過(guò)了一段時(shí)間,當(dāng)這個(gè)算法表現(xiàn)比人類更好時(shí),那么進(jìn)展和精確度的提升就變得更慢了。也許它還會(huì)越來(lái)越好,但是在超越人類水平之后,它還可以變得更好,但性能增速,準(zhǔn)確度上升的速度這個(gè)斜率,會(huì)變得越來(lái)越平緩,我們都希望能達(dá)到理論最佳性能水平。隨著時(shí)間的推移,當(dāng)您繼續(xù)訓(xùn)練算法時(shí),可能模型越來(lái)越大,數(shù)據(jù)越來(lái)越多,但是性能無(wú)法超過(guò)某個(gè)理論上限,這就是所謂的貝葉斯最優(yōu)錯(cuò)誤率(Bayes optimal error)。所以貝葉斯最優(yōu)錯(cuò)誤率一般認(rèn)為是理論上可能達(dá)到的最優(yōu)錯(cuò)誤率,就是說(shuō)沒(méi)有任何辦法設(shè)計(jì)出一個(gè)到的函數(shù),讓它能夠超過(guò)一定的準(zhǔn)確度。

例如,對(duì)于語(yǔ)音識(shí)別來(lái)說(shuō),如果是音頻片段,有些音頻就是這么嘈雜,基本不可能知道說(shuō)的是什么,所以完美的準(zhǔn)確率可能不是100%。或者對(duì)于貓圖識(shí)別來(lái)說(shuō),也許一些圖像非常模糊,不管是人類還是機(jī)器,都無(wú)法判斷該圖片中是否有貓。所以,完美的準(zhǔn)確度可能不是100%。

而貝葉斯最優(yōu)錯(cuò)誤率有時(shí)寫(xiě)作Bayesian,即省略optimal,就是從到映射的理論最優(yōu)函數(shù),永遠(yuǎn)不會(huì)被超越。所以你們應(yīng)該不會(huì)感到意外,這紫色線,無(wú)論你在一個(gè)問(wèn)題上工作多少年,你永遠(yuǎn)不會(huì)超越貝葉斯錯(cuò)誤率,貝葉斯最佳錯(cuò)誤率。

事實(shí)證明,機(jī)器學(xué)習(xí)的進(jìn)展往往相當(dāng)快,直到你超越人類的表現(xiàn)之前一直很快,當(dāng)你超越人類的表現(xiàn)時(shí),有時(shí)進(jìn)展會(huì)變慢。我認(rèn)為有兩個(gè)原因,為什么當(dāng)你超越人類的表現(xiàn)時(shí),進(jìn)展會(huì)慢下來(lái)。一個(gè)原因是人類水平在很多任務(wù)中離貝葉斯最優(yōu)錯(cuò)誤率已經(jīng)不遠(yuǎn)了,人們非常擅長(zhǎng)看圖像,分辨里面有沒(méi)有貓或者聽(tīng)寫(xiě)音頻。所以,當(dāng)你超越人類的表現(xiàn)之后也許沒(méi)有太多的空間繼續(xù)改善了。但第二個(gè)原因是,只要你的表現(xiàn)比人類的表現(xiàn)更差,那么實(shí)際上可以使用某些工具來(lái)提高性能。一旦你超越了人類的表現(xiàn),這些工具就沒(méi)那么好用了。

我的意思是這樣,對(duì)于人類相當(dāng)擅長(zhǎng)的任務(wù),包括看圖識(shí)別事物,聽(tīng)寫(xiě)音頻,或閱讀語(yǔ)言,人類一般很擅長(zhǎng)處理這些自然數(shù)據(jù)。對(duì)于人類擅長(zhǎng)的任務(wù),只要你的機(jī)器學(xué)習(xí)算法比人類差,你就可以從讓人幫你標(biāo)記數(shù)據(jù),你可以讓人幫忙或者花錢(qián)請(qǐng)人幫你標(biāo)記例子,這樣你就有更多的數(shù)據(jù)可以喂給學(xué)習(xí)算法。下周我們會(huì)討論,人工錯(cuò)誤率分析,但只要人類的表現(xiàn)比任何其他算法都要好,你就可以讓人類看看你算法處理的例子,知道錯(cuò)誤出在哪里,并嘗試了解為什么人能做對(duì),算法做錯(cuò)。下周我們會(huì)看到,這樣做有助于提高算法的性能。你也可以更好地分析偏差和方差,我們稍后會(huì)談一談。但是只要你的算法仍然比人類糟糕,你就有這些重要策略可以改善算法。而一旦你的算法做得比人類好,這三種策略就很難利用了。所以這可能是另一個(gè)和人類表現(xiàn)比較的好處,特別是在人類做得很好的任務(wù)上。

為什么機(jī)器學(xué)習(xí)算法往往很擅長(zhǎng)模仿人類能做的事情,然后趕上甚至超越人類的表現(xiàn)。特別是,即使你知道偏差是多少,方差是多少。知道人類在特定任務(wù)上能做多好可以幫助你更好地了解你應(yīng)該重點(diǎn)嘗試減少偏差,還是減少方差,我想在下一個(gè)視頻中給你一個(gè)例子。

1.9 可避免偏差(Avoidable bias)

我們討論過(guò),你希望你的學(xué)習(xí)算法能在訓(xùn)練集上表現(xiàn)良好,但有時(shí)你實(shí)際上并不想做得太好。你得知道人類水平的表現(xiàn)是怎樣的,可以確切告訴你算法在訓(xùn)練集上的表現(xiàn)到底應(yīng)該有多好,或者有多不好,讓我告訴你是什么意思吧。

我們經(jīng)常使用貓分類器來(lái)做例子,比如人類具有近乎完美的準(zhǔn)確度,所以人類水平的錯(cuò)誤是1%。在這種情況下,如果您的學(xué)習(xí)算法達(dá)到8%的訓(xùn)練錯(cuò)誤率和10%的開(kāi)發(fā)錯(cuò)誤率,那么你也許想在訓(xùn)練集上得到更好的結(jié)果。所以事實(shí)上,你的算法在訓(xùn)練集上的表現(xiàn)和人類水平的表現(xiàn)有很大差距的話,說(shuō)明你的算法對(duì)訓(xùn)練集的擬合并不好。所以從減少偏差和方差的工具這個(gè)角度看,在這種情況下,我會(huì)把重點(diǎn)放在減少偏差上。你需要做的是,比如說(shuō)訓(xùn)練更大的神經(jīng)網(wǎng)絡(luò),或者跑久一點(diǎn)梯度下降,就試試能不能在訓(xùn)練集上做得更好。

但現(xiàn)在我們看看同樣的訓(xùn)練錯(cuò)誤率和開(kāi)發(fā)錯(cuò)誤率,假設(shè)人類的表現(xiàn)不是1%,我們就把它抄寫(xiě)過(guò)來(lái)。但你知道,在不同的應(yīng)用或者說(shuō)用在不同的數(shù)據(jù)集上,假設(shè)人類水平錯(cuò)誤實(shí)際上是7.5%,也許你的數(shù)據(jù)集中的圖像非常模糊,即使人類都無(wú)法判斷這張照片中有沒(méi)有貓。這個(gè)例子可能稍微更復(fù)雜一些,因?yàn)槿祟惼鋵?shí)很擅長(zhǎng)看照片,分辨出照片里有沒(méi)有貓。但就為了舉這個(gè)例子,比如說(shuō)你的數(shù)據(jù)集中的圖像非常模糊,分辨率很低,即使人類錯(cuò)誤率也達(dá)到7.5%。在這種情況下,即使你的訓(xùn)練錯(cuò)誤率和開(kāi)發(fā)錯(cuò)誤率和其他例子里一樣,你就知道,也許你的系統(tǒng)在訓(xùn)練集上的表現(xiàn)還好,它只是比人類的表現(xiàn)差一點(diǎn)點(diǎn)。在第二個(gè)例子中,你可能希望專注減少這個(gè)分量,減少學(xué)習(xí)算法的方差,也許你可以試試正則化,讓你的開(kāi)發(fā)錯(cuò)誤率更接近你的訓(xùn)練錯(cuò)誤率。

所以在之前的課程關(guān)于偏差和方差的討論中,我們主要假設(shè)有一些任務(wù)的貝葉斯錯(cuò)誤率幾乎為0。所以要解釋這里發(fā)生的事情,看看這個(gè)貓分類器,用人類水平的錯(cuò)誤率估計(jì)或代替貝葉斯錯(cuò)誤率或貝葉斯最優(yōu)錯(cuò)誤率,對(duì)于計(jì)算機(jī)視覺(jué)任務(wù)而言,這樣替代相當(dāng)合理,因?yàn)槿祟悓?shí)際上是非常擅長(zhǎng)計(jì)算機(jī)視覺(jué)任務(wù)的,所以人類能做到的水平和貝葉斯錯(cuò)誤率相差不遠(yuǎn)。根據(jù)定義,人類水平錯(cuò)誤率比貝葉斯錯(cuò)誤率高一點(diǎn),因?yàn)樨惾~斯錯(cuò)誤率是理論上限,但人類水平錯(cuò)誤率離貝葉斯錯(cuò)誤率不會(huì)太遠(yuǎn)。所以這里比較意外的是取決于人類水平錯(cuò)誤率有多少,或者這真的就很接近貝葉斯錯(cuò)誤率,所以我們假設(shè)它就是,但取決于我們認(rèn)為什么樣的水平是可以實(shí)現(xiàn)的。

在這兩種情況下,具有同樣的訓(xùn)練錯(cuò)誤率和開(kāi)發(fā)錯(cuò)誤率,我們決定專注于減少偏差的策略或者減少方差的策略。那么左邊的例子發(fā)生了什么? 8%的訓(xùn)練錯(cuò)誤率真的很高,你認(rèn)為你可以把它降到1%,那么減少偏差的手段可能有效。而在右邊的例子中,如果你認(rèn)為貝葉斯錯(cuò)誤率是7.5%,這里我們使用人類水平錯(cuò)誤率來(lái)替代貝葉斯錯(cuò)誤率,但是你認(rèn)為貝葉斯錯(cuò)誤率接近7.5%,你就知道沒(méi)有太多改善的空間了,不能繼續(xù)減少你的訓(xùn)練錯(cuò)誤率了,你也不會(huì)希望它比7.5%好得多,因?yàn)檫@種目標(biāo)只能通過(guò)可能需要提供更進(jìn)一步的訓(xùn)練。而這邊,就還(訓(xùn)練誤差和開(kāi)發(fā)誤差之間)有更多的改進(jìn)空間,可以將這個(gè)2%的差距縮小一點(diǎn),使用減少方差的手段應(yīng)該可行,比如正則化,或者收集更多的訓(xùn)練數(shù)據(jù)。

所以要給這些概念命名一下,這不是廣泛使用的術(shù)語(yǔ),但我覺(jué)得這么說(shuō)思考起來(lái)比較流暢。就是把這個(gè)差值,貝葉斯錯(cuò)誤率或者對(duì)貝葉斯錯(cuò)誤率的估計(jì)和訓(xùn)練錯(cuò)誤率之間的差值稱為可避免偏差,你可能希望一直提高訓(xùn)練集表現(xiàn),直到你接近貝葉斯錯(cuò)誤率,但實(shí)際上你也不希望做到比貝葉斯錯(cuò)誤率更好,這理論上是不可能超過(guò)貝葉斯錯(cuò)誤率的,除非過(guò)擬合。而這個(gè)訓(xùn)練錯(cuò)誤率和開(kāi)發(fā)錯(cuò)誤率之前的差值,就大概說(shuō)明你的算法在方差問(wèn)題上還有多少改善空間。

可避免偏差這個(gè)詞說(shuō)明了有一些別的偏差,或者錯(cuò)誤率有個(gè)無(wú)法超越的最低水平,那就是說(shuō)如果貝葉斯錯(cuò)誤率是7.5%。你實(shí)際上并不想得到低于該級(jí)別的錯(cuò)誤率,所以你不會(huì)說(shuō)你的訓(xùn)練錯(cuò)誤率是8%,然后8%就衡量了例子中的偏差大小。你應(yīng)該說(shuō),可避免偏差可能在0.5%左右,或者0.5%是可避免偏差的指標(biāo)。而這個(gè)2%是方差的指標(biāo),所以要減少這個(gè)2%比減少這個(gè)0.5%空間要大得多。而在左邊的例子中,這7%衡量了可避免偏差大小,而2%衡量了方差大小。所以在左邊這個(gè)例子里,專注減少可避免偏差可能潛力更大。

所以在這個(gè)例子中,當(dāng)你理解人類水平錯(cuò)誤率,理解你對(duì)貝葉斯錯(cuò)誤率的估計(jì),你就可以在不同的場(chǎng)景中專注于不同的策略,使用避免偏差策略還是避免方差策略。在訓(xùn)練時(shí)如何考慮人類水平表現(xiàn)來(lái)決定工作著力點(diǎn),具體怎么做還有更多微妙的細(xì)節(jié),所以在下一個(gè)視頻中,我們會(huì)深入了解人類水平表現(xiàn)的真正意義。

1.10 理解人的表現(xiàn)(Understanding human-level performance)

人類水平表現(xiàn)這個(gè)詞在論文里經(jīng)常隨意使用,但我現(xiàn)在告訴你這個(gè)詞更準(zhǔn)確的定義,特別是使用人類水平表現(xiàn)這個(gè)詞的定義,可以幫助你們推動(dòng)機(jī)器學(xué)習(xí)項(xiàng)目的進(jìn)展。還記得上個(gè)視頻中,我們用過(guò)這個(gè)詞“人類水平錯(cuò)誤率”用來(lái)估計(jì)貝葉斯誤差,那就是理論最低的錯(cuò)誤率,任何函數(shù)不管是現(xiàn)在還是將來(lái),能夠到達(dá)的最低值。我們先記住這點(diǎn),然后看看醫(yī)學(xué)圖像分類例子。

假設(shè)你要觀察這樣的放射科圖像,然后作出分類診斷,假設(shè)一個(gè)普通的人類,未經(jīng)訓(xùn)練的人類,在此任務(wù)上達(dá)到3%的錯(cuò)誤率。普通的醫(yī)生,也許是普通的放射科醫(yī)生,能達(dá)到1%的錯(cuò)誤率。經(jīng)驗(yàn)豐富的醫(yī)生做得更好,錯(cuò)誤率為0.7%。還有一隊(duì)經(jīng)驗(yàn)豐富的醫(yī)生,就是說(shuō)如果你有一個(gè)經(jīng)驗(yàn)豐富的醫(yī)生團(tuán)隊(duì),讓他們都看看這個(gè)圖像,然后討論并辯論,他們達(dá)成共識(shí)的意見(jiàn)達(dá)到0.5%的錯(cuò)誤率。所以我想問(wèn)你的問(wèn)題是,你應(yīng)該如何界定人類水平錯(cuò)誤率?人類水平錯(cuò)誤率3%,1%, 0.7%還是0.5%?

你也可以暫停視頻思考一下,要回答這個(gè)問(wèn)題,我想請(qǐng)你記住,思考人類水平錯(cuò)誤率最有用的方式之一是,把它作為貝葉斯錯(cuò)誤率的替代或估計(jì)。如果你愿意,也可以暫停視頻,思考一下這個(gè)問(wèn)題。

但這里我就直接給出人類水平錯(cuò)誤率的定義,就是如果你想要替代或估計(jì)貝葉斯錯(cuò)誤率,那么一隊(duì)經(jīng)驗(yàn)豐富的醫(yī)生討論和辯論之后,可以達(dá)到0.5%的錯(cuò)誤率。我們知道貝葉斯錯(cuò)誤率小于等于0.5%,因?yàn)橛行┫到y(tǒng),這些醫(yī)生團(tuán)隊(duì)可以達(dá)到0.5%的錯(cuò)誤率。所以根據(jù)定義,最優(yōu)錯(cuò)誤率必須在0.5%以下。我們不知道多少更好,也許有一個(gè)更大的團(tuán)隊(duì),更有經(jīng)驗(yàn)的醫(yī)生能做得更好,所以也許比0.5%好一點(diǎn)。但是我們知道最優(yōu)錯(cuò)誤率不能高于0.5%,那么在這個(gè)背景下,我就可以用0.5%估計(jì)貝葉斯錯(cuò)誤率。所以我將人類水平定義為0.5%,至少如果你希望使用人類水平錯(cuò)誤來(lái)分析偏差和方差的時(shí)候,就像上個(gè)視頻那樣。

現(xiàn)在,為了發(fā)表研究論文或者部署系統(tǒng),也許人類水平錯(cuò)誤率的定義可以不一樣,你可以使用1%,只要你超越了一個(gè)普通醫(yī)生的表現(xiàn),如果能達(dá)到這種水平,那系統(tǒng)已經(jīng)達(dá)到實(shí)用了。也許超過(guò)一名放射科醫(yī)生,一名醫(yī)生的表現(xiàn),意味著系統(tǒng)在一些情況下可以有部署價(jià)值了。

本視頻的要點(diǎn)是,在定義人類水平錯(cuò)誤率時(shí),要弄清楚你的目標(biāo)所在,如果要表明你可以超越單個(gè)人類,那么就有理由在某些場(chǎng)合部署你的系統(tǒng),也許這個(gè)定義是合適的。但是如果您的目標(biāo)是替代貝葉斯錯(cuò)誤率,那么這個(gè)定義(經(jīng)驗(yàn)豐富的醫(yī)生團(tuán)隊(duì)——0.5%)才合適。

要了解為什么這個(gè)很重要,我們來(lái)看一個(gè)錯(cuò)誤率分析的例子。比方說(shuō),在醫(yī)學(xué)圖像診斷例子中,你的訓(xùn)練錯(cuò)誤率是5%,你的開(kāi)發(fā)錯(cuò)誤率是6%。而在上一張幻燈片的例子中,我們的人類水平表現(xiàn),我將它看成是貝葉斯錯(cuò)誤率的替代品,取決于你是否將它定義成普通單個(gè)醫(yī)生的表現(xiàn),還是有經(jīng)驗(yàn)的醫(yī)生或醫(yī)生團(tuán)隊(duì)的表現(xiàn),你可能會(huì)用1%或0.7%或0.5%。同時(shí)也回想一下,前面視頻中的定義,貝葉斯錯(cuò)誤率或者說(shuō)貝葉斯錯(cuò)誤率的估計(jì)和訓(xùn)練錯(cuò)誤率直接的差值就衡量了所謂的可避免偏差,這(訓(xùn)練誤差與開(kāi)發(fā)誤差之間的差值)可以衡量或者估計(jì)你的學(xué)習(xí)算法的方差問(wèn)題有多嚴(yán)重。

所以在這個(gè)第一個(gè)例子中,無(wú)論你做出哪些選擇,可避免偏差大概是4%,這個(gè)值我想介于……,如果你取1%就是4%,如果你取0.5%就是4.5%,而這個(gè)差距(訓(xùn)練誤差與開(kāi)發(fā)誤差之間的差值)是1%。所以在這個(gè)例子中,我得說(shuō),不管你怎么定義人類水平錯(cuò)誤率,使用單個(gè)普通醫(yī)生的錯(cuò)誤率定義,還是單個(gè)經(jīng)驗(yàn)豐富醫(yī)生的錯(cuò)誤率定義或經(jīng)驗(yàn)豐富的醫(yī)生團(tuán)隊(duì)的錯(cuò)誤率定義,這是4%還是4.5%,這明顯比都比方差問(wèn)題更大。所以在這種情況下,你應(yīng)該專注于減少偏差的技術(shù),例如訓(xùn)練更大的網(wǎng)絡(luò)。

現(xiàn)在來(lái)看看第二個(gè)例子,比如說(shuō)你的訓(xùn)練錯(cuò)誤率是1%,開(kāi)發(fā)錯(cuò)誤率是5%,這其實(shí)也不怎么重要,這種問(wèn)題更像學(xué)術(shù)界討論的,人類水平表現(xiàn)是1%或0.7%還是0.5%。因?yàn)椴还苣闶褂媚囊粋€(gè)定義,你測(cè)量可避免偏差的方法是,如果用那個(gè)值,就是0%到0.5%之前,對(duì)吧?那就是人類水平和訓(xùn)練錯(cuò)誤率之前的差距,而這個(gè)差距是4%,所以這個(gè)4%差距比任何一種定義的可避免偏差都大。所以他們就建議,你應(yīng)該主要使用減少方差的工具,比如正則化或者去獲取更大的訓(xùn)練集。

什么時(shí)候真正有效呢?

就是比如你的訓(xùn)練錯(cuò)誤率是0.7%,所以你現(xiàn)在已經(jīng)做得很好了,你的開(kāi)發(fā)錯(cuò)誤率是0.8%。在這種情況下,你用0.5%來(lái)估計(jì)貝葉斯錯(cuò)誤率關(guān)系就很大。因?yàn)樵谶@種情況下,你測(cè)量到的可避免偏差是0.2%,這是你測(cè)量到的方差問(wèn)題0.1%的兩倍,這表明也許偏差和方差都存在問(wèn)題。但是,可避免偏差問(wèn)題更嚴(yán)重。在這個(gè)例子中,我們?cè)谏弦粡埢脽羝杏懻摰氖?.5%,就是對(duì)貝葉斯錯(cuò)誤率的最佳估計(jì),因?yàn)橐蝗喝祟愥t(yī)生可以實(shí)現(xiàn)這一目標(biāo)。如果你用0.7代替貝葉斯錯(cuò)誤率,你測(cè)得的可避免偏差基本上是0%,那你就可能忽略可避免偏差了。實(shí)際上你應(yīng)該試試能不能在訓(xùn)練集上做得更好。

我希望講這個(gè)能讓你們有點(diǎn)概念,知道為什么機(jī)器學(xué)習(xí)問(wèn)題上取得進(jìn)展會(huì)越來(lái)越難,當(dāng)你接近人類水平時(shí)進(jìn)展會(huì)越來(lái)越難。

在這個(gè)例子中,一旦你接近0.7%錯(cuò)誤率,除非你非常小心估計(jì)貝葉斯錯(cuò)誤率,你可能無(wú)法知道離貝葉斯錯(cuò)誤率有多遠(yuǎn),所以你應(yīng)該盡量減少可避免偏差。事實(shí)上,如果你只知道單個(gè)普通醫(yī)生能達(dá)到1%錯(cuò)誤率,這可能很難知道是不是應(yīng)該繼續(xù)去擬合訓(xùn)練集,這種問(wèn)題只會(huì)出現(xiàn)在你的算法已經(jīng)做得很好的時(shí)候,只有你已經(jīng)做到0.7%, 0.8%, 接近人類水平時(shí)會(huì)出現(xiàn)。

而在左邊的兩個(gè)例子中,當(dāng)你遠(yuǎn)離人類水平時(shí),將優(yōu)化目標(biāo)放在偏差或方差上可能更容易一點(diǎn)。這就說(shuō)明了,為什么當(dāng)你們接近人類水平時(shí),更難分辨出問(wèn)題是偏差還是方差。所以機(jī)器學(xué)習(xí)項(xiàng)目的進(jìn)展在你已經(jīng)做得很好的時(shí)候,很難更進(jìn)一步。

總結(jié)一下我們講到的,如果你想理解偏差和方差,那么在人類可以做得很好的任務(wù)中,你可以估計(jì)人類水平的錯(cuò)誤率,你可以使用人類水平錯(cuò)誤率來(lái)估計(jì)貝葉斯錯(cuò)誤率。所以你到貝葉斯錯(cuò)誤率估計(jì)值的差距,告訴你可避免偏差問(wèn)題有多大,可避免偏差問(wèn)題有多嚴(yán)重,而訓(xùn)練錯(cuò)誤率和開(kāi)發(fā)錯(cuò)誤率之間的差值告訴你方差上的問(wèn)題有多大,你的算法是否能夠從訓(xùn)練集泛化推廣到開(kāi)發(fā)集。

今天講的和之前課程中見(jiàn)到的重大區(qū)別是,以前你們比較的是訓(xùn)練錯(cuò)誤率和0%,直接用這個(gè)值估計(jì)偏差。相比之下,在這個(gè)視頻中,我們有一個(gè)更微妙的分析,其中并沒(méi)有假設(shè)你應(yīng)該得到0%錯(cuò)誤率,因?yàn)橛袝r(shí)貝葉斯錯(cuò)誤率是非零的,有時(shí)基本不可能做到比某個(gè)錯(cuò)誤率閾值更低。所以在之前的課程中,我們測(cè)量的是訓(xùn)練錯(cuò)誤率,然后觀察的是訓(xùn)練錯(cuò)誤率比0%高多少,就用這個(gè)差值來(lái)估計(jì)偏差有多大。而事實(shí)證明,對(duì)于貝葉斯錯(cuò)誤率幾乎是0%的問(wèn)題這樣就行了,例如識(shí)別貓,人類表現(xiàn)接近完美,所以貝葉斯錯(cuò)誤率也接近完美。所以當(dāng)貝葉斯錯(cuò)誤率幾乎為零時(shí),可以那么做。但數(shù)據(jù)噪點(diǎn)很多時(shí),比如背景聲音很嘈雜的語(yǔ)言識(shí)別,有時(shí)幾乎不可能聽(tīng)清楚說(shuō)的是什么,并正確記錄下來(lái)。對(duì)于這樣的問(wèn)題,更好的估計(jì)貝葉斯錯(cuò)誤率很有必要,可以幫助你更好地估計(jì)可避免偏差和方差,這樣你就能更好的做出決策,選擇減少偏差的策略,還是減少方差的策略。

回顧一下,對(duì)人類水平有大概的估計(jì)可以讓你做出對(duì)貝葉斯錯(cuò)誤率的估計(jì),這樣可以讓你更快地作出決定是否應(yīng)該專注于減少算法的偏差,或者減少算法的方差。這個(gè)決策技巧通常很有效,直到你的系統(tǒng)性能開(kāi)始超越人類,那么你對(duì)貝葉斯錯(cuò)誤率的估計(jì)就不再準(zhǔn)確了,但這些技巧還是可以幫你做出明確的決定。

現(xiàn)在,深度學(xué)習(xí)的令人興奮的發(fā)展之一就是對(duì)于越來(lái)越多的任務(wù),我們的系統(tǒng)實(shí)際上可以超越人類了。在下一個(gè)視頻中,讓我們繼續(xù)談?wù)劤饺祟愃降倪^(guò)程。

1.11 超過(guò)人的表現(xiàn)(Surpassing human- level performance)

很多團(tuán)隊(duì)會(huì)因?yàn)闄C(jī)器在特定的識(shí)別分類任務(wù)中超越了人類水平而激動(dòng)不已,我們談?wù)勥@些情況,看看你們自己能不能達(dá)到。

我們討論過(guò)機(jī)器學(xué)習(xí)進(jìn)展,會(huì)在接近或者超越人類水平的時(shí)候變得越來(lái)越慢。我們舉例談?wù)劄槭裁磿?huì)這樣。

假設(shè)你有一個(gè)問(wèn)題,一組人類專家充分討論辯論之后,達(dá)到0.5%的錯(cuò)誤率,單個(gè)人類專家錯(cuò)誤率是1%,然后你訓(xùn)練出來(lái)的算法有0.6%的訓(xùn)練錯(cuò)誤率,0.8%的開(kāi)發(fā)錯(cuò)誤率。所以在這種情況下,可避免偏差是多少?這個(gè)比較容易回答,0.5%是你對(duì)貝葉斯錯(cuò)誤率的估計(jì),所以可避免偏差就是0.1%。你不會(huì)用這個(gè)1%的數(shù)字作為參考,你用的是這個(gè)差值,所以也許你對(duì)可避免偏差的估計(jì)是至少0.1%,然后方差是0.2%。和減少可避免偏差比較起來(lái),減少方差可能空間更大。

但現(xiàn)在我們來(lái)看一個(gè)比較難的例子,一個(gè)人類專家團(tuán)和單個(gè)人類專家的表現(xiàn)和以前一樣,但你的算法可以得到0.3%訓(xùn)練錯(cuò)誤率,還有0.4%開(kāi)發(fā)錯(cuò)誤率。現(xiàn)在,可避免偏差是什么呢?現(xiàn)在其實(shí)很難回答,事實(shí)上你的訓(xùn)練錯(cuò)誤率是0.3%,這是否意味著你過(guò)擬合了0.2%,或者說(shuō)貝葉斯錯(cuò)誤率其實(shí)是0.1%呢?或者也許貝葉斯錯(cuò)誤率是0.2%?或者貝葉斯錯(cuò)誤率是0.3%呢?你真的不知道。但是基于本例中給出的信息,你實(shí)際上沒(méi)有足夠的信息來(lái)判斷優(yōu)化你的算法時(shí)應(yīng)該專注減少偏差還是減少方差,這樣你取得進(jìn)展的效率就會(huì)降低。還有比如說(shuō),如果你的錯(cuò)誤率已經(jīng)比一群充分討論辯論后的人類專家更低,那么依靠人類直覺(jué)去判斷你的算法還能往什么方向優(yōu)化就很難了。所以在這個(gè)例子中,一旦你超過(guò)這個(gè)0.5%的門(mén)檻,要進(jìn)一步優(yōu)化你的機(jī)器學(xué)習(xí)問(wèn)題就沒(méi)有明確的選項(xiàng)和前進(jìn)的方向了。這并不意味著你不能取得進(jìn)展,你仍然可以取得重大進(jìn)展。但現(xiàn)有的一些工具幫助你指明方向的工具就沒(méi)那么好用了。

現(xiàn)在,機(jī)器學(xué)習(xí)有很多問(wèn)題已經(jīng)可以大大超越人類水平了。例如,我想網(wǎng)絡(luò)廣告,估計(jì)某個(gè)用戶點(diǎn)擊廣告的可能性,可能學(xué)習(xí)算法做到的水平已經(jīng)超越任何人類了。還有提出產(chǎn)品建議,向你推薦電影或書(shū)籍之類的任務(wù)。我想今天的網(wǎng)站做到的水平已經(jīng)超越你最親近的朋友了。還有物流預(yù)測(cè),從到開(kāi)車需要多久,或者預(yù)測(cè)快遞車從開(kāi)到需要多少時(shí)間。或者預(yù)測(cè)某人會(huì)不會(huì)償還貸款,這樣你就能判斷是否批準(zhǔn)這人的貸款。我想這些問(wèn)題都是今天的機(jī)器學(xué)習(xí)遠(yuǎn)遠(yuǎn)超過(guò)了單個(gè)人類的表現(xiàn)。

請(qǐng)注意這四個(gè)例子,所有這四個(gè)例子都是從結(jié)構(gòu)化數(shù)據(jù)中學(xué)習(xí)得來(lái)的,這里你可能有個(gè)數(shù)據(jù)庫(kù)記錄用戶點(diǎn)擊的歷史,你的購(gòu)物歷史數(shù)據(jù)庫(kù),或者從A到B需要多長(zhǎng)時(shí)間的數(shù)據(jù)庫(kù),以前的貸款申請(qǐng)及結(jié)果的數(shù)據(jù)庫(kù),這些并不是自然感知問(wèn)題,這些不是計(jì)算機(jī)視覺(jué)問(wèn)題,或語(yǔ)音識(shí)別,或自然語(yǔ)言處理任務(wù)。人類在自然感知任務(wù)中往往表現(xiàn)非常好,所以有可能對(duì)計(jì)算機(jī)來(lái)說(shuō)在自然感知任務(wù)的表現(xiàn)要超越人類要更難一些。

最后,這些問(wèn)題中,機(jī)器學(xué)習(xí)團(tuán)隊(duì)都可以訪問(wèn)大量數(shù)據(jù),所以比如說(shuō),那四個(gè)應(yīng)用中,最好的系統(tǒng)看到的數(shù)據(jù)量可能比任何人類能看到的都多,所以這樣就相對(duì)容易得到超越人類水平的系統(tǒng)。現(xiàn)在計(jì)算機(jī)可以檢索那么多數(shù)據(jù),它可以比人類更敏銳地識(shí)別出數(shù)據(jù)中的統(tǒng)計(jì)規(guī)律。

除了這些問(wèn)題,今天已經(jīng)有語(yǔ)音識(shí)別系統(tǒng)超越人類水平了,還有一些計(jì)算機(jī)視覺(jué)任務(wù),一些圖像識(shí)別任務(wù),計(jì)算機(jī)已經(jīng)超越了人類水平。但是由于人類對(duì)這種自然感知任務(wù)非常擅長(zhǎng),我想計(jì)算機(jī)達(dá)到那種水平要難得多。還有一些醫(yī)療方面的任務(wù),比如閱讀ECG或診斷皮膚癌,或者某些特定領(lǐng)域的放射科讀圖任務(wù),這些任務(wù)計(jì)算機(jī)做得非常好了,也許超越了單個(gè)人類的水平。

在深度學(xué)習(xí)的最新進(jìn)展中,其中一個(gè)振奮人心的方面是,即使在自然感知任務(wù)中,在某些情況下,計(jì)算機(jī)已經(jīng)可以超越人類的水平了。不過(guò)現(xiàn)在肯定更加困難,因?yàn)槿祟愐话愫苌瞄L(zhǎng)這種自然感知任務(wù)。

所以要達(dá)到超越人類的表現(xiàn)往往不容易,但如果有足夠多的數(shù)據(jù),已經(jīng)有很多深度學(xué)習(xí)系統(tǒng),在單一監(jiān)督學(xué)習(xí)問(wèn)題上已經(jīng)超越了人類的水平,所以這對(duì)你在開(kāi)發(fā)的應(yīng)用是有意義的。我希望有一天你也能夠搭建出超越人類水平的深度學(xué)習(xí)系統(tǒng)。

1.12 改善你的模型的表現(xiàn)(Improving your model performance)

你們學(xué)過(guò)正交化,如何設(shè)立開(kāi)發(fā)集和測(cè)試集,用人類水平錯(cuò)誤率來(lái)估計(jì)貝葉斯錯(cuò)誤率以及如何估計(jì)可避免偏差和方差。我們現(xiàn)在把它們?nèi)拷M合起來(lái)寫(xiě)成一套指導(dǎo)方針,如何提高學(xué)習(xí)算法性能的指導(dǎo)方針。

所以我想要讓一個(gè)監(jiān)督學(xué)習(xí)算法達(dá)到實(shí)用,基本上希望或者假設(shè)你可以完成兩件事情。首先,你的算法對(duì)訓(xùn)練集的擬合很好,這可以看成是你能做到可避免偏差很低。還有第二件事你可以做好的是,在訓(xùn)練集中做得很好,然后推廣到開(kāi)發(fā)集和測(cè)試集也很好,這就是說(shuō)方差不是太大。

在正交化的精神下,你可以看到這里有第二組旋鈕,可以修正可避免偏差問(wèn)題,比如訓(xùn)練更大的網(wǎng)絡(luò)或者訓(xùn)練更久。還有一套獨(dú)立的技巧可以用來(lái)處理方差問(wèn)題,比如正則化或者收集更多訓(xùn)練數(shù)據(jù)。

總結(jié)一下前幾段視頻我們見(jiàn)到的步驟,如果你想提升機(jī)器學(xué)習(xí)系統(tǒng)的性能,我建議你們看看訓(xùn)練錯(cuò)誤率和貝葉斯錯(cuò)誤率估計(jì)值之間的距離,讓你知道可避免偏差有多大。換句話說(shuō),就是你覺(jué)得還能做多好,你對(duì)訓(xùn)練集的優(yōu)化還有多少空間。然后看看你的開(kāi)發(fā)錯(cuò)誤率和訓(xùn)練錯(cuò)誤率之間的距離,就知道你的方差問(wèn)題有多大。換句話說(shuō),你應(yīng)該做多少努力讓你的算法表現(xiàn)能夠從訓(xùn)練集推廣到開(kāi)發(fā)集,算法是沒(méi)有在開(kāi)發(fā)集上訓(xùn)練的。

如果你想用盡一切辦法減少可避免偏差,我建議試試這樣的策略:比如使用規(guī)模更大的模型,這樣算法在訓(xùn)練集上的表現(xiàn)會(huì)更好,或者訓(xùn)練更久。使用更好的優(yōu)化算法,比如說(shuō)加入momentum或者RMSprop,或者使用更好的算法,比如Adam。你還可以試試尋找更好的新神經(jīng)網(wǎng)絡(luò)架構(gòu),或者說(shuō)更好的超參數(shù)。這些手段包羅萬(wàn)有,你可以改變激活函數(shù),改變層數(shù)或者隱藏單位數(shù),雖然你這么做可能會(huì)讓模型規(guī)模變大。或者試用其他模型,其他架構(gòu),如循環(huán)神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)。在之后的課程里我們會(huì)詳細(xì)介紹的,新的神經(jīng)網(wǎng)絡(luò)架構(gòu)能否更好地?cái)M合你的訓(xùn)練集,有時(shí)也很難預(yù)先判斷,但有時(shí)換架構(gòu)可能會(huì)得到好得多的結(jié)果。

另外當(dāng)你發(fā)現(xiàn)方差是個(gè)問(wèn)題時(shí),你可以試用很多技巧,包括以下這些:你可以收集更多數(shù)據(jù),因?yàn)槭占鄶?shù)據(jù)去訓(xùn)練可以幫你更好地推廣到系統(tǒng)看不到的開(kāi)發(fā)集數(shù)據(jù)。你可以嘗試正則化,包括正則化,dropout正則化或者我們?cè)谥罢n程中提到的數(shù)據(jù)增強(qiáng)。同時(shí)你也可以試用不同的神經(jīng)網(wǎng)絡(luò)架構(gòu),超參數(shù)搜索,看看能不能幫助你,找到一個(gè)更適合你的問(wèn)題的神經(jīng)網(wǎng)絡(luò)架構(gòu)。

我想這些偏差、可避免偏差和方差的概念是容易上手,難以精通的。如果你能系統(tǒng)全面地應(yīng)用本周課程里的概念,你實(shí)際上會(huì)比很多現(xiàn)有的機(jī)器學(xué)習(xí)團(tuán)隊(duì)更有效率、更系統(tǒng)、更有策略地系統(tǒng)提高機(jī)器學(xué)習(xí)系統(tǒng)的性能。

參考資料

[1]

深度學(xué)習(xí)課程:?https://mooc.study.163.com/university/deeplearning_ai

[2]

黃海廣:?https://github.com/fengdu78

[3]

github:?https://github.com/fengdu78/deeplearning_ai_books

總結(jié)

以上是生活随笔為你收集整理的深度学习笔记第三门课 结构化机器学习项目 第一周 机器学习(ML)策略(1)...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。