訂閱
糾錯(cuò)
加入自媒體

人工智能之ICA算法

人工智能機(jī)器學(xué)習(xí)有關(guān)算法內(nèi)容,請(qǐng)參見(jiàn)公眾號(hào)“科技優(yōu)化生活”之前相關(guān)文章。人工智能之機(jī)器學(xué)習(xí)主要有三大類(lèi):1)分類(lèi);2)回歸;3)聚類(lèi)。今天我們重點(diǎn)探討一下ICA算法。 ^_^ 

ICA獨(dú)立成分分析是近年來(lái)出現(xiàn)的一種強(qiáng)有力的數(shù)據(jù)分析工具(Hyvarinen A, Karhunen J, Oja E, 2001; Roberts S J, Everson R, 2001)。1994年由Comon給出了ICA的一個(gè)較為嚴(yán)格的數(shù)學(xué)定義,其思想最早是由Heranlt和Jutten于1986年提出來(lái)的。 

ICA從出現(xiàn)到現(xiàn)在雖然時(shí)間不長(zhǎng),然而無(wú)論從理論上還是應(yīng)用上,它正受到越來(lái)越多的關(guān)注,成為國(guó)內(nèi)外研究的一個(gè)熱點(diǎn)

ICA獨(dú)立成分分析是一種用來(lái)從多變量(多維)統(tǒng)計(jì)數(shù)據(jù)里找到隱含的因素或成分的方法,被認(rèn)為是PCA主成分分析(請(qǐng)參見(jiàn)人工智能(46))和FA因子分析的一種擴(kuò)展。對(duì)于盲源分離問(wèn)題,ICA是指在只知道混合信號(hào),而不知道源信號(hào)、噪聲以及混合機(jī)制的情況下,分離或近似地分離出源信號(hào)的一種分析過(guò)程。 

ICA算法概念:

ICA(IndependentComponent Analysis) 獨(dú)立成分分析是一門(mén)統(tǒng)計(jì)技術(shù),用于發(fā)現(xiàn)存在于隨機(jī)變量下的隱性因素。ICA為給觀測(cè)數(shù)據(jù)定義了一個(gè)生成模型。在這個(gè)模型中,其認(rèn)為數(shù)據(jù)變量是由隱性變量,經(jīng)一個(gè)混合系統(tǒng)線(xiàn)性混合而成,這個(gè)混合系統(tǒng)未知。并且假設(shè)潛在因素屬于非高斯分布、并且相互獨(dú)立,稱(chēng)之為可觀測(cè)數(shù)據(jù)的獨(dú)立成分。

ICA與PCA相關(guān),但它在發(fā)現(xiàn)潛在因素方面效果良好。它可以應(yīng)用在數(shù)字圖像、檔文數(shù)據(jù)庫(kù)、經(jīng)濟(jì)指標(biāo)、心里測(cè)量等。

ICA算法本質(zhì)

ICA是找出構(gòu)成信號(hào)的相互獨(dú)立部分(不需要正交),對(duì)應(yīng)高階統(tǒng)計(jì)量分析。ICA理論認(rèn)為用來(lái)觀測(cè)的混合數(shù)據(jù)陣X是由獨(dú)立元S經(jīng)過(guò)A線(xiàn)性加權(quán)獲得。ICA理論的目標(biāo)就是通過(guò)X求得一個(gè)分離矩陣W,使得W作用在X上所獲得的信號(hào)Y是獨(dú)立源S的最優(yōu)逼近,該關(guān)系可以通過(guò)下式表示:

Y = WX = WAS , A = inv(W)

ICA相比與PCA更能刻畫(huà)變量的隨機(jī)統(tǒng)計(jì)特性,且能抑制高斯噪聲。

從線(xiàn)性代數(shù)的角度去理解,PCA和ICA都是要找到一組基,這組基張成一個(gè)特征空間,數(shù)據(jù)的處理就都需要映射到新空間中去。

ICA理論基礎(chǔ):

ICA理論基礎(chǔ)如下:

1)標(biāo)準(zhǔn)正交基

2)白化

3)梯度下降

ICA目標(biāo)函數(shù):

ICA的目標(biāo)函數(shù)如下: 
 

樣本數(shù)據(jù) x 經(jīng)過(guò)參數(shù)矩陣 W 線(xiàn)性變換后的結(jié)果的L1范數(shù),實(shí)際上也就是描述樣本數(shù)據(jù)的特征。

