TS03 separation de source
TS03 separation de source
概述
盲原分离解决多输入多输出问题中,在输出信号中输入信号混杂的情况。
区分不同的情况,将\(N<n\)的情况称为欠定sous déterminé
,将\(N>n\)的情况叫做超定sur déterminé
。
除此之外,也可以根据信号混合方式(线性组合,卷积)和是否有延迟来分类。
主成分分析 ICA
主成分分析要求\(N = M\)。这里我们不涉及更加深入的原理。简单来说,我们首先估计信号的方差\(\Sigma_y\),然后得到白化信号\(Z = \Sigma_y^{-1/2}y\),最后选择合适的旋转矩阵\(R(\theta)\),使得最终估计的\(\hat{x}=R(\theta) z\)。通常可以使用峰度作为选择旋转矩阵的判据。在期望为\(0\)的假设下,峰度可以写作:\(k_x = E(x^4)/E(x^2)^2\)。
下图为一个示例,展示了在盲源分离过程中\((x[0],x[1])\)的变化。
左图为混合前信号,右图为混合后信号。
左图为白化之后的信号,右图为乘以旋转矩阵之后估计的原始信号。从音频来听,已经实现分离。
DUET
DUET是一种处理欠定问题的方式。这里也是仅展示一般步骤。
我们选择的信号为三个声源,两个麦克风。
首先我们绘制两个声道的时频图:
然后将时频图展平为一维向量,假设为\(s1,s2\),绘制\((s1,s2)\),可以隐约看到有三个峰。使用hist
函数绘制点在不同角度下的分布可以看的更加明显。
分别选择三个峰对应的点群,即可分离信号。
非负矩阵分解 NMF
Séparation de Sources avec NMF.pdf
概述
数据通常表示为矩阵形式:
字典学习,低秩近似,因子分析,潜在语义分析等方法,通常会将/将矩阵分解为字典矩阵和行为矩阵的乘积:
以实现降维,拆分(源分离),插值等工作。
非负矩阵分解要求:
数据 \(V\) 以及因子 \(W,H\) 具有非负的值。
- 因子 \(W\) 的非负性确保了字典的可解释性,因为模式 \(w_k\) 和样本 \(v_n\) 属于相同的空间。
- 因子 \(H\) 的非负性倾向于生成基于局部特征的表示,因为禁止使用减法组合。
NMF的优化问题
\(W\)和\(H\)通常由优化得来,具体来说,我们选择\(WH\),以最小化:
\[ \min _{\mathbf{W}, \mathbf{H} \geq \mathbf{0}} D(\mathbf{V} \mid \mathbf{W H})=\sum_{f n} d\left([\mathbf{V}]_{f n} \mid[\mathbf{W H}]_{f n}\right), \]
其中,\(d\)是一个标量损失函数。
一种常用的选择是\(\beta\)散度:
\[ d_\beta(x \mid y) \stackrel{\text { def }}{=}\left\{\begin{array}{cl}\frac{1}{\beta(\beta-1)}\left(x^\beta+(\beta-1) y^\beta-\beta x y^{\beta-1}\right) & \beta \in \mathbb{R} \backslash\{0,1\} \\x \log \frac{x}{y}+(y-x) & \beta=1 \\\frac{x}{y}-\log \frac{x}{y}-1 & \beta=0\end{array}\right. \]
\(\beta\)的不同取值对应了不同的散度形式
- 平方欧几里得距离 / 二次损失(\(β=2\))
- 广义
Kullback-Leibler
(KL)散度(\(β=1\)) Itakura-Saito
(IS)散度(\(β=0\))
性质
- 齐次性:\(d_\beta(\lambda x \| \lambda y)=\lambda^\beta d_\beta(x \| y)\)
- \(d_{\beta}(x||y)\) 是 \(y\) 的凸函数,当 \(1≤β≤2\) 时成立
以\(IS\)散度为例:
\[ d_{\mathrm{IS}}(x \mid y)=\frac{x}{y}-\log \frac{x}{y}-1 \]
最小化准则:
\[ \begin{aligned} \min _{\mathbf{h} \geq 0} C_{\mathrm{IS}}(\mathbf{h}) & =\sum_f d_{\mathrm{IS}}\left(v_f \mid[\mathbf{W h}]_f\right) \\ & =\underbrace{\left[\sum_f \frac{v_f}{\sum_k w_{f k} h_k}\right]}_{C_1(\mathbf{h}) \text { (convex) }}+\underbrace{\left[\sum_f \log \left(\sum_k w_{f k} h_k\right)\right]}_{C_2(\mathbf{h}) \text { (concave) }}+c s t \end{aligned} \]
第一项是凸函数,对于\(\sum_k \lambda_k=1\),有\(f\left(\sum_k \lambda_k h_k\right) \leq \sum_k \lambda_k f\left(h_k\right)\)。设:
\[ \lambda_{f k}=\frac{w_{f k} \tilde{h}_k}{\tilde{v}_f}=\frac{w_{f k} \tilde{h}_k}{\sum_j w_{f j} \tilde{h}_j} \]
其中\(\tilde{h} \in \mathbb{R}_{+}^K\)为当前估计,\(\tilde{v}=W \tilde{h}\)为当前近似。有:
\[ \begin{aligned} C_{\mathrm{IS}}(\mathbf{h}) & =\sum_f v_f\left(\sum_k w_{f k} h_k\right)^{-1}=\sum_f v_f\left(\sum_k \lambda_{f k} \frac{w_{f k} h_k}{\lambda_{f k}}\right)^{-1} \\ & \leq \sum_{f k} v_f \frac{\lambda_{f k}^2}{w_{f k} h_k}=\sum_{f k} w_{f k} \frac{v_f}{\tilde{v}_f^2} \frac{\tilde{h}_k^2}{h_k}=G_1(\mathbf{h} \mid \tilde{\mathbf{h}}) . \end{aligned} \]
第二项是凹函数,满足\(g(\mathbf{h}) \leq g(\tilde{\mathbf{h}})+\nabla g(\tilde{\mathbf{h}})^{\top}(\mathbf{h}-\tilde{\mathbf{h}})=\sum_k[\nabla g(\tilde{\mathbf{h}})]_k h_k+c s t .\)
其中,\(\left[\nabla C_2(\tilde{\mathbf{h}})\right]_k=\nabla_{h_k} C_2(\tilde{\mathbf{h}})=\sum_f \frac{W_{f k}}{\tilde{v}_f} .\),因此有:
\[ G_2(\mathbf{h} \mid \tilde{\mathbf{h}})=\sum_{f k} \frac{w_{f k}}{\tilde{v}_f} h_k+c s t . \]
由此,我们将损失函数替换为:
\[ \begin{aligned}G(\mathbf{h} \mid \tilde{\mathbf{h}}) & =G_1(\mathbf{h} \mid \tilde{\mathbf{h}})+G_2(\mathbf{h} \mid \tilde{\mathbf{h}})+c s t \\& =\sum_{f k} w_{f k}\left[\frac{v_f}{\tilde{v}_f^2} \frac{\tilde{h}_k^2}{h_k}+\frac{1}{\tilde{v}_f} h_k\right]+c s t .\end{aligned} \]
通过对目标函数的梯度设为 0,得到以下乘法更新规则:
\[ h_k=\tilde{h}_k\left(\frac{\sum_f w_{f k} v_f\left[\tilde{v}_f\right]^{-2}}{\sum_f w_{f k}\left[\tilde{v}_f\right]^{-1}}\right)^{\frac{1}{2}} \]
在实践中,通过依次更新\(H\)和\(W\)来实现参数更新。
\[ \begin{aligned}& \mathbf{H} \leftarrow \mathbf{H} \cdot\left(\frac{\mathbf{W}^T\left[(\mathbf{W H})^{\cdot(\beta-2)} \cdot \mathbf{V}\right]}{\mathbf{W}^T[\mathbf{W H}] \cdot(\beta-1)}\right)^{\gamma(\beta)} \\& \mathbf{W} \leftarrow \mathbf{W} \cdot\left(\frac{\left[(\mathbf{W H})^{\cdot(\beta-2)} \cdot \mathbf{V}\right] \mathbf{H}^T}{[\mathbf{W H}] \cdot(\beta-1) \mathbf{H}^T}\right)^{\gamma(\beta)}\end{aligned} \]
通过这种方法,我们可以避免传统梯度下降算法中,可能会出现的导致矩阵为负的情况。
为了更清晰的看到这一点,我们再讨论一个Euclidean距离的例子(https://www.cnblogs.com/xingshansi/p/6670214.html)
优化问题为:
\[ \min D_E(V \| W H)=\frac{1}{2}\|V-W H\|_2^2 \]
如果使用梯度下降算法:
\[ \begin{aligned} &\begin{aligned} & w_{i k} \leftarrow w_{i k}-\mu_{i k} (-\left[(V-W H) H^T\right]_{i k})\\ & h_{k j} \leftarrow h_{k j}-\eta_{k j} (-\left[W^T(V-W H)\right]_{k j}) \end{aligned} \end{aligned} \]
设:
\[ \mu_{i k}=\frac{w_{i k}}{\left[W H H^T\right]_{i k}}, \quad \eta_{k j}=\frac{h_{k j}}{\left[W^T W H\right]_{k j}} \]
则可将原本的优化问题转化:
\[ \begin{aligned} & w_{i k} \leftarrow w_{i k} \frac{\left[V H^T\right]_{i k}}{\left[W H H^T\right]_{i k}} , & h_{k j} \leftarrow h_{k j} \frac{\left[W^T V\right]_{k j}}{\left[W^T W H\right]_{k j}} \end{aligned} \]
NMF的语音建模
在NMF中,接收到的信号被认为是一系列独立随机向量的线性组合。根据这个假设,我们可以推得使用IS散度的合理性。
但必须说明的是,这个简单的建模方法有许多问题,比如一个声源的信号是否能被简单的表示为一个随机变量,一个随机变量中包含的信息是否足以重构一个信号。
另一个问题是,NMF本质上是一种对信息的压缩。在分离过程中,需要经过压缩和重构的过程。\(r\)越小,损失的信息就越多,信号的重构就越差,更不用说分离。而在这个假设下,\(r\)与音源数量绑定,很不合理。
如上图是一个2声源问题,但\(r = 2\)很明显不足以完成信号重构。
同时,显然这个模型不支持同时多个麦克风。
正弦信号的分离
抛开之前讨论的问题,我们来看一个简单的正弦信号的分离问题。待信号如下
首先我们计算时频图,并对频谱图进行NMF计算,得到的W和H两个矩阵的行和列分别包含了两个被分离的信号的频率和时间信息。可以看到这些信息基本对应于我们的设定。
随机,我们叉乘两个矩阵的对应行列,得到两个重构的时频图,并得到两个分离的信号
可以观察到除了在不连续处表现较差之外,整体表现不错。
NMF的改进:MNMF
回到先前描述过的问题,实际上上述的方法基本只能对极其简单的问题生效。对于语音混合,音乐混合不能有有效的重构和分离。为此,一种解决方法是应用MNMF,这是https://ieeexplore.ieee.org/document/5229304中提到的一种解决方案:
简单来说,在这种模型的假设中,声源而不是接收到的信号被假设为随机变量的和。换言之,我们期待直接使用\(WH\)重构音源,而非接收到的信号。同时我们使用\(Q\)来将估计的声源信号线性组合转化为估计的麦克风接收的信号。在优化过程中,\(Q,W,H\)将被同时优化。
这样做解决了声源信号本身的复杂性问题,也将压缩率与声源数量分离。实际上,我们可以对不同的声源选择不同的\(r\),通常对于音乐可以选择比语音更大的\(r\)。通过调整\(Q\)的尺寸,引入多个音源也成为可能。
这种方法相当有效,但由于主题是音源分离,我只能在此展示几个分离之后时频图:
人声和音乐的分离
电吉他和合成器的分离
人声的分离
但必须要提到的是,上述结果都是在麦克风数量等于音源数量的情况下的结果。如果是欠定情况,尤其对于人声的分离,可能会得到两个人声声源被分到同一个分离声道的情况,这可能是由于MNMF的假设允许了一个声源中包含多个随机变量导致的。
参考
[1]Multichannel Nonnegative Matrix Factorization in Convolutive Mixtures for Audio Source Separation | IEEE Journals & Magazine | IEEE Xplore’. Accessed: Nov. 29, 2024. [Online]. Available: https://ieeexplore.ieee.org/document/5229304
[2]P. Smaragdis and J. C. Brown, ‘Non-negative matrix factorization for polyphonic music transcription’, in 2003 IEEE Workshop on Applications of Signal Processing to Audio and Acoustics (IEEE Cat. No.03TH8684), Oct. 2003, pp. 177–180. doi: 10.1109/ASPAA.2003.1285860.
[3]非负矩阵分解(2):算法推导与实现 - LeeLIn。 - 博客园’. Accessed: Nov. 29, 2024. [Online]. Available: https://www.cnblogs.com/xingshansi/p/6670214.html
[4]AshishAbrahamSamuel/Music-Source-Seperation-using-NMF’. Accessed: Nov. 29, 2024. [Online]. Available: https://github.com/AshishAbrahamSamuel/Music-Source-Seperation-using-NMF/tree/main
[5]https://www.irit.fr/~Cedric.Fevotte/talks/icassp2022.pdf