参考资料
相应工具包:bob.learn.em
K-Means
bob.learn.em.KMeansMachine
,bob.learn.em.KMeansTrainer
GMM
- GMM中的EM迭代讲解:Mathematical Monk
- MLE:
bob.learn.em.ML_GMMTrainer
最大似然估计——给定假设的模型参数,查看数据在模型上拟合的程度 - MAP:
bob.learn.em.MAP_GMMTrainer
极大后验概率——给定观测数据和先前假设的模型参数(先验)推算出当前模型参数的概率分布
会话间变化建模
(理论还没学习)
bob.learn.em.GMMStats
:计算0,1,2阶统计量,即数据在模型上的分布统计,其中1,2阶统计量均未进行中心化
- 会话间变化ISV
bob.learn.em.ISVBase
,bob.learn.em.ISVTrainer
理论:假设类内变化存在于GMM的均值超向量组成的空间中的一个线性子空间中,且这些变量可以通过偏移量加以抑制,如MAP自适应中的每个均值。
假设有类,计算得到后,表示每一类的类内变化方向,后期需要被抑制。
参考文献:
Session variability modelling for face authentication
Explicit modelling of session variability for speaker verification
JFA
ISV的扩展,附加假设类间变化在一个低秩矩阵V中,同时估计参数U与V,计算得到与后,需要被抑制,需要被添加。
Ivector
使用总变异矩阵,bob.learn.em.IVectorMachine
,bob.learn.em.IVectorTrainer
线性打分
bob.learn.em.GMMStats.sum_px
(待完善,没听过呀)
PLDA
bob.learn.em.PLDABase
:存放PLDA模型参数
bob.learn.em.PLDATrainer
:创建训练PLDA模型的对象
bob.learn.em.train()
:训练PLDA模型参数(为什么这里就直接是train呢?没有任何特征标识)
bob.learn.em.PLDAMachine
:加载PLDA模型参数plda.compute_log_likelihood()
:计算两个样本拥有一样隐变量的概率(该隐变量即为身份变量)
bob.learn.em.PLDATrainer.enroll()
:预先保存注册信息
bob.learn.em.PLDAMachine.log_likelihood_ratio()
:P(两个样本拥有一致身份)/P(两个样本拥有不同身份)
得分归一化
补偿由于不同注册和验证样本条件的变化而导致的输出分数的统计变化。通过修改系统输出分数的分布,以便更好地应用单一的、全局的阈值。
- Z-Norm:
bob.learn.em.znorm()
- T-Norm:
bob.learn.em.tnorm()
- ZT-Norm:
bob.learn.em.ztnorm()