加入標(biāo)準(zhǔn)正交性約束(orthonormality constraint)后,ICA獨(dú)立成分分析相當(dāng)于求解如下優(yōu)化問(wèn)題: 

這就是標(biāo)準(zhǔn)正交ICA的目標(biāo)函數(shù)。與深度學(xué)習(xí)中的通常情況一樣,這個(gè)問(wèn)題沒(méi)有簡(jiǎn)單的解析解,因此需要使用梯度下降來(lái)求解,而由于標(biāo)準(zhǔn)正交性約束,又需要每次梯度下降迭代之后,將新的基映射回正交基空間中,以此保證正交性約束。 

ICA優(yōu)化參數(shù):  

針對(duì)ICA的目標(biāo)函數(shù)和約束條件,可以使用梯度下降法,并在梯度下降的每一步中增加投影(projection )步驟,以滿(mǎn)足標(biāo)準(zhǔn)正交約束。過(guò)程如下:  

ICA算法流程:

已知信號(hào)為S,經(jīng)混和矩陣變換后的信號(hào)為:X=AS。對(duì)交疊信號(hào)X,求解混矩陣B,使Y=WX各分量盡量相互獨(dú)立。求解W的過(guò)程并不一定是近似A的逆矩陣,Y也不是信號(hào)S的近似,而是為了使Y分量之間相互獨(dú)立。目的是從僅有的觀測(cè)數(shù)據(jù)X出發(fā)尋找一個(gè)解混合矩陣。

常見(jiàn)的方法:InfoMax方法(用神經(jīng)網(wǎng)絡(luò)使信息最大化),F(xiàn)astICA方法(固定點(diǎn)算法,尋求X分量在W上投影(W^t)*X)的非高斯最大化。


主要算法流程如下: 
 1、預(yù)處理部分:1)對(duì)X零均值處理   
2)球化分解(白化)

乘球化矩陣S,使Z=SX各行正交歸一,即ZZ’=I

2、核心算法部分: 尋求解混矩陣U,使Y=UZ,Y各道數(shù)據(jù)盡可能獨(dú)立(獨(dú)立判據(jù)函數(shù)G)。
1)、由于Y獨(dú)立,各行必正交。且通常取U保持Y各行方差為1,故U是正交變換。
2)、所有算法預(yù)處理部分相同,以后都設(shè)輸入的為球化數(shù)據(jù)z,尋找正交矩陣U,使Y=Uz獨(dú)立。

由于獨(dú)立判據(jù)函數(shù)G的不同,以及步驟不同,有不同的獨(dú)立分量分析法。

3、Fast ICA算法思路

思路:屬于探查性投影追蹤

目的:輸入球化數(shù)據(jù)z,經(jīng)過(guò)正交陣U處理,輸出Y=Uz
1)輸入球化數(shù)據(jù)z,經(jīng)過(guò)正交陣某一行向量ui處理(投影),提取出某一獨(dú)立分量yi。

2)將此分量除去,按次序依次提取下去,得到所有的yi ,以及ui。

3)得到獨(dú)立的基向量U

U=WX

Fast ICA算法程序如下:

function [Out1, Out2, Out3] =fastica(mixedsig, varargin)

%FASTICA(mixedsig) estimates theindependent components from given

% multidimensional signals. Each row ofmatrix mixedsig is one

% observed signal.

% = FASTICA (mixedsig); the rows oficasig contain the

% estimated independent components.

% = FASTICA (mixedsig); outputs the estimatedseparating

% matrix W and the corresponding mixingmatrix A.

mixedsig為輸入向量,icasig為求解的基向量。

A即為混合矩陣,可以驗(yàn)證mixedsig=A×icasig。

W即為解混矩陣,可以驗(yàn)證icasig=W×mixedsig。

ICA算法優(yōu)點(diǎn):

1)收斂速度快。

2)并行和分布計(jì)算,要求內(nèi)存小,易于使用。

3)能通過(guò)使用一個(gè)非線(xiàn)性函數(shù)g便能直接找出任何非高斯分布的獨(dú)立分量。

4)能夠通過(guò)選擇一個(gè)適當(dāng)?shù)姆蔷(xiàn)性函數(shù)g而使其達(dá)到最佳化。特別是能得到最小方差的算法。

