语音识别核心模型的数学原理和公式
在语音识别中,深度学习模型通过对声学特征的分层学习来实现语音到文本的转换。以下是几个核心模型的数学原理和公式:
1. 循环神经网络(RNN)
RNN通过隐藏状态的循环传递捕获序列依赖关系:
ht=σ(Whhht−1+Wxhxt+bh)h_t = \sigma(W_{hh}h_{t-1} + W_{xh}x_t + b_h)ht=σ(Whhht−1+Wxhxt+bh)
yt=Whyht+byy_t = W_{hy}h_t + b_yyt=Whyht+by
其中:
- xtx_txt 是时刻 ttt 的输入向量
- hth_tht 是时刻 ttt 的隐藏状态
- yty_tyt 是时刻 ttt 的输出
- WWW 和 bbb 是可训练参数
- σ\sigmaσ 是激活函数(如tanh或ReLU)
2. 长短期记忆网络(LSTM)
LSTM通过门控机制解决RNN的梯度消失问题:
it=σ(Wi[ht−1,xt]+bi)i_t = \sigma(W_i[h_{t-1}, x_t] + b_i)it=σ(Wi[ht−1,xt]+bi)
ft=σ(Wf[ht−1,xt]+bf)f_t = \sigma(W_f[h_{t-1}, x_t] + b_f)ft=σ(Wf[ht−1,xt]+bf)
ot=σ(Wo[ht−1,xt]+bo)o_t = \sigma(W_o[h_{t-1}, x_t] + b_o)ot=σ(Wo[ht−1,xt]+bo)
C~t=tanh(WC[ht−1,xt]+bC)\tilde{C}_t = \tanh(W_C[h_{t-1}, x_t] + b_C)C~t=tanh(WC[ht−1,xt]+bC)
Ct=ft⊙Ct−1+it⊙C~tC_t = f_t \odot C_{t-1} + i_t \odot \tilde{C}_tCt=ft⊙Ct−1+it⊙C~t
ht=ot⊙tanh(Ct)h_t = o_t \odot \tanh(C_t)ht=ot⊙tanh(Ct)
其中包含:
- 输入门 iti_tit:控制新信息的流入
- 遗忘门 ftf_tft:控制历史信息的保留
- 输出门 oto_tot:控制当前状态的输出
- 细胞状态 CtC_tCt:长期记忆通道
3. 门控循环单元(GRU)
GRU是LSTM的简化变体,合并了细胞状态和隐藏状态:
zt=σ(Wz[ht−1,xt])z_t = \sigma(W_z[h_{t-1}, x_t])zt=σ(Wz[ht−1,xt])
rt=σ(Wr[ht−1,xt])r_t = \sigma(W_r[h_{t-1}, x_t])rt=σ(Wr[ht−1,xt])
h~t=tanh(W[ht−1⊙rt,xt])\tilde{h}_t = \tanh(W[h_{t-1} \odot r_t, x_t])h~t=tanh(W[ht−1⊙rt,xt])
ht=(1−zt)⊙ht−1+zt⊙h~th_t = (1 - z_t) \odot h_{t-1} + z_t \odot \tilde{h}_tht=(1−zt)⊙ht−1+zt⊙h~t
其中:
- 更新门 ztz_tzt:控制历史信息和当前输入的融合比例
- 重置门 rtr_trt:控制忽略历史状态的程度
4. 卷积神经网络(CNN)
CNN通过卷积操作提取局部特征:
yi,j=∑m=0M−1∑n=0N−1xi+m,j+n⋅wm,n+by_{i,j} = \sum_{m=0}^{M-1}\sum_{n=0}^{N-1} x_{i+m,j+n} \cdot w_{m,n} + byi,j=m=0∑M−1n=0∑N−1xi+m,j+n⋅wm,n+b
其中:
- xxx 是输入特征图
- www 是卷积核权重
- bbb 是偏置
- M×NM \times NM×N 是卷积核大小
5. Transformer模型
Transformer完全基于注意力机制,其核心是多头自注意力:
Attention(Q,K,V)=softmax(QKTdk)V\text{Attention}(Q, K, V) = \text{softmax}(\frac{QK^T}{\sqrt{d_k}})VAttention(Q,K,V)=softmax(dkQKT)V
MultiHead(Q,K,V)=Concat(head1,...,headh)WO\text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, ..., \text{head}_h)W^OMultiHead(Q,K,V)=Concat(head1,...,headh)WO
where headi=Attention(QWiQ,KWiK,VWiV)\text{where head}_i = \text{Attention}(QW_i^Q, KW_i^K, VW_i^V)where headi=Attention(QWiQ,KWiK,VWiV)
其中:
- QQQ、KKK、VVV 分别是查询、键、值矩阵
- dkd_kdk 是键向量的维度
- hhh 是注意力头的数量
端到端语音识别模型
在端到端架构中,CTC(Connectionist Temporal Classification)损失函数被广泛用于处理时序对齐问题:
LCTC(y,π)=−logP(π∣x)\mathcal{L}_{CTC}(y, \pi) = -\log P(\pi|x)LCTC(y,π)=−logP(π∣x)
其中:
- xxx 是输入特征序列
- yyy 是预测的标签序列
- π\piπ 是对齐路径
- P(π∣x)P(\pi|x)P(π∣x) 是给定输入下路径的概率
这些模型通常结合使用,例如CNN提取声学特征,RNN/LSTM/GRU建模时序依赖,Transformer捕获长距离关联,最终通过CTC或注意力机制实现端到端语音识别。