一、統(tǒng)計學(xué)習(xí)及其監(jiān)督學(xué)習(xí)概論

1. 統(tǒng)計學(xué)習(xí)

1)統(tǒng)計學(xué)習(xí)的特點

  • 統(tǒng)計學(xué)習(xí)是關(guān)于計算機(jī)基于數(shù)據(jù)構(gòu)建概論統(tǒng)計模型并運用模型對數(shù)據(jù)進(jìn)行預(yù)測與分析的一門學(xué)科
  • 主要特點:
    • 統(tǒng)計學(xué)習(xí)以計算機(jī)及網(wǎng)絡(luò)為平臺,是建立在計算機(jī)及網(wǎng)絡(luò)上的
    • 統(tǒng)計學(xué)習(xí)以數(shù)據(jù)為研究對象,是數(shù)據(jù)驅(qū)動的學(xué)科
    • 統(tǒng)計學(xué)習(xí)的目的是對數(shù)據(jù)進(jìn)行預(yù)測與分析
    • 統(tǒng)計學(xué)習(xí)以方法為中心,統(tǒng)計學(xué)習(xí)方法構(gòu)建模型并應(yīng)用模型進(jìn)行預(yù)測與分析
    • 統(tǒng)計學(xué)習(xí)是概論論、統(tǒng)計學(xué)、信息論、計算理論、最優(yōu)化理論及計算機(jī)科學(xué)等多個領(lǐng)域的交叉學(xué)科,并且在發(fā)展中逐步形成獨自的理論體系與方法論
  • 學(xué)習(xí):如果一個系統(tǒng)能夠通過執(zhí)行某個過程改進(jìn)它的性能,這就是學(xué)習(xí)
  • 統(tǒng)計學(xué)習(xí):就是計算機(jī)通過運用數(shù)據(jù)及統(tǒng)計方法提高系統(tǒng)性能的機(jī)器學(xué)習(xí)

2)統(tǒng)計學(xué)習(xí)的對象

  • 統(tǒng)計學(xué)習(xí)的對象是數(shù)據(jù):它從數(shù)據(jù)出發(fā),提取數(shù)據(jù)的特征,抽象出數(shù)據(jù)的模型,發(fā)現(xiàn)數(shù)據(jù)中的知識,又回到對數(shù)據(jù)的分析與預(yù)測中去
  • 統(tǒng)計學(xué)習(xí)關(guān)于數(shù)據(jù)的基本假設(shè)是同類數(shù)據(jù)具有一定的統(tǒng)計規(guī)律性,這個是統(tǒng)計學(xué)習(xí)的前提。這里的同類數(shù)據(jù)指具有某種共同性質(zhì)的數(shù)據(jù)。由于他們具有統(tǒng)計規(guī)律性,所以可以用概論統(tǒng)計方法處理他們

3)統(tǒng)計學(xué)習(xí)的目的

  • 統(tǒng)計學(xué)習(xí)用于對數(shù)據(jù)的預(yù)測與分析,特別是對未知新數(shù)據(jù)的預(yù)測與分析
  • 對數(shù)據(jù)的預(yù)測與分析是通過構(gòu)建概率統(tǒng)計模型實現(xiàn)的,統(tǒng)計學(xué)習(xí)總的目標(biāo)是考慮學(xué)習(xí)什么樣的模型和如何學(xué)習(xí)模型,使模型能對數(shù)據(jù)進(jìn)行準(zhǔn)確的預(yù)測與分析同時也要考慮盡量提高學(xué)習(xí)效率

4)統(tǒng)計學(xué)習(xí)的方法

  • 統(tǒng)計學(xué)習(xí)的方法是基于數(shù)據(jù)構(gòu)建概率統(tǒng)計模型,從而對數(shù)據(jù)進(jìn)行預(yù)測與分析
  • 組成:
    • 監(jiān)督學(xué)習(xí)
    • 無監(jiān)督學(xué)習(xí)
    • 強(qiáng)化學(xué)習(xí)
  • 從給定的、有限的、用于學(xué)習(xí)的訓(xùn)練數(shù)據(jù)集合出發(fā),假設(shè)數(shù)據(jù)是獨立同分布產(chǎn)生的
  • 并且假設(shè)要學(xué)習(xí)的模型屬于某個函數(shù)的集合,稱為假設(shè)空間
  • 應(yīng)用某個評價準(zhǔn)則,從假設(shè)空間中選取一個最優(yōu)模型,使他對已知的訓(xùn)練數(shù)據(jù)及未知的測試數(shù)據(jù)在給定的評價準(zhǔn)則下有最優(yōu)的預(yù)測
  • 最優(yōu)模型的選取由算法實現(xiàn)
  • 三要素:
    • 模型:模型的假設(shè)空間
    • 策略:模型選擇的準(zhǔn)則
    • 算法:模型學(xué)習(xí)的算法
  • 實現(xiàn)統(tǒng)計學(xué)習(xí)的步驟:
    • 得到一個有限的訓(xùn)練數(shù)據(jù)集合
    • 確定包含所有可能的模型的假設(shè)空間,即學(xué)習(xí)模型的集合
    • 確定模型選擇的準(zhǔn)則,即學(xué)習(xí)的策略
    • 實現(xiàn)求解最優(yōu)模型的算法,即學(xué)習(xí)的算法
    • 通過學(xué)習(xí)方法選擇最優(yōu)模型
    • 利用學(xué)習(xí)的最優(yōu)模型對新的數(shù)據(jù)進(jìn)行預(yù)測或者分析

    5)統(tǒng)計學(xué)習(xí)的研究

  • 統(tǒng)計學(xué)習(xí)方法:旨在開發(fā)新的學(xué)習(xí)方法
  • 統(tǒng)計學(xué)習(xí)的理論:探求統(tǒng)計學(xué)習(xí)方法的有效性與效率,以及統(tǒng)計學(xué)習(xí)的基本理論問題。
  • 統(tǒng)計學(xué)習(xí)應(yīng)用的研究:考慮將統(tǒng)計學(xué)習(xí)方法應(yīng)用到實際問題中去,解決實際問題

