參數和非參數模型——當我談到參數我在說些什麼

參數和非參數模型——當我談到參數我在說些什麼
FesianXu 2020/1/12

前言

參數模型和非參數模型是我們在機器學習中經常聽到的術語,但是其中的“參數”卻和我們通常理解的參數有所不同,本文嘗試對此進行解釋。如有謬誤,請聯繫指出,謝謝。

\nabla 聯繫方式:
e-mail: [email protected]
QQ: 973926198
github: https://github.com/FesianXu


對觀察數據集進行描述

假如現在給我們觀察數據D={Xi,Yi},i=0,,m\mathcal{D} = \{\mathbf{X}_i, Y_i\}, i=0,\cdots,m,其中XRn,YR\mathbf{X} \in \mathbb{R}^{n}, Y \in \mathbb{R} 是表徵這個觀察數據的特徵和標籤,其中的nn表示特徵維度,mm表示樣本數量。 如果我們嘗試對這個觀察數據進行模型描述,我們可以怎麼描述呢?把這個問題記住,我們繼續探討。

我們要認識到,對觀察數據進行描述,指的不光光是把所有數據一個字節一個字節地“記住”(memorize),而是嘗試用一個概率分佈去描述這個觀察數據,比如數據的聯合概率分佈P(X,Y)\mathrm{P}(\mathbf{X}, \mathrm{Y})就可以很好地描述這個觀察數據。爲什麼呢?比如說我們現在輸入樣本的特徵是X1=(0.1,0.2,0.2,0.5,0.1)X_1 = (0.1,0.2,0.2,0.5,0.1) 是一個5維向量,標籤Y=1\mathrm{Y} = 1表徵了其類別,那麼概率
P(X=X1,Y=1)=0.1P(X=X1,Y=0)=0.3(1.1) \mathrm{P}(\mathbf{X}=X_1, \mathrm{Y}=1) = 0.1 \\\mathrm{P}(\mathbf{X}=X_1, \mathrm{Y}=0) = 0.3 \\\tag{1.1}
這個概率表示了樣本X1X_1和標籤Y=1Y=1或者Y=0Y = 0同時出現的概率,通過計算邊緣概率分佈,我們同樣知道了特徵的概率分佈:
P(X)=iP(X,Yi)(1.2) \mathrm{P}(\mathbf{X}) = \sum_{i} \mathrm{P}(\mathbf{X}, Y_i)\tag{1.2}
我們在這裏不用考慮(1.1)這個概率是怎麼計算出來的(實際上這個正是模型所做的事),我們只要知道通過這種手段可以去表達觀察數據集,我們把這個分佈稱之爲“模型”(不太準確,但是可以這樣理解)。從這個分佈中進行採樣我們足以生成虛擬的樣本(生成模型的領域),當然這都是後話了。同樣的,知道了這個分佈,也足以解決我們的樣本分類問題:
P(YjX)=P(X,Yj)P(X)=P(X,Yj)iP(X,Yi)(1.3) \begin{aligned}\mathrm{P}(Y_j|\mathbf{X}) &= \dfrac{\mathrm{P}(\mathbf{X},Y_j)}{\mathrm{P}(\mathbf{X})} \\&= \dfrac{\mathrm{P}(\mathbf{X},Y_j)}{\sum_i\mathrm{P}(\mathbf{X}, Y_i)}\end{aligned}\tag{1.3}
好的,那麼我們現在的問題就集中在如何才能得到(1.1)的概率分佈了,也就是怎麼建模了。我們終於要進入正題了,哈哈哈哈。

總的來說,我們可以通過兩種方法進行建模,一種稱之爲參數化模型(parametric model),另一大類是非參數模型(non-parametric model)。注意,這裏的“參數”和模型有沒有可以學習的參數(比如神經網絡中的weight)是沒有關係的,非參數模型中可以有很多可學習的參數,但是不妨礙它爲非參數模型。那麼我們的問題就是怎麼去理解這個“參數”了。

參數化模型

對(1.1)的概率分佈進行建模,有一種最爲直接的方法就是先假設這個分佈是服從某個特定分佈的,比如高斯分佈,泊松分佈等等,當然這些分佈中有些未知參數需要我們求得,而這些參數也正是決定了這個分佈的形狀的,比如高斯分佈的均值和協方差決定了不同的高斯分佈,如下圖所示。

在這裏插入圖片描述

Fig 1. 不同均值和協方差的高斯分佈。

