rnn

论文速读:《AN ACTOR-CRITIC ALGORITHM FOR SEQUENCE PREDICTION》

落花浮王杯 提交于 2020-02-07 02:31:42
摘要 我们提出了一种训练神经网络的方法,使用强化学习(RL)中的演员评论方法生成序列。当前的对数似然训练方法受到训练和测试模式之间差异的限制,因为模型必须以先前的猜测而不是地面真实标记为基础生成标记。我们通过引入一个经过训练来评估输出令牌价值的评论家网络来解决这个问题,给定了演员网络的策略。这导致训练过程更接近测试阶段,并允许我们直接优化任务特定分数,例如BLEU。 至关重要的是,由于我们在监督学习环境中利用这些技术而不是传统的RL设置,因此我们根据地面实况输出来评判批评网络。我们表明,我们的方法可以提高合成任务和德语 - 英语机器翻译的性能。我们的分析为这些方法应用于自然语言生成任务铺平了道路,例如机器翻译,字幕生成和对话建模。 介绍 在机器学习的许多重要应用中,任务是开发一个系统,该系统在给定输入的情况下产生一系列离散标记。最近的工作表明,当训练预测给定输入和先前令牌的下一个输出令牌时,递归神经网络(RNN)可以在许多此类任务中提供出色的性能。这种方法已成功应用于机器翻译(Sutskever等,2014,Bahdanau等,2015),标题生成(Kiros等,2014,Donahue等,2015,Vinyals等,2015,Xu等,2015, Karpathy和Fei-Fei,2015)和语音识别(Chorowski等,2015,Chan等,2015)

论文阅读笔记|NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE

邮差的信 提交于 2020-02-07 02:19:19
Abstract 从Bert到Transformer到Attention,想要了解这一套体系的内部机制,便从将Attention机制运用到NLP问题中的第一篇论文开始阅读。 Neural Machine Translation(NMT) 旨在建一个单个神经网络,这个网络可以共同调整以最大化模型的表现。 在传统的Encoder-Decoder模型中,源文本被Encoder转化为一个固定长度的向量,而Decoder运用该向量生成翻译文本。在这篇文章,作者猜想,这个固定长度的向量可能是提升表现的一个关键所在,并提出,通过以下方法来扩展该模型:允许该模型自动寻找原文本中的哪一部分和预测目标单词相关,而无需将这一功能实现为一个独立的较为困难的部分。 Introduction 在过去提出来的Encoder-Decoder模型中,两部分是共同调整以在给定的训练样本中,使得到正确翻译的概率最大。 文章提出的模型和以往模型的最大不同是,不再尝试编码乘一个固定长度的向量,而是编码成一个向量序列并在Decoder的过程中自动选择向量的子集。 以往的模型由于所使用的Encoder-Decoder都是由RNN构成,其局限性在于无法记忆长距离的语义信息,因此模型对于长句子翻译效果很差,但是这篇文章提出的模型对以往的模型进行了改进,尤其是在对于长序列文本的提升更为明显。 Background

LSTMs 长短期记忆网络系列

孤街醉人 提交于 2020-02-07 02:11:38
RNN的长期依赖问题 什么是长期依赖? 长期依赖是指当前系统的状态, 可能受很长时间之前系统状态的影响 ,是RNN中无法解决的一个问题。 如果从 (1) “ 这块冰糖味道真?” 来预测下一个词,是很容易得出“ 甜 ”结果的。但是如果有这么一句话, (2) “ 他吃了一口菜,被辣的流出了眼泪,满脸通红。旁边的人赶紧给他倒了一杯凉水,他咕咚咕咚喝了两口,才逐渐恢复正常。他气愤地说道:这个菜味道真? ” ,让你从这句话来预测下一个词,确实很难预测的。因为出现了长期依赖, 预测结果要依赖于很长时间之前的信息。 RNN的长期依赖问题 RNN 是包含循环的网络,允许信息的持久化。 预测问题(1): 相关的信息和预测的词位置之间的间隔是非常小时,RNN 可以学会使用先前的信息。 预测问题(2): 在这个间隔不断增大时,RNN 会丧失学习到连接如此远的信息的能力。 Why? 理论上,通过调整参数,RNN是可以学习到时间久远的信息的。 Bengio, et al. (1994) 但是,实践中的结论是,RNN很难学习到这种信息的。 RNN 会丧失学习时间价格较大的信息的能力, 导致长期记忆失效。 RNN中,考虑每个连接的权重,如果abs(W)<1,逐层迭代,将写成含权重的表达式,那么前面的系数会 连乘多个权重 。当层与层之间距离非常远时, 较前层传递到当前层是非常小的一个数 ,可以认为对几乎不产生影响