6)統(tǒng)計學(xué)習(xí)的重要性

  • 統(tǒng)計學(xué)習(xí)是處理海量數(shù)據(jù)的有效方法
  • 統(tǒng)計學(xué)習(xí)是計算機(jī)智能化的有效手段
  • 統(tǒng)計學(xué)習(xí)是計算機(jī)科學(xué)發(fā)展的一個重要組成部分??梢哉J(rèn)為計算機(jī)科學(xué)由三維組成:系統(tǒng)、計算、信息。統(tǒng)計學(xué)習(xí)主要屬于信息這一維,并在其中起著核心作用

2. 統(tǒng)計學(xué)習(xí)的分類

1)基本分類

1.監(jiān)督學(xué)習(xí)

  • 監(jiān)督學(xué)習(xí)是指從標(biāo)注數(shù)據(jù)中學(xué)習(xí)預(yù)測模型的機(jī)器學(xué)習(xí)問題。標(biāo)注數(shù)據(jù)表示輸入輸出的對應(yīng)關(guān)系,預(yù)測模型對給定的輸入產(chǎn)生相應(yīng)的輸出。監(jiān)督學(xué)習(xí)的本質(zhì)是學(xué)習(xí)輸入到輸出的映射的統(tǒng)計
  • 輸入輸出空間:輸入輸出所有可能取值的集合。輸入輸出空間可以是有限元素的集合,也可以是整個歐式空間。輸入空間可以是同一空間,也可以是不同的空間,通常輸出空間遠(yuǎn)小于輸入空間
  • 每個具體的輸入是一個實例,通常由特征向量表示
  • 特征空間:所有特征向量存在的空間。特征空間的每一維對應(yīng)一個特征。有時假設(shè)輸入空間與特征為相同的空間,有時假設(shè)空間與特征空間為不同的空間,將實例從輸入空間映射到特征空間
  • 回歸問題:輸入變量與輸出變量均為連續(xù)的預(yù)測問題
  • 分類問題:輸出變量為有限個離散變量的預(yù)測問題
  • 標(biāo)注問題:輸入變量與輸出變量均為變量序列的預(yù)測問題
  • 聯(lián)合概率分布:監(jiān)督學(xué)習(xí)假設(shè)輸入與輸出的隨機(jī)變量X和Y遵循聯(lián)合概率分布,在學(xué)習(xí)的過程中假定這個聯(lián)合概率分布存在,但對學(xué)習(xí)系統(tǒng)來說,聯(lián)合概率分布的具體定義是未知的。訓(xùn)練數(shù)據(jù)與測試數(shù)據(jù)被看作是依聯(lián)合概率分布獨立同分布產(chǎn)生的。統(tǒng)計學(xué)習(xí)假設(shè)數(shù)據(jù)存在一定的統(tǒng)計規(guī)律,X和Y具有聯(lián)合概率分布就是監(jiān)督學(xué)習(xí)關(guān)于數(shù)據(jù)的基本假設(shè)
  • 假設(shè)空間:監(jiān)督學(xué)習(xí)的目的在于學(xué)習(xí)一個由輸入到輸出的映射,這一映射由模型來表示,換句話說,學(xué)習(xí)的目的就在找到最好的這樣的模型。模型屬于輸入空間到輸出空間的映射的集合,這個集合就是假設(shè)空間。假設(shè)空間的確定意味著學(xué)習(xí)的范圍的確定
  • 問題的形式化:監(jiān)督學(xué)習(xí)利用訓(xùn)練數(shù)據(jù)集學(xué)習(xí)一個模型,在用模型對測試樣本集進(jìn)行預(yù)測。由于在這個過程中需要標(biāo)注訓(xùn)練數(shù)據(jù)集,而標(biāo)注的訓(xùn)練數(shù)據(jù)集往往是人工給出的,所以稱為監(jiān)督學(xué)習(xí)。監(jiān)督學(xué)習(xí)分為學(xué)習(xí)和預(yù)測兩個過程,由學(xué)習(xí)系統(tǒng)和預(yù)測系統(tǒng)完成。
  1. 無監(jiān)督學(xué)習(xí)
  • 無監(jiān)督學(xué)習(xí)是指從無標(biāo)注數(shù)據(jù)中學(xué)習(xí)預(yù)測模型的機(jī)器學(xué)習(xí)問題。無標(biāo)注數(shù)據(jù)是自然得到的數(shù)據(jù),預(yù)測模型表示數(shù)據(jù)的類別、轉(zhuǎn)換或概率。無監(jiān)督學(xué)習(xí)的本質(zhì)是學(xué)習(xí)數(shù)據(jù)中的統(tǒng)計規(guī)律或潛在結(jié)構(gòu)
  • 模型的輸入與輸出的所有可能取值的集合分別稱為輸入空間與輸出空間。輸入空間與輸出空間可以是有限元素集合,也可以是歐氏空間。每個輸入是一個實例,由特征向量表示。每個輸出是對輸入的分析結(jié)果,由輸入的類別、轉(zhuǎn)換或概率表示。模型可以實現(xiàn)對數(shù)據(jù)的聚類、降維或概率估計
  • 無監(jiān)督學(xué)習(xí)可以用于對已有數(shù)據(jù)的分析,也可以用于對未來數(shù)據(jù)的預(yù)測

