Andrew Ng機器學習公開課筆記 – Factor Analysis

網易公開課,第13,14課
notes,9html

本質上因子分析是一種降維算法
參考,http://www.douban.com/note/225942377/,淺談主成分分析和因子分析算法

把大量的原始變量,濃縮成少數幾個因子變量
原始變量,表明淺層的表面現象,因此必定是不少和繁雜的
而因子變量,是表明深層的本質,因,是沒法直接觀察到的函數

因此因子分析,就是撥開現象發現本質的過程。。。很牛逼的感受優化

舉個例子,觀察一個學生,你能夠統計到不少原始變量,url

代數,幾何,語文,英語各科的成績,天天做業時間,天天筆記的量。。。3d

這些都是現象,那麼他們的本質是什麼,
邏輯因子,記憶因子,計算因子,表達因子orm

這些都是些更本質的東西,可是你直接觀察不到, 因此咱們要作的是,根據表示現象的原始變量,分析出潛在的因子變量,以達到降維htm

既然要找出latent變量,天然想到要用到EM算法blog

 

先看看,這個問題是怎麼引出的?get

對於前面看到的算法,通常都是m>>n,即訓練集遠遠大於向量維數的

若是m和n近似,或小於n的狀況下,會有什麼問題?

其實簡單點想,

AX = B

其中A是參數向量,而X爲變量向量,若是X的維是n

若是要求出A,其實就是在解一個方程組,變量爲n個,那麼至少要n個方程,若是訓練集大小m,即方程數小於n,那必定是沒有解的,或無限解

看看formal的形式,對於混合高斯EM算法的M-step,

image

其中算均值是沒有問題的,
但在協方差矩陣時,獲得的image是奇異矩陣, 即image 不存在
關於奇異矩陣,能夠參考,可汗學院公開課:線性代數_奇異矩陣_網易公開課

簡單點理解,就想我上面說的,若是用這個矩陣當成方程組去求解,是無解的,即方程數不夠
專業點說,就是不滿秩,矩陣秩(rank)的意思,線性無關的縱列的極大數目

其實就是方程是有效的,沒法被剩餘的方程線性組合獲得的,好比

x+y = 0

2x+2y = 0 ,3x+3y=0……

能夠一直寫下去,但這樣造成的rank仍然爲1,由於沒法獲得解,後面的方程都是無效的

爲什麼image 不存在,由於在計算逆的時候,須要計算1/|x|,其中|x|表示矩陣的行列式,對於奇異矩陣行列式是爲0的,因此無窮大
爲什麼奇異矩陣行列式爲0?
我只能用一個2×2矩陣來舉例,
a,b
c,d

行列式等於, a×d - b×c,若是是奇異矩陣,這個必定爲0

好,image是奇異矩陣,對於EM算法的問題是什麼?

在計算混合高斯分佈的密度是,須要算,image
行列式爲0,會致使無窮大,因此沒有解

 

Restrictions of image

那麼怎麼解決上面的問題?很顯然咱們是沒法擬合出一個完整的image的,因此對它作些限制
咱們假設image是個對角矩陣,diagonal

簡單想一想對角矩陣是什麼,只有對角線上的值不爲0,其餘值都爲0
意味着,各個特徵間是互相對立的,沒有關係的,由於協方差爲0即表示沒有關係,因此如今只須要算出,每一個特徵的方差便可

image 

這樣對m就沒有要求,有樣本就能夠算出方差

還能夠進一步假設,在對角線上的值都是相等的,便是方差的平均值

image

固然這樣假設來限制image,丟失的信息比較多,應該有更好的辦法

 

Marginals and conditionals of Gaussians

先看看混合高斯分佈中,如何求出邊界和條件高斯分佈

沒太搞明白,直接列出結果

對於以下的聯合分佈,

image

則其中x1的邊緣分佈,也是符合高斯分佈,p(x1) = p(x1,x2)對x1求積分

image

而條件分佈,p(x1|x2) = p(x1,x2)/p(x2)

image

其中,

image

 

The Factor analysis model

image

其中x是n維的原始變量,而z是k維的因子變量

image ,而image ,因此image 就是n維向量,這個就是一個轉換,將k維的z轉換爲維的x

image 是偏移量,image 是偏差

因此能夠理解爲,全部的高維的原始變量都是能夠用低維的因子變量經過線性變換獲得的

因此咱們能夠用因子變量來做爲後續算法的輸入,達到降維的目的

好比上面學生的例子,咱們能夠用下面3維的因子變量來替代上面的高維的原始變量

x:(代數 80,幾何 90,語文 60,英語 70 。。。)

z:(邏輯因子 80,記憶因子70,表達因子 60)

咱們再看下,因子分析(Factor Analysis)中給的圖示,就更清楚一些

好比對於高維數據集,這裏假設是2維,

image

如何用低維的,即一維的,因子變量轉換獲得,

image

首先是image,其中image ,把一維映射到二維

image 

加上平移,image

image

最後,加上偏差擾動,即點不可能恰好在這個線上,須要加上符合高斯分佈的偏差

就獲得最開始的原始數據集

image

說了半天,咱們下步要幹什麼?再看下這個式子,

image

咱們的目的是,用z替換x, 那麼只要知道參數image ,咱們就能夠用z表示x, 即達到目的

那麼咱們的目標就是優化參數,使得x達到最大似然估計,即咱們這樣轉換出的x和真實的x是匹配的

但上面只給出z的分佈,怎麼求x的分佈?

這裏就用x,z的聯合分佈,經過邊緣分佈來求x的分佈,原理說不清,因此也是隻是列出結果

image

經過一系列計算過程,能夠參考講義,獲得,

image

經過上面邊緣分佈的定義,咱們知道,

x的分佈爲,image

因此獲得優化目標函數爲,

image

可是這個目標函數是沒法直接解的

 

EM for factor analysis

因此仍是要使用EM,

E-Step,

image image

其中, image

根據上面關於條件分佈的定義,

image

因而,

image

 

M-Step,

優化目標函數,其中z是知足高斯分佈的連續變量,故用積分

image

而後的過程就是對各個參數求偏導,求值。

求解過程,具體參考講義吧,看着虐心。。。呵呵

相關文章
相關標籤/搜索