吴恩达Coursera深度学习课程 DeepLearning.ai 提炼笔记(5-3)-- 序列模型和注意力机制

deeplearning.ai——构建深度神经网络做图像处理 目录 4.1 Building your Deep Neural Network: Step by Step 1 - Packages 2 - Outline of the Assignment 3 - Initialization 3.1 - 2-layer Neural Network 3.2 - L-layer Neural Network 4 - Forward propag... 阅读详情

作者: 大树先生
博客: http://blog.youkuaiyun.com/koala_tree
知乎:https://www.zhihu.com/people/dashuxiansheng
GitHub:https://github.com/KoalaTree
2018 年 4 月 4 日


完结撒花!以下为吴恩达老师 DeepLearning.ai 课程项目中,第五部分《序列模型》第三周课程“序列模型和注意力机制”关键点的笔记。


同时我在知乎上开设了关于机器学习深度学习的专栏收录下面的笔记,以方便大家在移动端的学习。欢迎关注我的知乎:大树先生。一起学习一起进步呀!_


序列模型 — 序列模型和注意力机制

1. 基础模型

sequence to sequence 模型:

sequence to sequence 模型最为常见的就是机器翻译,假如这里我们要将法语翻译成英文:

  • 输入: x < 1 > , x < 2 > , ⋯ , x < T x > x^{<1>},x^{<2>},\cdots,x^{<T_{x}>} x<1>,x<2>,⋯,x<Tx​>;这里每个 x < t > x^{<t>} x<t>均为对应法语句子中的每个单词;
  • 输出: y < 1 > , y < 2 > , ⋯ , y < T y > y^{<1>},y^{<2>},\cdots,y^{<T_{y}>} y<1>,y<2>,⋯,y<Ty​>;这里每个 y < t > y^{<t>} y<t>均为对应英语句子中的每个单词;
  • 网络结构:many-to-many RNN网络结构。

对于机器翻译的序列对序列模型,如果我们拥有大量的句子语料,则可以得到一个很有效的机器翻译模型。模型的前部分使用一个编码网络来对输入的法语句子进行编码,后半部分则使用一个解码网络来生成对应的英文翻译。网络结构如下图所示:

还在路上,稍等...

相关论文:

  • Sutskever et al., Sequence to sequence learning with neural networks, 2014;
  • Cho et al., Learning phrase representation using RNN encoder-decoder for statistical machine translation, 2014;

image to sequence 模型:

与上面的这种编解码类似的还有就是图像描述的应用。

  • 输入:图像;
  • 输出:描述图像的句子;
  • 网络结构:CNN结构学习图像的编码,RNN结构解码输出对应的句子。

对于图像描述的网络结构如下图所示:

还在路上,稍等...

相关论文:

  • Mao et. al., 2014. Deep captioning with multimodal recurrent neural networks;
  • Vinyals et. al., 2014. Show and tell: Neural image caption generator;
  • Karpathy and Li, 2015. Deep visual-semantic alignments for generating image descriptions;

2. 挑选最可能的句子

机器翻译:条件语言模型

对于机器翻译来说和之前几节介绍的语言模型有很大的相似性但也有不同之处。

  • 在语言模型中,我们通过估计句子的可能性,来生成新的句子。语言模型总是以零向量开始,也就是其第一个时间步的输入可以直接为零向量;
  • 在机器翻译中,包含了编码网络和解码网络,其中解码网络的结构与语言模型的结构是相似的。机器翻译以句子中每个单词的一系列向量作为输入,所以相比语言模型来说,机器翻译可以称作条件语言模型,其输出的句子概率是相对于输入的条件概率。

二者对比如下图所示:

还在路上,稍等...

寻找最大的概率输出:

还是以法语翻译英语为例,通过输入的法语句子,模型将会告诉我们各种英文句子输出所对应的可能性,如下图中的句子所示。

还在路上,稍等...

对于各种可能的翻译结果,我们并不是要从得到的分布中进行随机取样,而是要找到一个使得条件概率最大化的英文句子作为输出。所以在设计机器翻译模型的时候,一个重要的步骤就是设计一个合适的算法,找到使得条件概率最大化的的结果。目前最通用的算法就是:束搜索(Beam Search)。

不使用贪心搜索的原因:

对于我们的机器翻译模型来说,使用贪心搜索算法,在生成第一个词的分布后,贪心搜索会根据我们的条件语言模型挑选出最有可能输出的第一个词语,然后再挑选出第二个最有可能的输出词语,依次给出所有的输出。

