1. 程式人生 > >機器學習筆記 第14-15課

機器學習筆記 第14-15課

(1)因子分析模型的EM演算法引數求解

上節課構造了因子分析模型。

n維隨機變數x,d維因子變數(隱藏變數)z~N(0,I),其中z^{i} ~ N(0,1)

x = \mu +\Lambda *z + \varepsilon,其中\varepsilon~N(0,\Psi

推導得出 

 

即要求解  \mu\Lambda ,\Psi 三個引數,這裡注意psi是對角矩陣。利用最大似然法無法得到閉合解。結合z可看做隱藏變數,利用EM演算法進行引數的求解。推導過程較為繁瑣,這裡要注意以下幾點不同:

(1)z^{i} 是連續性隨機變數。在E-step中,利用z|x的條件分佈進行計算,需要計算Q(i)和均值和協方差。

(2)在M-step中,如果將這些積分視為期望,將會簡化接下來的推導。

(3)在M-step中,推導過程是通過求解特定的最大化問題完成的,並非是在每個地方帶入期望值

(2)PCA(principle components analysis)

PCA與因子分析一樣,作為一種資料降維的手段。當資料的特徵較多時,資料的特徵之間常常具備著相關性,沒必要利用所有特徵進行訓練。例如可以利用PCA選取前k個包含資訊量較多的特徵(實際操作是選取協方差陣按特徵值從大到小排序的前k個特徵,從資訊的角度理解,特徵值較大,矩陣在該特徵向量的方向上變化較大,包含的資訊也就更多),將原始資料從n維特徵對映為k維特徵。從幾何上面理解,PCA所要做的是找個一個新的特徵軸,將原有的資料投影到該軸上,使得投影到新軸上的資料具備較大的方差(或者另一種理解是,所要找的軸使得原有資料到該軸的距離之和最小)。

(i)PCA的預處理步驟:首先對於每個樣本進行標準化 (減去均值 除以標準差)

Xj = (Xj - \mu j)/\sigma j

(ii)構建協方差矩陣(\Sigma = A^{\top } * A),求解特徵值與特徵向量。其實這裡為什麼會採用A^{\top }*A的方式構建矩陣進行求解呢,考慮到PCA的優化條件:使得各個點到主軸的距離最小,可利用拉格朗日乘數法進行求解,得出的結果恰好為求解該特徵方程。在求解協方差矩陣的特徵自與特徵向量時,存在的一個問題便是,假設特徵數m=10000,則\Sigma為10000*10000的矩陣,求解不方便(可採用奇異值分解代替)。假設選取前k的特徵向量。(\mu = \mu _{1},,,\mu _{k}

(iii)將原有特徵進行對映。X* = \mu ^{\top }* X

 PCA在文字分析中的一個應用便是LSI(Latent semantic Indexing)。利用LSI處理文字資訊時,不可避免的會遇到高維向量的問題,此時可利用奇異值分解進行\Sigma

的特徵向量求解。

關於奇異值分解(Singular Value Decomposition,SVD),與求解特徵值要求矩陣必須為方陣不同,SVD針對任意m*n矩陣。假設原有待分解矩陣A(m*n),SVD為:A=UDV^{\top },其中U為m*m,D為m*n對角陣,V為n*n。D中對角線元素即為矩陣A的奇異值。

關於FA(Factor Analysis)與PCA的一個小總結:

(i)因子分析:因子分析的出發點是認為在諸多的特徵之中存在著一個或多個潛在的變數,這些變數是對於事物的特徵是真正有影響的因素,稱為因子。為了求解因子,需要聯合現有特徵構建方程求解。

(ii)PCA:PCA則從另一種思路出發,考慮通過將多維資料進行多維空間向低維子空間的變換,以此找到特徵變換方差最大(包含資訊量最大)的子空間進行計算(注意,從高維向低維的變換不可避免的會帶來一些資訊量的丟失)。

二者看似都是降維的一種手段,實則出發點與思想完全不同。

(3)ICA(indenpendent components analysis)

假設無法得到原有資料集S,只能得到的資料集X是原有資料集S各個特徵的線性組合的結果。即假設S = {S1,S2},而能夠獲得的資料集X = {S1+S2,S1-S2}。ICA的目的便是如何根據X,從中分離得出S。直觀上看,這很難做到,因為缺乏很多先驗的知識。因此ICA的一個重要假設便是已知S的CDF為某個函式,以此作為突破口,利用最大似然求解引數,從中分離出S。這裡的關鍵在於若假設原有的S是高斯型分佈,則無法得出結果(因為多個高斯型的分佈疊加在一起是對稱且旋轉式,在每個方向上一致,因此無法進行分離),因此常選用的分佈有Sigmoid與拉普拉斯分佈。

(4)通過這1-15課的學習,結合相關書籍和網路資源,也算是對於機器學習有了一個入門。