吴恩达第五门-序列模型-第三周7-11学习笔记

吴恩达第五门-序列模型-第三周7-11学习笔记

3.7注意力模型直观理解

本节视频中主要介绍了注意力模型或者说注意力这种思想。
在这里插入图片描述
以RNN神经网络为例,绿色的编码器用来读入整个的句子,记忆整个句子,然后在感知机中传递。而紫色的神经网络会进行解码,生成英文翻译。
对于上图中的这个例子,我们的任务是由法语句子翻译成英语句子。人工翻译不会读入整个的句子,记忆整个句子再去翻译。人工翻译会先翻译出句子的一部分,再看下一部分,并翻译这一部分。由于记忆一整个句子十分困难,人工翻译会一部分一部分地翻译。
我们的编码结构对于短的句子,因为在神经网络中,记忆非常长句子是非常困难的。所以有了注意力模型的出现,使我们的翻译很像人类,一次翻译句子的一部分。
在这里插入图片描述

3.8注意力模型

在这里插入图片描述
注意力模型在生成句子时,更像是人类翻译。
将法语单词逐个输入到RNN之后,计算前向传播和后向传播的激活值,然后用激活值乘以注意力参数,组合成context,context输入隐藏层S。
在这里插入图片描述
a &lt; t , t ′ &gt; a^{&lt;t,t^{&#x27;}&gt;} a<t,t>是你应该花费在 a &lt; t ′ &gt; a^{&lt;t^{&#x27;}&gt;} a<t>上的注意力的数量,当你尝试去生成第t个输出的翻译词,让我们先把式子写下来,再讨论它是怎么来的。这个式子你可以用来计算 a &lt; t , t ′ &gt; a^{&lt;t,t^{&#x27;}&gt;} a<t,t>,在此之前我们要先计算 e &lt; t , t ′ &gt; e^{&lt;t,t^{&#x27;}&gt;} e<t,t>,关键要用softmax,来确保这些权重加起来等于1。如果你对 t ′ t^{&#x27;} t求和,比如每一个固定的t值,这些加起来等于1。如果你对 t ′ t^{&#x27;} t求和,然后优先使用softmax,确保这些值加起来等于1。

3.9语音识别

seq2seq模型在语音识别方面准确性有了很大的提升。本节课中将介绍seq2seq模型是如何应用于处理音频数据的。
在这里插入图片描述
我们的输入x是一个音频片段,任务是要据此生成一段文本y。一个麦克风的作用是测量出其周围的微小的气压变化,而人之所以能听到我的声音,是因为人的耳朵能够探测到这些微小的气压变化,上图中的波形图就是一种对音频特征的描述方式。

应用注意力模型

在这里插入图片描述
我们可以使用上堂课中学习到的注意力模型。我们要做的就是在横轴上,也就是在输入音频的不同时间帧上,用一个注意力模型,来输出文本描述,如"the quick brown fox",或者其他语音内容。

应用CTC损失函数

在这里插入图片描述
用于语音识别的模型往往深度很深,要输入的时间步数量往往要远多于输出的时间步数量。比如我们输入的是一段10秒的音频,并且每秒有100个样本,于是这段10秒的音频片段就会有1000个输入,但输出并没有1000个字母了,或者说没有1000个字符。

CTC损失函数允许RNN生成这样的输出:ttt,这是一个特殊的字符,叫做空白符,我们这里用下划线表示,这句话开头的音可表示为h_eee_ _ ,然后这里可能有个空格,我们用这个来表示空格,之后是 _ qqq_,这样的输出也被看做是正确的输出。下面这段输出对应的是"the q"。CTC损失函数的一个基本规则是将空白符之间的重复的字符折叠起来,再说清楚一些,我这里用下划线来表示这个特殊的空白符,它和空格是不一样的。所以the和quick之间有一个空格符,所以我要输出一个空格,通过把用空白符所分割的重复的字符折叠起来,然后我们就可以把这段序列折叠成"the q"。这样一来你的神经网络因为有很多这种重复的字符,和很多插入在其中的空白符,所以最后我们得到的文本会短上很多。

3.10触发字检测

在这里插入图片描述
上图中给出了一些触发字系统的例子,它们可以被特定的声音指令唤醒并执行某些任务。
在这里插入图片描述
介绍一个能够使用的触发字检测算法,我们要使用RNN结构。先将一个音频片段计算出其对应的声谱图特征得到特征向量 x &lt; 1 &gt; , x &lt; 2 &gt; , x &lt; 3 &gt; x^{&lt;1&gt;},x^{&lt;2&gt;},x^{&lt;3&gt;} x<1>,x<2>,x<3>等,将其放入RNN中。最后定义目标标签y。假如音频片段中的这一点是某人刚刚说完一个触发字,比如"Alexa",或者"小度你好" 或者"Okay Google",那么在这一点之前,你就可以在训练集中把目标标签都设为0,然后在这个点之后把目标标签设为1。。这样的标签方案对于RNN来说是可行的,并且确实运行得非常不错。不过该算法一个明显的缺点就是它构建了一个很不平衡的训练集,0的数量比1多太多了。
这里还有一个解决方法,虽然听起来有点简单粗暴,但确实能使其变得更容易训练。比起只在一个时间步上去输出1,其实你可以在输出变回0之前,多次输出1,或说在固定的一段时间内输出多个1。这样的话,就稍微提高了1与0的比例,这确实有些简单粗暴。在音频片段中,触发字刚被说完之后,就把多个目标标签设为1,这里触发字又被说了一次。说完以后,又让RNN去输出1。

3.11结论和致谢

在这里插入图片描述
大吉大利,深度学习。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值