但是对于我们建立的机器翻译模型来说,我们真正需要的是通过模型一次性地挑选出整个输出序列: y < 1 > , y < 2 > , ⋯ , y < T y > y^{<1>},y^{<2>},\cdots,y^{<T_{y}>} y<1>,y<2>,⋯,y<Ty​>,来使得整体的概率最大化。所以对于贪心搜索来说,这种方法对于机器翻译来说是不可行的。

另外对于贪心搜索算法来说,我们的单词库中有成百到千万的词汇,去计算每一种单词的组合的可能性是不可行的。所以我们使用近似的搜索办法,使得条件概率最大化或者近似最大化的句子,而不是通过单词去实现,虽然不能保证我们得到的就是条件概率最大化的结果,但是往往这已经足够了。

还在路上,稍等...

3. 集束搜索(Beam search)

Beam search 算法:

这里我们还是以法语翻译成英语的机器翻译为例:

  • Step 1:对于我们的词汇表,我们将法语句子输入到编码网络中得到句子的编码,通过一个softmax层计算各个单词(词汇表中的所有单词)输出的概率值,通过设置集束宽度(beam width)的大小如3,我们则取前3个最大输出概率的单词,并保存起来。
还在路上,稍等...
  • Step 2:在第一步中得到的集束宽度的单词数,我们分别对第一步得到的每一个单词计算其与单词表中的所有单词组成词对的概率。并与第一步的概率相乘,得到第一和第二两个词对的概率。有 3 × 10000 3\times 10000 3×10000个选择,(这里假设词汇表有10000个单词),最后再通过beam width大小选择前3个概率最大的输出对;
还在路上,稍等...
  • Step 3~Step T:与Step2的过程是相似的,直到遇到句尾符号结束。
还在路上,稍等...

4. 集束搜索的改进

长度归一化:

对于集束搜索算法,我们的目标就是最大化下面的概率:

arg ⁡ max ⁡ y ∏ t = 1 T y P ( y < t > ∣ x , y < 1 > , … , y < t − 1 > ) = arg ⁡ max ⁡ y P ( y < 1 > , ⋯   , y < T y > ∣ x ) = arg ⁡ max ⁡ y P ( y < 1 > ∣ x ) P ( y < 2 > ∣ x , y < 1 > ) ⋯ P ( y < T y > ∣ x , y < 1 > , ⋯   , y < T y − 1 > ) \arg \max_{y} \prod\limits_{t = 1}^{{T_y}} {P({y^{ < t > }}|x,{y^{ < 1 > }}, \ldots ,{y^{ < t - 1 > }})} = \arg \max_{y} P(y^{ < 1 > },\cdots,y^{ <T_{y} > }|x) = \arg \max_{y} P(y^{ < 1 > }|x) P(y^{ < 2> }|x,y^{ < 1 >})\cdots P(y^{ < T_{y}> }|x,y^{ < 1 >},\cdots, y^{ <T_{y}-1>}) argymax​t=1∏Ty​​P(y<t>∣x,y<1>,…,y<t−1>)=argymax​P(y<1>,⋯,y<Ty​>∣x)=argymax​P(y<1>∣x)P(y<2>∣x,y<1>)⋯P(y<Ty​>∣x,y<1>,⋯,y<Ty​−1>)

上面的得到的每一项一般都是很小的概率值,大量很小的概率值进行相乘,最后会得到更小的值,可能会造成数值下溢。所以在实践中,我们不会最大化上面这个公式的乘积,而是取log值,变成log求和最大值,得到一个数值上更加稳定的算法,公式如下:

arg ⁡ max ⁡ y ∑ y = 1 T y log ⁡ P ( y < t > ∣ x , y < 1 > , … , y < t − 1 > ) \arg \max_{y} \sum\limits_{y = 1}^{{T_y}} \log {P({y^{ < t > }}|x,{y^{ < 1 > }}, \ldots ,{y^{ < t - 1 > }})} argymax​y=1∑Ty​​logP(y<t>∣x,y<1>,…,y<t−1>)

另外,我们还可以通过对上面的目标进行归一化,使其得到更好的效果。相比直接除以输出单词长度的值,可以使用更加柔和的方式:在 T y T_{y} Ty​上加上一个指数 α \alpha α,如 α = 0.7 \alpha = 0.7 α=0.7,通过调整其大小获得更加好的效果。