LSTM & GRU

筅森魡賤 提交于 2020-02-04 10:23:18
人人都能看懂的LSTM 陈诚 努力修炼内力 已关注 henryWang 、 红色石头 、 ShiqingFan 、 两太阳的栗子社长 等 1,485 人赞同了该文章 这是在看了台大李宏毅教授的深度学习视频之后的一点总结和感想。看完介绍的第一部分RNN尤其LSTM的介绍之后,整个人醍醐灌顶。本篇博客就是对视频的一些记录加上了一些个人的思考。 0. 从RNN说起 循环神经网络(Recurrent Neural Network,RNN)是一种用于处理序列数据的神经网络。相比一般的神经网络来说,他能够处理序列变化的数据。比如某个单词的意思会因为上文提到的内容不同而有不同的含义,RNN就能够很好地解决这类问题。 1. 普通RNN 先简单介绍一下一般的RNN。 其主要形式如下图所示(图片均来自台大李宏毅教授的PPT): 这里: 为当前状态下数据的输入, 表示接收到的上一个节点的输入。 为当前节点状态下的输出,而 为传递到下一个节点的输出。 通过上图的公式可以看到,输出 h' 与 x 和 h 的值都相关。 而 y 则常常使用 h' 投入到一个线性层(主要是进行维度映射)然后使用softmax进行分类得到需要的数据。 对这里的y如何通过 h' 计算得到往往看具体模型的使用方式。 通过序列形式的输入,我们能够得到如下形式的RNN。 2. LSTM 2.1 什么是LSTM 长短期记忆(Long

第3章 循环神经网络(RNN与LSTM)——3.2 BP神经网络模型

混江龙づ霸主 提交于 2020-02-02 03:56:29
1.正向传播,输入->隐含->输出层 (1)网络初始化,定义每层节点和权重 (2)隐藏层的输出 (3)输出层的输出 2.误差计算 3.反向传播,误差反向传播,权重更新 (1)隐藏层到输出层 (2)输入层到隐藏层 4.偏置更新 (1)隐藏层到输出层 (2)输入层到隐藏层 5.BP神经网络,前馈神经网络 (1)可以通过逐层信息传递到最后的输出 (2)沿着一条直线计算,直到最后一层,求出计算结果 (3)包含输入层、输出层和隐藏层,其目的是实现从输入到输出的映射 (4)一般包含多层,并且层与层之间是全连接的,不存在同层和跨层连接 来源: CSDN 作者: 玛丽有只小绵羊 链接: https://blog.csdn.net/lieslyang/article/details/104128993

【NLP】文本分类综合(rnn,cnn,word2vec,TfidfVectorizer)

淺唱寂寞╮ 提交于 2020-01-31 11:25:03
目录 0.中文评论情感分析(keras+rnn) 0.1 需要的库 0.2 预训练词向量 0.3 词向量模型 0.4 训练语料 (数据集) 0.5 分词和tokenize 0.6 索引长度标准化 0.7 反向tokenize 0.8 构建embedding matrix 0.9 padding(填充)和truncating(修剪) 0.10 用keras搭建LSTM模型 0.11 结论 0.12 错误分类 1.新浪新闻分类(tensorflow+cnn) 2.搜狐新闻文本分类(word2vec) 2.1 数据的准备 2.2 word2vec模型 2.3 特征工程: 2.4 模型训练,模型评估 2.4.1 标签编码: 2.4.2 逻辑回归模型 2.4.3 保存模型 2.4.4 交叉验证 2.4.5 模型测试 2.5 总结 3.搜狐新闻文本分类(TfidfVectorizer) 0.中文评论情感分析(keras+rnn) 0.1 需要的库 # 首先加载必用的库,jieba和gensim专门中文 # %matplotlib inline功能是可以内嵌绘图,并且可以省略掉plt.show()这一步 % matplotlib inline import numpy as np import matplotlib . pyplot as plt import re #正则化用 import

《Sequence Models》课堂笔记