3.強(qiáng)化學(xué)習(xí)

  • 強(qiáng)化學(xué)習(xí)是指智能系統(tǒng)在與環(huán)境的連續(xù)互動中學(xué)習(xí)最優(yōu)行為策略的機(jī)器學(xué)習(xí)問題。
  • 智能系統(tǒng)的目標(biāo)不是短期獎勵的最大化,而是長期積累獎勵的最大化。強(qiáng)化學(xué)習(xí)過程中,系統(tǒng)不斷地試錯,以達(dá)到學(xué)習(xí)最優(yōu)策略的目的
  1. 半監(jiān)督學(xué)習(xí)

習(xí)預(yù)測模型的機(jī)器學(xué)習(xí)問題。

  • 半監(jiān)督學(xué)習(xí)旨在利用未標(biāo)注數(shù)據(jù)中的信息,輔助標(biāo)注數(shù)據(jù),進(jìn)行監(jiān)督學(xué)習(xí),以較低的成本達(dá)到較好的學(xué)習(xí)效果。
  1. 主動學(xué)習(xí)
  • 主動學(xué)習(xí)是指機(jī)器不斷主動給出實例讓教師進(jìn)行標(biāo)注,然后利用標(biāo)注數(shù)據(jù)學(xué)習(xí)預(yù)測模型的機(jī)器學(xué)習(xí)問題。
  • 通常的簡單學(xué)習(xí)使用給定的標(biāo)注數(shù)據(jù),往往是隨機(jī)得到的,可以看成 "被動學(xué)習(xí)" ,主動學(xué)習(xí)的目標(biāo)是找出對學(xué)習(xí)最有幫助的實例讓教師標(biāo)注,以較小的標(biāo)注代價,達(dá)到較好的學(xué)習(xí)效果

2)按模型分類

  • 概率模型與非概率模型
    • 概率模型:決策樹、樸素貝葉斯、隱馬爾可夫模型、條件隨機(jī)場、概率潛在語義分析、潛在狄利克雷、高斯混合模型
    • 非概率模型:感知機(jī)、支持向量機(jī)、k近鄰、AdaBoost、k均值、潛在語義分析、神經(jīng)網(wǎng)絡(luò)
  • 線性模型與非線性模型
    • 線性模型:感知機(jī)、線性支持向量機(jī)、k近鄰、k均值、潛在語義分析
    • 非線性模型:核函數(shù)支持向量機(jī)、AdaBoost、神經(jīng)網(wǎng)絡(luò)
  • 參數(shù)化模型與非參數(shù)化模型
    • 參數(shù)化模型:假設(shè)模型參數(shù)的維度固定,模型可以由有限維參數(shù)完全刻畫。
      • 感知機(jī)、樸素貝葉斯、邏輯斯蒂回歸、k均值、高斯混合模型、潛在語義分析、概率潛在語義分析、潛在狄利克雷分配
    • 非參數(shù)化模型:假設(shè)模型參數(shù)的維度不固定或者說無窮大,隨著訓(xùn)練數(shù)據(jù)量的增加而不斷增大
      • 決策樹、支持向量機(jī)、AdaBoost、k近鄰
    • 參數(shù)化模型適合問題簡單的情況,現(xiàn)實中問題往往比較復(fù)雜,非參數(shù)化模型更加有效

3)按算法分類

  • 在線學(xué)習(xí):指每次接受一個樣本,進(jìn)行預(yù)測,之后學(xué)習(xí)模型并不斷重復(fù)該操作的機(jī)器學(xué)習(xí)
  • 批量學(xué)習(xí):一次接受所有數(shù)據(jù),學(xué)習(xí)模型,之后進(jìn)行預(yù)測

4)按技巧分類

  • 貝葉斯學(xué)習(xí):又稱為貝葉斯推理,其主要思想是,在概率模型的學(xué)習(xí)和推理中,利用貝葉斯定理,計算在給定數(shù)據(jù)條件下模型的條件概率,即后驗概率,并應(yīng)用這個原理進(jìn)行模型的估計,以及對數(shù)據(jù)的預(yù)測。
    • 樸素貝葉斯、潛在狄利克雷分配的學(xué)習(xí)
  • 核方法:使用核函數(shù)表示和學(xué)習(xí)非線性模型的一種機(jī)器學(xué)習(xí)方法
    • 核函數(shù)支持向量機(jī)、核PCA、核k均值

