深度学习Tensorflow
北邮张博
读论文,写程序
展开
-
基于字符的卷积神经网络实现文本分类(char-level CNN)-论文详解及tensorflow实现
卷积神经网络从ImageNet做起,后来自然语言处理领域开始觉察到CNN对于文本处理可能会有用,因此也开始自觉使用CNN。专栏前三篇文章讲了文本相似度方向的论文,本文实现论文为Text Understanding from Scratch和Character-level Convolutional Networks for Text Classification 这两篇文章作者都是纽约大学Yann原创 2017-07-21 11:27:48 · 20683 阅读 · 21 评论 -
Ask Me Anything: Dynamic Memory Networks for Natural Language Processing 阅读笔记及tensorflow实现
本篇要介绍的论文:Ask Me Anything: Dynamic Memory Networks for Natural Language Processing 是DMN(Dynamic Memory Networks)的开端,在很多任务上都实现了state-of-the-art的结果,如:question answering (Facebook’s bAbI dataset), text cl原创 2017-09-27 15:20:21 · 3480 阅读 · 2 评论 -
记忆网络模型系列之End to End Memory Network
上文记忆网络介绍模型并非端到端的QA训练,该论文End-To-End Memory Networks就在上文的基础上进行端到端的模型构建,减少生成答案时需要事实依据的监督项,在实际应用中应用意义更大。本文分为三个部分,分别是数据集处理、论文模型讲解及模型构造、模型训练。主要参考代码为MemN2N。数据集处理==论文中使用了babi数据集,关于本数据集在文章Ask Me Anyt原创 2018-01-19 21:55:28 · 5762 阅读 · 2 评论 -
记忆网络系列之Key Value Memory Network
在上一篇End to end memory network中提到,在问答系统中加入KB(knowledge bases)能提高训练的效果。但是一些KB,如FreebaseKB有内在的局限性,即1、不完整;2、有固定的模式不能支持所有类型的答案。因此即使KB方式能够满足特定领域的问题,但是不能扩大规模,在任何所有领域都行得通。因此,本文Key-Value Memory Networks for Di原创 2018-01-26 16:30:06 · 6165 阅读 · 1 评论 -
记忆网络Memory Network
在本专栏的第一篇文章对话系统综述中提到,seq2seq中的记忆依靠rnnCell或者lstmCell实现,但是rnn和lstm的记忆能力实在有限,最多也就记忆十几个时间步长。因此当句子长度增长时或者需要添加先验知识时,seq2seq就不能满足此时对话系统的需求了。比起人工增加RNN隐藏状态大小,我们更愿意任意增加加入模型的知识量,同时对模型本身做出最小限度改变。基本上,我们能用独立存储器——作原创 2018-01-18 11:55:10 · 16507 阅读 · 1 评论 -
实现基于seq2seq的聊天机器人
前几篇博客介绍了基于检索聊天机器人的实现、seq2seq的模型和代码,本篇博客将从头实现一个基于seq2seq的聊天机器人。这样,在强化学习和记忆模型出现之前的对话系统中的模型就差不多介绍完了。后续将着重介绍强化学习和记忆模型在对话系统中的应用。基于检索的聊天机器人的实现seq2seq模型详解tensorflow中的seq2seq的代码详解闲聊机器人在网上有很多有趣的小例子:c原创 2018-01-17 17:42:21 · 15745 阅读 · 6 评论 -
Tensorflow模型的保存与恢复
最近在写对话生成的代码时,遇到一个问题就是在预测阶段,对于相同的输入,每一次生成的文本都不一样,而且生成的结果乱七八糟。因此定位到是训练好的模型没有restore,特此记录一下TensorFlow中模型的保存与恢复问题,即tf.train.saver函数的使用。创建Saver模型保存,先要创建一个Saver对象:如saver=tf.train.Saver()在创建这个Sav原创 2018-01-17 09:49:28 · 4133 阅读 · 0 评论 -
基于检索的聊天机器人的实现
在文章NLP入门实例推荐中提到,对话系统有两种形式: 基于检索的对话系统 模式:s1,s2–>R,即字符串s1和s2符合一定的规则。 基于生成的对话系统 模式:s1–>s2,即由字符串s1得到s2。两者各有优势与不足。首先基于检索的对话系统,将回复使用的数据预先存储,那么优点就是回复的内容不会有语法和语义的错误,但因为不会像基于生成的对话系统那样创造出新的回答,因此也无法对未训练的问题作原创 2017-12-13 11:27:14 · 15900 阅读 · 6 评论 -
对话系统综述
在人工智能领域,模仿人类交谈能力的尝试可以追溯到人工智能的早期阶段。在1950年,艾伦·图灵(Alan Turing)提出了一种方法来测试一台机器的智能水平,这个机器被普遍称为图灵测试或模仿游戏。在图灵测试中,一台机器被要求与人交谈。机器的智能水平取决于机器如何能够欺骗人类评估者,使其相信机器是基于文本响应的人类。如果人类的评估者无法区分机器和人类的区别,那么就说机器已经通过了图灵测试,这意味着人工原创 2017-12-21 17:20:26 · 11520 阅读 · 2 评论 -
CNN模型和RNN模型在分类问题中的应用(Tensorflow实现)
在这篇文章中,我们将实现一个卷积神经网络和一个循环神经网络语句分类模型。 本文提到的模型(rnn和cnn)在一系列文本分类任务(如情绪分析)中实现了良好的分类性能,并且由于模型简单,方便实现,成为了竞赛和实战中常用的baseline。cnn-text-classification-tf博客,使用CNN做文本分类项目,start两千多。阅读这个项目源码,可以了解tensorflow构建项目的关键步骤,原创 2017-11-05 17:45:38 · 6233 阅读 · 1 评论 -
NLP入门实例推荐(Tensorflow实现)
自然语言处理(NLP)是机器学习的应用之一,用于分析、理解和生成自然语言,以便人类与计算机,人类与人类更好的交流。自然语言处理按照任务类型可以分为分类、匹配、翻译、结构化预测、与序贯决策过程。自然语言处理中的绝大多数问题皆可归入下图其中的一个。这为我们学习自然语言处理提供了大的指导方向,让我们可以心无旁骛的寻找、理解和复现论文。在自然语言处理发展的过程中,出现了如下趋势: 第一,传统的基于句法-语原创 2017-04-06 17:34:18 · 38751 阅读 · 13 评论 -
Tensorflow实例-CNN处理句子相似度(MPCNN)
前两篇使用CNN处理句子相似度的文章,实际上使用了很简单的CNN模型,按照自己对CNN的理解实现了代码。完成以后,就开始翻阅论文,想了解一些经典的处理句子相似度的方法。 这篇文章 发表在仅次于ACL会的EMNLP会议上,使用多个粒度窗口大小的卷积滤波器,后面跟着多种类型的池化方式,目的是为了从多个角度去解析句子(Multi-perspective),尽可能多的提取句子的语义和句法结构,具体的方式大家原创 2017-04-10 20:59:58 · 15621 阅读 · 2 评论 -
Tensorflow实例-CNN处理句子相似度(上)
Tensorflow中关键的两个步骤,首先对数据进行处理,转化为合适的tensor作为input输入到图中。其次使用tensorflow对神经网络进行构建。本篇文章作为深度学习实战的第一篇,会尽量用通俗的语言解释在这两部分中的关键的点。本篇任务为计算句子相似度,代码上传至github(2017年10月24日对代码进行重构),感兴趣的同学可以下载并进行仿真,加深对tensorflow的理解。代码较长,原创 2017-04-06 20:47:10 · 16281 阅读 · 12 评论 -
Tensorflow实例-CNN处理句子相似度(下)
接上篇进行分析。这篇文章着重分析使用tensorflow构造神经网络进行训练。在阅读本文之前,请确保已经明白上文提到的embedding层的作用。模型构建1、初始化权重,embedding层 因为是两个句子,所以定义两个输入input_s1和input_s2,上文说到input_s1的shape是[s_count, sentence_length],代码中的shape=[None, senten原创 2017-04-06 21:26:17 · 6136 阅读 · 6 评论 -
基于深度学习的大规模多标签文本分类任务总结
自然语言处理方向的论文仿真到现在,有以下想法: 1. 很多模型都为启发式算法,从直观上很好理解,但是对于大多数人来说,就是一个黑盒,70%时间都在处理数据和调参。 2. 在数据竞赛中,常用的模型就是CNN和RNN,先调出baseline,然后再进行模型融合(model ensemble)。在以上步骤的约束下,数据竞赛比的就是设备的计算能力和个人的调参能力。 3. 在自然语言处理与NLP实战的...原创 2017-10-18 15:32:49 · 20742 阅读 · 5 评论 -
基于Char-RNN Language Model进行文本生成(Tensorflow生成唐诗)
上一篇文章利用CharRNN进行语言模型的训练,语言模型的本意就是为了判断一个句子的概率。在文本生成领域就可以根据当前词预测下一个词,因此大有用途。比如在各种科技网站上随处可见的生成唐诗,歌词,小说,以及代码,为了加深我们对RNN的实现熟练程度,这里再推荐阅读两篇源码中文古诗自动作诗机器人和生成英文、写诗、歌词、小说、生成代码、生成日文两个。个人觉得第二个代码封装性更好,并且训练效果更好。但是第一个原创 2017-08-04 11:48:36 · 18928 阅读 · 8 评论 -
Implementation of Hierarchical Attention Networks for Document Classification的讲解与Tensorflow实现
放完暑假回到实验室,tensorflow的代码已经忘得都差不多了。因此急需要对以前的代码进行复习,并且对未来一段时间的方向进行安排。在github上有一篇使用了最近几年深度学习常用模型,来做文本分类的例子。是作者brightmart参加知乎“看山杯”数据竞赛的各种模型的baseline的代码,因此拿来做以后这段时间学习的规划。下面是这个开源项目所用模型: 专栏里实现过使用char-CNN和ch原创 2017-09-06 17:11:01 · 6146 阅读 · 2 评论 -
基于循环神经网络实现基于字符的语言模型(char-level RNN Language Model)-tensorflow实现
前面几章介绍了卷积神经网络在自然语言处理中的应用,这是因为卷积神经网络便于理解并且易上手编程,大多教程(比如tensorflow的官方文档就先CNN再RNN)。但RNN的原理决定了它先天就适合做自然语言处理方向的问题(如语言模型,语音识别,文本翻译等等)。因此接下来一段时间应该会着重研究RNN,LSTM,Attention等在NLP的应用及其tensorflow实现。在介绍本篇文章之前,先推荐几篇学原创 2017-07-25 15:45:38 · 11162 阅读 · 0 评论 -
记忆网络系列之Recurrent Entity Network
这篇论文是facebook AI在2017年的ICLR会议上发表的,文章提出了Recurrent Entity Network的模型用来对world state进行建模,根据模型的输入对记忆单元进行实时的更新,从而得到对world的一个即时的认识。该模型可以用于机器阅读理解、QA等领域。本文参考了Google团队的NTM和其他的神经计算单元,能够基于内容和位置对记忆单元进行读写操作。本文在babi原创 2018-01-30 12:15:03 · 2483 阅读 · 0 评论