Deep clustering:Discriminative embeddings for segmentation and separation 简析
1.使用深度聚类的原因
在基于掩蔽的深度学习语音分离框架中,对于说话人相关的任务效果不错,但是对于说话人无关的任务,效果很差,会发生Permutation problem,即无法确定哪些维度上的信号属于目标声源,哪些维度属于干扰声源。
所以针对这个情况,Hershey 等人提出了一种深度聚类DPCL(DeeP CLustering)方法。DPCL没有直面label permutation这个问题,而是另辟思路,尝试将每个TF-bin结合它的前后相关信息映射到一个高维的特征上生成spectrogram embeddings,使得其可以更好的被区分开来。这是一种基于深度神经网络的模拟频谱聚类的方法。
2.Spectrogram embeddings
定义输入信号的复数频率谱的特征向量为:Xi=Xt,f,i∈{1,…,N} X_i=X_{t,f},i \in \{1,…,N\} Xi=Xt,f,i∈{1,…,N} 其中,t和f分别表示信号的帧和频率的索引值,为了估计时频谱上的分割结果,需要寻找一种使得嵌入后的结果在新的空间上和目标最接近的方式:Xt,f→vt,f∈RD∗1 X_{t,f}\to v_{t,f} \in R^ {D*1}Xt,f→vt,f∈RD∗1 Xt∗→Vt∗∈RDF∗1 X_{t*}\to V_{t*} \in R^ {DF*1}Xt∗→Vt∗∈RDF∗1 V=fθ(X) V=f_\theta(X) V=fθ(X) $ X_{t,f}表示单个TF−bin,表示单个TF-bin,表示单个TF−bin, X_{t*}表示一帧。考虑单位嵌入的情况,即使得表示一帧。考虑单位嵌入的情况,即使得表示一帧。考虑单位嵌入的情况,即使得 {|v_i|}^2 ,其中,其中,其中 v_i={v_{i,d}}。而。而。而 v_{i,d} $表示第i个元素的第d维的值。得到embedding $ v_{t,f} 之后,接一个分类算法,将类别转换为binarymask。令之后,接一个分类算法,将类别转换为binary mask。
令之后,接一个分类算法,将类别转换为binarymask。令 Y={y_{i,c}}$ 表示目标嵌入结果,它将元素i映射到C个类别上,当元素i属于第c类时有yi,c=1y_{i,c}=1yi,c=1。此时 $YY^T $ 是一个表征聚类分配结果的二值亲和矩阵,即当元素i和元素j属于同一个类别时,(YYT)i,j=1(YY^T)_{i,j}=1(YYT)i,j=1,否则(YYT)i,j=0(YY^T)_{i,j}=0(YYT)i,j=0。通过学习和输入样本X相关的亲和矩阵VVTVV^TVVT ,即目标函数为:
KaTeX parse error: No such environment: align at position 7: \begin{̲a̲l̲i̲g̲n̲}̲
{\boldsymbol\… 该目标函数使得估计出的亲和矩阵VVTVV^TVVT和理想亲和矩阵YYTYY^TYYT之间的距离最小。
3.评价
传统的频谱聚类的方法都是基于对归一化的亲和矩阵的本征值分级,到那时这些方法都具有很高的计算代价和浅层学习问题,如果是使用简单的核函数从而产生较为稀疏的亲和矩阵,那么就需要大量计算从而进行后续的频谱聚类。复杂的核函数会使得前段的处理变得困难。而基于深度聚类的方法通过深度神经网络学习频谱的每个时频区域的嵌入向量,使得同一个源信号占主要地位的时频单元之间的距离最小而不同源信号占主要地位的时频单元之间的距离最大,有效的实现了频谱聚类。