精华内容
下载资源
问答
  • LSTM训练无法收敛

    千次阅读 2019-03-12 09:44:14
    LSTM不收敛问题 问题描述 我准备用LSTM建立一个关于时序数据的映射问题,简单点来说就是输入一段有序的数据,经过LSTM之后输出另一段有序的数据,例如输入一段行走的动画骨架数据,输出一段跑的骨架数据。 我的方法...

    LSTM不收敛问题

    • 问题描述
      我准备用LSTM建立一个关于时序数据的映射问题,简单点来说就是输入一段有序的数据,经过LSTM之后输出另一段有序的数据,例如输入一段行走的动画骨架数据,输出一段跑的骨架数据。
    • 我的方法
      使用了三层的LSTM,将走的数据当作输入,跑的数据当做标签,将网络输出的结果和我的标签数据进行对比(使用了MSE损失函数),然后反向传播改进网络。
    • 我的问题
      网络不收敛,损失函数下降到0.02左右就不下降了,如下图所示,数据量是够的,学习率也非常的小,0.00001,我是过加入batch normalize,没有什么效果,各位大神们有什么建议和经验之谈吗?望不吝赐教,谢谢大家了!!!

    展开全文
  • 想问一下LSTM为啥不收敛

    千次阅读 2020-03-01 15:19:41
    按照别人的代码写了一个三层的 LSTM的代码,输入为(-1,stpes,input)的形式,具体大小为(32,10,512),做动作识别的,但是网络的损失值一直为固定范围内的值大概是四点多,网络损失一直下降,请问是哪里错了...

    按照别人的代码写了一个三层的 LSTM的代码,输入为(-1,stpes,input)的形式,具体大小为(32,10,512),做动作识别的,但是网络的损失值一直为固定范围内的值大概是四点多,网络损失一直不下降,请问是哪里错了吗,下面是那部分的代码

    n_hidden_units=128    # 隐藏层神经元数目
    num_layers=3            # 双向lstm神经网络的层数
    n_steps=10
    n_inputs=512
    
    vgg_output = tf.reshape(vgg_output,[-1,n_steps,n_inputs])
    
    def unit_lstm():
        # 定义一层 LSTM_cell,只需要说明 hidden_size, 它会自动匹配输入的 X 的维度
        lstm_cell = tf.contrib.rnn.BasicLSTMCell(num_units=n_hidden_units, forget_bias=1.0, state_is_tuple=True)
        #添加 dropout layer, 一般只设置 output_keep_prob
        lstm_cell = tf.contrib.rnn.DropoutWrapper(cell=lstm_cell, input_keep_prob=1.0, output_keep_prob=0.8)
        return lstm_cell
    #调用 MultiRNNCell 来实现多层 LSTM
    mlstm_cell = tf.contrib.rnn.MultiRNNCell([unit_lstm() for i in range(num_layers)], state_is_tuple=True)
    outputs, state = tf.nn.dynamic_rnn(mlstm_cell, inputs=vgg_output,dtype = tf.float32,time_major=False)
    h_state = outputs[:,-1,:]
    print(h_state.shape)
    W = tf.Variable(tf.truncated_normal([n_hidden_units, class_num], stddev=0.1), dtype=tf.float32)
    y_pre = tf.matmul(h_state, W) 
    print(y_pre.shape)
    
    cross_entropy = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits_v2(logits=y_pre, labels=Y))
    '''
    +sum(tf.nn.l2_loss(var) for var in tf.trainable_variables())
    '''
    train_op = tf.train.AdamOptimizer(lr).minimize(cross_entropy)
    accuracy = tf.reduce_mean(tf.cast(tf.equal(tf.argmax(y_pre, 1), tf.argmax(Y, 1)), dtype=tf.float32))
    
    
    展开全文
  • GRU与LSTM

    千次阅读 2018-09-23 14:34:17
    2、GRU 参数相对少更容易收敛,但是在数据集较大的情况下,LSTM性能更好。 3、GRU只有两个门(update和reset),LSTM有三个门(forget,input,output) LSTM还有许多变体,但不管是何种变体,都是对输入和隐层...

    一、前言

    GRU是LSTM的一种变体,综合来看:
    1、两者的性能在很多任务上不分伯仲。
    2、GRU 参数相对少更容易收敛,但是在数据集较大的情况下,LSTM性能更好。
    3、GRU只有两个门(update和reset),LSTM有三个门(forget,input,output)
    LSTM还有许多变体,但不管是何种变体,都是对输入和隐层状态做一个线性映射后加非线性激活函数,重点在于额外的门控机制是如何设计,用以控制梯度信息传播从而缓解梯度消失现象。

    二、结构

    1、LSTM

    关于LSTM的网络上有许多介绍,这里贴一下网络结构图作为对比说明:
    在这里插入图片描述
    LSTM作为RNN的变体,设计了input gate、forget gate和output gate对长期信息与当期信息的进行处理,以达到维持长期依赖信息的作用,公式如下:
    在这里插入图片描述
    从结构上来看,input gate负责控制new memory,即输入信息,forget gate负责控制上一轮的memory,即长期信息,output gate对前两者的激活信息进行控制,输出h,即当前隐藏层信息。

    2、GRU

    GRU最早由:Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation,这篇论文提出,论文中对GRU的结构图描述如下:
    在这里插入图片描述
    简单描述是将LSTM的三个门控进行改变,将input与forget gate合并为update gate,而output gate变为reset gate,用下边的结构图作为比较:
    在这里插入图片描述
    从结构看,reset gate直接在new memory处对上一层的隐层信息进行处理,控制h(t-1)的信息存在,所以这里update gate是对输入信息的控制得到当前层隐层状态,详细公式如下:
    在这里插入图片描述

    (1)符号

    z:update gate
    r:reset gate
    h~:候选隐藏状态
    h:隐藏状态
    t:时间

    (2)重置门和更新门

    σ 是 sigmoid 激活函数,取值范围会在 0 到 1 之间。W 和 U 是需要学习的权重矩阵,X是输入,h(t-1)是上一刻的隐藏状态。所以每个门的最后结果也是 0 到 1 之间。

    (3)候选隐藏状态

    候选隐藏状态只跟输入、上一刻的隐藏状态 h(t-1)有关。这里的重点是,h(t-1)是与 r 重置门相关的。r 的取值是在 0 到 1 之间,如果趋近于 0,那上一刻的信息就被遗忘掉了。

    (4)当前隐藏状态

    当前隐藏状态取决于 h(t-1) 和 h~。如果 z 趋近于 0,那表示上一时刻的信息被遗忘;如果 z 趋换于 1,那表示当前的输入信息被遗忘;其他则表示不同的重要程度。
    综上,GRU 主要是用来解决遗忘问题的,也就是在反向传播中的梯度消失问题。

    三、引用

    1、Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation
    2、https://cs224d.stanford.edu/lecture_notes/LectureNotes4.pdf

    展开全文
  • LSTM介绍

    2020-06-10 08:17:55
    而且使得RNN的收敛速度比普通的RNN要快上不少。 LSTM的名称有些奇特,叫长短时记忆。这个实际反应了这个算法的原理:保持记忆的长短。我们的大脑并不是记忆所有的信息,有短时记忆,也有长时间记忆。LSTM就是利用这...

    LSTM是RNN的一种。它的出现解决了梯度失真的问题。而且使得RNN的收敛速度比普通的RNN要快上不少。
    LSTM的名称有些奇特,叫长短时记忆。这个实际反应了这个算法的原理:保持记忆的长短。我们的大脑并不是记忆所有的信息,有短时记忆,也有长时间记忆。LSTM就是利用这个原理来设计的。
    普通的RNN只是保持了短时的记忆(h),在LSTM中增加了对记忆的处理©。这个增加的部分控制的逻辑比较复杂。简单的来说就是通过3个门:遗忘门、输入门和输出门来控制增加的记忆单元。需要注意的是,增加的门都是用来控制记忆单元的。
    遗忘门,决定了以前的记忆还保留多少
    输入门,决定了当前的输入,有多少转换为记忆
    输出门,决定了记忆有多少会输出。
    以上可以称为记忆单元的处理。其结果会议短时单元(h)的输出结果相加,这才是LSTM单元的输出。
    与普通的RNN相比,增加了记忆单元的输出。
    LSTM比较复杂,后面会上图以及公式。

    展开全文
  • LSTM回归问题

    2020-10-18 10:49:50
    LSTM 解决回归问题时,出现了 model.predict() 输出的值几乎是常数值的问题,后来发现是因为数据没有标准化(归一化),导致 loss 不下降,也就是不收敛。后来加入了数据的标准化之后,就可以拟合了。 from keras....
  • LSTM GRU区别

    2019-08-07 23:57:32
    GRU和LSTM的性能在很多任务上分伯仲。 GRU 参数更少因此更容易收敛,但是数据集很大的情况下,LSTM表达性能更好。 从结构上来说,GRU只有两个门(update和reset),LSTM有三个门(forget,input,output),GRU...
  • LSTM与GRU

    2019-03-08 20:26:08
    基础RNNs由于自身存在的一些弊端,比如gradient vanishing...LSTM(Long Short-Term Memory)相比较于基础的RNN cell,收敛更快,并且可以检测数据中的long-term dependencies。在TensorFlow中,可以直接通过将Basi...
  • LSTM和GRU的区别

    千次阅读 2018-09-30 19:33:39
    GRU和LSTM的性能在很多任务上分伯仲。 GRU 参数更少因此更容易收敛,但是数据集很大的情况下,LSTM表达性能更好。 从结构上来说,GRU只有两个门(update和reset),LSTM有三个门(forget,input,output),GRU...
  • 重要说明:此处显示的模型无法在此环境下收敛。 要查看融合模型,请查看 从Arthur 可在此处找到论文: 在测试 要求 和 。 用法 训练仅在大于30的小批量上进行,有效地防止了表现佳的事件影响训练。 奖励因素...
  • 当输入数据序列分布并标准,或者变化幅度(标准差)过大时,这会减慢网络的学习和收敛速度,也会阻碍网络的学习效率。 因此您需要了解如何归一化和标准化序列预测数据,以及如何确定将哪中形式用于输入和输出变量...
  • LSTM和GRU的对比和分析

    千次阅读 2019-02-12 20:09:10
    GRU和LSTM的性能在很多任务上分伯仲。 GRU 参数更少因此更容易收敛,但是数据集很大的情况下,LSTM表达性能更好。 从结构上来说,GRU只有两个门(update和reset),LSTM有三个门(forget,input,output),GRU...
  • 一、LSTM(Long-Short-Term-Memories) LSTM单元结构图及其公式 ...GRU和LSTM的性能在很多任务上分伯仲。 GRU 参数更少因此更容易收敛,但是数据集很大的情况下,LSTM表达性能更好。 从结构上来说,GRU只有...
  • 中文情感分类(基于LSTM

    千次阅读 2018-08-11 11:42:06
    基于LSTM实现中文情感分类,框架在开始的时候使用的是tensorflow,但是不知到为什么,最后网络总是收敛不了,损失几乎降。但是同样的想法思路使用keras后,训练就十分顺畅。话多说,总流程如下: 准备数据集 ...
  • 运用预训练模型,bert是字模型的,可以用bert的embedding矩阵,加速模型收敛,保证模型泛化 模型结构采用双向LSTM,结合上下文信息,更准确 把最大匹配的结果和字的embedding concat在一起作为LSTM输入,充分利用...
  • RNN\LSTM\GRU学习总结

    2020-06-07 21:40:49
    ①梯度裁剪:为梯度设置一个阈值,在更新参数前,检查梯度是否在阈值内,如果在则将梯度按阈值计算来更新参数 ②正则化:L1/L2 二、梯度消失 1.解决办法(针对RNN): ①门控机制:LSTM,GRU ②残差结构 ③batch...
  •  对于使用深度学习识别验证码,尝试过使用LeNet-5、AlexNet两种卷积网络,可能是网络结构简单的原因,结果不收敛。故尝试用了RNN中的LSTM单元网络来识别,效果较理想。   2、原始验证码文件   ...
  • 在训练我这个模型的时候,深深体会到了这个感受,有时候收敛,有时候无论怎么也不收敛。可能这个还容易解释一点,模型的很多参数是初始化的,不同的参数会跑到局部最you,模型陷在了一个局部最优点,出不去。 可能我...
  • 可能还是会出现不收敛的问题,我想这可能和初始化,数据,lr,优化器有关。 anyway,master版本网络确实存在不好收敛的问题,需要细致的调参(有的时候我会看decode出的...
  • 用pytorch 在做LSTM,为了有泛化能力,dropout设定为0.5.但是这样训练损失下降会出现波动,过程中突然损失巨大。请问用剪裁梯度的问题能解决这个问题吗。或者说dropout导致的稳定有没有解决办法。优化器是adamw,...
  • GRU和LSTM的性能在很多任务上分伯仲。 GRU 参数更少因此更容易收敛,但是数据集很大的情况下,LSTM表达性能更好。 从结构上来说,GRU只有两个门(update和reset),LSTM有三个门(forget,input,output),GRU...
  • Meta-LSTM则是利用LSTM网络作为外层网络对内层网络的各项优化参数(学习率、衰减率等)进行学习,这一方法模型容量大,但由于LSTM训练过程复杂,且收敛速度较慢,实用性高。因此作者受二者启发
  • 以下各种实现方法的得分是针对相应代码中的参数和网络结构设计的情况下的得分, 此处表示各种算法本身的性能和效果对比 实现方法 Score 迭代次数(采用early stopping)近似值 batch_size 说明 LSTM v1.0 0.58319 50...
  • 引言  在part1中介绍了LSTM的结构,现在要研究网络如何训练,训练通常需要训练集sentence、标签... Training时loss波动大不稳定不收敛。 需要增加一个trick:Clipping, 给gradient设置一个threshold(阈值),使其不
  • 深度学习2

    2019-09-26 12:39:10
    1 神经网络为啥用交叉熵 通过神经网络解决多分类问题时,最常用二道一种放肆就是在最后一层设置n个输出节点,无论在...GRU和LSTM 的性能在很多任务上分伯仲,2) GRU 参数更少,因此更容易收敛,但是数据集很大...
  • 由于R中存在适用于GARCH-MIDAS的软件包,因此MATLAB仅用于估计GARCH-MIDAS模型。所有的ANN都是使用R Studio计算的。 每种ANN架构:MLP,Jordan,Jordan和LSTM都是借助不同的软件包来计算的。 MLP是使用R包“神经...
  • GRU门控循环神经网络

    2020-02-17 13:57:24
    门控循环网络 深度学习的概念源于对人工神经网络的...对比一般的神经网络,GRU网络收敛速度快且容易发生梯度消失的情况,主要原因是该网络复杂的门控单元(细胞状态)通过偏置和相关参数来实时和灵活的调整激活函...
  • 注意这里的数据预处理时可以去掉标点符号或者其他的各种符号,最好是保存论文中提出的69种字符,我一开始使用去掉特殊符号的字符后的文本输入到模型中会无法收敛。 此外由于训练数据集比较少,即使论文中最小的...
  • Batch Normalized Recurrent Neural Networks

    千次阅读 2015-10-10 10:09:01
    在FNN中BN的使用使得网络收敛更快,但本文实验发现,若把BN放在隐含层之间,并能提高收敛速度,而将其放在输入层和隐含层之间时可以加速收敛,但泛化能力并未得到提高。我们先来看看文中提及的一些知识点。 RNN在...
  • 此话为错:深层循环网络能有效抽取更高层更抽象的信息,层数越深效果越好。 层数越深效果未必越好,层数的加深会...每个循环单元中的记忆细胞和循环单元的值为LSTM模型中的隐状态,而非参数,因此需要初始化。 ...

空空如也

空空如也

1 2 3
收藏数 47
精华内容 18
关键字:

lstm不收敛