3.7 Attention model intuition 注意力模型直观理解
在之前的机器翻译模型中,将整个句子输入进encoder network中进行记忆,再统一输出。在句子过长的时候,表现会逐渐下降。
对于人类而言,都是先翻译一部分,再翻译一部分,而不是将整个一句话记忆下来再统一翻译的。
注意力模型就更类似于人类的翻译方法,可以让Bleu score在长句子时,也不会下降。
当你决定第一个输出的时候,哪一部分法语句子需要考虑进去。alpha表示了注意力大小。
α表示决定第一个输出时,第一个输入单词的注意力大小;
α表示决定第一个输出时,第二个输入单词的注意力大小。
α表示决定第三个输出时,第t个输入单词的注意力大小。它依赖于双向传播RNN在时间t的激活函数,正向和反向都要考虑;还依赖于前一个时间点的状态S2。
3.8 Attention model 注意力模型
a
然后单向传播RNN进行翻译后的输出。
对注意力权重α
context vector内容向量c则是注意力权重和激活函数相乘后求和。
α
使用softmax使得α
计算数值e,使用一个小型的神经网络,s是前一个时间点的隐藏状态。使用反向传播和梯度下降来学习这个function。
注意力参数的个数为Tx乘Ty。
在image captioning中,也会用到类似的结构。看一张图,当你输出一个caption时只关注图片的某些部分。
可视化注意力权重,可以看出这个词和哪个词最相关。
3.9 Speech recognition 语音识别
对于音频数据要进行预处理,将raw audio clip转成spectrogram。x轴是时间,y轴是频率,不同颜色的强度展示了能量的大小。
phonemes,hand-engineered basic units of cells。这些手工标注的特征,在深度学习中不再需要了。
在语音识别中,输入的时间点非常多,远大于输出的时间点。
比如有一个10秒的音频,100Hz,因此每秒都由100个sample,最后构成1000个输入。
但是输入可能不会有1000个字母。
CTC的损失函数让RNN生成这样的输出,ttt_h_eee___ ___qqq__
它的基本规则是通过blank,来collapse分解重复的字符。最后可将这个序列分解成t,h,e,space,q。
通过blank我们可以将19个字符的句子,用1000个输出来表示。
3.10 Trigger word detection 触发字检测
通过关键词唤醒设备。
假设蓝色竖线的位置是正好某人说完关键词的位置。
将音频数据输入RNN,观察输出的target。
训练集中,在说关键词的时候输出都设为0,在关键词结束的时候输出变为1。
但是这样0会远远多于1的个数,因此我们可以在1后面多增加几个1。
领取专属 10元无门槛券
私享最新 技术干货