久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

淺談讀物《機器學習》| 第二章 模型評論與選擇...

 昵稱16619343 2017-06-14

南京大學周志華教授所著的入門教材《機器學習》,,俗稱“西瓜書”,,已經(jīng)成為人工智能領(lǐng)域的入門必讀物,。?該書第一版于2016年1月1日正式發(fā)行,內(nèi)容上基本涵蓋了機器學習基礎(chǔ)知識的各個方面,。根據(jù)亞馬遜的統(tǒng)計數(shù)據(jù),,新書上市僅僅三個月銷量便突破3萬冊,是人工智能領(lǐng)域絕對的暢銷書,。

此書對我了解人工智能的基礎(chǔ)知識提供了很大的幫助,,學習的過程中也有一些心得和體會,之前就書中的緒論分享了一些經(jīng)驗(閱讀鏈接),,現(xiàn)就文中的的第二章(模型評估與選擇)提出自己的看法和理解,,后續(xù)還會繼續(xù)推送其他章節(jié)的總結(jié)帖。

1. 章節(jié)主要內(nèi)容(遇到不清楚的概念請在第二節(jié)基礎(chǔ)知識中找尋解釋)

在第一章緒論中,,我們知道要根據(jù)具體的問題選擇具體的算法和歸納偏好,。那么我們怎么判定我們的選擇是正確的呢?這就需要擁有一套規(guī)范的模型評估與選擇方法論了,。

1)首先,,我們要理解機器學習為什么需要一套模型評估與選擇方法論?(經(jīng)驗誤差與過擬合)

在前一章的學習中,,我們知道機器學習是對數(shù)據(jù)集的泛化過程,,即從輸入的數(shù)據(jù)中歸納出一套能適用于所有潛在樣本的“普遍規(guī)律”??梢驗橛柧殧?shù)據(jù)不夠充分,,機器學習出來的模型并沒辦法涵蓋所有的情況,這就會導致學習器的實際預測輸出與樣本的真實輸出之間存在“誤差”,。

學習器在訓練集上的誤差稱為“經(jīng)驗誤差”,,在新樣本上的誤差稱為“泛化誤差”。很明顯,,要使得分類器盡可能的有用,,我們應該要讓泛化誤差僅可能的小??上г诂F(xiàn)實環(huán)境中,,我們很難知道新樣本是什么樣的,所以我們實際能做的只有努力使經(jīng)驗誤差最小化,。

說到這里,,也許有的心急的同學已經(jīng)迫不及待的去將算法設(shè)計的盡可能百分百的滿足所有訓練樣本了,可卻忘了學習器真正要達到的是泛化誤差盡可能小,,而不是目前的折中方案降低經(jīng)驗誤差,。而在降低經(jīng)驗誤差的道路上,駐守著機器學習領(lǐng)域最大的攔路虎之一:“過擬合”

“過擬合”是指學習器對訓練樣本學的太好了,,導致泛化程度不夠(還記得機器學習就是一個泛化過程嗎),,沒法適應新的數(shù)據(jù)樣本,。與之相反的還有一個“欠擬合”的概念,就是對訓練樣本中的一般規(guī)律都沒學習好,。舉個例子,,你通過姚明這個訓練樣本來學習一個人類判斷器,如果你將身高兩米二十以上作為判斷是否是人的依據(jù),,那就是過擬合了,;而如果你沒有“直立行走”這樣的特征都沒有找出來作為判斷是否是人的標準,那就是欠擬合了,。

上邊例子是我自己想的,,下邊貼出書中一個更容易理解的例子來幫助大家理解吧:

所以,我們知道了吧,,我們?yōu)槭裁葱枰惶啄P驮u估與選擇的方法論呢,?因為我們的訓練數(shù)據(jù)沒法真正代表真實的樣本空間,而泛化誤差無法直接獲得,,經(jīng)驗誤差又因為過擬合的存在而不適合作為標準,,所以我們才需要一套模型評估與選擇的方法論

2)我們知道了為什么要對模型進行評估,那么在不知道泛化誤差的情況下,,我們該如何進行評估呢,?

一個合理的思路是:既然我們沒法拿到新樣本來進行泛化誤差計算,那么我們可以從訓練樣本中取出一部分來,,假裝它是一組新樣本,,并用這些樣本計算出來的誤差作為泛化誤差的近似,。這組選出來的樣本被稱為“測試集”,,測試集上的誤差被稱為測試誤差。(我們學習本書的一個主要目的是學會機器學習領(lǐng)域的脈絡和背后邏輯,,這種評估思路是科學研究領(lǐng)域的一個常用思路,。領(lǐng)悟這種思路有助于我們解決其它領(lǐng)域上的問題)

