续上一篇文章说话人识别中PLDA的背景与训练,在这里,我进一步把PLDA的打分过程进行推演。说实话,two-covariance PLDA打分的数学部分,比训练模型部分还要复杂和困难;这部分也鲜有博客或文章去分析,但能理解一次,对于提升back-end算法是有帮助的。

接下来,正文中关键公式的编号将延续上一篇文章的排序,变量代表的含义将重新赋予。


在论文《Probabilistic Linear Discriminant Analysis》(后叫[论文])里的第3节第3段,提到训练过程中重估了的类间方差和类内方差,要求前者[公式]是半正定(positive semi-definite),后者[公式]是正定(positive definite)。根据线性代数,两者可以被同时对角化,能通过solving a generalizaed eigenproblem,存在一个非奇异矩阵[公式]和对角矩阵[公式],使得[公式]转换为单位矩阵[公式]:


在Kaldi的PLDA参数中,保存的是上面[公式]和[公式]两个参数,而不是直接保存类间方差[公式]和类内方差[公式],目的是方便随后的高斯分布假设,和能快速套用affine公式映射得到相应因子,这对于百万级库存比对是很有意义的。另外,PLDA的打分过程,是利用训练模型进行规整转换和计算LLR的,没有额外与测试集(注册集vs验证集)相关的先验信息可利用,是开集任务。

接着,假设存在矩阵[公式],其满足:


所以,任一原始样本[公式],会满足:

[公式]

    其中,

    • [公式]是全部[公式]的均值向量;
    • [公式]可看作映射空间;
    • [公式]是[公式]映射后,成为任一类别(不是指训练集中的已知类别)的一个因子样本。

    对于因子样本[公式]的所属类别,假设存在类别中心[公式]。此时,我们要做出一个假设,假设测试集的样本[公式]都接近于高斯分布,会有[公式]和[公式]都满足高斯分布:


    到这里点评一下,由于two-convariance PLDA打分的假设,原始测试集样本如果被规整到满足高斯分布,则PLDA效果会变得很显著;如果被规整后的方差接近于训练集的,则cross-domain问题会进一步减轻(二阶统计量更关键)。

    接着,在我们计算LLR之前,我们需要先推导出[论文]第3.1节的公式(3)。根据贝叶斯公式,


    其中,

    [公式]

    所以,


    其中,[公式]等符合高斯分布,有各自对应的概率密度函数:


    代入式子[8],可推导


    对照标准的高斯分布概率密度函数,例如公式[9],能得到均值和方差为:

    [公式]

    能证[论文]第3.1节的公式(3):

    [公式]

    好了,得到上式之后怎么去计算LLR呢?

    PLDA,具有很好的泛化性,能推理出未在训练集出现过的类别。测试集存在一众的类别,这些类别都是在注册集中已知的,假设存在已被[公式]转换后的注册样本[公式],[公式],代表第[公式]个注册模型;对于验证集的某一样本因子[公式],我们可以计算出给定[公式]的情况下,[公式]的极大似然概率,也就是[公式],这是我们的目的。

    另外,在说话人识别中,每位注册人是允许有多句不等的注册音频,在Kaldi的ivector-plda-scoring中也有--num-utts参数去说明spk_xvector.scp的每个说话人向量分别代表着多少条注册音频去平均所得。所以,当注册模型[公式]有[公式]条独立无关的注册音频,则表示为:

    [公式]

    其均值向量spk_xvector.ark是:

    [公式]

    并有:


    同理可证,[公式]与[公式]之间的概率分布如下:


    对照标准的高斯分布概率密度函数,能对公式[10]进一步完善:

    [公式]

    有了上式[11],就可以去证明[论文]第3.1节的公式(4)的变体。

    对于待识别因子[公式]与注册因子[公式],两者的似然概率[公式]满足高斯分布,其均值与方差用分部积分和公式[11]继续推导,均值如下:


    方差如下:

    [公式]

    这里还有一个要独立计算的[公式]部分:



    其中,[公式]能看作是[公式],其可计算如下:

    [公式]

    代回公式[12],继续推导:


    所以,似然概率[公式]的方差是:


    综上,可证[论文]第3.1节公式(4)的变体:

    [公式]

    上式表达,给定某一组[公式]注册模型,计算出[公式]的似然概率。对于说话人识别的打分问题,我们要做出两种假设,一是假设注册vs验证是同一个class,第二个是它们属于不同class,对假设一和假设二做比,就是LLR的最终结果,如下:

    [公式]

    其中,分子联合概率以下式计算可得:

    [公式]

    点评,用PLDA打分的话,同一对的注册vs验证替换为验证vs注册的话,分数是会有些许波动,以百分制计算波动在1分以内;这是因为有[公式]这个类别因子的影响。


    文章来源知乎,本文作者:Leon晋