機器學習(十三)——獨立成分分析(ICA)

13 獨立成分分析(ICA)

和PCA類似找到一組新的向量組來表示原樣本數據,但是和PCA又完全不同。

先假設有某個樣本數據 sRns \in R^n,這個數據是由 nn 個獨立的來源(independent sources)生成的。我們觀察到的則爲:

x=As,x = As,

上面式子中的 AA 是一個未知的正方形矩陣(square matrix),叫做混合矩陣。 通過重複的觀察,我們就得到了訓練集 {x(i);i=1,...,m}\{x^{(i)} ; i = 1, . . . , m\},然後我們的目的是恢復出生成這些樣本 x(i)=As(i)x^{(i)} = As^{(i)} 的原始聲音源 s(i)s^{(i)}

s(i)s^{(i)} 就是一個 nn 維度向量表示第ii次錄音,而 sj(i)s_j^{(i)} 是第 jj 個說話者在第 ii 次錄音時候發出的聲音。x(i)x^{(i)} 同樣也是一個 nn 維度向量,而 xj(i)x_j^{(i)}是第 jj 個話筒在第 ii 次錄製到的聲音。(每次的錄音是一個樣本數據x(i)x^{(i)},每個話筒錄製到的聲音是一個特徵。)

設混合矩陣 AA 的逆矩陣 W=A1W = A^{-1} 是混合的逆向過程,稱之爲還原矩陣。 那麼咱們的目標就是找出這個 WW,這樣針對給定的話筒錄音 x(i)x^{(i)},我們就可以通過計算 s(i)=Wx(i)s^{(i)} = Wx^{(i)} 來還原出來聲音源。爲了方便起見,我們就用 wiTw_i^T 來表示 WW 的第 ii 行,這樣就有:
w=[w1TwnT] w=\begin{bmatrix} -w_1^T- \\ \vdots \\ -w_n^T- \end{bmatrix}
這樣就有 wiRnw_i \in R^n,通過計算 sj(i)=wjTx(i)s_j^{(i)} = w_j^T x^{(i)} 就可以恢復出第 jj 個聲源了。

概率密度的線性變換

ss 是一個向量值的分佈,密度函數爲 psp_s,而 x=Asx = As,其中的 AA 是一個可逆的正方形矩陣,那麼 xx 的密度函數則爲:
px(x)=ps(s)W=ps(Wx)W p_x(x) = p_s(s) · |W|=p_s(Wx) · |W|
上式中 W=A1W = A^{-1}

不嚴謹證明:
P(xt)=tpx(x)dxP(Ast)=Wtpx(As)d(As)P(sWt)=Wtpx(As)Ads=Wtps(s)ds \begin{aligned} &P(x\leqslant t)=\int^t_{-\infty}p_x(x)dx\\ \Rightarrow &P(As\leqslant t)=\int^{Wt}_{-\infty}p_x(As)d(As)\\ \Rightarrow &P(s\leqslant Wt)=\int^{Wt}_{-\infty}p_x(As)· |A|ds=\int^{Wt}_{-\infty}p_s(s)ds\\ \end{aligned}
所以可以得出:
px(As)A=ps(s)px(x)A=ps(Wx)px(x)=ps(Wx)W \begin{aligned} &p_x(As) · |A|=p_s(s)\\ \Rightarrow &p_x(x) · |A|=p_s(Wx)\\ \Rightarrow &p_x(x)=p_s(Wx) · |W| \end{aligned}

獨立成分分析算法

我們假設每個聲源的分佈 sis_i 都是通過密度函數 psp_s 給出,然後聯合分佈 ss 則爲:
p(s)=i=1nps(si) p(s)=\prod_{i=1}^n p_s(s_i)
利用上一節推導的共識,這就表明對 x=As=W1sx = As = W^{-1}s 的密度函數爲:
p(x)=i=1nps(wiTx)w p(x)=\prod_{i=1}^n p_s(w_i^T x)\cdot |w|
剩下的就只需要去確定每個獨立的聲源的密度函數 psp_s 了。

我們假設概率函數是g(s)=1/(1+es)g(s) = 1/(1 + e^{-s})。這樣就有,ps(s)=g(s)p_s(s) = g'(s)

WW 是一個正方形矩陣,是模型中的參數。給定一個訓練集合 {x(i);i=1,...,m}\{x^{(i)};i = 1,...,m\},然後對數似然函數(log likelihood)則爲:
l(W)=i=1m(j=1nlogg(wjTx(i))+logW)) l(W)=\sum_{i=1}^m(\sum_{j=1}^n log g'(w_j^Tx^{(i)})+log|W|))
我們要做的就是上面這個函數找出關於 WW 的最大值。通過求導,然後利用前面講義中給出的定理 WW=W(W1)T\nabla_W|W| = |W|(W^{-1})^T,就可以很容易推導出隨機梯度上升公式。對於一個給定的訓練樣本 x(i)x^{(i)},這個更新規則爲:
W:=W+α([12g(w1Tx(i))12g(w2Tx(i))12g(wnTx(i))]x(i)T+(WT)1) W:=W+\alpha\begin{pmatrix} \begin{bmatrix} 1-2g(w_1^T x^{(i)}) \\ 1-2g(w_2^T x^{(i)}) \\ \vdots \\ 1-2g(w_n^T x^{(i)}) \end{bmatrix}x^{(i)T} + (W^T)^{-1} \end{pmatrix}
上式中的 α\alpha 是學習速率。

在算法收斂之後,就能計算出 s(i)=Wx(i)s^{(i)} = Wx^{(i)},這樣就能恢復出原始的音源了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章