网站销售方案,关键词优化上海,郑州汉狮做网站报价,网站建设客户去哪里找目录 第五门课 序列模型(Sequence Models)第一周 循环序列模型#xff08;Recurrent Neural Networks#xff09;1.1 为什么选择序列模型#xff1f;#xff08;Why Sequence Models?#xff09;1.2 数学符号#xff08;Notation#xff09; 第五门课 序列模型(Sequenc… 目录 第五门课 序列模型(Sequence Models)第一周 循环序列模型Recurrent Neural Networks1.1 为什么选择序列模型Why Sequence Models?1.2 数学符号Notation 第五门课 序列模型(Sequence Models)
第一周 循环序列模型Recurrent Neural Networks
1.1 为什么选择序列模型Why Sequence Models?
在本课程中你将学会序列模型它是深度学习中最令人激动的内容之一。循环神经网络RNN之类的模型在语音识别、自然语言处理和其他领域中引起变革。在本节课中你将学会如何自行创建这些模型。我们先看一些例子这些例子都有效使用了序列模型。 在进行语音识别时给定了一个输入音频片段 并要求输出对应的文字记录 。这个例子里输入和输出数据都是序列模型因为 是一个按时播放的音频片段输出 是一系列单词。所以之后将要学到的一些序列模型如循环神经网络等等在语音识别方面是非常有用的。
音乐生成问题是使用序列数据的另一个例子在这个例子中只有输出数据 是序列而输入数据可以是空集也可以是个单一的整数这个数可能指代你想要生成的音乐风格也可能是你想要生成的那首曲子的头几个音符。输入的 可以是空的或者就是个数字然后输出序列。
在处理情感分类时输入数据是序列你会得到类似这样的输入“There is nothing to like in this movie.”你认为这句评论对应几星
系列模型在 DNA 序列分析中也十分有用你的 DNA 可以用 A、C、G、T 四个字母来表示。所以给定一段 DNA 序列你能够标记出哪部分是匹配某种蛋白质的吗
在机器翻译过程中你会得到这样的输入句“Voulez-vou chante avecmoi?”法语要和我一起唱么然后要求你输出另一种语言的翻译结果。
在进行视频行为识别时你可能会得到一系列视频帧然后要求你识别其中的行为。在进行命名实体识别时可能会给定一个句子要你识别出句中的人名。
所以这些问题都可以被称作使用标签数据 (, )作为训练集的监督学习。但从这一系列例子中你可以看出序列问题有很多不同类型。有些问题里输入数据 和输出数据都是序列但就算在那种情况下和有时也会不一样长。或者像上图编号 1 所示和上图编号 2 的和有相同的数据长度。在另一些问题里只有 或者只有是序列。
所以在本节我们学到适用于不同情况的序列模型下节中我们会定义一些定义序列问题要用到的符号。
1.2 数学符号Notation
本节先从定义符号开始一步步构建序列模型。
比如说你想要建立一个序列模型它的输入语句是这样的“Harry Potter and Herminoe Granger invented a new spell.”(这些人名都是出自于 J.K.Rowling 笔下的系列小说 Harry Potter)。假如你想要建立一个能够自动识别句中人名位置的序列模型那么这就是一个命名实体识别问题这常用于搜索引擎比如说索引过去 24 小时内所有新闻报道提及的人名用这种方式就能够恰当地进行索引。命名实体识别系统可以用来查找不同类型的文本中的人名、公司名、时间、地点、国家名和货币名等等。 现在给定这样的输入数据假如你想要一个序列模型输出使得输入的每个单词都对应一个输出值同时这个能够表明输入的单词是否是人名的一部分。技术上来说这也许不是最好的输出形式还有更加复杂的输出形式它不仅能够表明输入词是否是人名的一部分它还能够告诉你这个人名在这个句子里从哪里开始到哪里结束。比如 Harry Potter上图编号 1 所示、Hermione Granger上图标号 2 所示。
更简单的那种输出形式:这个输入数据是 9 个单词组成的序列所以最终我们会有 9 个特征集和来表示这 9 个单词并按序列中的位置进行索引 x 1 、 x 2 、 x 3 x^{1}、x^{2}、x^{3} x1、x2、x3等等一直到 x 9 x^{9} x9来索引不同的位置我将用 x t x^{t} xt来索引这个序列的中间位置。意味着它们是时序序列但不论是否是时序序列我们都将用来索引序列中的位置。
输出数据也是一样我们还是用 y 1 、 y 2 、 y 3 y^{1}、y^{2}、y^{3} y1、y2、y3等等一直到 y 9 y^{9} y9来表示输出数据。同时我们用 T x T_x Tx来表示输入序列的长度这个例子中输入是 9 个单词所以 T x T_x Tx 9。我们用来表示输出序列的长度。在这个例子里 T x T y T_x T_y TxTy上个视频里你知道 T x T_x Tx和 T y T_y Ty可以有不同的值。
你应该记得我们之前用的符号我们用 x ( i ) x^{(i)} x(i)来表示第个训练样本所以为了指代第个元素或者说是训练样本的序列中第个元素用 x ( i ) t x^{(i)t} x(i)t这个符号来表示。如果 T x T_x Tx是序列长度那么你的训练集里不同的训练样本就会有不同的长度所以 T x ( i ) T_x^{(i)} Tx(i)就代表第个训练样本的输入序列长度。同样 y ( i ) t y^{(i)t} y(i)t代表第个训练样本中第个元素 T y ( i ) T_y^{(i)} Ty(i)就是第个训练样本的输出序列的长度。
所以在这个例子中 T x ( i ) T_x^{(i)} Tx(i) 9但如果另一个样本是由 15 个单词组成的句子那么对于这个训练样本 T x ( i ) T_x^{(i)} Tx(i) 15。
既然我们这个例子是 NLP也就是自然语言处理这是我们初次涉足自然语言处理一件我们需要事先决定的事是怎样表示一个序列里单独的单词你会怎样表示像 Harry 这样的单词 x 1 x^{1} x1实际应该是什么
接下来我们讨论一下怎样表示一个句子里单个的词。想要表示一个句子里的单词第一件事是做一张词表有时也称为词典意思是列一列你的表示方法中用到的单词。这个词表下图所示中的第一个词是 a也就是说词典中的第一个单词是 a第二个单词是 Aaron然后更下面一些是单词 and再后面你会找到 Harry然后找到 Potter这样一直到最后词典里最后一个单词可能是 Zulu。 因此 a 是第一个单词Aaron 是第二个单词在这个词典里and 出现在 367 这个位置上Harry 是在 4075 这个位置Potter 在 6830词典里的最后一个单词 Zulu 可能是第 10,000个单词。所以在这个例子中我用了 10,000 个单词大小的词典这对现代自然语言处理应用来说太小了。对于商业应用来说或者对于一般规模的商业应用来说 30,000 到 50,000 词大小的词典比较常见但是 100,000 词的也不是没有而且有些大型互联网公司会用百万词甚至更大的词典。许多商业应用用的词典可能是 30,000 词也可能是 50,000 词。不过我将用 10,000 词大小的词典做说明因为这是一个很好用的整数。
如果你选定了 10,000 词的词典构建这个词典的一个方法是遍历你的训练集并且找到前 10,000 个常用词你也可以去浏览一些网络词典它能告诉你英语里最常用的 10,000个单词接下来你可以用 one-hot 表示法来表示词典里的每个单词。 举个例子在这里 x 1 x^{1} x1表示 Harry 这个单词它就是一个第 4075 行是 1其余值都是 0的向量上图编号 1 所示因为那是 Harry 在这个词典里的位置。
同样 x 2 x^{2} x2是个第 6830 行是 1其余位置都是 0 的向量上图编号 2 所示。and 在词典里排第 367所以$x^{3}}就是第 367 行是 1其余值都是 0 的向量上图编号3 所示。如果你的词典大小是 10,000 的话那么这里的每个向量都是 10,000 维的。
因为 a 是字典第一个单词$x^{7}}对应 a那么这个向量的第一个位置为 1其余位置都是 0 的向量上图编号 4 所示。
所以这种表示方法中$x^{}}指代句子里的任意词它就是个 one-hot 向量因为它只有一个值是 1其余值都是 0所以你会有 9 个 one-hot 向量来表示这个句中的 9 个单词目的是用这样的表示方式表示用序列模型在和目标输出之间学习建立一个映射。我会把它当作监督学习的问题我确信会给定带有(, )标签的数据。
那么还剩下最后一件事我们将在之后的视频讨论如果你遇到了一个不在你词表中的单词答案就是创建一个新的标记也就是一个叫做 Unknow Word 的伪单词用作为标记来表示不在词表中的单词我们之后会讨论更多有关这个的内容。
总结一下本节课的内容我们描述了一套符号用来表述你的训练集里的序列数据和在下节课我们开始讲述循环神经网络中如何构建到的映射。