吴恩达Deeplearning.ai 知识点梳理(course 5,week 3)

  本周主要讲了多种sequence to sequence结构,包括conditional language model,beam searching,bleu,attention,speech recognition,以及trigger word detection。

Basic Model

在这里插入图片描述
  一个最基本的model就是这种,前边使用一个Basic RNN/LSTM/GRU的序列,然后输入x(一般都是定长的,不够长补零),然后输入给一个类似sequence generator的结构。由于后边这个sequence generator的初始状态并不是0,因此也称为conditional language model。只要翻译的句子不是特别特别长,这个模型相当管用。

在这里插入图片描述
  另一个与之类似的是Image Captioning,也就是看图说话,简要描述这个图。它是通过前边比方说VGG/Alexnet等分类模型对图像进行特征提取,然后作为condition,输入给一个RNN,然后得到最终的Caption。对于比较短的Caption,这个网络相当有效。

Pick The Most Likely Sentence

在这里插入图片描述
  之前的language model是model了每一个sentence的概率,而这个机器翻译的任务,则是给定了一个句子(例如法语),找打对应英文的句子。因此,它其实就是一个找到最大条件概率的过程:
在这里插入图片描述
  这个找最大条件概率的问题为什么不用贪心算法呢?主要是这样:
在这里插入图片描述
  例如这个句子,Jane is …,由于在翻译is后边的单词的时候,很有可能由于is going比较常见(P(A|B)=P(A,B)/P(B)),导致选择了is going to be visiting。虽说也可以,但是显得比较啰嗦。但是假如我们真的去找最大值的话,计算量又太大了。比方说长度为10,词典大小是10,000,那么计算量就是 1000 0 10 10000^{10} 1000010,这个就太夸张了。

Beam Search

  Beam Search主要就是为了改善这个问题。如下图:
在这里插入图片描述
  第一步的时候,挑选前B个概率比较大的例如In,Jane和September,然后到下一步,下一步就有3x10000个选择,然后从30000个选择里边再挑3个概率比较大的,比方说in September, Jane is, Jane visits,这三个比较大,以此类推,这样的复杂度就是 O ( n L B ) O(nLB) O(nLB),n是词典大小,L是要翻译的句子的长度,B是beam的宽度。比之前的 O ( n L ) O(n^L) O(nL)要好很多了。
  这个其实是一种折中,假如B=1就是贪心,B=n就是全部搜索。

Refinement of Beam Search

在这里插入图片描述
  由于优化的是这个条件概率,所以要把每一个输出的y都乘起来,但是问题是y都小于0,一长了之后,计算机计算这个乘法的精度可能跟不上,所以可以把它们转化成log后,计算加法。然后无论是乘法还是log,由于概率小于1,因此越乘肯定越小,因此要在前边除以一个Ty,也就是输出的长度。根据经验,可以给这个输出的长度做一个 α \alpha α次方,来进行调节,一般是0.7。
在这里插入图片描述
  然后是B的选择,一般来说10个就可以了,很多部署上线的系统,大概100也可。而作为research,肯定是要越大越好,所以很可能1000到10000也是有可能的。

Error Analysis

  由于Beam Search并不总能得到一个最优结果,那么假如效果不好,究竟是Beam Search的锅,还是RNN的锅呢?可以用如下的方法:
在这里插入图片描述
  首先有人类的一个标准翻译,然后拿到机器翻译的结果,分别是 y ∗ y^* y y ^ \hat{y} y^,然后直接输入到翻译系统里边计算条件概率 P ( y ∗ ∣ x ) P(y^*|x) P(yx) P ( y ^ ∣ x ) P(\hat{y}|x) P(y^x)假如前者大,而又做错了,说明Beam Search 没有把好的挑出来,是Beam Search的锅,假如后边大,那说明RNN拟合的有问题,因此是RNN的锅。

Bleu

  Bleu用来计算翻译的好坏的。