3. 統(tǒng)計學(xué)習(xí)方法三要素

方法 = 模型 + 策略 + 算法

1)模型

  • 統(tǒng)計學(xué)習(xí)首先要考慮的就是學(xué)習(xí)什么樣的模型
  • 在監(jiān)督學(xué)習(xí)中,模型就是所要學(xué)習(xí)的條件概率分布或決策函數(shù)
  • 模型的假設(shè)空間包含所有可能的條件概率分布或決策函數(shù)。假設(shè)空間中的模型一般有無窮多個

2)策略

  • 有了模型的假設(shè)空間,就要考慮按什么樣的準(zhǔn)則學(xué)習(xí)或者選擇最優(yōu)的模型。統(tǒng)計學(xué)習(xí)的目標(biāo)在于從假設(shè)空間中選取最優(yōu)模型
  1. 損失函數(shù)

    • 損失函數(shù)或代價函數(shù):用來度量預(yù)測錯誤的程度,是非負(fù)實值函數(shù)
    • 0-1損失函數(shù)
    • 平方損失函數(shù)
    • 絕對值損失函數(shù)
    • 對數(shù)損失函數(shù)
    • 損失函數(shù)值越小,模型就越好
  2. 風(fēng)險函數(shù)

    • 風(fēng)險函數(shù)或期望損失:度量平均意義下模型預(yù)測的好壞
    • 經(jīng)驗風(fēng)險:模型關(guān)于訓(xùn)練集的平均損失
    • 學(xué)習(xí)的目標(biāo)就是選擇期望風(fēng)險最小的模型
  3. 經(jīng)驗分析最小化

    • 在假設(shè)空間、損失函數(shù)以及訓(xùn)練數(shù)據(jù)集確定的情況下,經(jīng)驗風(fēng)險函數(shù)式就可以確定
    • 經(jīng)驗分析最小化的策略認(rèn)為,經(jīng)驗風(fēng)險最小的模型就是最優(yōu)模型
    • 當(dāng)樣本容量足夠大時,經(jīng)驗風(fēng)險最小化能保證有很好的學(xué)習(xí)效果
    • 但當(dāng)樣本容量很小時,經(jīng)驗風(fēng)險最小化學(xué)習(xí)的效果就未必很好,會產(chǎn)生 "過擬合" 現(xiàn)象
  4. 結(jié)構(gòu)風(fēng)險最小化

    • 結(jié)構(gòu)風(fēng)險最小化是為了防止過擬合而提出的策略,它等價于正則化。
    • 結(jié)構(gòu)風(fēng)險在經(jīng)驗分析上加上表示模型復(fù)雜度的正則化項或者罰項
    • 模型越復(fù)雜,復(fù)雜度越大;反之,模型越簡單,復(fù)雜度越小
    • 結(jié)構(gòu)風(fēng)險小需要經(jīng)驗風(fēng)險與模型復(fù)雜度同時小,結(jié)構(gòu)風(fēng)險小的模型往往對訓(xùn)練數(shù)據(jù)以及未知的測試數(shù)據(jù)都有較好的預(yù)測
    • 結(jié)構(gòu)風(fēng)險最小化的策略認(rèn)為結(jié)構(gòu)風(fēng)險最小的模型是最優(yōu)的模型
  • 這樣,監(jiān)督學(xué)習(xí)問題就變成了經(jīng)驗風(fēng)險或結(jié)構(gòu)風(fēng)險函數(shù)的最優(yōu)化問題。這時經(jīng)驗或者結(jié)構(gòu)風(fēng)險函數(shù)是最優(yōu)化的目標(biāo)函數(shù)

3)算法

  • 算法是指學(xué)習(xí)模型的具體計算方法,我們最后要考慮用什么樣的計算方法求解最優(yōu)模型
  • 統(tǒng)計學(xué)習(xí)問題歸結(jié)為最優(yōu)化問題,統(tǒng)計學(xué)習(xí)的算法成為求解最優(yōu)化問題的算法
  • 如果最優(yōu)化問題有顯示的解析式,那就比較簡單了。但通常解析式不存在,就需要用數(shù)值計算的方法求解
  • 如何保證找到全局最優(yōu)解,并使求解過程高效就是一個重要的問題

統(tǒng)計學(xué)習(xí)方法之間的不同,主要來自其模型、策略、算法的不同。確定了模型、策略、算法,統(tǒng)計學(xué)習(xí)的方法也就確定了。