5)僅需要估計(jì)幾個(gè)(不是全部)獨(dú)立分量,能極大地減小計(jì)算量。

ICA算法缺點(diǎn):

1) 特征矩陣W的特征數(shù)量(即基向量數(shù)量)大于原始數(shù)據(jù)維度會(huì)產(chǎn)生優(yōu)化方面的困難,并導(dǎo)致訓(xùn)練時(shí)間過(guò)長(zhǎng)

2) ICA模型的目標(biāo)函數(shù)是一個(gè)L1范數(shù),在 0 點(diǎn)處不可微,影響了梯度方法的應(yīng)用。

注:盡管可以通過(guò)其他非梯度下降方法避開(kāi)缺點(diǎn)2),也可以通過(guò)使用近似值“平滑” L1 范數(shù)的方法來(lái)解決,即使用 ( x2+ε )1/2 代替 |x|,對(duì) L1 范數(shù)進(jìn)行平滑,其中 ε 是“平滑參數(shù)”(smoothing parameter)。

ICAPCA區(qū)別:

1) PCA是將原始數(shù)據(jù)降維并提取出不相關(guān)的屬性,而ICA是將原始數(shù)據(jù)降維并提取出相互獨(dú)立的屬性。

2) PCA目的是找到這樣一組分量表示,使得重構(gòu)誤差最小,即最能代表原事物的特征。ICA的目的是找到這樣一組分量表示,使得每個(gè)分量最大化獨(dú)立,能夠發(fā)現(xiàn)一些隱藏因素。由此可見(jiàn),ICA的條件比PCA更強(qiáng)些。

3) ICA要求找到最大獨(dú)立的方向,各個(gè)成分是獨(dú)立的;PCA要求找到最大方差的方向,各個(gè)成分是正交的。

4) ICA認(rèn)為觀測(cè)信號(hào)是若干個(gè)統(tǒng)計(jì)獨(dú)立的分量的線(xiàn)性組合,ICA要做的是一個(gè)解混過(guò)程。而PCA是一個(gè)信息提取的過(guò)程,將原始數(shù)據(jù)降維,現(xiàn)已成為ICA將數(shù)據(jù)標(biāo)準(zhǔn)化的預(yù)處理步驟。

ICA算法應(yīng)用:

從應(yīng)用角度看,ICA應(yīng)用領(lǐng)域與應(yīng)用前景都是非常廣闊的,目前主要應(yīng)用于盲源分離、圖像處理、語(yǔ)言識(shí)別、通信、生物醫(yī)學(xué)信號(hào)處理、腦功能成像研究、故障診斷、特征提取、金融時(shí)間序列分析和數(shù)據(jù)挖掘等。 

結(jié)語(yǔ):

ICA是一種常用的數(shù)據(jù)分析方法,是盲信號(hào)分析領(lǐng)域的一個(gè)強(qiáng)有力方法,也是求非高斯分布數(shù)據(jù)隱含因子的方法。從樣本-特征角度看,使用ICA的前提條件是,認(rèn)為樣本數(shù)據(jù)由獨(dú)立非高斯分布的隱含因子產(chǎn)生,隱含因子個(gè)數(shù)等于特征數(shù),要求的是隱含因子。ICA算法已經(jīng)被廣泛應(yīng)用于盲源分離、圖像處理、語(yǔ)言識(shí)別、通信、生物醫(yī)學(xué)信號(hào)處理、腦功能成像研究、故障診斷、特征提取、金融時(shí)間序列分析和數(shù)據(jù)挖掘等領(lǐng)域。



聲明: 本文由入駐維科號(hào)的作者撰寫(xiě),觀點(diǎn)僅代表作者本人,不代表OFweek立場(chǎng)。如有侵權(quán)或其他問(wèn)題,請(qǐng)聯(lián)系舉報(bào)。

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字

您提交的評(píng)論過(guò)于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無(wú)評(píng)論

暫無(wú)評(píng)論

    掃碼關(guān)注公眾號(hào)
    OFweek人工智能網(wǎng)
    獲取更多精彩內(nèi)容
    文章糾錯(cuò)
    x
    *文字標(biāo)題:
    *糾錯(cuò)內(nèi)容:
    聯(lián)系郵箱:
    *驗(yàn) 證 碼:

    粵公網(wǎng)安備 44030502002758號(hào)