日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

机器学习笔记—因子分析

發(fā)布時(shí)間:2024/6/21 综合教程 34 生活家
生活随笔 收集整理的這篇文章主要介紹了 机器学习笔记—因子分析 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

如果數(shù)據(jù) x(i)∈Rn是來自混合高斯分布,那么可用 EM 算法來擬合混合模型,但假設(shè)前提是有足夠的數(shù)據(jù),我們能發(fā)現(xiàn)數(shù)據(jù)中的多高斯結(jié)構(gòu),這就要訓(xùn)練數(shù)據(jù)集大小 m 遠(yuǎn)大于數(shù)據(jù)維度 n。

如果 n>>m 呢?那就很難對(duì)數(shù)據(jù)建模,即使是一個(gè)高斯。m 個(gè)數(shù)據(jù)點(diǎn)只能在低維度空間,如果要把數(shù)據(jù)建模為高斯分布,用極大似然估計(jì)來估計(jì)均值和協(xié)方差:

我們會(huì)發(fā)現(xiàn)Σ 是奇異矩陣。例如當(dāng) m=2,n=5,如下例所示,最后Σ =0。

import numpy as np

x1=np.array([2,3,7,6,5])
x2=np.array([7,9,3,1,4])

x1.shape=(5,1)
x2.shape=(5,1)

mu=(x1+x2)/2.0  # ".0" is request

var=(np.dot(x1-mu,np.transpose(x1-mu))+np.dot(x2-mu,np.transpose(x2-mu)))/2.0

print "The covariance of the matrix is %s." % np.linalg.det(var)

View Code

當(dāng) Σ為奇異矩陣時(shí),|∑| = 0,那么Σ-1 就不存在,1/|Σ|1/2 = 1/0,但這些在計(jì)算多元高斯分布的密度時(shí)都是需要的。通常情況下,除非 m 比 n 大得超過一定范圍,不然對(duì)均值和協(xié)方差的極大似然估計(jì)會(huì)非常差。當(dāng)然,我們肯定希望對(duì)數(shù)據(jù)擬合一個(gè)合理的高斯模型,來獲得數(shù)據(jù)中一些有趣的協(xié)方差結(jié)構(gòu)信息。那怎么辦呢?

下面我們先來看對(duì) Σ施加兩個(gè)限制,可以使我們用少量的數(shù)據(jù)來擬合Σ,但都不能給出滿意的解決方案。接下來再討論高斯的一些特性,后面會(huì)用到,特別是如何尋找高斯的邊緣和條件分布。最后介紹因子分析模型,以及 EM 解法。

1、對(duì)Σ 的限制

如果沒有足夠的數(shù)據(jù)來擬合一個(gè)完整的方差矩陣,可以對(duì)矩陣Σ 的空間添加一些限制。例如,選擇擬合一個(gè)對(duì)角矩陣Σ,在這種情況下,協(xié)方差矩陣的極大似然估計(jì),即對(duì)角矩陣 Σ滿足:

如何通過極大似然估計(jì)推出上式,有興趣的讀者可自行驗(yàn)證。

高斯密度的輪廓是橢圓,當(dāng)協(xié)方差矩陣Σ 是對(duì)角矩陣時(shí),橢圓的主軸就與坐標(biāo)軸平行。

有時(shí)我們會(huì)對(duì)協(xié)方差矩陣作進(jìn)一步的限制,它不僅是對(duì)角的,而且對(duì)角線上的元素是等值的。這時(shí),Σ=σ2I,其中σ2 是控制參數(shù)。σ2 的極大似然估計(jì)為:

這個(gè)模型所關(guān)聯(lián)的高斯密度的輪廓在二維情況下是圓,在高維情況下是球體,或超球體。

如何我們要對(duì)數(shù)據(jù)擬合一個(gè)完整的、無約束的協(xié)方差矩陣Σ,那就需要 m>>n 以使得Σ 的極大似然估計(jì)是非奇異的。如果滿足上面兩個(gè)限制中的任意一個(gè),只要 m≥2 就能得到一個(gè)非奇異的Σ。

但是,限制Σ 為對(duì)角矩陣也意味著,建模數(shù)據(jù)的不同坐標(biāo) xi 和 xj 為不相關(guān)和獨(dú)立的。有時(shí)就是要獲得數(shù)據(jù)中的一些有趣的關(guān)聯(lián),如果使用了上面對(duì)Σ 的限制,就沒法發(fā)現(xiàn)這種關(guān)聯(lián)。所以,下面我們介紹因子分析模型,比對(duì)角矩陣Σ 使用更多的參數(shù),但不需要擬合完整的協(xié)方差矩陣。

2、高斯邊緣和條件分布

在介紹因子分析之前,先來討論如何尋找聯(lián)合多元高斯分布隨機(jī)變量的條件和邊緣分布。

假設(shè)有一個(gè)向量值型隨機(jī)變量:

其中 x1 屬于 r 維向量空間,x1∈Rr,x2∈Rs,x∈Rr+s,假設(shè) x~N(μ,Σ),其中:

這里 μ1∈Rr,μ2∈Rs,Σ11∈Rr×r,Σ12∈Rr×s 等等。因?yàn)閰f(xié)方差矩陣是對(duì)稱的,所以Σ1221T

在這種情況下,x1 和 x2 是聯(lián)合多元高斯,那么 x1 的邊緣分布是什么?不難看出 E[x1]=μ1,Cov(x1)=E[(x11)(x11)]=Σ,根據(jù) x1 和 x2 的聯(lián)合協(xié)方差的定義,有:

因?yàn)楦咚沟倪吘壏植急旧砭褪歉咚梗缘?x1 的邊緣分布為 x1~N(μ111)。

那么 x1在給定 x2 下的條件分布呢?由多元高斯分布的定義,可得 x1|x2~N(μ1|21|2),其中

下面介紹因子分析模型時(shí),這些公式對(duì)于尋找高斯條件和邊緣分布是很有用的。

3、因子分析模型

在因子分析模型中,我們假設(shè) (x,z) 是如下的聯(lián)合分布,其中 z∈Rk 是一個(gè)隱隨機(jī)變量:

這里模型的參數(shù)是,向量μ∈Rn,矩陣Λ∈Rn×k,對(duì)角矩陣Ψ∈Rn×n,k 值通常是小于 n 的。

所以每個(gè)數(shù)據(jù)點(diǎn) x(i) 是通過如下方式生成的:

a. 從 k 維多元高斯分布中采樣得到 z(i)

b. 通過計(jì)算μ+Λz(i) 將 z 映射到 n 維空間;

c. 給 μ+Λz(i)增加協(xié)方差 Ψ噪聲,得到 x(i)

同樣的,我們也可以根據(jù)下列方式來定義因子分析模型。

其中ε 和 z 是相互獨(dú)立的。

現(xiàn)在來仔細(xì)看下這個(gè)模型定義了一個(gè)什么樣的分布。隨機(jī)變量 z 和 x 有一個(gè)聯(lián)合高斯分布。

現(xiàn)在來尋找μzx 和Σ。

我們知道 E[z]=0,因?yàn)?z~N(0,I),同時(shí)有

放到一起可得:

下一步,為了尋找 Σ,需要計(jì)算Σzz=E[(z-E(z))(z-E(z))T],Σzx=E[(z-E(z))(x-E(x))T],Σxx=E[(x-E(x))(x-E(x))T]。

因?yàn)?z~N(0,I),易見Σzz=Cov(z)=I,也可得 Σzx=

第一步是因?yàn)?E[z]=0,x=μ+Λz+ε,E[x]=μ。

第二步消去μ。

第三步是因?yàn)?E[zzT]=Cov(z)=I,E[zεT]=E[z]E[εT]=0(因?yàn)?z 和 ε 是相互獨(dú)立的,所以乘積的期望也是期望的乘積)。類似地可得Σxx

集中以上結(jié)果可得:

所以,可以看到 x 的邊緣分布 x~N(μ,ΛΛT+Ψ)。所以,給定訓(xùn)練集 {x(i);i=1,2,...,m},我們能寫下參數(shù)的 log 似然估計(jì)為:

為執(zhí)行極大似然估計(jì),我們將以這些參數(shù)來最大化該式,直接最大化該式很難,沒有封閉形式下的算法可解出該式。所以,我們將使用 EM 算法。

4、EM 解因子分析

E-step 的推導(dǎo)很容易,需要計(jì)算 Qi(z(i))=p(z(i)|x(i);μ,Λ,Ψ)。結(jié)合上面得到的兩個(gè)結(jié)果:

可得

其中

用這些定義可得:

現(xiàn)在開始 M-step,這里需要最大化

以μ,Λ 和Ψ 為參數(shù)。我們這里只推導(dǎo)以Λ 為參數(shù)的最優(yōu)化,μ 和Ψ 的更新推導(dǎo)留給讀者。

上式可簡(jiǎn)化為:

下標(biāo) z(i)~Qi 表示期望是指服從 Qi 分布的 z(i)。下面將忽略這個(gè)下標(biāo),不會(huì)存在模糊的風(fēng)險(xiǎn)。去掉與參數(shù)Λ 不相關(guān)的部分,需要最大化的是:

只有最后一項(xiàng)依賴于Λ,求導(dǎo),使用事實(shí) tra=a(a∈R),trAB=trBA,▽AtrABATC=CAB+CTAB,有:

設(shè)為 0 并簡(jiǎn)化,得:

解出Λ,得:

從 Q 是均值為 μz|x協(xié)方差為 Σz|x的高斯的定義可得:

最后一式是因?yàn)椋瑢?duì)于隨機(jī)變量 Y,Cov(Y)=E[YYT]-E[Y]E[Y]T,所以,E[YYT]=E[Y]E[Y]T+Cov(Y)。

代入該式到上面的Λ,可得:

注意到上式右邊有個(gè) Σz|x,這是后驗(yàn)概率 p(z(i)|x(i)) 的協(xié)方差。

我們也能找到μ 和Φ 的最優(yōu)化參數(shù)。

注意到當(dāng)參數(shù)改變時(shí),μ 不是發(fā)生改變,不像Λ 依賴于 Qi(z(i))=p(z(i)|x(i);μ,Λ,Φ),所以,它只需要開始計(jì)算一次,算法運(yùn)行時(shí)不需要再更新。同樣,對(duì)角Ψ 為

設(shè)置Ψiiii。對(duì)角矩陣Ψ 只包含對(duì)角元素Φ。

參考資料:

1、http://cs229.stanford.edu/notes/cs229-notes9.pdf

2、http://blog.csdn.net/stdcoutzyx/article/details/37559995

3、http://www.cnblogs.com/jerrylead/archive/2011/05/11/2043317.html

總結(jié)

以上是生活随笔為你收集整理的机器学习笔记—因子分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。