4. 模型評估與模型選擇

  1. 訓(xùn)練誤差與測試誤差
  • 統(tǒng)計學(xué)習(xí)的目的是使學(xué)到的模型不僅對已知數(shù)據(jù)而且對未知數(shù)據(jù)都能有很好的預(yù)測能力
  • 不同的學(xué)習(xí)方法會給出不同的模型,當(dāng)損失函數(shù)給定時,基于損失函數(shù)的模型的訓(xùn)練誤差和模型的測試誤差就成為學(xué)習(xí)方法評估的標(biāo)準(zhǔn)
  • 訓(xùn)練誤差:學(xué)習(xí)到的模型關(guān)于訓(xùn)練數(shù)據(jù)集的平均損失
  • 測試誤差:學(xué)到的模型關(guān)于測試數(shù)據(jù)集的平均損失
  • 訓(xùn)練誤差的大小對判斷給定的問題是不是一個容易學(xué)習(xí)的問題是有意義的,但本質(zhì)上不重要
  • 測試誤差反映了學(xué)習(xí)方法對未知的測試數(shù)據(jù)集的預(yù)測能力,是學(xué)習(xí)中的重要概念
  • 顯然,測試誤差小的方法具有更好的預(yù)測能力,是更有效的方法
  1. 過擬合與模型選擇
  • 當(dāng)假設(shè)空間含有不同復(fù)雜度的模型時就要面臨模型選擇的問題。如果在假設(shè)空間中 "存在" 模型,那么所選擇的模型應(yīng)該逼近真模型
  • 如果一味追求提高對訓(xùn)練數(shù)據(jù)的預(yù)測能力,所選模型的復(fù)雜度則往往會比真模型更高,即 過擬合
  • 過擬合:指學(xué)習(xí)時選擇的模型所包含的參數(shù)過多,以至出現(xiàn)這一模型對已知數(shù)據(jù)預(yù)測的很好,但對未知數(shù)據(jù)預(yù)測得很差的現(xiàn)象
  • 模型的選擇旨在 避免過擬合,并提高模型的預(yù)測能力
  • 當(dāng)模型的復(fù)雜度增大時,訓(xùn)練誤差會逐漸減小并趨于零,而測試誤差會先減小,達(dá)到最小值后又增大。當(dāng)選擇模型的復(fù)雜度過大時,過擬合現(xiàn)象就會發(fā)生。

5. 正則化與交叉驗證

1.正則化

  • 模型選擇的典型方法就是正則化,它是結(jié)構(gòu)化風(fēng)險最小化策略的實現(xiàn),是在經(jīng)驗風(fēng)險上加上一個正則化項或罰項。
  • 正則化項一般是模型復(fù)雜度的單調(diào)遞增函數(shù),模型越復(fù)雜,正則化值就越大
  • 正則化符號奧克姆剃刀原理
  1. 交叉驗證
  • 如果給定的樣本數(shù)據(jù)充足,進(jìn)行模型選擇的一種簡單方法是隨機(jī)地將數(shù)據(jù)集切分成 訓(xùn)練集、驗證集 和 測試集 三部分
  • 但實際應(yīng)用中數(shù)據(jù)是不充足的,交叉驗證的基本思想就是 重復(fù)地使用數(shù)據(jù),把給定的數(shù)據(jù)進(jìn)行切分,將切分的數(shù)據(jù)集組合為訓(xùn)練集與測試集,在此基礎(chǔ)上反復(fù)地進(jìn)行訓(xùn)練、測試 以及 模型選擇
    1. 簡單交叉驗證:首先隨機(jī)地將給的數(shù)據(jù)分成兩個部分,一部分作為訓(xùn)練集,一部分作為測試集,然后用訓(xùn)練集在各個條件下訓(xùn)練模型,從而得到不同的模型,在測試集上評價各個模型的測試誤差,選出測試誤差最小的模型
    2. S折交叉驗證:首先隨機(jī)地將已給的數(shù)據(jù)切分成S個互不相交、大小相同的子集,然后利用S-1個子集的數(shù)據(jù)訓(xùn)練模型,利用余下的子集測試。將這個過程對可能的S種選擇重復(fù)進(jìn)行,最后選出S次評價中平均測試誤差最小的模型
    3. 留一交叉驗證:S折交叉驗證的特殊情形是S=N,,往往在數(shù)據(jù)非常缺乏的情況下使用,N是給定數(shù)據(jù)集的容量

6. 泛化能力

  1. 泛化誤差
  • 學(xué)習(xí)方法的泛化能力是指由該方法學(xué)習(xí)到的模型對未知數(shù)據(jù)的預(yù)測能力,是學(xué)習(xí)方法本質(zhì)上重要的性質(zhì)
  • 現(xiàn)實中采用最多的是通過測試誤差來評價學(xué)習(xí)方法的泛化能力。但這種方法依賴于測試數(shù)據(jù)集,測試數(shù)據(jù)集是有限的,很可能由此得到的評價不可靠。
  • 統(tǒng)計學(xué)習(xí)理論試圖從理論上對學(xué)習(xí)方法的泛化能力進(jìn)行分析
  • 泛化誤差:學(xué)到的模型對未知數(shù)據(jù)預(yù)測的誤差,其反映了學(xué)習(xí)方法的泛化能力,泛化誤差越小,方法更有效
  1. 泛化誤差上界
  • 學(xué)習(xí)方法的泛化能力分析往往是通過研究泛化誤差的概率上界進(jìn)行的,通過比較兩種方法的泛化誤差上界的大小來比較他們的優(yōu)劣
  • 性質(zhì):
    • 它是樣本容量的函數(shù),當(dāng)樣本容量增加時,泛化上界趨于0
    • 它是假設(shè)空間容量的函數(shù),假設(shè)空間容量越大,模型就越難學(xué),泛化上界越大