拜拜、爱过 提交于 2020-01-29 16:37:01
Lesson 5 Sequence Models 这篇文章其实是 Coursera 上吴恩达老师的深度学习专业课程的第五门课程的课程笔记。 参考了其他人的笔记继续归纳的。 符号定义 假如我们想要建立一个能够自动识别句中人名地名等位置的序列模型,也就是一个命名实体识别问题,这常用于搜索引擎。命名实体识别系统可以用来查找不同类型的文本中的人名、公司名、时间、地点、国家名和货币名等等。 我们输入语句 "Harry Potter and Herminoe Granger invented a new spell." 作为输入数据 \(x\) ,我们想要这个序列模型输出 \(y\) ,使得输入的每个单词都对应一个输出值,同时这个 \(y\) 能够表明输入的单词是否是人名的一部分。技术上来说,还有更加复杂的输出形式,它不仅能够表明输入词是否是人名的一部分,它还能够告诉你这个人名在这个句子里从哪里开始到哪里结束。 以简单的输出形式为例。这个输入数据是 9 个单词组成的序列,所以最终我们会有 9 个特征集合来表示这 9 个单词,并按序列中的位置进行索引, \(x^{<1>},x^{<2>}\) 直到 \(x^{<9>}\) 来索引不同的位置。 输出数据也是一样,用 \(y^{<1>},y^{<2>}\) 到 \(y^{<9>}\) 来表示输出数据。同时使用 \(T_x\) 来表示输入序列的长度,

Tensorflow Estimator - Periodic Evaluation on Eval Dataset

大憨熊 提交于 2020-01-29 05:30:05
问题 The tensorflow documentation does not provide any example of how to perform a periodic evaluation of the model on an evaluation set. Some people suggested the use of an Experiment, which sounds great but unfortunately does not work (depreciation and triggers an error). Others suggested the use of SummarySaverHook, but I don't see how you can use that with an evaluation set (as opposed to the training set). A solution would be to do the following for i in range(number_of_epoch): estimator

循环神经网络(RNN,recurrent neural network)

瘦欲@ 提交于 2020-01-29 05:14:09
1 用numpy实现RNN 循环神经网络(Recurrent Neural Network,RNN)是一类专门用于处理时序数据样本的神经网络,它的每一层不仅输出给下一层,同时还输出一个隐状态,给当前层在处理下一个样本时使用。 # 简单RNN的Numpy实现 import numpy as np timesteps = 100 # 输入序列的时间步数 input_features = 32 # 输入特征空间的维度 output_features = 64 # 输出特征空间的维度 # 输入数据:随机噪声,作为实例 inputs = np . random . random ( ( timesteps , input_features ) ) # 初始状态:全零向量 state_t = np . zeros ( ( output_features , ) ) # 创建随机的权重矩阵 W = np . random . random ( ( output_features , input_features ) ) U = np . random . random ( ( output_features , output_features ) ) b = np . random . random ( ( output_features , ) ) successive_outputs = [

Recurrent Neural Network系列4--利用Python,Theano实现GRU或LSTM

爷,独闯天下 提交于 2020-01-27 02:15:44
作者:zhbzz2007 出处: http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明。谢谢! 本文翻译自 RECURRENT NEURAL NETWORK TUTORIAL, PART 4 – IMPLEMENTING A GRU/LSTM RNN WITH PYTHON AND THEANO 。 本文的代码github地址 在此 。这是循环神经网络教程的第四部分,也是最后一个部分。之前的博文在此, RNN概述 利用Python,Theano实现RNN 理解RNN的BPTT算法和梯度消失 本文中我们将会学习LSTM(Long Short Term Memory)网络和GRUs(Gated Recurrent Units)。LSTM是由 Sepp Hochreiter and Jürgen Schmidhubere 在1997年提出,目前是深度学习应用到NLP领域中最为广泛的模型。GRUs 是在2014年 提出 ,是LSTM的一个简单变种,二者有很多相同的特性。让我们先看看LSTM,然后再看看GRU有何不同。 1 LSTM网络 在第三部分 理解RNN的BPTT算法和梯度消失 ,我们了解了梯度消失问题阻碍了标准循环神经网络学习长期依赖。LSTM通过门机制来解决梯度消失问题。为了更好的理解原理,我们看看LSTM如何计算隐层状态 \(s_{t}\