rnn

使用RNN进行imdb影评情感识别--use RNN to sentiment analysis

一曲冷凌霜 提交于 2019-12-06 02:54:31
原创帖子,转载请说明出处 一、RNN神经网络结构 RNN隐藏层神经元的连接方式和普通神经网路的连接方式有一个非常明显的区别,就是同一层的神经元的输出也成为了这一层神经元的输入。当然同一时刻的输出是不可能作为这个时刻的输入的。所以是前一个时刻(t-1)的输出作为这个时刻(t)的输入。 序列结构展开示意图,s为隐藏层,o为输出层,x为输入层,U为输入层到隐层的权重矩阵,V则是隐层到输出层的权重矩阵,这个网络在t时刻接收到输入 之后,隐藏层的值是 ,输出值是 。关键一点是, 的值不仅仅取决于 ,还取决于 。 二、RNN应用范围 RNNs主要用于处理NLP类的问题,如词向量表达、语句合法性检查、词性标注等。在RNNs中,目前使用最广泛最成功的模型便是LSTMs(Long Short-Term Memory,长短时记忆模型)模型,该模型通常比vanilla RNNs能够更好地对长短时依赖进行表达,该模型相对于一般的RNNs,只是在隐藏层做了手脚。下篇文章会对LSTM进行介绍。 三、使用RNN进行影评情感分析 0x00 实验环境   tensorflow2.0,此版本的keras已经被包含到tf中,导入keras时注意加入tensorflow前缀,如果想关闭vision2.0版本的特性的话,可以使用: import tensorflow.compat.v1 as tf tf.disable

Keras simple RNN implementation

大兔子大兔子 提交于 2019-12-06 01:02:36
问题 I found problems when trying to compile a network with one recurrent layer. It seems there is some issue with the dimensionality of the first layer and thus my understanding of how RNN layers work in Keras. My code sample is: model.add(Dense(8, input_dim = 2, activation = "tanh", use_bias = False)) model.add(SimpleRNN(2, activation = "tanh", use_bias = False)) model.add(Dense(1, activation = "tanh", use_bias = False)) The error is ValueError: Input 0 is incompatible with layer simple_rnn_1:

self-attention----Attention is all you need论文解读

倖福魔咒の 提交于 2019-12-05 22:16:25
文章目录 动机 背景 思考 细节 网络结构 总结 参考 最早提出self-attention思想的就是google17年这篇著名的论文了。 动机 传统的rnn难于并行 ,而最近流行的attention往往会利用rnn。总之为了解决无法并行训练问题,google提出了self-attention,完全摒弃了rnn单元,从而做到并行训练。 在这篇论文之前,facebook AI lab就提出了一种解决这个问题的方法,就是用cnn代替rnn单元来实现并行,具体发表在论文《Convolutional Sequence to Sequence Learning》。google提出用self-attention代替rnn,也是对facebook的一种回应吧。 背景 self-attention被google利用在了机器翻译上,目前比较流行的是attention-based机器翻译模型,基本已经取代encoder-decoder模型。但大多数仍是以rnn为基本单元。google的self-attention就是对传统的机器翻译模型进行改进,摒弃了rnn单元。要想深刻理解self-attention,我们首先先了解一下传统的机器翻译模型。 传统attention-based机器翻译模型代表论文《 Neural machine translation by jointly learning to

一文读懂「Attention is All You Need」| 附代码实现

不羁岁月 提交于 2019-12-05 22:14:49
作者丨苏剑林 单位丨 广州火焰信息科技有限公司 研究方向丨NLP,神经网络 个人主页丨kexue.fm 前言 2017 年中,有两篇类似同时也是笔者非常欣赏的论文,分别是 FaceBook 的 Convolutional Sequence to Sequence Learning 和 Google 的 Attention is All You Need ,它们都算是 Seq2Seq 上的创新,本质上来说,都是抛弃了 RNN 结构来做 Seq2Seq 任务。 在本篇文章中,笔者将对 Attention is All You Need 做一点简单的分析。 当然,这两篇论文本身就比较火,因此网上已经有很多解读了(不过很多解读都是直接翻译论文的,鲜有自己的理解),因此这里尽可能多自己的文字,尽量不重复网上各位大佬已经说过的内容。 序列编码 深度学习做 NLP 的方法,基本上都是先将句子分词,然后每个词转化为对应的词向量序列。这样一来,每个句子都对应的是一个矩阵 X=(x1,x2,…,xt),其中 xi 都代表着第 i 个词的词向量(行向量),维度为 d 维,故 。这样的话,问题就变成了编码这些序列了。 第一个基本的思路是 RNN 层 ,RNN 的方案很简单,递归式进行: 不管是已经被广泛使用的 LSTM、GRU 还是最近的 SRU,都并未脱离这个递归框架。RNN 结构本身比较简单

Pytorch学习记录-torchtext和Pytorch的实例( 使用神经网络训练Seq2Seq代码)

安稳与你 提交于 2019-12-05 21:43:04
Pytorch学习记录-torchtext和Pytorch的实例1 0. PyTorch Seq2Seq项目介绍 1. 使用神经网络训练Seq2Seq 1.1 简介,对论文中公式的解读 1.2 数据预处理 我们将在PyTorch中编写模型并使用TorchText帮助我们完成所需的所有预处理。我们还将使用spaCy来协助数据的标记化。 # 引入相关库 import torch import torch.nn as nn import torch.optim as optim from torchtext.datasets import TranslationDataset, Multi30k from torchtext.data import Field, BucketIterator import spacy import random import math import time SEED= 1234 random.seed(SEED) torch.manual_seed(SEED) # 训练模型个人的基本要求是deterministic/reproducible,或者说是可重复性。也就是说在随机种子固定的情况下,每次训练出来的模型要一样。之前遇到了两次不可重复的情况。第一次是训练CNN的时候,发现每次跑出来小数点后几位会有不一样。epoch越多,误差就越多 # 确定性卷积:

莫烦pytorch学习笔记4

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-05 21:16:17
莫烦pytorch学习笔记4 1 卷积网络 2 循环神经网络RNN,LSTM,GRU 2.1 RNN 2.2 LSTM 2.3 RNN分类例子 2.4 RNN回归例子 2.5 logistic 回归 1 卷积网络 理论: https://blog.csdn.net/weixin_41781408/article/details/88578849 import torch import torch . nn as nn from torch . autograd import Variable import torch . utils . data as Data import torchvision import matplotlib . pyplot as plt # Hyper Parameters EPOCH = 1 # train the training data n times , to save time , we just train 1 epoch BATCH_SIZE = 50 LR = 0.001 # learning rate DOWNLOAD_MNIST = True # set to False if you have downloaded # Mnist digits dataset train_data = torchvision .

End-to-End Memory Networks 端到端的记忆网络 精读

廉价感情. 提交于 2019-12-05 20:36:47
一、记忆网络 记忆网络:通过设计记忆模块 存储序列模型的中间结果 以防丢失信息 意义:可以解决RNN中信息丢失问题 二、RNN序列以及GRU和LSTM 1、传统RNN方法 2、GRU方法:多了两个门 3、LSTM多了一个记忆单元ct 二、前期知识储备 了解Memory NetWork 参考链接:https://arxiv.org/abs/1410.3916 https://zhuanlan.zhihu.com/p/29590286 来源: https://www.cnblogs.com/cola-1998/p/11945803.html

Tensorflow save final state of LSTM in dynamic_rnn for prediction

 ̄綄美尐妖づ 提交于 2019-12-05 18:35:06
I want to save the final state of my LSTM such that it's included when I restore the model and can be used for prediction. As explained below, the Saver only has knowledge of the final state when I use tf.assign . However, this throws an error (also explained below). During training I always feed the final LSTM state back into the network, as explained in this post . Here are the important parts of the code: When building the graph: self.init_state = tf.placeholder(tf.float32, [ self.n_layers, 2, self.batch_size, self.n_hidden ]) state_per_layer_list = tf.unstack(self.init_state, axis=0) rnn

[转帖]CNN、RNN、DNN的一般解释

血红的双手。 提交于 2019-12-05 16:19:36
CNN、RNN、DNN的一般解释 https://www.jianshu.com/p/bab3bbddb06b?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation 0.0952017.10.16 19:10:36字数 3,145阅读 4,648 CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)的内部网络结构有什么区别? 转自知乎 科言君 的回答 神经网络技术起源于上世纪五、六十年代,当时叫感知机(perceptron),拥有输入层、输出层和一个隐含层。输入的特征向量通过隐含层变换达到输出层,在输出层得到分类结果。早期感知机的推动者是Rosenblatt。 (扯一个不相关的:由于计算技术的落后,当时感知器传输函数是用线拉动变阻器改变电阻的方法机械实现的,脑补一下科学家们扯着密密麻麻的导线的样子…) 但是,Rosenblatt的单层感知机有一个严重得不能再严重的问题,即它对稍复杂一些的函数都无能为力(比如最为典型的“异或”操作)。连异或都不能拟合,你还能指望这货有什么实际用途么o(╯□╰)o 随着数学的发展,这个缺点直到上世纪八十年代才被Rumelhart、Williams、Hinton、LeCun等人(反正就是一票大牛)发明的多层感知机

深度学习-CNN+RNN笔记

[亡魂溺海] 提交于 2019-12-05 09:51:52
以下叙述只是简单的叙述,CNN+RNN(LSTM,GRU)的应用相关文章还很多,而且研究的方向不仅仅是下文提到的1. CNN 特征提取,用于RNN语句生成图片标注。2. RNN特征提取用于CNN内容分类视频分类。3. CNN特征提取用于对话问答图片问答。还有很多领域,比如根据面目表情判断情感,用于遥感地图的标注,用于生物医学的图像解析,用于安全领域的防火实时监控等。而且现阶段关于CNN+RNN的研究应用相关文章更加多样,效果越来越好,我们可以通过谷歌学术参阅这些文章,而且大部分可免费下载阅读,至于付费的那就另说咯。 CNN与RNN对比 CNN卷积神经网络与RNN递归神经网络直观图 相同点:   传统神经网络的扩展。   前向计算产生结果,反向计算模型更新。   每层神经网络横向可以多个神经元共存,纵向可以有多层神经网络连接。 不同点:   CNN空间扩展,神经元与特征卷积;RNN时间扩展,神经元与多个时间输出计算   RNN可以用于描述时间上连续状态的输出,有记忆功能,CNN用于静态输出   CNN高级100+深度,RNN深度有限 CNN+RNN组合方式 1. CNN 特征提取,用于RNN语句生成图片标注。 2. RNN特征提取用于CNN内容分类视频分类。 3. CNN特征提取用于对话问答图片问答。 具体应用 1. 图片标注 基本思路: 目标是产生标注的语句,是一个语句生成的任务