7. 生成模型與判別模型

  1. 生成模型
  • 生成方法原理上由數(shù)據(jù)學(xué)習(xí)聯(lián)合概率分布,然后求出條件概率分布作為預(yù)測的模型
  • 因為模型表示了給定輸入產(chǎn)生輸出的生成關(guān)系,稱為生成方法
  • 特點:
    • 所需要的數(shù)據(jù)量較大
    • 生成方法可以還原出聯(lián)合概率分布,判別方法不行
    • 學(xué)習(xí)收斂速度更快,當(dāng)樣本容量增大時,學(xué)到的模型可以更快地收斂于真實模型
    • 能夠放映同類數(shù)據(jù)本身的相似度
    • 當(dāng)存在隱變量時,仍可以用
  • 常見生成模型:樸素貝葉斯、隱馬爾可夫模型
  1. 判別模型
  • 判別方法由數(shù)據(jù)直接學(xué)習(xí)決策函數(shù)或條件概率分布作為預(yù)測的模型
  • 判別方法關(guān)系的是對給定的輸入,應(yīng)該預(yù)測什么樣的輸出
  • 特點:
    • 所需要的樣本容量少于生成模型
    • 判別方法直接學(xué)習(xí)的是條件概率或決策函數(shù),直接面對預(yù)測,往往學(xué)習(xí)準(zhǔn)確率更高
    • 可以簡化學(xué)習(xí)問題
    • 不可以反映數(shù)據(jù)本身的特征
  • 常見的判別模型:k近鄰、感知機(jī)、邏輯斯蒂回歸、最大熵模型、支持向量機(jī)、提升方法、條件隨機(jī)場

8. 監(jiān)督學(xué)習(xí)的應(yīng)用

  1. 分類問題
  • 分類是監(jiān)督學(xué)習(xí)的核心問題
  • 當(dāng)輸出變量取有限個離散值時,預(yù)測問題便成為了分類問題
  • 輸入變量可以是離散的,也可以是連續(xù)的
  • 分類器:監(jiān)督學(xué)習(xí)從數(shù)據(jù)中學(xué)習(xí)一個分類模型或者分類決策函數(shù)
  • 類別:可能的輸出,分類的類別為多個時,稱為多類分類問題
  • 分類問題包括學(xué)習(xí)和分類兩個過程
    • 學(xué)習(xí)過程:根據(jù)已知的訓(xùn)練數(shù)據(jù)集利用有效的學(xué)習(xí)方法學(xué)習(xí)一個分類器
    • 分類過程:利用學(xué)習(xí)的分類器對新的輸入實例進(jìn)行分類
  • 一般評價分類器性能的指標(biāo) 分類準(zhǔn)確率:對于給定的測試數(shù)據(jù)集,分類器正確分類的樣本數(shù)與總樣本數(shù)之比
  • 二分類常用:精確率 、 召回率 和 精確率與召回率的調(diào)和均值
  • 常見分類方法:k近鄰、感知機(jī)、樸素貝葉斯、決策樹、決策列表、邏輯斯蒂回歸、支持向量機(jī)、提升方法、貝葉斯網(wǎng)絡(luò)、神經(jīng)網(wǎng)絡(luò)、Winnow
  1. 標(biāo)注問題
  • 可以認(rèn)為標(biāo)注問題是分類問題的一個推廣,又是更復(fù)雜的結(jié)構(gòu)預(yù)測問題的簡單形式
  • 標(biāo)注問題的輸入是一個觀測序列,輸出是一個標(biāo)記序列或狀態(tài)序列,它的目標(biāo)在于學(xué)習(xí)一個模型,能夠?qū)τ^測序列給出標(biāo)記序列作為預(yù)測
  • 可能的標(biāo)記個數(shù)是有限的,但其組合所成的標(biāo)記序列的個數(shù)是依序列長度呈指數(shù)級增長的
  • 標(biāo)注問題分為 學(xué)習(xí) 和 標(biāo)注 兩個過程
  • 評價指標(biāo):標(biāo)注準(zhǔn)確率,精確率 和 召回率
  • 常見的標(biāo)注方法:隱馬爾可夫模型、條件隨機(jī)場
  1. 回歸問題
  • 回歸用于預(yù)測輸入變量和輸出變量之間的關(guān)系,特別是當(dāng)輸入變量的值發(fā)生改變時,輸出變量的值隨之改變
  • 回歸模型正是表示從輸入變量到輸出變量之間映射的函數(shù),回歸問題的學(xué)習(xí)等價于函數(shù)擬合,選擇一條函數(shù)曲線使其很好地擬合已知數(shù)據(jù)且很好地預(yù)測未知數(shù)據(jù)
  • 回歸問題分為學(xué)習(xí)和預(yù)測兩個過程
  • 按照輸入變量的個數(shù) 分為:一元回歸 和 多元回歸
  • 按照輸入變量和輸出變量之間的關(guān)系的類型 分為:線性回歸 和 非線性回歸

最小二乘法擬合曲線

