1. 程式人生 > >ICA(獨立成分分析)方法及應用於視訊分析心跳檢測

ICA(獨立成分分析)方法及應用於視訊分析心跳檢測

本文整理自論文《Non-contact, automated cardiac pulse measurements using video imaging and blind source separation》及ICA相關資料。

獨立成分分析(Independent Component Analysis,ICA),是一種資料驅動的訊號分析方法,常用於盲源分離(Blind Source Separation,BSS)。

盲源分離是指在訊號的理論模型和源訊號無法精確獲知的情況下,如何從混迭訊號(觀測訊號)中分離出各源訊號的過程。盲源分離和盲辨識是盲訊號處理的兩大型別。盲源分離的目的是求得源訊號的最佳估計,盲辨識的目的是求得傳輸通道的混合矩陣。

最典型的盲源分離問題是雞尾酒會問題(Cocktail Party Problem):給定混合訊號,分離出雞尾酒會中同時說話的每個人的獨立訊號。
雞尾酒會問題

ICA原理

預處理
在進行ICA之前通常對資料進行去均值和白化,使用PCA處理,以保證混合矩陣為正交矩陣,且可將採集訊號數目降到與源訊號數目相等。

演算法目標
源訊號 s = [ s

1 , s 2 , . . . , s
i
] T s=[s_{1},s_{2},...,s_{i}]^{T} 經過線性組合得到採集訊號 x = [ x 1 , x 2 , . . . , x i ] T x=[x_{1},x_{2},...,x_{i}]^{T} ,其混合矩陣記為 W W ,即 x = W s x=Ws 。假設 W W 為滿秩矩陣,則存在 W = W 1 W'=W^{-1} 使 s = W x s=W'x ,ICA的目標就是求出矩陣 W W' ,從而從 x x 中還原出源訊號 s s

基本假設

  1. 各源訊號間獨立
  2. 至多有一個訊號服從高斯分佈,混合後訊號不服從高斯分佈
  3. 變換為線性變換,且變換矩陣非時變

主要思路
ICA方法沒有參照目標,需要自組織學習過程。其主要思路為:

  1. 建立以 W W 為變數的目標函式 L ( W ) L(W) ,當 L ( W ) L(W) 取到極值時的 W W 即為所求結果。
  2. 使用優化方法找到 L ( W ) L(W) 的極值,得到最終的 W W

常使用的演算法主要分為基於資訊理論方法基於統計學方法。基於資訊理論方法主要有FastICA,Infomax,最大似然估計等方法,基於統計學方法主要有二階累積量,四階累積量等方法。下面簡要介紹最大似然估計方法。

最大似然估計法
假設單個源訊號 s i s_{i} 的概率密度為 p ( s i ) p(s_{i}) ,則全體源訊號 s s 的聯合分佈為:
p ( s ) = i = 1 n p ( s i ) p(s)=\prod_{i=1}^{n}p(s_{i}) 則經過 x = A s = W 1 s x=As=W^{-1}s 變換後 x x 的概率分佈為:
p ( x ) = i = 1 n p ( w i T x ) W p(x)=\prod_{i=1}^{n}p(w_{i}^{T}x)\cdot|W| 由基本假設得知不能選用高斯累積分佈函式,令 p ( x ) p(x) 的累積分佈函式為sigmoid函式 f ( s ) = 1 1 + e s f(s)=\frac{1}{1+e^{-s}} ,則 p ( x ) = f ( s ) = f ( s ) ( 1 f ( s ) ) p(x)=f'(s)=f(s)(1-f(s)) 。可得關於 W W 的似然函式,式中m表示時間序列。
l ( W ) = j = 1 m ( i = 1 n log p ( w i T x j ) + log W ) l(W)=\sum_{j=1}^{m}(\sum_{i=1}^{n}\log p(w_{i}^{T}x^{j})+\log|W|) l ( W ) l(W) 關於W求導後可得到對於每一個x的梯度更新規則:
W : = W + α ( [ 1 2 f ( w 1 T x ) 1 2 f ( w 2 T x ) 1 2 f ( w n T x ) ] x T + ( W T ) 1 ) W:=W+\alpha \left ( \begin{bmatrix}1-2f(w_{1}^{T}x)\\ 1-2f(w_{2}^{T}x)\\ \vdots \\ 1-2f(w_{n}^{T}x)\end{bmatrix}x^{T}+(W^{T})^{-1}\right )