深度学习的Attention模型

前言前面看到谷歌发表的运用在机器翻译上的论文《Attention is all you need》,很是让人惊讶,这是一种全新的模型,与之前的经典的seq2seq模型改动较大,它完全摒弃了RNN或CNN神经网络,大大简化了模型的复杂度,而且效果还相当好。当然Attention模型可以单独使用,但这篇文章我们来看看Attention的机制及怎么与经典的seq2seq结合。seq2seq前面我们有详细的...
阅读(1344) 评论(1)

[置顶] 如何用TensorFlow训练聊天机器人(附github)

前言实际工程中很少有直接用深度学习实现端对端的聊天机器人,但这里我们来看看怎么用深度学习的seq2seq模型来实现一个简易的聊天机器人。这篇文章将尝试使用TensorFlow来训练一个基于seq2seq的聊天机器人,实现根据语料库的训练让机器人回答问题。seq2seq关于seq2seq的机制原理可看之前的文章《深度学习的seq2seq模型》。循环神经网络在seq2seq模型中会使用到循环神经网络,目...
阅读(9854) 评论(12)

隐马尔可夫模型的Viterbi解码算法

前言前面在做自然语言处理时涉及到一些词性标注的工作,一般会使用隐马尔科夫模型(HMM)来实现词性标注,而HMM模型的解码实现算法一般就会使用Viterbi算法。关于穷举法HMM模型有多种应用,这里说的是其中一个常见应用,即根据观察序列找到最可能的隐含状态序列。最朴素的想法就是直接穷举所有可能的隐含状态序列,并计算出每个组合成的状态序列的概率,概率最大的那个组合序列即是最可能的隐含状态序列。举个水藻和...
阅读(626) 评论(0)

深度学习的seq2seq模型

从rnn结构说起根据输出和输入序列不同数量rnn可以有多种不同的结构,不同结构自然就有不同的引用场合。如下图, one to one 结构,仅仅只是简单的给一个输入得到一个输出,此处并未体现序列的特征,例如图像分类场景。 one to many 结构,给一个输入得到一系列输出,这种结构可用于生产图片描述的场景。 many to one 结构,给一系列输入得到一个输出,这种结构可用于文本情感分析,对一...
阅读(1143) 评论(0)

TensorFlow构建循环神经网络

前言前面在《循环神经网络》文章中已经介绍了深度学习的循环神经网络模型及其原理,接下去这篇文章将尝试使用TensorFlow来实现一个循环神经网络,该例子能通过训练给定的语料生成模型并实现对字符的预测。这里选择使用最原始的循环神经网络RNN模型。语料库的准备这里就简单用纪伯伦的《On Friendship》作为语料吧。RNN简要说明用下面两张图简要说明下,RNN模型有多个时刻的输入,从第一个图中看到输...
阅读(653) 评论(0)

如何用TensorFlow训练词向量

前言前面在《谈谈谷歌word2vec的原理》文章中已经把word2vec的来龙去脉说得很清楚了,接下去这篇文章将尝试根据word2vec的原理并使用TensorFlow来训练词向量,这里选择使用skip-gram模型。语料库的准备这里仅仅收集了网上关于房产新闻的文章,并且将全部文章拼凑到一起形成一个语料库。skip-gram简要说明skip-gram核心思想可以通过下图来看,假设我们的窗口大小为2,...
阅读(1826) 评论(1)

GRU神经网络

前面已经详细讲了LSTM神经网络(文末有链接回去),接着往下讲讲LSTM的一个很流行的变体。GRU是什么GRU即Gated Recurrent Unit。前面说到为了克服RNN无法很好处理远距离依赖而提出了LSTM,而GRU则是LSTM的一个变体,当然LSTM还有有很多其他的变体。GRU保持了LSTM的效果同时又使结构更加简单,所以它也非常流行。GRU模型回顾一下LSTM的模型,LSTM的重复网络模...
阅读(1096) 评论(0)

[置顶] 谈谈谷歌word2vec的原理

word2vec在NLP领域中,为了能表示人类的语言符号,一般会把这些符号转成一种数学向量形式以方便处理,我们把语言单词嵌入到向量空间中就叫词嵌入(word embedding)。谷歌开源的word2vec则是这么一种词嵌入工具,它能生成词向量,通过词向量可以很好地度量词与词之间的相似性。word2vec采用的模型包含了连续词袋模型(CBOW)和Skip-Gram模型。通过它可以在大数据量上进行高效...
阅读(2227) 评论(0)

LSTM神经网络

LSTM是什么LSTM即Long Short Memory Network,长短时记忆网络。它其实是属于RNN的一种变种,可以说它是为了克服RNN无法很好处理远距离依赖而提出的。我们说RNN不能处理距离较远的序列是因为训练时很有可能会出现梯度消失,即通过下面的公式训练时很可能会发生指数缩小,让RNN失去了对较远时刻的感知能力。∂E∂W=∑t∂Et∂W=∑tk=0∂Et∂nett∂nett∂st(∏t...
阅读(1265) 评论(0)

循环神经网络

RNN是什么循环神经网络即recurrent neural network,它的提出主要是为了处理序列数据,序列数据是什么?就是前面的输入和后面的输入是有关联的,比如一句话,前后的词都是有关系的,“我肚子饿了,准备去xx”,根据前面的输入判断“xx”很大可能就是“吃饭”。这个就是序列数据。循环神经网络有很多变种,比如LSTM、GRU等,这里搞清楚基础的循环神经网络的思想,对于理解其他变种就比较容易了...
阅读(1108) 评论(0)
    打赏作者

    赞作者(*^__^*)



    如果您觉得作者写的文章有帮助到您,您可以打赏作者一瓶汽水(*^__^*)

    作者

    笔名:seaboat 汪洋之舟

    github:https://github.com/sea-boat

    微信:



    公众号:

    个人资料
    • 访问:866605次
    • 积分:12009
    • 等级:
    • 排名:第1314名
    • 原创:284篇
    • 转载:5篇
    • 译文:1篇
    • 评论:316条
    博客专栏