import numpy as np
import scipy as sp
from scipy.optimize import leastsq
import matplotlib.pyplot as plt
%matplotlib inline
  • ps: numpy.poly1d([1,2,3]) 生成 1x^2+2x^1+3x^0*
def real_func(x):
    return np.sin(2*np.pi*x)

def fit_func(p,x):
    f = np.poly1d(p)
    return f(x)

def residuals_func(p,x,y):
    ret = fit_func(p,x) - y
    return ret
x = np.linspace(0,1,10)
x_points = np.linspace(0,1,1000)
y_ = real_func(x)
y = [np.random.normal(0,0.1)+y1 for y1 in y_]

def fitting(M=0):
    p_init = np.random.rand(M + 1)
    
    #最小化二乘法法
    p_lsq = leastsq(residuals_func,p_init,args=(x,y))
    print("Fitting Parameters:",p_lsq[0])
    
    plt.plot(x_points,real_func(x_points),label='real')
    plt.plot(x_points,fit_func(p_lsq[0],x_points),label="fitted curve")
    plt.plot(x,y,'bo',label='noise')
    plt.legend()
    return p_lsq
image.png

leastsq源碼

def leastsq(func, x0, args=(), Dfun=None, full_output=0,

        col_deriv=0, ftol=1.49012e-8, xtol=1.49012e-8,
        gtol=0.0, maxfev=0, epsfcn=None, factor=100, diag=None):

x0 = asarray(x0).flatten()
n = len(x0)
if not isinstance(args, tuple):
    args = (args,)
shape, dtype = _check_func('leastsq', 'func', func, x0, args, n)
m = shape[0]

if n > m:
    raise TypeError('Improper input: N=%s must not exceed M=%s' % (n, m))

if epsfcn is None:
    epsfcn = finfo(dtype).eps

if Dfun is None:
    if maxfev == 0:
        maxfev = 200*(n + 1)
    retval = _minpack._lmdif(func, x0, args, full_output, ftol, xtol,
                             gtol, maxfev, epsfcn, factor, diag)
else:
    if col_deriv:
        _check_func('leastsq', 'Dfun', Dfun, x0, args, n, (n, m))
    else:
        _check_func('leastsq', 'Dfun', Dfun, x0, args, n, (m, n))
    if maxfev == 0:
        maxfev = 100 * (n + 1)
    retval = _minpack._lmder(func, Dfun, x0, args, full_output,
                             col_deriv, ftol, xtol, gtol, maxfev,
                             factor, diag)

errors = {0: ["Improper input parameters.", TypeError],
          1: ["Both actual and predicted relative reductions "
              "in the sum of squares\n  are at most %f" % ftol, None],
          2: ["The relative error between two consecutive "
              "iterates is at most %f" % xtol, None],
          3: ["Both actual and predicted relative reductions in "
              "the sum of squares\n  are at most %f and the "
              "relative error between two consecutive "
              "iterates is at \n  most %f" % (ftol, xtol), None],
          4: ["The cosine of the angle between func(x) and any "
              "column of the\n  Jacobian is at most %f in "
              "absolute value" % gtol, None],
          5: ["Number of calls to function has reached "
              "maxfev = %d." % maxfev, ValueError],
          6: ["ftol=%f is too small, no further reduction "
              "in the sum of squares\n  is possible." % ftol,
              ValueError],
          7: ["xtol=%f is too small, no further improvement in "
              "the approximate\n  solution is possible." % xtol,
              ValueError],
          8: ["gtol=%f is too small, func(x) is orthogonal to the "
              "columns of\n  the Jacobian to machine "
              "precision." % gtol, ValueError]}

# The FORTRAN return value (possible return values are >= 0 and <= 8)
info = retval[-1]

if full_output:
    cov_x = None
    if info in LEASTSQ_SUCCESS:
        perm = take(eye(n), retval[1]['ipvt'] - 1, 0)
        r = triu(transpose(retval[1]['fjac'])[:n, :])
        R = dot(r, perm)
        try:
            cov_x = inv(dot(transpose(R), R))
        except (LinAlgError, ValueError):
            pass
    return (retval[0], cov_x) + retval[1:-1] + (errors[info][0], info)
else:
    if info in LEASTSQ_FAILURE:
        warnings.warn(errors[info][0], RuntimeWarning)
    elif info == 0:
        raise errors[info][1](errors[info][0])
    return retval[0], info
p_lsq_0 = fitting(M=0)

Fitting Parameters: [-0.04029116]

output_7_1.png
p_lsq_1 = fitting(M=1)

Fitting Parameters: [-1.4418256 0.68062164]

output_8_1.png
p_lsq_3 = fitting(M=3)

Fitting Parameters: [ 2.02065593e+01 -3.02328212e+01 9.98143297e+00 -6.46664996e-03]

output_9_1.png
p_lsq_9 = fitting(M=9)

Fitting Parameters: [ 1.05209953e+04 -5.09004701e+04 1.04385566e+05 -1.17921330e+05
7.96542878e+04 -3.25573310e+04 7.73386499e+03 -9.67782446e+02
5.20583901e+01 5.43584931e-02]

output_10_1.png

第1章統(tǒng)計學(xué)習(xí)方法概論-習(xí)題

撰寫人:胡銳鋒-天國之影-Relph