在这里插入图片描述
  比方说我MT给出的结果是好几个the,这个肯定不对,但是如果计算precision,the全部都中,那么精度就是7/7,100%,这个肯定不好,那么我们就反过来,reference去命中MT,比方说the,命中2个,那么就是2/7。也就是分母里边一共有7个the,然后reference里边有2个。
  再进一步:
在这里插入图片描述
  用Bigram,也就是两个词的词组,列出来,例如the cat 一共有了两个。cat on 有一个。然后再去看ref里边每一个词组有几个,得到precision,是4/6。
在这里插入图片描述
  这样就可以得到一个n-gram的Bleu score算法。
在这里插入图片描述
  然后得到一个加权+short length penalty的最终版本精度。

Attention Model

在这里插入图片描述
  长句子基本的RNN对短句子很有效,但是对于长句子的准确率下降。如图中所示的例子,如果句子特别长,需要RNN的这种encoder-decoder的模型需要记住所有的词汇之后,才开始翻译。Attention Model 就是为了解决长句子而引入的。通常来说,我们作为人,也不是把一大长句子看完才开始翻译,而是有目标有重点的翻译。因此,attention model也是将部分“重点内容”重点看。
在这里插入图片描述
  如上图所示,首先使用双向RNN对整个句子进行特征提取或者建模吧,然后在上边再叠加一层dot层,也就是每一个翻译的词汇的输出,加权依赖于输入句子的每一个词汇输出。然后这个加权系数是训练出来的。这样就做到了有目标的“重点关注”。
在这里插入图片描述
  具体如何训练这个权重呢?简要的说是将 s &lt; t − 1 &gt; s^{&lt;t-1&gt;} s<t1> a &lt; t ′ &gt; a^{&lt;t&#x27;&gt;} a<t>叠起来,然后通过一个FC层(Dense层),产生一个 e &lt; t , t ′ &gt; e^{&lt;t,t&#x27;&gt;} e<t,t>,然后在对 e &lt; t , t ′ &gt; e^{&lt;t,t&#x27;&gt;} e<t,t>进行softmax,保证后边的线性加权平均(Dot层)的加权系数和等于1。更细节的结构如下图所示:
在这里插入图片描述
这种结构有一个问题就是计算复杂度到了 o ( n 2 ) o(n^2) o(n2),也就是二次的复杂度。
在这里插入图片描述
  一个很有趣的东西是观察Attention层的权重分布。比方说上图的这个将人类的日期书写转化成机器的日期书写。可以看到权重分布。M权重很大,因为M直接就判断了是5月。

Speech Recognition

  语音识别。
在这里插入图片描述
  语音识别是将语音clip转化为文字。通常来说先把audio clip用短时傅里叶变换到频域,然后每一个时间t就有一个频域向量。
  一种是使用attention model:
在这里插入图片描述
  类似于机器翻译。这个就不过多说了。
还有一种是CTC:
在这里插入图片描述
  这种网络是输入和输出一样多,也是用RNN/GRU/LSTM连起来,然后输出的结果是ttt____hhh__eee这种,这种认为是对的,然后在collapse起来得到最后的结果。

Trigger Word Detection

在这里插入图片描述
  这种trigger word detection,也就是hi siri这种,是将语音片段划分成一段一段的,例如10秒,然后在trigger word的后边一个时间点label为1,然后前边的都是0,但是这种0,1分布太不均匀了,因此会将1后边一段长度的也设置为1。用来1、0平衡一些。

最后

  这是deep learning.ai最后的一节课了。想当年上大学本科,最喜欢的课是数电和模式识别,读研入学的时候(11年)想了想图像语音一直没什么起色,于是选了通信方向,但是依旧对这些感兴趣。读研的时候还上了概率图模型课,那可是12年初的时候啊。然后辗转创业未成,目前又回到这个领域,感慨万千。机器替代人这个进程是不会变的。人直立行走,解放了双手,现在人也要让机器解放人的双手,人类不要去做那些重复性的东西了,过上更好的生活。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值