1 T y α arg ⁡ max ⁡ y ∑ y = 1 T y log ⁡ P ( y < t > ∣ x , y < 1 > , … , y < t − 1 > ) \dfrac {1}{T_{y}^{\alpha}}\arg \max_{y} \sum\limits_{y = 1}^{{T_y}} \log {P({y^{ < t > }}|x,{y^{ < 1 > }}, \ldots ,{y^{ < t - 1 > }})} Tyα​1​argymax​y=1∑Ty​​logP(y<t>∣x,y<1>,…,y<t−1>)

通过上面的目标,选取得分最大的句子,即为我们的模型最后得到的输出结果。

集束搜索讨论:

  • Beam width:B的选择,B越大考虑的情况越多,但是所需要进行的计算量也就相应的越大。在常见的产品系统中,一般设置B = 10,而更大的值(如100,1000,…)则需要对应用的领域和场景进行选择。

相比于算法范畴中的搜索算法像BFS或者DFS这些精确的搜索算法,Beam Search 算法运行的速度很快,但是不能保证找到目标准确的最大值。

5. 集束搜索的误差分析

集束搜索算法是一种近似搜索算法,也被称为启发式搜索算法。它的输出不能保证总是可能性最大的句子,因为其每一步中仅记录着Beam width为3或者10或者100种的可能的句子。

所以,如果我们的集束搜素算法出现错误了要怎么办呢?我们如何确定是算法出现了错误还是模型出现了错误呢?此时集束搜索算法的误差分析就显示出了作用。

例子:

同样以法语句子的英文翻译为例子,我们人类对法语句子的翻译如中间的句子,而我们的模型输出的翻译如下面的句子。通过我们的模型,我们分别计算人类翻译的概率 P ( y ∗ ∣ x ) P(y^{*}|x) P(y∗∣x)以及模型翻译的概率 P ( y ^ ∣ x ) P(\hat y|x) P(y^​∣x),比较两个概率的大小,通过比较我们就能知道是因为Beam Search 算法的问题还是RNN模型的问题。如下图所示:

还在路上,稍等...
  • P ( y ∗ ∣ x ) > P ( y ^ ∣ x ) P(y^{*}|x) > P(\hat y|x) P(y∗∣x)>P(y^​∣x)的情况:Beam search算法选择了 y ^ \hat y y^​,但是 y ∗ y^{*} y∗却得到了更高的概率,所以Beam search 算法出错了;
  • P ( y ∗ ∣ x ) < = P ( y ^ ∣ x ) P(y^{*}|x) <= P(\hat y|x) P(y∗∣x)<=P(y^​∣x)的情况:翻译结果 y ∗ y^{*} y∗相比 y ^ \hat y y^​要更好,但是RNN模型却预测 P ( y ∗ ∣ x ) < P ( y ^ ∣ x ) P(y^{*}|x) < P(\hat y|x) P(y∗∣x)<P(y^​∣x),所以这里是RNN模型出现了错误。

过程:

在开发集上,对各个句子进行检测,得到每个句子对应的出错情况,那么根据整个开发集的上算法错误和模型错误的比例,就可以针对性地对二者之一进行改进和修正了。

还在路上,稍等...

6. Bleu Score

对于机器翻译系统来说,一种语言对于另外一种语言的翻译常常有多种正确且合适的翻译,我们无法做到像图像识别一样有固定准确度答案,所以针对不同的翻译结果,往往很难评估那一个结果是更好的,哪一个翻译系统是更加有效的。这里引入Bleu score 用来评估翻译系统的准确性。(Bleu, bilingual evaluation understudy)

评估机器翻译:

如下面的法语翻译的例子,我们有两种不同的翻译,但是两种翻译都是正确且较好的翻译结果。Bleu score 的评估理念是观察机器生成的翻译结果中的每一个词是否出现在至少一个人工翻译结果的参考之中。(这些参考位于开发集或者测试集中)。

还在路上,稍等...
  • 精确度:观察输出结果的每一个词是否出现在参考中。但是对于图中机器翻译的糟糕的结果,精确度确非常高。
  • 改良的精确度:将每个单词设置一个得分上限(单个参考句子中出现的最大的次数,如图中的the单词的上限为2)。

二元词组的Bleu score:

与单个词的评估相似,这里我们以两个相邻的单词作为一个二元词组来进行Bleu得分评估,得到机器翻译的二元词组的得分和其相应的得分上限,进而得到改进的精确度。

还在路上,稍等...

对于不同的n-gram,我们计算改良的精确度得分的公式如下:

P 1 = ∑ u n i g r a m ∈ y ^ C o u n t c l i p ( u n i g r a m ) ∑ u n i g r a m ∈ y ^ C o u n t ( u n i g r a m ) {P_1}{\rm{ = }}\frac{{\sum\limits_{unigram \in \widehat y} {Coun{t_{clip}}(unigram)} }}{{\sum\limits_{unigram \in \widehat y} {Count(unigram)} }} P1​=unigram∈y ​∑​Count(unigram)unigram∈y ​∑​Countclip​(unigram)​

P n = ∑ n − g r a m ∈ y ^ C o u n t c l i p ( n − g r a m ) ∑ n − g r a m ∈ y ^ C o u n t ( n − g r a m ) {P_n}{\rm{ = }}\frac{{\sum\limits_{n - gram \in \widehat y} {Coun{t_{clip}}(n - gram)} }}{{\sum\limits_{n - gram \in \widehat y} {Count(n - gram)} }} Pn​=n−gram∈y ​∑​Count(n−gram)n−gram∈y ​∑​Countclip​(n−gram)​

Bleu score细节:

  • 得到每种n-gram的Bleu score: P n P_{n} Pn​,一般有 P 1 , P 2 , P 3 , P 4 P_{1},P_{2},P_{3},P_{4} P1​,P2​,P3​,P4​;
  • 组合Bleu scores:
    B P exp ⁡ ( 1 4 ∑ n = 1 4 P n ) BP \exp(\dfrac{1}{4}\sum_{n=1}^{4}P_{n}) BPexp(41​n=1∑4​Pn​)
    其中,BP(brevity penalty)简短惩罚,作为一个调节因子,来对太短的翻译结果的翻译系统进行惩罚。

B P = { 1 , i f M T _ l e n g t h > r e f e r e n c e _ l e n g t h exp ⁡ ( 1 − M T _ l e n g t h / r e f e r e n c e _ l e n g t h ) , o t h e r w i s e BP = \left\{ \begin{array}{l} 1, if{\kern 1pt} {\kern 1pt} MT\_length > reference\_length{\kern 1pt} {\kern 1pt} \\ \exp (1 - MT\_length/reference\_length), otherwise \end{array} \right. BP={1,ifMT_length>reference_lengthexp(1−MT_length/reference_length),otherwise​

Bleu score 作为机器翻译系统的一种单一评估指标,它有一个虽然不是非常完美,但是却也非常好的效果,其加快了整个机器翻译领域的进程,对机器翻译具有革命性的影响。同时,Bleu score对大多数的文本生成的模型均是有效的评估手段。

7. 注意力模型

长句子存在的问题:

利用我们前面的编码和解码的RNN模型,我们能够实现较为准确度机器翻译结果。对于短句子来说,其性能是十分良好的,但是如果是很长的句子,翻译的结果就会变差。

对于我们人类进行人工翻译的时候,我们所做的也不是像编码解码RNN模型一样记忆整个输入句子,再进行相应的输出,因为记忆整个长句子是很难的,所以我们是一部分一部分地进行翻译。编码解码RNN模型的结构,其Bleu score会在句子长度超过一定值的时候就会下降,如图中的蓝色线所示。而引入的注意力机制,和人类的翻译过程非常相似,其也是一部分一部分地进行长句子的翻译,而其得到的翻译结果的Bleu曲线则如图中绿色线所示:

还在路上,稍等...

注意力模型的简介:

对于法语翻译英语的例子中,针对每个单词的输出,一般来说与某个输出相关的或者有较大影响的单词应该是集中在附近的几个单词或者说是某些部分。所以注意力模型会在输入的每个输入的信息块上计算注意力权重,不同的权重对每一步的输出结果有不同的注意力影响。

还在路上,稍等...

注意力模型的详细介绍:

这里我们以一个双向的RNN模型来对法语进行翻译,得到相应的英语句子。其中的每个RNN单元均是LSTM或者GRU单元。

对于双向RNN,通过前向和后向的传播,我们可以得到每个时间步的前向和后向的激活值 a → < t ′ > , a ← < t ′ > {\overrightarrow a ^{ < t' > }},{\overleftarrow a ^{ < t' > }} a <t′>,a <t′>,这里以 a < t ′ > = ( a → < t ′ > , a ← < t ′ > ) a^{<t'>}=({\overrightarrow a ^{ < t' > }},{\overleftarrow a ^{ < t' > }}) a<t′>=(a <t′>,a <t′>)来表示输入句子通过双向RNN得到的每一步的激活值。

同时,对于英文输出,以另外一个RNN模型来构建,通过对输入单词的注意力权重 α < t , t ′ > \alpha ^{ < t,t' > } α<t,t′>,可以得到一个有关输入上下文的加权和 C < t > C^{<t>} C<t>。其中,注意力权重满足条件: ∑ t ′ α < t , t ′ > = 1 \sum\limits_{t'} {{\alpha ^{ < t,t' > }}} {\rm{ = }}1 t′∑​α<t,t′>=1,注意力权重为对于每个输出 y < t > y^{<t>} y<t>需要在每个输入单词的激活值 a < t ′ > a^{<t'>} a<t′>上的关注度,得到相应的上下文${c^{ < t > }} = \sum\limits_{t’} {{\alpha ^{ < t,t’ > }}a^{<t’>}} $。到这里,我们可以发现对于注意力权重的设置就显得至关重要。

还在路上,稍等...

注意力权重的计算:

注意力权重: α < t , t ′ > \alpha ^{ < t,t' >} α<t,t′>,表示输出 y < t > y^{<t>} y<t>需要在每个输出激活值 a < t ′ > a^{<t'>} a<t′>上付出的注意力大小。计算注意力权重的公式如下,确保了权重和为1:

a < t , t ′ > = exp ⁡ ( e < t , t ′ > ) ∑ t ′ = 1 T x exp ⁡ ( e < t , t ′ > ) {a^{ < t,t' > }} = \frac{{\exp ({e^{ < t,t' > }})}}{{\sum\limits_{t' = 1}^{{T_x}} {\exp ({e^{ < t,t' > }})} }} a<t,t′>=t′=1∑Tx​​exp(e<t,t′>)exp(e<t,t′>)​

