D-TDNN icon indicating copy to clipboard operation
D-TDNN copied to clipboard

针对论文的一些疑问

Open xuanjihe opened this issue 4 years ago • 10 comments

您好,我觉得您的工作-DTDNN,在参数比较少的情况下获得了较ETDNN,FTDNN更好的结果,我认为这非常有意义。但是我对论文的实验存在两处疑惑: 1、论文中Table5中,基于softmax训练的D-TDNN模型Cosine的结果好于PLDA,在上面的TDNN,ETDNN,FTDNN的结果不一致(均是PLDA好于Cosine),请问这是什么原因导致的? 2、对于null branch,能稍微解释一下吗?

xuanjihe avatar Nov 17 '20 07:11 xuanjihe

1、我个人猜测的原因:

  • LDA+PLDA是基于原始的embedding再次投影,中间有信息损失,对于精度已经很高的模型可能会有负面影响。
  • D-TDNN的网络宽度显著低于E-TDNN、F-TDNN,并且D-TDNN的embedding层直接连接到分类层,这两点会影响embedding的信息分布,在投影时受到的影响不同。

* 去除LDA、增加D-TDNN(最后一个transition层)的宽度可以减少Cosine和PLDA打分的差距。

2、TDNN分支+null branch(全零分支)是多TDNN分支的弱化版本,这个分支直接默认输出特征图全为0,只需要考虑attention权重的计算,优点是增加的计算量很低。全零分支的意义和squeeze-and-excitation类似,比如某些通道包含噪音,需要抑制这些位置的信号。

yuyq96 avatar Nov 17 '20 09:11 yuyq96

1、你这边的Cosine打分,也是要经过LDA的吗? 2、关于short-term 和long-term,有没尝试过像ECAPA-TDNN那样,将不同层的特征summar到RELU-FNN之后,这样可以节省参数。

xuanjihe avatar Nov 17 '20 10:11 xuanjihe

1、Cosine不使用LDA。 2、Dense connection和你提到的residual connnection没有本质的区别,在参数量和拟合能力上会有一定的差异,和具体设置有关,此处不展开讨论。我在论文中有提到multi-stage aggregation,因此D-TDNN本身有多层拼接,会起到short-term和long-term结合的效果,而SS是进一步强化,并且相比于没有使用SS的情况,short-term经过了更多的神经网络层,分辨率更高,还有附带的channel recalibration效果。

yuyq96 avatar Nov 17 '20 11:11 yuyq96

谢谢您的回答!

xuanjihe avatar Nov 18 '20 04:11 xuanjihe

再请教一个问题,TDNN+ softmax + PLDA,我们的实验结果是EER = 3.2%左右,您论文中的结果是2.34%,请问一下是有什么trick吗?

xuanjihe avatar Nov 18 '20 09:11 xuanjihe

调整训练参数,在Kaldi里面也可以得到差不多的结果。

yuyq96 avatar Nov 18 '20 10:11 yuyq96

你没有用pytorch跑过吗?

xuanjihe avatar Nov 18 '20 11:11 xuanjihe

论文的结果是pytorch跑的,模型都放出来了。这里是说kaldi调整参数之后的结果也差不多。

yuyq96 avatar Nov 18 '20 11:11 yuyq96

TDNN的训练脚本能看放出来看一下吗?跟我的差距有点大,或者你可以看我的代码

xuanjihe avatar Nov 18 '20 11:11 xuanjihe

建议你直接按照论文里的训练参数跑,或者进一步参考Interspeech_2019/pdfs/2357.pdf 截屏2020-11-18 19 32 00

yuyq96 avatar Nov 18 '20 11:11 yuyq96