独立成分分析(Independent component analysis, ICA)
作者:桂。
時間:2017-05-22?12:12:43
鏈接:http://www.cnblogs.com/xingshansi/p/6884273.html?
前言
今天群里冒出這樣一個問題:群里誰有INFORMAX語音分離源程序?看到要程序的就頭大,這是一個盲源分離問題,之前沒有推導過,借此過一遍思路。
一、問題描述
經典的雞尾酒宴會問題(cocktail party problem)。假設在party中有n個人,他們可以同時說話,我們也在房間中一些角落里共放置了n個聲音接收器(Microphone)用來記錄聲音。宴會過后,我們從n個麥克風中得到了一組數據,i表示采樣的時間順序,也就是說共得到了m組采樣,每一組采樣都是n維的。我們的目標是單單從這m組采樣數據中分辨出每個人說話的信號。
???? 將第二個問題細化一下,有n個信號源,,每一維都是一個人的聲音信號,每個人發出的聲音信號獨立。A是一個未知的混合矩陣(mixing matrix),用來組合疊加信號s,那么
???? x的意義在上文解釋過,這里的x不是一個向量,是一個矩陣。其中每個列向量是,?,表示成圖就是:
??的每個分量都由的分量線性表示。A和s都是未知的,x是已知的,我們要想辦法根據x來推出s。這個過程也稱作為盲信號分離。
???? 令,那么
???? 將W表示成
???? 其中,其實就是將寫成行向量形式。那么得到:
?????
?ICA的主要任務是估計解混矩陣W。
?
二、理論求解(不感興趣可跳過)
A-理論基礎
標準ICA理論有幾個支撐點:
1)各源信號統計獨立;
2)至多有一個源信號服從Gauss分布
對于,并假設,則有:
另一方面,對于任意正交矩陣:,令:
可見混合矩陣無法有效估計。?
3)混合矩陣為方陣
B-理論求解
1-中心極限定理:
中心極限定理表明:對于混合信號,其概率密度比任何一個源信號的概率分布都接近高斯分布;反過來,最大化信號的非高斯性與最大化信號的統計獨立性是一致的,只是ICA的基本原理。
2-非高斯性度量
a)利用統計量
峭度(kurtosis)
峭度基本性質:
b)利用信息論知識
熵的定義:
負熵:
給出基于KL散度的定義:
互信息:
考慮負熵的定義,上式重寫為:
該式表明:最小化互信息等價于最大化負熵。
對于負熵,有時為了簡化常用近似的方法:
上面的逼近通常不夠理想,改進版的近似:
其中,且:
c)利用概率估計
?利用MLE準則進行參數估計。
?
三、算法實現
給出利用概率估計的算法原理,準則函數(取對數):
其中:,從而。這里的g表示概率密度,可以用sigmoid函數,也可以用tan函數等等,以sigmoid函數為例:
由于:,利用梯度下降法求解。給出梯度的計算公式:
給出主要code實現:
for iter=1:length(anneal)iter% Randomly interate through the samples running stochastic gradient descentrowIndices = randperm(m);for i = 1:length(rowIndices)rowIndex = rowIndices(i);% Perform the ICA stochastic gradient descent updateW = W + anneal(iter) * ((ones(n,1)-2*ones(n,1)./(ones(n,1)+exp(-W*mix(rowIndex,:)')))*mix(rowIndex,:) + (W')^-1);end end;?
四、其他
A-ICA的不確定性
1-分離信號幅度與初始相位的不確定性
信源信號S和混合矩陣A:
可以看出,對于實數信號產生幅度不確定性,對于復數信號,產生幅度與相位的不確定性。
幅度的不確定性可以采用假設信號單位方差的方法修正。
2-分離信號的次序不確定性
P是任意置換矩陣,這就造成了分離信號次序的不確定性。
B-ICA中的預處理
1-中心化
ICA算法中,均值為零可以使得很多相乘項為零,簡化算法復雜性。
2-白化處理
B為白化矩陣。白化操作之前有介紹,白化處理已經包含了中心化。ICA中的白化通常指滿秩的白化。
白化的本質就是旋轉+方差單位化。白化操作是去除信號的相關性,以基于信息論的ICA為例,各個概率密度獨立是理論假設的基本前提。
?
參考
- http://www.cnblogs.com/jerrylead/archive/2011/04/19/2021071.html
轉載于:https://www.cnblogs.com/xingshansi/p/6884273.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的独立成分分析(Independent component analysis, ICA)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简略的帧动画
- 下一篇: 有关“双重检查锁定失效”的说明