而其中的 e < t , t ′ > e^{ < t,t' >} e<t,t′>则是通过一层神经网络来进行计算得到的,其值取决于输出RNN中前一步的激活值 s < t − 1 > s^{<t-1>} s<t−1>以及输入RNN当前步的激活值 a < t ′ > a^{<t'>} a<t′>。我们可以通过训练这个小的神经网络模型,使用反向传播算法来学习一个对应的关系函数,如下图所示。

还在路上,稍等...

该模型的一个缺点就是时间复杂度较高,具有 O ( T x T y ) O(T_{x}T_{y}) O(Tx​Ty​)的复杂度。但是在机器翻译的应用中,输入和输出的句子一般不会太长,这样的复杂度是可以接受的。

相关论文:

  • Bahdanau et. al., 2014. Neural machine translation by jointly learning to align and translate;
  • Xu et. al., 2015. Show, attend and tell: Neural image caption generation with visual attention。

注意力的例子:

  • 将不标准的时间格式转换为统一的时间格式;
  • 对注意力权重进行可视化。
还在路上,稍等...

8. 语音识别

语音识别是将一段音频信号转化为相应的文本信息。

语音识别问题:

在语音识别问题上,借鉴于人耳的处理过程,会将音频信号转化为该音频信号的声谱图(时间和频率的图,不同颜色代表不同的频谱能量的大小),再将声谱图作为特征送到相应的算法中进行处理。

之前的语音识别的系统中,语言学家构造了音位来学习语音识别系统。但是随着深度学习的发展,在end-to-end的模型中,这种音位的表示法已经不重要了。我们完全可以做到直接从语音信号到文本信息的转化,无需人工特征的设计。

还在路上,稍等...

目前的语音识别的应用中,常见的语音数据大小为300h、3000h,而在一些大型的更加精确的语音系统中,已经应用了上万小时的语音数据。

注意力模型的语音识别:

为了构建一个语音识别的系统,我们可以应用前面介绍的注意力模型:

还在路上,稍等...

CTC 损失函数的语音识别:

同时,另外一种效果较好的就是使用CTC损失函数的语音识别模型。(CTC,Connectionist temporal classification)。

对于语音识别系统来说,我们的输入是音频信号,而输出是文本信息,对于音频信号,我们以小的时间间隔进行频率采样,可能对于一个10s的语音片段,我们就能够得到1000个特征的输入片段,而往往我们的输出仅仅是几个单词。

对于上面的问题,在CTC损失函数中,允许我们的RNN模型输出有重复的字符和插入空白符的方式,强制使得我们的输出和输入的大小保持一致,如下图所示。

还在路上,稍等...

9. 触发字检测

随着目前深度学习的发展,越来越多的智能设备需要通过一些关键语音来进行唤醒的操作,相应的这些系统可以被称作触发字检测系统。如下面的一些设备均属于触发字检测系统的应用:

