模式识别与机器学习笔记(二)机器学习的基础理论
機器學習是一門對數學有很高要求的學科,在正式開始學習之前,我們需要掌握一定的數學理論,主要包括概率論、決策論、信息論。
一、極大似然估計(Maximam Likelihood Estimation,MLE )
在了解極大似然估計之前,我們首先要明確什么是似然函數(likelihood function),對于p(x∣θ)p(x|θ)p(x∣θ),
當θθθ是已知,xxx是變量,p(x∣θ)p(x|θ)p(x∣θ)表示概率函數,描述的是xxx出現的概率是多少;
當xxx是已知,θθθ是變量,p(x∣θ)p(x|θ)p(x∣θ)表示似然函數,描述的是對于不同的模型(θθθ決定)出現樣本點xxx的概率是多少。
似然可以理解為概率,只是表征的含義不同,通常利用求極大似然來確定模型參數,極大似然的描述如下:
極大似然估計是一種已知樣本,估計參數的方法。通過給定樣本集DDD估計假定模型的參數,極大似然估計可以幫助我們從參數空間中選擇參數,使該參數下的模型產生DDD的概率最大。
1.求解極大似然函數
重要前提:訓練樣本的分布能夠代表樣本的真實分布,每個樣本集中的樣本都是獨立同分布的隨機變量,并且有充分的訓練樣本。
已知樣本集D={x1,x2,x3,...,xmx_1,x_2,x_3,...,x_mx1?,x2?,x3?,...,xm?},{y1,y2,y3,...,ymy_1,y_2,y_3,...,y_my1?,y2?,y3?,...,ym?},則似然函數表示為
L(θ)=p(y∣x;θ)=∏i=1mp(y(i)∣x(i);θ)L(θ)=p(y|x;θ)=\displaystyle\prod_{i=1}^{m} p(y^{(i)}|x^{(i)};θ)L(θ)=p(y∣x;θ)=i=1∏m?p(y(i)∣x(i);θ),
確定θθθ使模型出現樣本集D的概率(表示為條件概率)最高即為我們所求,即
θ=argmaxL(θ)=argmax∏i=1mp(y(i)∣x(i);θ)θ=argmaxL(θ)=argmax\displaystyle\prod_{i=1}^{m} p(y^{(i)}|x^{(i)};θ)θ=argmaxL(θ)=argmaxi=1∏m?p(y(i)∣x(i);θ),
為便于計算與分析,定義了對數似然函數H(θ)=logL(θ)H(θ)=logL(θ)H(θ)=logL(θ),θ=argmax∑i=1mlogp(y(i)∣x(i);θ)θ=argmax\displaystyle\sum_{i=1}^{m}logp(y^{(i)}|x^{(i)};θ)θ=argmaxi=1∑m?logp(y(i)∣x(i);θ),現在我們確定了目標函數H(θ)H(θ)H(θ),需要求得一組θθθ使H(θ)H(θ)H(θ)最大,可以通過求導數的方法解決這個問題,以高斯分布的參數估計(Gaussian Parameter Estimation)為例,求解過程如下,
設樣本服從正態分布N(μ,σ2)N(μ,σ^2)N(μ,σ2),首先寫出似然函數L(μ,σ2)=p(x;μ,σ2)=∏n=1NN(xn;μ,σ2)L(μ,σ^2)=p(x;μ,σ^2)=\displaystyle\prod_{n=1}^{N}N(x_n;μ,σ^2)L(μ,σ2)=p(x;μ,σ2)=n=1∏N?N(xn?;μ,σ2)
L(μ,σ2)L(μ,σ^2)L(μ,σ2)的對數為:
求導,得方程組:
解得:
???????2.誤差平方和的解釋
在模式識別與機器學習(一)中我們講到采用誤差平方和原理來求解多項式系數,為何使用誤差平方和作為衡量模型精度的標準呢?用極大似然估計可以解釋。
我們觀察下圖,這是上一節課中講到的多項式曲線擬合模型,紅色曲線代表擬合結果,藍色點代表樣本點。
我們把每一個xxx看作獨立的隨機變量,對應的樣本點ttt服從均值為y(x0,w)y(x_0,w)y(x0?,w)的正態分布(一般來講,誤差服從均值為零的正態分布,平移y(x0,w)y(x_0,w)y(x0?,w)個單位),即p(t∣x0,w,β)=N(t∣y(x0,w),β?1)p(t|x_0,w,β)=N(t|y(x_0,w),β^{-1})p(t∣x0?,w,β)=N(t∣y(x0?,w),β?1),利用極大似然估計,使ttt出現的概率最大,p(t∣x,w,β)=∏n=1NN(tn∣y(xn,w),β?1)p(t|x,w,β)=\displaystyle\prod_{n=1}^{N}N(t_n|y(x_n,w),β^{-1})p(t∣x,w,β)=n=1∏N?N(tn?∣y(xn?,w),β?1),ln?p(t∣x,w,β)=?β2∑n=1N{y(xn,w)?tn}2+N2ln?β?N2ln?(2π)\ln p(t|x,w,β)=-\frac{β}{2}\displaystyle\sum_{n=1}^{N}\{y(x_n,w)-t_n\}^2+\frac{N}{2}\lnβ-\frac{N}{2}\ln(2π)lnp(t∣x,w,β)=?2β?n=1∑N?{y(xn?,w)?tn?}2+2N?lnβ?2N?ln(2π),觀察此式,我們想要求得此式的極大值,則需使12∑n=1N{y(xn,w)?tn}2\frac{1}{2}\displaystyle\sum_{n=1}^{N}\{y(x_n,w)-t_n\}^221?n=1∑N?{y(xn?,w)?tn?}2取得最小值,得證。
極大似然估計是三種機器學習方法中最基礎的一種,其余兩種分別是貝葉斯估計方法和貝葉斯學習方法,極大似然估計和貝葉斯估計的計算結果是精確的參數值,而貝葉斯學習的計算結果是概率區間,在后邊我們會單獨一章細致地進行學習,這三種方法是機器學習的主線,掌握這三種方法的原理才能對后邊各種模型的學習和理解游刃有余。
3.貝葉斯估計(最大后驗概率,MAP)
我們需要知道,使用極大似然估計方法容易使模型產生過擬合,在上一章中我們解決的辦法是增加正則項,并且證明了正則項有效地解決了過擬合問題?,F在我們嘗試從貝葉斯估計的角度推導出正則項的由來與合理性。
由貝葉斯公式我們得知,posterior∝likelihood×priorposterior∝likelihood×priorposterior∝likelihood×prior,即后驗概率可由似然與先驗概率相乘得到,之前講到的極大似然估計,我們僅僅用到了likelihoodlikelihoodlikelihood,現在我們假設參數有一個先驗概率,如此便可通過公式求得后驗概率,接下來與極大似然類似的,使后驗概率最大,求得模型參數。
假定對參數www,先驗概率為p(w∣α)=N(w∣0,α?1I)=(α2π)(M+1)/2exp{?α2wTw}p(w|α)=N(w|0,α^{-1}I)=(\frac{α}{2π})^{(M+1)/2}exp\{-\frac{α}{2}w^Tw\}p(w∣α)=N(w∣0,α?1I)=(2πα?)(M+1)/2exp{?2α?wTw},
根據貝葉斯公式,求得后驗概率p(w∣x,t,α,β)∝p(t∣x,w,β)×p(w∣α)p(w|x,t,α,β)∝p(t|x,w,β)×p(w|α)p(w∣x,t,α,β)∝p(t∣x,w,β)×p(w∣α),將似然函數與先驗概率帶入式中得到后驗概率的數學表達式。欲使后驗概率獲得最大值,等價于βE(w)=β2∑n=1N{y(xn,w)?tn}2+α2wTwβE(w)=\frac{β}{2}\displaystyle\sum_{n=1}^{N}\{y(x_n,w)-t_n\}^2+\frac{α}{2}w^TwβE(w)=2β?n=1∑N?{y(xn?,w)?tn?}2+2α?wTw取得最小值,我們發現,表達式中α2wTw\frac{α}{2}w^Tw2α?wTw即為前述的正則項,得證。
極大似然估計易導致過擬合,貝葉斯估計為參數提供了先驗概率,形式上增加了正則函數,結果上抑制了過擬合的產生。
二、概率論基礎(Probability Theory)
1.p(X)=∑Yp(X,Y)p(X)=\displaystyle\sum_Yp(X,Y)p(X)=Y∑?p(X,Y)?????????p(X,Y)=p(Y∣X)p(X)p(X,Y)=p(Y|X)p(X)p(X,Y)=p(Y∣X)p(X)
2.貝葉斯理論(Bayes’Theorem)
p(Y∣X)=p(X∣Y)p(Y)p(X)p(Y|X)=\frac{p(X|Y)p(Y)}{p(X)}p(Y∣X)=p(X)p(X∣Y)p(Y)? ????????? posterior∝likelihood×priorposterior∝likelihood×priorposterior∝likelihood×prior
3.概率函數
累積分布函數:描述隨機變量取值分布規律的數學表示,表示對于任何實數xxx,事件X<xX<xX<x的概率。
概率密度函數:描述隨機變量的輸出值,在某個確定的取值點附近的可能性的函數。隨機變量的取值落在某個區域之內的概率為概率密度函數在這個區域上的積分。當概率密度函數存在的時候,累積分布函數是概率密度函數的積分。概率密度函數表示的是概率的分布情況,在某個點取值高說明樣本在該點附近出現的概率大。
p(x)p(x)p(x)表示概率密度函數,P(x)P(x)P(x)表示概率分布函數。
p(x∈(a,b))=∫abp(x)dxp(x∈(a,b))=\int_a^bp(x)dxp(x∈(a,b))=∫ab?p(x)dx? ? ? ? ? ?p(x)≥0p(x)≥0p(x)≥0? ? ? ? ? ?∫?∞∞p(x)dx=1\int_{-∞}^{∞}p(x)dx=1∫?∞∞?p(x)dx=1? ? ? ? ? ?P(z)=∫?∞zp(x)dxP(z)=\int_{-∞}^{z}p(x)dxP(z)=∫?∞z?p(x)dx
數學期望:試驗中每次可能結果的概率乘以其結果的總和,數學期望可以理解為均值。
E[f]=∑xp(x)f(x)E[f]=\displaystyle\sum_xp(x)f(x)E[f]=x∑?p(x)f(x)? ? ? ? ? ?E[f]=∫p(x)f(x)dxE[f]=\int p(x)f(x)dxE[f]=∫p(x)f(x)dx
4.高斯分布(Gaussian Distribution)
若隨機變量X服從一個數學期望為μμμ、標準方差為σ2σ^2σ2的高斯分布,記為:XXX~N(μ,σ2)N(μ,σ^2)N(μ,σ2),概率密度如下圖所示,
N(x∣μ,σ2)=1(2πσ2)1/2exp{?12σ2(x?μ)2}N(x|μ,σ^2)=\frac{1}{(2πσ^2)^{1/2}}exp\{-\frac{1}{2σ^2}(x-μ)^2\}N(x∣μ,σ2)=(2πσ2)1/21?exp{?2σ21?(x?μ)2}? ? ? ? ? ?N(x∣μ,σ2)>0N(x|μ,σ^2)>0N(x∣μ,σ2)>0? ? ? ? ? ?∫?∞∞N(x∣μ,σ2)dx=1\int_{-∞}^{∞}N(x|μ,σ^2)dx=1∫?∞∞?N(x∣μ,σ2)dx=1
E[x]=∫?∞∞N(x∣μ,σ2)xdx=μE[x]=\int_{-∞}^{∞}N(x|μ,σ^2)xdx=μE[x]=∫?∞∞?N(x∣μ,σ2)xdx=μ? ? ? ? ? ?E[x2]=∫?∞∞N(x∣μ,σ2)x2dx=μ2+σ2E[x^2]=\int_{-∞}^{∞}N(x|μ,σ^2)x^2dx=μ^2+σ^2E[x2]=∫?∞∞?N(x∣μ,σ2)x2dx=μ2+σ2
二元高斯分布如下圖所示,
三、信息熵(Entropy)
信息熵在編碼學、統計學、物理學、機器學習中有很重要的應用,我們有必要對信息熵的相關知識具備一定程度的了解。
1.信息量
信息量用一個信息的編碼長度來定義,一個信息的編碼長度與其出現概率是呈負相關的,可以理解為為使總信息編碼量最低,出現高概率的的信息編碼長度應相對短,也就是說,一個詞出現的越頻繁,則其編碼方式也就越短。信息量計算方法為,
I=log?2(1p(x))=?log?2(p(x))I=\log_2(\frac{1}{p(x)})=-\log_2(p(x))I=log2?(p(x)1?)=?log2?(p(x))
2.信息熵
信息熵代表一個分布的信息量(信息量的均值),或者編碼的平均長度,
H(p)=∑xp(x)log?2(1p(x))=?∑xp(x)log?2(p(x))H(p)=\displaystyle\sum_xp(x)\log_2(\frac{1}{p(x)})=-\displaystyle\sum_xp(x)\log_2(p(x))H(p)=x∑?p(x)log2?(p(x)1?)=?x∑?p(x)log2?(p(x))
從數學公式中可以看出,信息熵實際上是一個隨機變量的信息量的數學期望,那么信息熵的含義是什么呢?信息熵是系統有序化程度的度量,系統越有序,信息熵越低,也就是說,系統中各種隨機性的概率越均等,不確定性越高,信息熵越大,反之越小。為什么有這種對應關系呢?我們假設系統有兩個事件AAA和BBB,當P(A)=P(B)=12P(A)=P(B)=\frac{1}{2}P(A)=P(B)=21?時,我們無法判斷會發生事件AAA還是BBB,這時系統的不確定性高、系統無序;當P(A)=99100P(A)=\frac{99}{100}P(A)=10099?,P(B)=1100P(B)=\frac{1}{100}P(B)=1001?,此時大概率發生事件AAA,系統具有一定的確定性、相對有序。前者信息熵高,后者信息熵低。
接下來我們舉一個信息熵計算的例子,如下所示,
H(p)=?12log?212?14log?214?18log?218?116log?2116?464log?2164=2bitsH(p)=-\frac{1}{2}\log_2\frac{1}{2}-\frac{1}{4}\log_2\frac{1}{4}-\frac{1}{8}\log_2\frac{1}{8}-\frac{1}{16}\log_2\frac{1}{16}-\frac{4}{64}\log_2\frac{1}{64}=2bitsH(p)=?21?log2?21??41?log2?41??81?log2?81??161?log2?161??644?log2?641?=2bits
averageaverageaverage codecodecode lengthlengthlength=12×1+14×2+18×3+116×4+4×116×6=2bits=\frac{1}{2}×1+\frac{1}{4}×2+\frac{1}{8}×3+\frac{1}{16}×4+4×\frac{1}{16}×6=2bits=21?×1+41?×2+81?×3+161?×4+4×161?×6=2bits
信息熵代表編碼的平均長度。
3.相對熵(KL散度)
相對熵又稱KL散度,對于同一個隨機變量xxx有兩個單獨的概率分布p(x)p(x)p(x)和q(x)q(x)q(x),我們可以用KL散度(Kullback-Leibler Divergence)來衡量這兩個分布的差異。在機器學習中,P表示樣本的真實分布,Q表示模型預測的分布。
KL散度的計算公式為:ppp對qqq的相對熵DKL(p∣∣q)=∑i=1np(xi)log?(p(xi)q(xi))D_{KL}(p||q)=\displaystyle\sum_{i=1}^{n}p(x_i)\log(\frac{p(x_i)}{q(x_i)})DKL?(p∣∣q)=i=1∑n?p(xi?)log(q(xi?)p(xi?)?),DKLD_{KL}DKL?的值越小,表示qqq分布和ppp分布越接近。
4.交叉熵(cross-entropy)
DKLD_{KL}DKL?可以變形得到DKL=∑i=1np(xi)log?p(xi)?∑i=1np(xi)log?q(xi)=?H(p(x))+[?∑i=1np(xi)log?q(xi)]D_{KL}=\displaystyle\sum_{i=1}^np(x_i)\log p(x_i)-\displaystyle\sum_{i=1}^np(x_i)\log q(x_i)=-H(p(x))+[-\displaystyle\sum_{i=1}^np(x_i)\log q(x_i)]DKL?=i=1∑n?p(xi?)logp(xi?)?i=1∑n?p(xi?)logq(xi?)=?H(p(x))+[?i=1∑n?p(xi?)logq(xi?)],等式的前一部分是ppp的信息熵,等式的后一部分就是交叉熵,
H(p,q)=?∑i=1np(xi)log?q(xi)H(p,q)=-\displaystyle\sum_{i=1}^np(x_i)\log q(x_i)H(p,q)=?i=1∑n?p(xi?)logq(xi?)。在機器學習中,需要評估labellabellabel和predictpredictpredict之間的差距,應使用相對熵來衡量,由于DKLD_{KL}DKL?的前一部分不變,所以在優化過程中,只需關注交叉熵即可,因此在機器學習中常常用交叉熵作為losslossloss來評估模型。
未完待續
總結
以上是生活随笔為你收集整理的模式识别与机器学习笔记(二)机器学习的基础理论的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 仿射变换的原理
- 下一篇: leetcode hot100(第二部分