統計學習方法——模型與問題分類

劉炫320發表於2017-03-04

0. 寫在前面

在這一講中,我們主要介紹一下模型的類別以及問題的類別,並對課後習題進行相應的分析。

1. 模型的型別

我們知道,統計學習主要包括監督學習、非監督學習、半監督學習和強化學習。那麼在統計學習方法一書中主要涉及的是監督學習。而監督學習主要分為兩類,一種是生成模型,一種是判別模型。

1. 生成模型

生成模型是由資料學習聯合概率分佈P(X,Y),然後求出條件概率分佈P(Y|X)作為預測模型,其樣子為:

P(Y|X)=P(X,Y)P(X)
P(Y|X)=\frac{P(X,Y)}{P(X)}

這樣的方法稱為生成方法,因為模型表示了給定輸入X產生輸出Y的生成關係。典型的生成模型由:樸素貝葉斯發和隱馬爾可夫模型。
生成模型所用的生成方法有以下幾個有點
1. 生成方法可以還原出聯合概率分佈P(X,Y)
2. 生成方法的學習收斂速度更快。
3. 存在隱變數時,仍可以用生成方法學習。

2. 判別模型

判別模型則是由資料直接學習決策函式f(X)

f(X)
或者條件概率分佈P(Y|X)作為預測的模型。判別方法關心的是對給定的輸入X,應該預測什麼樣的輸出Y。典型的判別模型包括:K近鄰、感知機、決策樹、邏輯斯蒂迴歸模型、最大熵模型、支援向量機、提升方法和條件隨機場等。
相比較生成模型所用的生成方法,判別模型的判別方法也有其自身的特點:
1. 判別方法直接學習的是條件概率P(Y|X)或者決策函式f(X)
f(X)
.
2. 直接面對預測,學習準確率更高
3. 可以簡化學習問題。

2. 問題型別

監督學習的方法有生成方法和判別方法,但是問題的型別有三種:分類問題、標註問題、迴歸問題。

1. 分類問題

分類問題是一個非常常見的問題。在監督學習中,當輸出變數Y取有限個離散值時,預測問題便成為分類問題。也就是給出一個分類函式f(x)

f(x)
其輸出值為離散的,就成為分類問題了。常見的分類問題為二分類問題,也就是非此即彼的結果。
而評價分類器效能的指標一般是分類準確率。這個其實不用解釋的,準確率就是正確率,也就是輸出結果和實際值相同的百分比。
而對於二分類問題,可以用精確率、召回率、和F1值綜合評價,通常稱為PRF值。
假設:
TP——將正類預測為正類數
FN——將正類預測為負類數
FP——將負類預測為正類數
TN——將負類預測為負類數
那麼準確率應當是:

Acc=TP+TNTP+FN+FP+TN
Acc=\frac{TP+TN}{TP+FN+FP+TN}

精確率的定義為:
P=TPTP+FP
P=\frac {TP}{TP+FP}

召回率的定義為:
R=TPTP+FN
R=\frac{TP}{TP+FN}

F1值的定義為:
F1=2TP2TP+FP+FN
F1=\frac{2TP}{2TP+FP+FN}

其多分類問題也可化為二分類從而進行PRF評價,預測正確的為正類,預測錯誤的為負類。實際上很多統計學習方法都是分類問題,也可以認為大部分的問題都是分類問題。

2. 標註問題

標註問題是分類問題的一個更廣泛的推廣。它可以退化為分類問題,不過它不同於分類問題的一個重要特點是:它的標註問題的輸入時一個觀測序列,輸出是一個標記序列或狀態序列。也就是說它不僅僅關注的每一個輸入的分類結果,它更關注的是一個序列化的輸入,給出一個最可能的序列化輸出。這就是序列化標註問題。這種問題還是比較少的,通常使用隱馬爾可夫模型或者條件隨機場來進行學習。
其評價標準與分類問題相同,均可採用PRF值來進行預測。

3. 迴歸問題

迴歸問題我們不在機器學習的時候就已經遇到了,不過我們那時候學習的都還比較基礎,就是根據當前的資料擬合出最符合當前走勢的曲線,以此能夠預測出接下來的過程中資料的走向如何。
按照輸入變數的個數,我們可以分為一元迴歸和多元迴歸,按照輸入變數和輸出變數之間的關係型別,可以分為線性迴歸和非線性迴歸。我們之前接觸到的大部分是線性迴歸。
迴歸學習的最常用的損失函式就是平方損失函式,通常使用最小二乘法求解。而常見的問題比如股票的走勢問題,這個非常形象直觀的展示了需要回歸的內容,也就是預測出在接下來的時間裡,股票的走勢如何。

3. 課後習題解答