还在路上,稍等...

触发字检测算法:

一种可以简单应用的触发字检测算法,就是使用RNN模型,将音频信号进行声谱图转化得到图像特征或者使用音频特征,输入到RNN中作为我们的输入。而输出的标签,我们可以以触发字前的输出都标记为0,触发字后的输出则标记为1。

还在路上,稍等...

上面方法的缺点就是0、1标签的不均衡。一种简单的方法就是在触发字后的多个目标标签都标记为1,在一定程度上可以提高系统的精确度。


本周(Week3)的课后编程作业请参见:

吴恩达Coursera深度学习课程 deeplearning.ai 目录 第一部分 深度学习概论 (1-1) 深度学习概论–课程笔记 (1-1) 深度学习概论–编程作业 (1-2) 神经网络基础–课程笔记 (1-2) 神经网络基础–编程作业 (1-3) 浅层神经网络–课程笔记 (1-3) 浅层神经网络–编程作业 (1-4) 深层神经网络–课程笔记 (1-4) 深层神经网络–编程作业 第二部分 深度学习及其优化 (2-1) 深度学习实践–课程笔记 ... 阅读详情

相关推荐

吴恩达Coursera深度学习课程 deeplearning.ai (5-3) 序列模型和注意力机制--编程作业(一):机器翻译

Part 1: 机器翻译 欢迎来到本周第一个作业。你将建立一个将人类可读日期(“2009年6月25日”)转换为机器可读日期(“2009-06-25”)的神经机器翻译(NMT)模型。 你将使用注意力机制来执行此操作,这是模型序列中最尖端的一个序列。 导包 from keras.layers import Bidirectional, Concatenate, Permute, Dot,...

浩宇天罡 2274

吴恩达deeplearning.ai系列课程笔记+编程作业(7)第二课 改善深层神经网络-第三周 超参数调试、Batch正则化和程序框架(Hyperparameter tuning)

