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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

独立成分分析(Independent component analysis, ICA)

發布時間:2025/3/21 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 独立成分分析(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)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。