這個課後習題只有兩題:
1. 說明伯努利模型的極大似然估計以及貝葉斯估計中的統計學習方法三要素。
2. 通過經驗風險最小化推到極大似然估計,證明模型是條件概率分佈,當損失函式是對數函式時,經驗風險最小化等價於極大似然估計。
解答:
1.對於第一題,我們需要讀清楚題,它要問的是伯努利模型的吉薩似然估計和貝葉斯估計的三要素。
那麼首先我們來回顧一下統計學習方法的三要素:模型、策略和演算法。
對於模型來講,既然都是伯努利模型了,模型自然不用說了,肯定是伯努利模型。
那麼主要是策略和演算法的不同。在之前我們說過,極大似然估計的策略是經驗風險最小化。但是我們不能這麼回答,因為我們需要證明是經驗風險最小化,其實這就是第二題的答案。
對於極大似然估計,也就是求這樣的一個式子:

hMLE=argmaxP(x|μ)μ01
h_{MLE}=argmaxP(x|μ) μ∈(0,1)

對於伯努利模型來說:
P(xi|μ)=μxi(1μ)1xi
P(x_i|μ)=μ^{x_i}(1-μ)^{1-x_i}

這樣子,我們就是求μ的取值。
那麼怎麼求呢,對於似然估計,也就是求得Pxi|μ
P(x_i|μ)
最大的那個μ的值,這點可以理解為最終取使得P(x_i|μ)最大的μ,這點與貝葉斯估計稍有不同。
那麼第三個因素——演算法是什麼呢?
這就是說極大似然估計怎麼求解,常規方法為:
1. 寫出似然函式
2. 對似然函式取對數
3. 求導數
4. 解似然方程
通過以上4步,就差不多可以取得其極大值μ了。
例如我們這裡的伯努利模型:
1. 找出似然函式
P(X|μ)=i=1nP(xi|μ)
P(X|μ)=\displaystyle\prod_{i=1}^nP(x_i|μ)

P(X|μ)=i=1nμxi(1μ)1xi
P(X|μ)=\displaystyle\prod_{i=1}^nμ_{x_i}(1-μ)^{1-x_i}

2.對似然函式取對數
log[P(X|μ)]=logi=1nμxi(1μ)1xi
log[P(X|μ)]=log\displaystyle\sum_{i=1}^nμ_{x_i}(1-μ)^{1-x_i}

log[P(X|μ)]=i=1n[xilogμ+(1xi)log(1μ)]
log[P(X|μ)]=\displaystyle\sum_{i=1}^n[x_ilogμ+(1-x_i)log(1-μ)]

3. 求導數
logP(X|μ)μ=1μi=1nxi11μi=1n(1xi)
\frac{\partial logP(X|μ)}{\partial μ}= \frac{1}{μ}\displaystyle\sum_{i=1}^nx_i-\frac{1}{1-μ}\displaystyle\sum_{i=1}^n(1-x_i)

4. 令偏導數為0
μ=1ni=1nxi
μ估計=\frac{1}{n}\displaystyle\sum_{i=1}^nx_i

這就是最終結果了,分類這麼大勁,其實我們的日常經驗就是這樣,例如如果我們投了10次硬幣,出現了8次正面,那麼我們肯定認為出現正面的概率應該是0.8。
在解題的過程中,我們就看到了,當模型是條件概率分佈,損失函式是對數損失函式時,極大似然估計就是風險最小化。
我們來看一下經驗風險最小化的樣子:
Rsrm(f)=1ni=1nL(yi,f(xi))
R_{srm}(f)=\frac{1}{n}\displaystyle\sum_{i=1}^nL(y_i,f(x_i))

是不是是一個樣子。
同樣的貝葉斯估計也是這樣的步驟,首先其模型還是伯努利模型,其策略為結構風險最小化,其演算法當然是全概率公式了,然後轉換為最大後驗概率,當先驗概率一致時,最大後驗概率等於極大似然估計。這點我們之前的機器學習講過,不過為了防止又忘記了,現在重新再來複習一遍:
hMAP=argmaxP(h|D)
h_{MAP}=argmaxP(h|D)

利用貝葉斯全概率公式可得:
hMAP=argmaxP(D|h)P(h)P(D)
h_{MAP}=argmax \frac{P(D|h)P(h)}{P(D)}

對於同一個訓練集來講P(D)是相同的,因此可以去掉:
hMAP=argmaxP(D|h)P(h)
h_{MAP}=argmaxP(D|h)P(h)

當各個模型的先驗概率一樣時P(h)就可以去掉,那麼就會變為:
hMAP=argmaxP(D|h)
h_{MAP}=argmaxP(D|h)

這形式是不是和極大似然估計一致?

4. 小結

那麼第一章的內容,我們就都講完了,下面我們將會進入到正軌,對每一類具體的機器學習方法來進行學習,下期見。

相關文章