第二门课 改善深层神经网络:超参数调试、正则化以及优化(Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization) 第三周 超参数调试、Batch正则化和程序框架(Hyperparameter tuning) 文章目录第二门课 改善深层神经网络:超参数调试、正则化以及优化(Improv...

肖泽的博客 3074

吴恩达Coursera深度学习课程 deeplearning.ai (5-3) 序列模型和注意力机制--课程笔记

3.1 基础模型 sequence to sequence sequence to sequence:两个序列模型组成,前半部分叫做编码,后半部分叫做解码。用于机器翻译。 image to sequence sequence to sequence:一个卷积神经网络和一个序列模型组成,前半部分叫做编码,后半部分叫做解码。用于图片描述。 3.2 选择最可能的句子 语言模型:...

浩宇天罡 880

302页吴恩达Deeplearning.ai课程笔记,详记基础知识与作业代码

302页吴恩达Deeplearning.ai课程笔记,详记基础知识与作业代码吴恩达的 DeepLearning.ai 已经于 1 月 31 日发布了最后一门课程。近日,来自重庆大学的 Wan Zhen 制作了一份深度学习专项课程笔记,该笔记从神经网络与深度学习基础、提升深度神经网络性能和卷积神经网络三门课程出发详细解释了关键概念与作业代码。本文概括性地介绍了这三课的主要内容,并选择每个课程主题比较...

x32sky的专栏 1555

吴恩达Coursera深度学习课程 deeplearning.ai (5-3) 序列模型和注意力机制--编程作业(二):触发字检测

Part 2: 触发字检测 关键词语音唤醒 触发字检测 欢迎来到这个专业课程的最终编程任务! 在本周的视频中,你了解了如何将深度学习应用于语音识别。在本作业中,您将构建一个语音数据集并实现触发字检测算法(有时也称为关键字检测或唤醒检测)。触发字检测技术,可以让亚马逊Alexa,Google Home,Apple Siri和百度DuerOS等设备在听到某个词语时进行唤醒。 本练习中,我...

浩宇天罡 3804

YOLOv11 Neck架构演进 - 从FPN/PAN到C2f/SPPF的融合策略实战剖析

本文深入剖析YOLOv11 Neck架构的演进历程,从FPN/PAN到C2f/SPPF的融合策略,详细解析了多尺度目标检测中的特征融合技术。通过实战案例展示了YOLOv11在无人机航拍等场景中的性能提升,特别是小目标检测AP值提升15%的显著效果,为计算机视觉开发者提供了宝贵的架构优化经验。

weixin_30500105的博客 433

大模型学习路线(2025最新)神仙级大模型教程分享,不用感谢,请叫我活雷锋!_大模型 学习路线

大模型学习路线图第一阶段:基础知识准备在这个阶段,您需要打下坚实的数学基础和编程基础,这是学习任何机器学习和深度学习技术所必需的。1. 数学基础学习资料2. 编程基础学习资料第二阶段:机器学习基础这一阶段主要涉及经典机器学习算法的学习,以及如何使用它们解决实际问题。1. 机器学习理论学习资料第三阶段:深度学习入门在这个阶段,您将学习深度学习的基本概念和框架。1. 深度学习基础学习资料2. 深度学习框架学习资料第四阶段:自然语言处理基础本阶段将介绍自然语言处理的基本概念和技术。

HUANGXIN9898的博客 3733

武汉理工大学数据结构综合实验——连连看游戏综合实践

文章目录实验目的主要仪器设备及耗材一、实验要求二、分析与设计(非线性结构)1.数据结构的设计2.核心算法设计一条直线消子两条直线消子三条直线消子初始化游戏地图搜寻路径提示和重排3.测试用例设计4.测试效果总结 实验目的 (1)线性结构实验目的 调研连连看游戏,了解连连看游戏的功能和规则等 掌握集成开发工具VS2019的使用和C++的基础编程 了解MFC框架 了解线性结构,掌握数组的遍历、消子和胜负判断等算法 了解企业软件开发过程,应用迭代开发思路进行项目开发,养成良好的编程习惯和培养软件工程化思维 .

mo_zhe的博客 7612

吴恩达 deeplearning.ai - 神经网络和深度学习 - 第四周代码

开始之前 在正式开始之前,我们先来了解一下我们要做什么。在本次教程中,我们要构建两个神经网络,一个是构建两层的神经网络,一个是构建多层的神经网络,多层神经网络的层数可以自己定义。本次的教程的难度有所提升,但是我会力求深入简出。在这里,我们简单的讲一下难点,本文会提到**[LINEAR-> ACTIVATION]转发函数,比如我有一个多层的神经网络,结构是输入层->隐藏层->隐藏层->···->隐藏层->输出层**,在每一层中,我会首先计算Z = np.dot(W,A) +

qq_37402392的博客 705

为什么PCB设计中的50Ω阻抗如此重要?从USB到以太网的实战解析

本文深入解析了PCB设计中50Ω特征阻抗的核心重要性及其工程权衡起源。文章从传输线理论出发,阐释了阻抗匹配对防止信号反射、确保信号完整性的关键作用,并对比了USB、以太网等不同应用场景的阻抗标准。同时,文章结合实际案例,剖析了在两层板等简单设计中实现精准阻抗控制的难点与实战解决方案。

weixin_29268385的博客 297

【Docker】搭建一个媒体服务器插件后端API服务 - MetaTube

本教程基于群晖的NAS设备DS423+的docker功能进行搭建,DSM版为 7.2.1-69057 Update 5。MetaTube是一个媒体服务器插件,主要用于Emby和Jellyfin媒体服务器。它的主要功能是从互联网上抓取内容并响应 JSON 数据,然后通过预安装的 MetaTube 插件请求服务器并下载相应的元数据,以与 Jellyfin/Emby 服务器配合使用。使用 MetaTube 的步骤大致如下:部署后端:首先,需要部署一个名为​ 的后端 API 服务器来抓取内容。

小小笔记大大用处 1万+

吴恩达老师深度学习课程完整笔记

为了方便学习深度学习课程,转载一个吴恩达老师的一个深度学习笔记,转载的网站是下面这个 https://blog.csdn.net/red_stone1/article/details/80207815 从去年8月份开始,AI界大IP吴恩达在coursera上开设了由5们课组成的深度学习专项课程,掀起了一股人工智能深度学习热潮。这里附上deeplearning.ai的官网: deeplearnin...

Miracle8070 6万+

BUSCO评估基因组的完整性

因为数据库收集的时候找的就是在不同的物种间都是单拷贝的基因,所以说在评估的物种里面应该也是单拷贝的状态才对。基因组层面评估:先去基因组上预测这些基因,再去做评估,如果说给他是一个注释好的基因集,这个时候提供的是一个蛋白集合,它就直接是去进行同源搜索,再去评估,看BUSCO数据库里面的这些单拷贝基因有或者无;首先,tblastn也是同源搜索,同源搜索之后,去对转录本进行读码框预测,预测完的结果还是去进行hmmsearch的搜索(hmmsearch是做蛋白质结构域搜索的),最终拿到BUSCO评估结果。

qq_64400864的博客 2959

完结篇 | 吴恩达deeplearning.ai专项课程精炼笔记全部汇总

个人网站:红色石头的机器学习之路 优快云博客:红色石头的专栏 知乎:红色石头 微博:RedstoneWill的微博 GitHub:RedstoneWill的GitHub 微信公众号:AI有道(ID:redstonewill) 从去年8月份开始,AI界大IP吴恩达在coursera上开设了由5们课组成的深度学习专项课程,掀起了一股人工智能深度学习热潮。这...

红色石头的专栏 7万+

【时空图神经网络 & 交通】相关模型3:STFGNN | 空间-时间依赖性 | 基于数据驱动的方法来生成“时间图” | 时空融合图模块,门控卷积模块 | 动态时间规整 | 顶会文章解析

STFGNN(时空融合图神经网络)在交通流量预测中的优势主要体现在以下几个方面:首先,它提出了一种数据驱动的方法生成“时间图”,弥补了传统空间图可能无法反映的某些相关性。其次,STFGNN通过并行处理不同时间段的空间图和时间图,有效地学习隐藏的时空依赖关系。此外,它将融合图模块与门控卷积模块整合到一个统一层中,通过层层堆叠处理长序列,进一步增强了模型的表达能力。实验结果表明,STFGNN在多个交通数据集上表现出色,优于其他基准方法,展示了其在实际应用中的强大潜力。

追光者♂:记录、分享、总结、提升,现象级专栏《Python从入门到人工智能》作者,无惧黑暗,坚信曙光 384

UG\NX二次开发 获取对象的层、颜色、隐藏状态、线宽、线型、高亮显示状态

获取对象的层、颜色、隐藏状态、线宽、线型、高亮显示状态。

王牌飞行员_里海的博客 1981

吴恩达深度学习课程完整笔记(DeepLearning.ai)

为了方便学习深度学习课程,转载一个吴恩达老师的一个深度学习笔记,转载的网站是下面这个 https://blog.csdn.net/red_stone1/article/details/80207815 从去年8月份开始,AI界大IP吴恩达在coursera上开设了由5们课组成的深度学习专项课程,掀起了一股人工智能深度学习...

DDxuexi的博客 1005

【AI智能体】基于Coze制作跨境电商客服助手工作流实战操作详解

基于Coze制作跨境电商客服助手工作流实战操作详解

congge 3463

吴恩达Coursera(DeepLearning.ai)笔记和作业汇总帖

title: 吴恩达Coursera(DeepLearning.ai)笔记和作业汇总帖 date: 2018-10-18 20:01:05 id: dl-ai-summary tags: dl.ai categories: 汇总帖 吴恩达Coursera(DeepLearning.ai)笔记和作业汇总。 历时一个多月终于把NG的五门课全部学完并且做了作业和笔记了。这里汇总一下: 第一门...

Fangzh的技术博客 5370

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

吴恩达deeplearning.ai专项课程精炼笔记全部汇总

为了方便学习深度学习课程,转载一个吴恩达老师的一个深度学习笔记,转载的网站是下面这个 https://blog.csdn.net/red_stone1/article/details/80207815 从去年8月份开始,AI界大IP吴恩达在coursera上开设了由5们课组成的深度学习专项课程,掀起了一股人工智能深度学习热潮。这里附上deeplearning.ai的官网: deeplearning.ai 关于该深度学习专项课程,本人非常推荐!它对于理解各种算法背后的原理非常有帮助,同时提供了大

GeniusAng的博客 499

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

吴恩达 深度学习 编程作业(5-3)Part 1 - Neural Machine Translation

机器翻译 —— Neural Machine Translation:日期转换、注意力权重可视化

大树先生的博客 5931

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

吴恩达DeepLearning.ai《深度学习》课程笔记目录总集

转载:https://blog.csdn.net/koala_tree/article/details/79913655 DeepLearning.ai简介 deepLearning.ai 是由吴恩达在Coursera上推出的一个教授深度学习的专题系列课程。整个专题共包括五门课程:01.神经网络和深度学习;02.改善深层神经网络-超参数调试、正则化以及优化;03.结构化机器学习项目;04.卷积...

junchengberry的博客 994
上一篇: 网易2019:矩形重叠
下一篇: 吴恩达 深度学习 编程作业(5-3)Part 1 - Neural Machine Translation
大树先生的博客
博客等级 码龄9年 2692粉丝 200原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值