不過我們需要注意一點,那就是測試集應該盡量不與訓練集重合,,否則測試集計算出的誤差將沒法準確代表該學習器的泛化能力,。

基于這個考慮,書中列出了以下幾種把包含m個樣例的數(shù)據(jù)集D劃分為訓練集S和測試集T的辦法(只介紹中心思想,,具體內(nèi)容請查看書中原文)

1]留出法(hold-out

直接將D劃分為互斥的兩部分S和T,,在S上訓練出模型后,用T來評估測試誤差

2]交叉驗證法(cross validation

將D劃分為互斥的k個子集,,每次訓練用其中(k-1)個數(shù)據(jù),,用剩下的一個作為測試集。這樣就能獲得k組訓練/測試集,,對這k組分別進行訓練和測試,,最終返回k個測試結(jié)果的均值

3]自助法(bootstrapping

每次從D中隨機復制一個樣本到D1中,,重復m次,會得到一個擁有m個數(shù)據(jù)樣本的D1數(shù)據(jù)集,。顯然,,D中的一部分數(shù)據(jù)會多次出現(xiàn)在D1中,而另一部分樣本不出現(xiàn),。根據(jù)平均分布概率計算,,大約有36.8%的數(shù)據(jù)不會被復制到D1中

4]注意點

· 訓練/測試集的劃分要盡可能保持數(shù)據(jù)分布一致性

· 單詞劃分往往不夠穩(wěn)定可靠,一般要采用若干次隨機劃分,、重復進行實驗評估后取平均值作為評估結(jié)果

· 訓練/測試集的劃分比例沒有完美答案,,訓練樣本多會使得模型更接近D,測試樣本多會使得評估結(jié)果更可靠,,這其中的取舍因人/場景而異,。常見的訓練/測試劃分比例是2:1~4:1

5]調(diào)參

不同的參數(shù)其實就代表著不同的模型了。一般參數(shù)分兩種:一類是算法的參數(shù),,亦稱“超參數(shù)”,,如聚類要分的簇數(shù)量k;一類是模型的參數(shù),,如神經(jīng)網(wǎng)絡中每個節(jié)點的權(quán)重,。前者多為人工選擇一組候選,后者是讓機器自己學習,。

調(diào)參是機器學習的重點,,也是決定模型性能的關(guān)鍵。一般調(diào)參過程中,,會將訓練數(shù)據(jù)再次劃分為訓練集和驗證集(validation set),。具體包含關(guān)系如下:

(數(shù)據(jù)集 (訓練數(shù)據(jù)(訓練集)(驗證集)) (測試集))

6]適用性

· 自助法在數(shù)據(jù)集較小、難以有效劃分訓練/測試集時很有用

· 自助法產(chǎn)生的數(shù)據(jù)集改變了初始數(shù)據(jù)集的分布,,這會引入估計偏差,。因此,在初始數(shù)據(jù)量足夠時,,留出法和交叉驗證法更常用一些

3)在上一節(jié)了解了什么是有效可行實驗評估方法,,接下來我們需要了解一下具體的衡量模型泛化能力的評價標準,即性能度量(performance measure)

性能度量反映了任務需求,,使用不同的性能度量會導致對模型的評判結(jié)果不同,。這意味著模型的“好壞”是相對的,什么樣的模型是好的,,不僅取決于算法和數(shù)據(jù),,還決定于任務需求。

回歸任務中最常用的性能度量是“均方誤差”,即用模型的輸出與實際輸出計算輸出結(jié)果的方差,。本章節(jié)介紹了多種性能度量,,請大伙在下邊基礎(chǔ)知識章節(jié)中查看具體含義,,在這里我只總結(jié)描述這些指標的具體使用(因為書本中的公式介紹比較清楚,,我在這里只記錄每種度量的意思,詳細公式請小伙伴們?nèi)局胁榭矗?/p>

本章節(jié)介紹了很多性能度量指標,,我這里選擇其中的查準率、查全率進行重點介紹,,以供小伙伴們對性能度量有著更清晰的認識:

從上可知查準率和查全率是一對矛盾的度量,,一般情況下當一方增高時,,另一方會下降,,而決定這組度量升高下降的因素是學習器的分類閥值,。舉個例子大家就能理解:

假設(shè)有10個西瓜,,6個好瓜,,4個壞瓜。我們將這十個瓜按照預測結(jié)果排序,,最可能是好瓜的排在前頭,最不可能的排在最后,,然后控制學習器的分類閥值來依次逐個把樣本作為好瓜來進行預測,,則可以計算出不同的閥值時的P和R如下表所示:

由上邊例子可以看到,,P和R的值也基本滿足了一方升高,另一方下降的狀況,,通常只有在一些簡單的任務(比如我舉的這個)中,,才可能使查全率和查準率都很高,。以查準率為縱軸、查全率為橫軸作圖,,就得到了查準率-查全率曲線,,簡稱“P-R曲線”。

