开源语音识别工具K2关键算法解读(一)训练部分

Encoder模块
step1:encoder_embed。对输入特征[N,T_origin,F]进行跳帧操作转换为特征[N,T_origin//subsampling,D]。在下文中为了方便表示,统一将T_origin//subsampling表达为T。D表示映射维度。

step2:encoder_pos。相对位置编码。

step3:encoder_layer。主体框架是Conformer[1] 。包含两层全连接、一层multi-head attention、一层卷积层。并使用残差相连。

step3中模型作者对原Conformer做了如下更新:

将layernorm替换为basicnorm:
\frac{x}{\sqrt{E(x^2)+\varepsilon}}

其中 E() 表示在Channel轴求均值, \varepsilon 表示可学习参数,初始值为0.25,学习的是该参数的log值,用的时候取exp,确保是正数。上述公式具体动机可参考[2]

在引入basicnorm后,无需在每一个全连接、multi-head attention及卷积层后进行norm,可直接在一层encoder的最后进行basicnorm。但是需要在每一层的weight和bias上乘一个可学习参数weight_scale和bias_scale。该参数也是在log域学习,用的时候取exp。

ActivationBalancer
前向时统计激活值的范

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值