吴恩达深度学习第五课第三周


参考 红石头

一、集束搜索

1.1、背景及使用场景

使用场景:机器会翻译出多条语句,为了让机器翻译最贴合人工翻译,我们就会使用集束搜索。

机器翻译seq2seq:由encoder netword和decoder network组成的网络,输入语句经过encoder网络得到的特征向量,再将特征向量输入decoder网络得到语句。这是一个翻译的过程,可以理解为机器翻译。
知识点的联系:

  • 语言模型:利用RNN网络随机生成一条语句。
  • 机器翻译:在输入语句的前提下输出语句,因而又叫条件语言模型。

知识点的联系:

  • 贪婪搜索:每次找出预测概率最大的一个单词作为当前rnn单元的输出。弊端:并不是单个概率最大的单词所组成的语句就是最优解,举个例子,下面翻译中,第一个结果最准确,但是在机器翻译过程中,如果采用贪婪搜索,第三个单词就会选择going而不是visiting。
  • 集束搜索:每次找出预测概率最大的B个单词
    在这里插入图片描述

1.2、算法思想

核心思想:最大化最优语句的概率,这个概率就是乘积:
P ( y < 1 > , … , y < T y > ∣ X ) = P ( y < 1 > ∣ X ) P ( y < 2 > ∣ X , y < 1 > ) P ( y < 3 > ∣ X , y < 1 > , y < 2 > ) … P ( y < T x > ∣ X , y < 1 > , y < 2 > , … , y < T y − 1 > ) P(y^{<1>},\dots,y^{<T_y>}|X)=P(y^{<1>}|X)P(y^{<2>}|X,y^{<1>})P(y^{<3>}|X,y^{<1>},y^{<2>})\dots P(y^{<T_x>}|X,y^{<1>},y^{<2>},\dots,y^{<T_y-1>}) P(y<1>,,y<Ty>X)=P(y<1>X)P(y<2>X,y<1>)P(y<3>X,y<1>,y<2>)P(y<Tx>X,y<1>,y<2>,,y<Ty1>)
步骤
首先,从词汇表中找出翻译的第一个单词概率最大的B=3个预测单词,在这个例子中,预测的第一个单词为:in,jane,september。
然后,再分别以in,jane,september为条件,计算每个词汇表单词作为预测第二个单词的概率,in后面会有三个最优选择,同理可得,jane、september也会有三个最优选择,这样就有9条语句,然后计算前两个单词的整体概率,在9条语句中选择概率最大的3个语句,得到:in september,jane is,jane visits。
以此类推得到整个句子。
在这里插入图片描述

1.3、改进、优化

背景:
采用集束搜索的机器翻译是最大化最优语句的概率,其形式为:
a r g m a x ∏ t = 1 T y P ( y ^ < t > ∣ x , y ^ < 1 > , … , y ^ < t − 1 > ) argmax \prod_{t=1}^{T_y}P(\hat y^{<t>}|x,\hat y^{<1>}, \dots,\hat y^{<t-1>}) argmaxt=1TyP(y^<t>x,y^<1>,,y^<t1>)
由上式可以看出,多个概率相乘可能会使乘积结果很小,远小于1,容易造成数值下溢,为了使数据更加稳定有效,可以对乘积形式取对数log运算,log是单调函数,并不会影响概率的极值。

知识点的联系:
联系到梯度消失,因为激活函数sigmad会让函数值在0-1之间,再对sigmad函数求偏导,其值在0-0.25之间,在后向传播的过程中,函数求偏导再相乘再跟新参数,在相乘的过程中,乘以无数多个小于1的数,会使乘积结果很小,这样就对参数w和b的影响变小。

1、取log

将乘积转化为求和形式,避免了数值下溢,使数据更加稳定有效。
缺点:机器翻译的单词越多,乘积形式或者求和形式得到的概率就越小,这样机器翻译就会不自觉的选择短的句子作为翻译的结果。

2、长度归一化

为了解决机器翻译不自觉选择短句子作为结果,我们不再追求最大化最优语句的概率,而是归一化最优语句的概率,通过除以翻译结果的单词数量,取每个单词的概率对数值的平均。
a r g m a x 1 T y ∑ t = 1 T y P ( y ^ < t > ∣ x , y ^ < 1 > , … , y ^ < t − 1 > ) arg max \frac{1}{T_y} \sum_{t=1}^{T_y}P(\hat y^{<t>}|x,\hat y^{<1>},\dots,\hat y^{<t-1>}) argmaxTy1t=1TyP(y^<t>x,y^<1>,,y^<t1>)
实际应用中,会引入归一化因子 α \alpha α
a r g m a x 1 T y α ∑ t = 1 T y P ( y ^ < t > ∣ x , y ^ < 1 > , … , y ^ < t − 1 > ) arg max \frac{1}{T_y^{\alpha}} \sum_{t=1}^{T_y}P(\hat y^{<t>}|x,\hat y^{<1>},\dots,\hat y^{<t-1>}) argmaxTyα1t=1TyP(y^<t>x,y^<1>,,y^<t1>)
α \alpha α=1,则完全进行长度归一化,若 α \alpha α=0,则不进行长度归一化,一般令 α \alpha α=0.7,效果较佳。

疑问:为何做归一化就能让机器翻译不再倾向选择较短的句子作为结果?使用了什么数学思维呢?
解答:例如,两个变量就是两个维度,看作xy轴,如果不进行归一化,假如x的取值区间很长,y取值区间很短,则在坐标轴中的图是一个椭圆,不利于梯度下降,这时候使用长度归一化,那么在坐标轴中的图类似正圆,就很容易进行梯度下降来获取最优值,如下图所示:
在这里插入图片描述

