
循环神经网络
文章平均质量分 77
然后就去远行吧
我们的目标是星辰大海~
展开
-
自然语言处理 —— 2.7负采样
word2vec的一个缺点是softmax计算起来很慢,这一节中,你会看到一个改善过的学习问题叫做负采样。它能做到与你之前看到的skip-gram模型相似的事情,但是用了一个更加有效的学习算法。I want a glass of orange juice to go along with ...原创 2019-12-13 20:03:54 · 846 阅读 · 0 评论 -
自然语言处理 —— 2.6 word2vec
假定训练集中给定了一个这样的句子:I want a glass of orange juice to go along with my cereal.I\space want\space a\space glass\space of\space orange\space juic...原创 2019-12-13 14:56:24 · 224 阅读 · 0 评论 -
自然语言处理 —— 2.5 学习词嵌入
这里将学习一些具体算法来学习词嵌入,在深度学习应用于学习词嵌入的历史上,人们一开始使用的算法比较复杂。但随着时间推移,研究者们不断发现它们能用更加简单的算法来达到一样好的效果,特别是在数据集很大的情况下,但有一件事就是现在很多最流行的算法都十分简单,如果一开始就介绍这些简单的算法你可能会觉得很神经,这么简单的算法究竟是怎么起作用的。所以今天想从一些稍微复杂的算法开始,因为我觉得这样更容易对算法的...原创 2019-12-13 10:55:36 · 236 阅读 · 3 评论 -
自然语言处理 —— 2.4 嵌入矩阵
接下来我们要将学习词嵌入这一问题具体化,当你应用算法来学习词嵌入时,实际上是学习一个嵌入矩阵,我们来看一下这是什么意思。假设我们字典含有10000个单词,有a,aaron等单词,可能还有一个未知词标记。我们要做的就是学习一个嵌入矩阵E,它将是一个300∗10000300*10000300∗10000的矩阵,如果加上未知词,就是300∗10001300*10001300∗10001维的矩阵。这个矩...原创 2019-12-13 09:41:42 · 4072 阅读 · 6 评论 -
自然语言处理 —— 2.3 词嵌入的特性
词嵌入还有一个特性是能帮助实现类比推理,尽管类比推理可能不是自然语言处理中最重要的存在,不过它能帮助人们理解词嵌入做了什么以及词嵌入能做什么,让我们来一探究竟。上图是一系列你希望词嵌入可以捕捉的单词的特征表示,假如提出一个问题,man如果对应woman,那么king应该对应什么?我们都应该能猜到,king应该对应queen。能否有一种算法来自动推导出这种关系?下面就是实现的方法。我们用一个四维...原创 2019-12-13 09:04:39 · 316 阅读 · 0 评论 -
自然语言处理 —— 2.2 使用词嵌入
上一节中已经了解了不同单词的特征化表示,这一节将会看到我们如何把这种表示方法应用到NLP应用中。我们从一个例子开始,继续用我们的命名实体识别的例子,如果你要找出人名,假如有一个句子Sally Johnson is an orange farmerSally\space Johnson\space is\space an\space orange\...原创 2019-12-12 22:54:54 · 329 阅读 · 0 评论 -
自然语言处理 —— 2.1 词汇表征
词表示V=[a,aaron,...,zulu,<UNK>]V=[a,aaron,...,zulu,<UNK>]V=[a,aaron,...,zulu,<UNK>]目前为止,我们一直都是用词汇表来表示词,上章节中提到的单词表可能是10000个单词,我们一直用one-hot向量来表示词,比如man在词典中是第5391个单词,那么就可以表示成一个向量,这个向量只在...原创 2019-12-12 21:53:30 · 274 阅读 · 0 评论 -
循环序列模型 —— 1.12 深层循环神经网络
要学习非常复杂的函数,通常我们会把RNN的多个层堆叠在一起,构建更深的模型。一个标准的神经网络,首先是输入x,然后堆叠上隐藏层,隐含层中应该有激活值,比如说第一层是a<1>a^{<1>}a<1>,接着堆叠上下一层激活值a<2>a^{<2>}a<2>,可以再加一层a<3>a^{<3>}a<3>...原创 2019-12-07 12:28:47 · 177 阅读 · 0 评论 -
循环序列模型 —— 1.11 双向神经网络
有两个方法可以让你构建更好的模型,其中之一就是双向RNN模型,这个模型可以让你在序列的某点处,不仅可以获取之前的信息,还可以获取未来的信息;第二个就是深层的RNN,会在之后进行介绍。这里先介绍双向神经网络。为了了解双向RNN的动机,我们先看一下之前在命名实体识别中已经见过多次的神经网络。给定两个句子:“He said,“Teddy bears are on sale””“He said,“T...原创 2019-12-07 12:01:37 · 395 阅读 · 0 评论 -
循环序列模型 —— 1.10 长短期记忆(LSTM)
前面我们介绍了GRU,得到了很多公式,具体表示如下:c~<t>=tanh(Wc[Γr∗c<t−1>,x<t>]+bc)\tilde{c}^{<t>}=tanh(W_c[\Gamma_r*c^{<t-1>},x^{<t>}]+b_c)c~<t>=tanh(Wc[Γr∗c<t−1>,x<t>...原创 2019-12-07 11:20:42 · 258 阅读 · 0 评论 -
循环序列模型 —— 1.9 GRU单元(门控循环单元)
先看一个公式a<t>=g(Wa[a<t−1>,x<t>]+ba)a^{<t>}=g(W_a[a^{<t-1>},x^{<t>}]+b_a)a<t>=g(Wa[a<t−1>,x<t>]+ba)在RNN的时间t处,计算激活值。使用句子"The cat, whcih already ate ...原创 2019-12-07 10:04:40 · 564 阅读 · 0 评论 -
循环序列模型 —— 1.8 带有神经网络的梯度消失
基本的RNN神经网络有一个很大的问题,就是梯度消失问题。现在我们举个语言模型的例子,假如看到这个句子"The cat, which already ate much, was full",前后一致,cat是单数,对应was。这个例子中的句子有长期的依赖,最前面的单词对句子后面的单词有影响,但是我们目前见到的基本的RNN模型,不擅长捕获这种长期依赖效应,解释一下为什么。如下图,你应该还记得之前讨...原创 2019-12-06 22:10:37 · 206 阅读 · 0 评论 -
循环序列模型 —— 1.7 对新序列采样
在你训练一个序列模型之后,要想了解这个模型学到了什么,一种非正式的方法就是进行一次新序列采样,来看看到底应该怎么做。记住,一个序列模型模拟了任意特定单词序列的概率,我们要做的就是对这个概率分布进行采样来生成一个新的单词序列。这个网络已经被训练过了,而为了进行采样,你要做一些截然不同的事情,第一步要做的就是对你想要模型生成的第一个词进行采样,于是你输入x<1>=0x^{<1>...原创 2019-12-06 21:40:34 · 286 阅读 · 0 评论 -
循环序列模型 —— 1.6 语言模型和序列生成
语音识别系统,你听到一个句子,the apple and pear salad was delicious,所以究竟说了什么。究竟是the apple and pair salad 还是the apple and pear salad?事实上,第二种是更好的,这也是较好的语音识别系统要帮忙输出的东西,即使这两句话听起来是如此相似,而让语言识别系统去选择第二个句子的方法就是使用一个语言模型,它能...原创 2019-12-06 20:50:53 · 178 阅读 · 0 评论 -
循环序列模型 —— 1.3循环神经网络
现在讨论一下怎么才能建立一个神经网络模型来学习X到Y的映射。可以尝试的方法之一是使用标准的神经网络,在之前的例子中,我们有九个输入单词,想象一下,把这9个输入单词,可能是9个one-hot向量,然后把它们输入到一个标准神经网络,经过一些隐藏层,最终会输出9个值为0或者1的项,它表明每个输入单词是否是人名的一部分,但结果表明这个方法并不好。主要有两个问题,第一个是输入和输出数据在不同的例子中可以有...原创 2019-12-06 15:07:59 · 255 阅读 · 0 评论 -
循环序列模型 —— 1.2 数学符号
假如你想要建立一个序列模型,它的输入语句是这样的,x:Harry Potter and Hermione Granger invented a new spell.假如你想要建立一个能够自动识别句中人名位置的序列模型,那么这就是一个命名实体识别问题,这常用于搜索引擎。比如说,索引过去24小时内所有新闻报道提及的人名,用这种方式就能够恰当地进行索引。命名实体识别系统可以用来查找不同类型的文本中人...原创 2019-12-06 11:46:18 · 1246 阅读 · 0 评论 -
循环序列模型 —— 1.1 为什么选择序列模型
在进行语音识别时,给定了一个输入音频片段X,并要求输出片段对应的文字记录Y,这个例子里的输入和输出数据,都是序列数据,因为X是一个按时序播放的音频片段,输出Y是一系列单词,所以之后要学习的是一些序列模型,如循环神经网络等在语音识别方面是非常有用的。音乐生成问题,是使用序列数据的另一个例子,只有输出数据Y是序列,而输入数据可以是空集,也可以是个单一整数,这个数可能指代你想要生成的音乐风格,也可能是...原创 2019-12-06 10:39:51 · 243 阅读 · 0 评论