在進行比較時,若一個學習器的P-R曲線被另一個學習器的曲線完全“包住”,,則可斷言后者的性能優(yōu)于前者,。當曲線有相交時,,很難斷言兩者的優(yōu)劣,。真要判別時,“平衡點”(Break-Even Point)是一個不錯的度量方法。下圖是一個具體的示意圖:

查準率顧名思義更關(guān)注的是預測的準確性(預測正確的比例),、查全率更關(guān)注的是預測的全面性(預測正確的個數(shù)),。

4)有了實驗評估方法和性能度量,剩下的就是要好好研究研究如何應用方法和度量指標去對學習器的性能進行評估比較了

研究怎么來做“比較”是很有必要的,因為第一,我們要的是泛化性能,,但是能用的只是測試性能;第二,,測試性能和測試集的選擇有很大關(guān)系,;第三,有的機器學習算法本身也有隨機性,,對同一測試集的多次測試結(jié)果也會不同,。

為了解決這些問題,統(tǒng)計假設(shè)檢驗(hypothesis test)為我們提供了重要的依據(jù),。

假設(shè)檢驗中的“假設(shè)”是對學習器泛化錯誤率分布的某種猜想或判斷,,然后通過假設(shè)的驗證結(jié)果來對不同的學習器或模型的性能進行判斷。比如假設(shè)“學習器A和B性能相同”,,當該假設(shè)被拒絕時,,說明學習器A和B具有顯著差異,這時候錯誤率較低的學習器性能較優(yōu),。

假設(shè)檢驗的具體邏輯和使用方法是這樣的(這里只總結(jié)計算邏輯,,詳細的概念,、公式等請查看專業(yè)書籍):

[1]設(shè)定一個假設(shè),比如“一個機器學習真正的泛化錯誤率不大于0.3”

[2]設(shè)定一個置信概率“顯著度a”,,a的一般取值為0.05,、0.1;a代表的意思是當我們的假設(shè)成立的概率在(1-a,,1]的范圍內(nèi)時,,我們認為是成立的。

[3]計算使假設(shè)在置信范圍內(nèi)成立的最大值是多少,,比如根據(jù)上邊[1]中的假設(shè),,要使泛化錯誤率不大于0.3成立,即泛化錯誤率小于0.3的概率大于(1-a),。要計算這個,,我們要算出要使錯誤率大于0.3的概率之和小于a時的最大泛化錯誤率是多少。

[4]比較計算出的滿足假設(shè)的最大值和我們實際計算出的值,,如果我們實際計算出來的錯誤率已經(jīng)大于最大可能的錯誤率了,,說明假設(shè)不成立。

[5]在這里的假設(shè)中,,假設(shè)不成立說明我們的學習器錯誤率要大于0.3啊,,這是個很爛的學習器,我們還需要繼續(xù)調(diào)優(yōu),。

在實際實驗時,,我們會多次使用留出法或交叉驗證法進行多次訓練/測試,那么我們實際上會得到多個測試錯誤率(這里假設(shè)為k個),。我們可以通過求這些錯誤率的平均和方差來將假設(shè)檢驗轉(zhuǎn)換為自由度為k-1的 t 分布,。通過查詢 t 檢驗常用臨界表可以很方便的計算出假設(shè)是否成立。

書中提到的交叉驗證 t 檢驗,、Friedman檢驗與Nemenyi后續(xù)檢驗都是基于一樣的假設(shè)檢驗流程的稍微變化,。其中交叉驗證 t 檢驗是針對兩種學習器之間性能的比較,F(xiàn)riedman檢驗與Nemenyi后續(xù)檢驗是針對多個學習器之間性能的比較,。在這里就不一一介紹了,。

5)對學習算法除了通過實驗估計其泛化性能,我們還需要理解“為什么”具有這樣的性能,,“偏差與方差分解”(bias-variance decomposition)是解釋學習算法泛化性能的一種重要工具

省略具體的算法和公式推導過程,,偏差與方差分解是對學習算法的期望泛化錯誤率的分解,分解結(jié)果是下邊這個重要的公式

也就是說,,泛化誤差可分解為偏差,、方差與噪聲之和。

其中,,偏差度量了學習算法的期望預測與真實結(jié)果的偏離程度,,即刻畫了學習算法的擬合能力,;方差度量了同樣大小的訓練集的變動所導致的學習性能的變化,即刻畫了數(shù)據(jù)擾動所帶來的影響,;噪聲則表達了在當前任務上任何學習算法所能達到的期望泛化誤差的下界,,即刻畫了學習問題本身的難度,。

偏差-方差分解說明,,泛化性能是由學習算法的能力、數(shù)據(jù)的充分性以及學習任務本身的難度所共同決定的,。