1.4、误差分析

因为机器翻译是由两部分组成:RNN+集束搜索,为了确定是那个部分出错,就需要进行误差分析。
假设人工翻译的结果为 y ∗ y^* y,机器翻译的结果为 y ^ \hat y y^,将输入语句输入到RNN模型中,分别计算输出 y ∗ y^* y的概率 P ( y ∗ ∣ x ) P(y^*|x) P(yx) y ^ \hat y y^的概率 P ( y ^ ∣ x ) P(\hat y|x) P(y^x),接下来就是比较 P ( y ∗ ∣ x ) P(y^*|x) P(yx) P ( y ^ ∣ x ) P(\hat y|x) P(y^x)的大小。

  • P ( y ∗ ∣ x ) P(y^*|x) P(yx)> P ( y ^ ∣ x ) P(\hat y|x) P(y^x):集束搜索算法有误
  • P ( y ∗ ∣ x ) P(y^*|x) P(yx)< P ( y ^ ∣ x ) P(\hat y|x) P(y^x):RNN模型有误

Jane visite l’Afrique en septembre.
Human: Jane visits Africa in September. y ∗ y^* y
Algorithm: Jane visited Africa last September. y ^ \hat y y^

若RNN表现不好,可以正则化、增加网络层数、增加训练样本数目等等进行优化;
若集束搜索表现不好,可以修改调试参数B。

二、机器翻译评判标准–bleu得分

1、使用场景:为了让机器翻译结果接近参考的人工翻译,使其得分越高,使用bleu score,对机器翻译进行打分。
2、原理:看机器翻译的各个单词是否出现在参考翻译中。 人 工 翻 译 次 数 机 器 翻 译 次 数 \frac{人工翻译次数}{机器翻译次数}
3、步骤:
首先,对原语句建立人工翻译参考,一般有多个人工翻译,最简单的评价方式:看机器翻译的每个单词是否出现在参考翻译中,在下图例子中,每个单词都出现在参考翻译里,准确率为 7 7 = 1 \frac{7}{7}=1 77=1,其中,分母是机器翻译单词数目,分子是相应单词是否出现在人工翻译中,但这个方法不合理。
French: Le chat est sur le tapis.
Reference 1: The cat is on the mat.
Reference 2: There is a cat on the mat.
MT output: the the the the the the the.

另外一种评价方式:看机器翻译单词出现在人工翻译单个语句中的次数,取最大次数。上例中准确率为 2 7 = 1 \frac{2}{7}=1 72=1,the出现在参考1的次数为2,出现在参考2的次数为1,因此分子取最大次数2,分母是机器翻译单词数目。
另外一种更科学的打分方法是:bleu score on bigrams,即同时对两个连续单词进行打分。
用下面的例子,得到bigrams及其出现在机器翻译中的次数count为:
the cat:2
cat the:1
cat on:1
on the:1
the mat:1

得到bigrams及其出现在人工翻译中的最大次数 c o u n t c l i p count_{clip} countclip为:
the cat:1
cat the:0
cat on:1
on the:1
the mat:1

相应的bigrams precision为:
c o u n t c l i p c o u n t = 1 + 0 + 1 + 1 + 1 + 1 2 + 1 + 1 + 1 + 1 = 4 6 = 2 3 \frac{count_{clip}}{count}=\frac{1+0+1+1+1+1}{2+1+1+1+1}=\frac{4}{6}=\frac{2}{3} countcountclip=2+1+1+1+11+0+1+1+1+1=64=32
French: Le chat est sur le tapis.
Reference 1: The cat is on the mat.
Reference 2: There is a cat on the mat.
MT output: The cat the cat on the mat.

总结:

  • 如果只看单个单词,相应的unigrams precision为:
    在这里插入图片描述
  • 如果是n个连续单词,相应的n-grams precison为:
    在这里插入图片描述
    可以同时计算 p 1 , … , p n p_1,\dots,p_n p1,,pn,再对其求平均:
    p = 1 n ∑ i = 1 n p i p=\frac{1}{n} \sum_{i=1}^{n}p_i p=n1i=1npi
    通常,对上式进行指数处理,并引入参数因子brevity penalty,记为bp,引入bp是为了惩罚机器翻译语句过短而造成的得分虚高的情况–(具体化:如果机器翻译较短的句子,上式中分母变小,整体值会变大)。
    p = B P e x p ( 1 n ∑ i = 1 n p i ) p = BP exp(\frac{1}{n} \sum_{i=1}^{n}p_i) p=BPexp(n1i=1npi)
    其中,BP值由机器翻译长度和参考翻译长度共同决定。
    在这里插入图片描述

三、注意力模型

3.1、背景–局部聚焦
一次性对整个句子进行翻译,效果不佳,并且在长语句中bleu score会变低,因而引入注意力模型,将长语句分段,每次只对长语句的一部分进行翻译,从而翻译整个语句。
3.2、算法思路
抽象来说,有三步。第一步,在encoder阶段用BRNN得到前后向激活值,在此基础上提炼得到每个单元的激活值 a < t > a^{<t>} a<t>;第二步,对于多对多的encoder-decoder模型来说,我们会匹配两个网络的对应位置激活值,再通过一个小的cnn网络得到softmax多分类的概率值, c < t > c^{<t>} c<t>是概率值与对应位置的激活值相乘再加权;第三步:将 c < t > c^{<t>} c<t>和上一个单元的输出作为decoder网络当前单元的输入,得到结果。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

四、例子

4.1、语音识别

4.2、触发词

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值