TDNN详解

网友投稿 1513 2022-05-30

DNN Neural network architecture

对于一般的DNN在处理上下文时,想法一般是这样的。比如我们想提取具有上下文分别7帧共15帧的特征表达,我们一般会将这15帧的特征直接拼起来,形成一个15*F(F是我们每一帧的特征维度)的特征,然后去学习15*F的特征映射。

而对于TDNN来说不是这样做的,假如我们最后仍然想获取时序上15帧上下文的特征表达。在TDNN的初始层中,会处理比15帧更加窄的时序上下文,然后送入更深的网络。很容易理解,更深的网络的时间分辨率是比底层网络要长的。也就是说,我们将“获取时序上15帧上下文的特征”这个目标交给了更深的网络去完成,而不是用一层网络来完成。 如下图,最下面一层的时间分辨率为5,而最上层的时间分别率是23。

此外,TDNN在同一层,不同time steps上的这个transform参数都是共享的(类似于CNN中的卷积核在整张map上的参数共享)。所以对于TDNN来说,其中的一个超参数就是每一层的input context。

TDNN subsampling

从上图可以看出,TDNN临近time step的特征(非输入层)是有很大的context重叠的。假定这些相邻的time step特征之间是相关的,我们在进行特征拼接输入下一层的时候是不必拼接紧挨着的time step的。也就是说我们可以隔几个time step进行拼接。这些做的话,如上图,红线所示的路径就是我们最后需要计算的部分。

Affine

神经网络的正向传播中进行的矩阵乘积运算在几何学领域被称为“仿射变换(Affine)”

Relu层

激活函数是用来加入非线性因素的,因为线性模型的表达能力不够。

relu,即Rectified Linear Unit,整流线性单元,激活部分神经元,增加稀疏性,当x小于0时,输出值为0,当x大于0时,输出值为x。

relu函数在负半区的导数为0 ,当神经元激活值进入负半区,梯度就会为0,也就是说,这个神经元不会被训练,即稀疏性;

Batchnorm层

BN就是通过一定的规范化手段,把每层神经网络任意神经元这个输入值的分布强行拉回到均值为0方差为1的标准正态分布,其实就是把越来越偏的分布强制拉回比较标准的分布,这样使得激活输入值落在非线性函数对输入比较敏感的区域,这样输入的小变化就会导致损失函数较大的变化,意思是这样让梯度变大,避免梯度消失问题产生,而且梯度变大意味着学习收敛速度快,能大大加快训练速度。

TDNN详解

TDNN没有全连接层,而是将尾端卷积层的输出直接相加通过激励函数得到分类结果。

最后一层全连接层的输出值被传递给一个输出,可以采用softmax逻辑回归(softmax regression)进行分类,该层也可称为 softmax层(softmax layer)。举个例子:

最后的两列小圆球就是两个全连接层,在最后一层卷积结束后,进行了最后一次池化,输出了20个12*12的图像,然后通过了一个全连接层变成了1*100的向量。

这是怎么做到的呢,其实就是有20*100个12*12的卷积核卷积出来的,对于输入的每一张图,用了一个和图像一样大小的核卷积,这样整幅图就变成了一个数了,如果厚度是20就是那20个核卷积完了之后相加求和。这样就能把一张图高度浓缩成一个数了。

神经网络

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:单片机有啥用?现在用的还多吗?
下一篇:【愚公系列】2021年12月 网络工程-虚拟局域网VLAN和Trunk
相关文章