github地址:https://github.com/datawhalechina/statistical-learning-method-solutions-manual

習(xí)題1.1

??說明伯努利模型的極大似然估計以及貝葉斯估計中的統(tǒng)計學(xué)習(xí)方法三要素。伯努利模型是定義在取值為0與1的隨機(jī)變量上的概率分布。假設(shè)觀測到伯努利模型n次獨立的數(shù)據(jù)生成結(jié)果,其中k次的結(jié)果為1,這時可以用極大似然估計或貝葉斯估計來估計結(jié)果為1的概率。

解答:

伯努利模型的極大似然估計以及貝葉斯估計中的統(tǒng)計學(xué)習(xí)方法三要素如下:

  1. 極大似然估計
    模型: \mathcal{F}=\{f|f_p(x)=p^x(1-p)^{(1-x)}\}
    策略: 最大化似然函數(shù)
    算法: \displaystyle \mathop{\arg\min}_{p} L(p)= \mathop{\arg\min}_{p} \binom{n}{k}p^k(1-p)^{(n-k)}
  2. 貝葉斯估計
    模型: \mathcal{F}=\{f|f_p(x)=p^x(1-p)^{(1-x)}\}
    策略: 求參數(shù)期望
    算法:
    \begin{aligned} E_\pi\big[p \big| y_1,\cdots,y_n\big] & = {\int_0^1}p\pi (p|y_1,\cdots,y_n) dp \\ & = {\int_0^1} p\frac{f_D(y_1,\cdots,y_n|p)\pi(p)}{\int_{\Omega}f_D(y_1,\cdots,y_n|p)\pi(p)dp}dp \\ & = {\int_0^1}\frac{p^{k+1}(1-p)^{(n-k)}}{\int_0^1 p^k(1-p)^{(n-k)}dp}dp \end{aligned}

伯努利模型的極大似然估計:
定義P(Y=1)概率為p,可得似然函數(shù)為:L(p)=f_D(y_1,y_2,\cdots,y_n|\theta)=\binom{n}{k}p^k(1-p)^{(n-k)}方程兩邊同時對p求導(dǎo),則:\begin{aligned} 0 & = \binom{n}{k}[kp^{k-1}(1-p)^{(n-k)}-(n-k)p^k(1-p)^{(n-k-1)}]\\ & = \binom{n}{k}[p^{(k-1)}(1-p)^{(n-k-1)}(m-kp)] \end{aligned}可解出p的值為p=0,p=1,p=k/n,顯然\displaystyle P(Y=1)=p=\frac{k}{n}

伯努利模型的貝葉斯估計:
定義P(Y=1)概率為pp[0,1]之間的取值是等概率的,因此先驗概率密度函數(shù)\pi(p) = 1,可得似然函數(shù)為: L(p)=f_D(y_1,y_2,\cdots,y_n|\theta)=\binom{n}{k}p^k(1-p)^{(n-k)}
根據(jù)似然函數(shù)和先驗概率密度函數(shù),可以求解p的條件概率密度函數(shù):\begin{aligned}\pi(p|y_1,\cdots,y_n)&=\frac{f_D(y_1,\cdots,y_n|p)\pi(p)}{\int_{\Omega}f_D(y_1,\cdots,y_n|p)\pi(p)dp}\\ &=\frac{p^k(1-p)^{(n-k)}}{\int_0^1p^k(1-p)^{(n-k)}dp}\\ &=\frac{p^k(1-p)^{(n-k)}}{B(k+1,n-k+1)} \end{aligned}所以p的期望為:\begin{aligned} E_\pi[p|y_1,\cdots,y_n]&={\int}p\pi(p|y_1,\cdots,y_n)dp \\ & = {\int_0^1}\frac{p^{(k+1)}(1-p)^{(n-k)}}{B(k+1,n-k+1)}dp \\ & = \frac{B(k+2,n-k+1)}{B(k+1,n-k+1)}\\ & = \frac{k+1}{n+2} \end{aligned}
\therefore \displaystyle P(Y=1)=\frac{k+1}{n+2}

習(xí)題1.2

??通過經(jīng)驗風(fēng)險最小化推導(dǎo)極大似然估計。證明模型是條件概率分布,當(dāng)損失函數(shù)是對數(shù)損失函數(shù)時,經(jīng)驗風(fēng)險最小化等價于極大似然估計。

解答:

假設(shè)模型的條件概率分布是P_{\theta}(Y|X),現(xiàn)推導(dǎo)當(dāng)損失函數(shù)是對數(shù)損失函數(shù)時,極大似然估計等價于經(jīng)驗風(fēng)險最小化。
極大似然估計的似然函數(shù)為:L(\theta)=\prod_D P_{\theta}(Y|X)兩邊取對數(shù):\ln L(\theta) = \sum_D \ln P_{\theta}(Y|X) \\ \mathop{\arg \max}_{\theta} \sum_D \ln P_{\theta}(Y|X) = \mathop{\arg \min}_{\theta} \sum_D (- \ln P_{\theta}(Y|X))
反之,經(jīng)驗風(fēng)險最小化等價于極大似然估計,亦可通過經(jīng)驗風(fēng)險最小化推導(dǎo)極大似然估計。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容