我們也可以假設這個未知分佈是多個已知分佈的組合,比如多個高斯分佈的組合,我們稱之爲混合高斯模型(Gaussian Mixture Model,GMM),模型公式[1]如:
p(x)=k=1Kp(k)p(xk)=k=1KπkN(xμk,Σk)(2.1) p(x) = \sum_{k=1}^K p(k)p(x|k) = \sum_{k=1}^{K} \pi_k N(x|\mu_k, \Sigma_k)\tag{2.1}
其實就是K個不同均值和協方差的高斯分佈的混合,並且對此進行了加權。

我們也可以假設我們的數據擬合曲線的形式,這個同樣也是在隱式地對概率分佈進行建模。經典的包括線性迴歸,邏輯斯蒂迴歸等,其函數形式都是如同:
y=θ1x1+θ2x2+θn=ΘXΘRn,X=(x1,x2,,1)Rn(2.2) \begin{aligned}y &= \theta_1 x_1 + \theta_2 x_2 \cdots + \theta_n \\&= \Theta \mathbf{X} \\& \Theta \in \mathbb{R}^{n}, \mathbf{X} = (x_1, x_2, \cdots, 1) \in \mathbb{R}^{n}\end{aligned}\tag{2.2}
同樣的,整個函數的形式都是已經確定了的,無非就是一個直線/超平面 而已,但是其具體的Θ\Theta的組合,決定了這個超平面的具體走向。

這個就是所謂的參數化模型,我們需要根據經驗,觀察,專家知識等對數據分佈進行一定的假設後,然後對決定這個分佈形狀的參數集Θ\Theta進行求解,這個求解通常根據現有的觀察到的數據集進行,這個參數集Θ\Theta是一個有限的集合。

我們可以推出一個結論就是,在參數化模型的框架下,無論我接下來觀察到多少數量的數據,哪怕是無限多個數據,我模型的參數量都只有固定數量多個,那便是Θ|\Theta| 。也就是說,用有界的參數量(複雜度)對無界的(數據量)的數據分佈進行了建模。

假如你的假設分佈足夠靠譜,甚至是完全正確的,那麼當你通過一些觀察樣本,得到了參數集Θ\Theta之後,之後的預測結果將之和這個參數集有關,後續的任何觀察樣本D\mathcal{D}^{\prime}都和預測結果無關,表示爲:
p(xΘ,D)=p(xΘ)(2.3) p(x|\Theta, \mathcal{D}^{\prime}) = p(x|\Theta)\tag{2.3}
顯然這樣模型並不是很靈活,模型的可靠性強依賴於對數據的人工分析經驗等。

非參數化模型

非參數化模型,和參數化模型截然相反的是,對數據分佈不進行任何的假設,只是依賴於觀察數據,對其進行擬合。換句話說,其認爲數據分佈不能通過有限的參數集Θ\Theta進行描述,但是可以通過無限維度的參數θ\theta進行描述,無限維度也就意味着其本質就是一個函數f()Rf(\cdot) \in \mathbb{R}^{\infty}

通常,實際中的模型是對這個無限維度參數集的近似,比如神經網絡中的參數,雖然參數量通常很大,也有萬有擬合理論保證其可以擬合函數,但是其只是對無限維度數據的近似而已。由於非參數化模型依賴於觀察數據,因此參數集θ\theta能捕獲到的信息量隨着觀察數據集的數量增加而增加,這個使得模型更加靈活。

常見的模型歸屬

常見的參數化模型和非參數化模型有:

參數化模型 非參數化模型 應用場景
多項式迴歸 高斯過程 函數近似
邏輯斯蒂迴歸 高斯過程分類器 分類
混合模型,k-means 狄利克雷過程混合(Dirichlet process mixtures) 聚類
隱馬爾科夫模型 無限隱馬爾科夫模型 時間序列分析
PCA/PMF 無限隱變量模型(infinite latent factor models) 特徵發掘

需要進行解釋的是,神經網絡可以看成是高斯過程的近似[2],因此神經網絡也是非參數化模型,k-means在聚類過程中假設數據是球型分佈的(也就是歐式距離還管用,歐式距離可以表徵樣本之間的相似度的情況)。

這裏指的參數到底是啥

所以這裏談到的參數到底是個啥呢?我認爲,這裏的參數與否其實指的是是否用參數對模型的形狀進行了顯式地描述,如有則是參數化模型,沒有,那麼就是非參數化模型了。

Reference

[1]. https://blog.csdn.net/lin_limin/article/details/81048411

[2]. Radford M. Neal. Priors for infinite networks (tech. rep. no. crg-tr-94-1). University of Toronto, 1994a.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章