一般來說,,偏差與方差是有沖突的。要使偏差小則需要算法對數(shù)據(jù)充分擬合,,這就有可能會導致過擬合,,這樣對新樣本的適應性差,就會導致方差變高,。反之亦然,,擬合過低,偏差較大,,但是方差會相對較低,。

2. 基本知識

1)概念

· 錯誤率(error rate):m個樣本中a個錯誤,則錯誤率為 E = a/m

· 精度(accuracy):精度=1 - a/m

· 誤差(error):實際預測輸出與樣本的真實輸出之間的差異,。在訓練集上的誤差稱為訓練誤差(training error)或 經(jīng)驗誤差(empirical error),,在新樣本上的誤差稱為“泛化誤差”(generalization error)

· 過擬合(overfitting):學習器把訓練樣本學得太好了,把訓練樣本中的特殊特征當作了普遍規(guī)律,,導致泛化性能下降

· 欠擬合(underfitting):與過擬合相反,,對訓練樣本中的一般規(guī)律都沒有學好

· 測試集(testing set):訓練樣本中提取出來的作為測試學習器對新樣本判別能力的一部分數(shù)據(jù)。測試集數(shù)據(jù)應該盡可能與訓練樣本不同

· 測試誤差(testing error):在測試集上的誤差

2)性能度量指標概念

1]錯誤率與精度

分類任務中最常用的兩種性能度量,,其中錯誤率是分類錯誤的樣本數(shù)占樣本總數(shù)的比例,。精度是分類正確的樣本數(shù)占樣本總數(shù)的比例。

2]查準率,、查全率與F1

查準率(precision):被模型預測為正的樣本中,,真正為正的樣本比例(被預測為好瓜的西瓜中,真的是好瓜的西瓜比例)

查全率(recall):在所有正的樣本上,,被學習器預測為正的樣本比例(在所有好瓜中,,被學習器正確識別的好瓜比例)

F1:(2x查準率x查全率)/(查準率+查全率)。 F1是基于查準率和查全率的調(diào)和平均,。

(查準率和查全率的概念不難理解,,但是意思比較相近,看過一段時間之后老是會弄混,。在讀論文時,,很多時候是用precision和recall來進行性能度量,,所以將熟記這兩個指標還是十分必要的)

“平衡點”(Break-Even Point):“查準率=查全率”時的取值。

3ROCAUC

ROC:“受試者工作特征”(receiver operating characteristic)曲線,,與P-R 曲線類似,,只不過取用“真正利率”(TPR )作為縱軸,“假正例率”(FPR)作為橫軸

4]代價敏感錯誤率與代價曲線

代價敏感錯誤率代表數(shù)據(jù)的平均總體代價,;代價曲線詳情見書本

3)假設(shè)檢驗

基于假設(shè)檢驗結(jié)果我們可推斷出,,若在測試集上觀察到學習器A比B好,則A的泛化性能是否在統(tǒng)計意義上優(yōu)于B,,以及這個結(jié)論的把握有多大,。

4)偏差與方差

偏差-方差分解是對學習算法的期望泛化錯誤率進行的分解。泛化誤差可分解為偏差,、方差與噪聲之和,。

其中,偏差度量了學習算法的期望預測與真實結(jié)果的偏離程度,,即刻畫了學習算法的擬合能力,;方差度量了同樣大小的訓練集的變動所導致的學習性能的變化,即刻畫了數(shù)據(jù)擾動所帶來的影響,;噪聲則表達了在當前任務上任何學習算法所能達到的期望泛化誤差的下界,,即刻畫了學習問題本身的難度。

3. 總結(jié)

· 泛化誤差無法獲得,,經(jīng)驗誤差因為過擬合的存在而不適合作為標準,,導致我們需要專門的模型評估方法來測量學習器的效果

· 專門的模型評估方法是通過從數(shù)據(jù)集中選取一部分數(shù)據(jù)作為測試集來對訓練出的模型進行驗證,以測試誤差來近似泛化誤差實現(xiàn)的

· 測試誤差體現(xiàn)在具體的性能度量指標上,,我們要根據(jù)具體情況選擇對應的指標

· 假設(shè)檢驗是我們對學習器性能進行比較的有效方法

· 泛化性能是由學習算法的能力,、數(shù)據(jù)的充分性以及學習任務本身的難度所共同決定的

· (額外閱讀)數(shù)據(jù)比算法要更重要的一個例子:對一批數(shù)據(jù)使用高明的算法,比不上用普通算法但是引入一部分外部數(shù)據(jù)源的效果要好( http://anand./datawocky/2008/03/more-data-usual.html )

具體的章節(jié)思路請參考下圖理解:

    本站是提供個人知識管理的網(wǎng)絡存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導購買等信息,,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多