结构图及解析
- 输入:每个miniBatch的数据格式为(N, C, H, W),N为batch_size, C为通道数,此处的数目为3,顺序为(fbank二阶倒数)delta2 (fbank一阶倒数)delta1 fbank, H文章中为时间帧数,该参数是可变的,但是在每个miniBatch中是一样的, W为每帧的特征数目,文章中取值为64。
- Deep architecture:
ResCNN
dim参数的理解请参照图下边的蓝色注释,拿第一层卷积层为例,原输入为H(T,时间帧数)64(特征维度)3(通道数),第一层卷积层的kenel大小为55,stride为22,则输出的 特 征 维 度 = 64 + 2 ∗ 2 − 5 2 = 32 特征维度=\frac{64+2*2-5}{2}=32 特征维度=264+2∗2−5=32,输出通道数为64,所以 d i m = 32 ∗ 64 = 2048 dim=32*64=2048 dim=32∗64=2048,每一个CNN后dim=2048。 - Average Sentence:本来数据为三维的,分别代表 时间帧数×每帧特征数×通道数,将时间平均,这样一段语音就对应一段特征了,而不是每一帧都对应一段特征。
- Length Normalization:将特征进行归一化处理,变成均值为0,方差为1,目的是方便后续进行triplet loss中ap和an之间的相似度计算。
- 训练策略:1. 负样本挑选(预训练): semi-hard-examples: 保持ap不变,挑选an,满足 s i a n + α > s i a p > s i a n s_{i}^{an}+\alpha>s_{i}^{ap}>s_{i}^{an} sian+α>siap>sian。
注:hard-examples: 保持ap不变,挑选最高相似度的an作训练
- softmax+cross entropy(预训练)
- refine: softmax + triplet loss