为什么深度学习没有演变成宽度学习?为什么模型训练学习率不能太大?为什么CTC呈现尖峰现象而不是平台现象?……

来源丨科大讯飞研究院

作为中国首批开展深度神经网络语音识别研究的机构,科大讯飞研究院早在2010年就开始了对深度学习的研究。在这十几年的AI研究历程中,有大量的学术探讨和积累。
对这些更本质更基础问题的探索,让一个个研究员,在讯飞研究院这个舞台成长为“王牌飞行员”,能够掌握全世界最新的技术进展,也能做好理解和传递,形成新的创新和进步。时至今日,在AI研究门槛大大降低的今天,上述这些问题更加值得玩味,我们也常在面试中用来考察面试者对AI的研究深度。
今天,我们将这些探索和积累,整理成“飞行员秘籍”[[坏笑]],借助公众号这个平台,和大家一起交流,以下为首期内容。



  • Q【困难级】:为什么CTC呈现尖峰现象而不是平台现象?


图1:CTC拓扑结构,实心圈表示字符,至少占用一帧语音帧,空心圈表示blank,允许不占用语音帧

CTC为语音识别中常见的建模技术,训练收敛后,模型输出呈现尖峰现象,只在少数几帧输出字符,其他位置均为blank,得分非常尖锐,如下图所示。

图片

图2:CTC建模尖峰现象,虚线部分均为blank,对应输出字符的实线为尖峰
语音帧10ms一帧,一般一个汉字持续20~30语音帧,CTC尖峰现象表现为只在一帧输出实体字符,其他语音帧均输出blank。物理上,多帧语音帧数据构成实体字符发音。照理说,只少量输出blank,大多数语音帧均输出对应的实体字符,更符合物理上一一映射的直觉思维,也就是平台现象。
★ 那么,我们自然有个疑问,为什么CTC呈现尖峰现象而不是平台现象?

A【参考答案】:按照CTC的拓扑规则,blank允许在任何位置出现,blank的后验概率更高,被激励的次数更多。

由于模型训练是懒惰的,倾向于向损失函数下降最快的方向更新,一开始,让模型先全部预测为blank,正是损失函数下降最快的方向。最后模型训练为了收敛,挤出少数几帧,在最确信的位置输出字体字符,最终形成CTC的尖峰现象。

图3:模型训练初期(a)、中期(b)、末期(c)三个阶段对应的模型输出与错误信号
以上是文字解释,不够直观。为了更形象具体地解释CTC尖峰现象,我们使用高中排列组合知识,推演出模型随机初始化初期时具体的梯度数值。
假设输入语音序列长度T=20帧,对应的文字内容为“王心凌男孩”,字符长度L=5。模型随机初始化时,输出层分布为均匀分布。假设模型以等概率预测各个输出层单元,因此CTC每条合法路径的存在概率也相等。我们可以同一位置上,所有CTC合法路径经过各单元次数的多少,判定梯度更新时对对应单元的激励程度强弱。
图片
图4:所有CTC合法路径中,各时刻各单元出现的次数
图片
图5:将图4按列归一化后的后验概率图,图中红色圈圈为每个时刻最大值
如上图,第一轮模型更新时,所有位置,blank被激励程度都很强,且在绝大多数位置上,被激励程度最强。可想而知,第一轮更新后,模型输出将不再是均匀分布,而是blank更突出。模型输出均匀分布时,blank不占据优势,尚且blank能够在出现次数中脱颖而出。当模型更新后,优势会更明显,直到形成CTC尖峰现象,模型收敛。
以下为具体计算过程,有兴趣的同学可以进一步阅读。
(P.S.回味高中排列组合知识还蛮有趣的[[坏笑]])
  • 排列组合知识回顾


图6:排列组合示例

问题:T帧数据,分成L段,共有几种切法?

答案:T帧之间共有T-1个间隙,切成L段,等价于从T-1个间隙中,选出N-1个,根据排列组合知识,所有可能的组合数为。

  • CTC有多少条合法路径?


CTC拓扑结构,实心圈表示字符,至少占用一帧语音帧,空心圈表示blank,允许不占用语音帧

问题:假设输入语音帧数为T,对应的汉字个数为L,根据如上图所示CTC规则,总共有多少条合法路径?
答案:先按照CTC拓扑结构中有多少个空心球至少占用一帧语音帧,将总路径求解拆解成如下几种情况

情况 L+1:假设CTC拓扑结构中所有L+1个空心球均用至少一帧语音帧,则总路径数为图片
用Path(T,L)表示CTC的总路径数,将上述所有情况求和,得到

图片

  • 有多少条路径在第t帧语音帧,经过第l个字符?

图片


记第t帧语音帧为第l个字符的路径总数为path(t,l),按照上图所示罗列开来,得到

  • 有多少条路径在第t 帧语音帧,经过blank?


备注:图2图3出自Alex Graves博士论文《Supervised Sequence Labelling with Recurrent Neural Networks》