LSTM理解及梯度消失与爆炸

news/2024/11/17 5:47:35/

参数和神经元个数的计算:

解释LSTM两张常用图,如下:

长期困惑于LSTM的神经元个数计算,记录一下当下的理解

A代表LSTM cell,同一个LSTM但是timestep不同,由左图可知一个timestep中有四个前馈神经元(黄色的,3个sigmoid和一个tanh)

图中还有一个tanh(红色的),这里只是对Ct做了一个tanh的转换然后和经过最后的sigmoid的结果点乘作为输出;

按照有图的解释只有长方形的代表神经元,那么一个lstm中有四个神经元,一共应该是timestep * 4个神经元(但是这里是同一个lstm不同的timestamp,参数共享,那是否应该就只有4个神经元呢?)

参数计算通用公式:((num_units(也可叫hidden_size) + emb_dim)* emb_dim + num_units) * 4

输入x:[words_len, emb_dim],words_len:一句话中词的数量,emb_dim:词向量维度或one-hot维度

梯度消失与梯度爆炸:

对sigmoid和tanh函数:导数分别在(0, 0.25] 和 (0, 1],都是不大于1 的值,连乘时梯度不断变小

tanh函数相对于sigmoid函数梯度较大,收敛速度更快且引起梯度消失更慢。

Sigmoid函数输出不是零中心对称。sigmoid的输出均大于0,这就使得输出不是0均值,称为偏移现象,这将导致后一层的神经元将上一层输出的非0均值的信号作为输入。关于原点对称的输入和中心对称的输出,网络会收敛地更好。

对于Relu激活函数:左侧导数为0,右侧导数恒为1,避免了“梯度消失“,但容易导致“梯度爆炸“。

timestep 的理解:keras或tensorflow中的LSTM参数一般是(samples, timestep, input_dim),

samples是batch_size,timestep代表一句话中的单词数量,input_dim是一个词的维度。

time_step是神经网络参数,网络建好后不会改变;samples是训练参数,可根据效果调整。

tensorflow的RNN单元中有三个可训练的参数W , U , B 及两个输入变量input 和 h0。

每个样本含 timestep个时刻输入shape [batchsize,timestep,n]或 [timestep,batchsize,n]

基本的LSTM单元中有4个可训练的参数

每个样本timestep个时刻输入shape为[batchsize,timestep,n] 或[timestep,batchsize,n]

以mnist数据为例,每个样本的shape为28 * 28,使用LSTM处理,样本展开后必须有前后序列关系。 可直接展开成784个LSTM单元;也可按行或者按列来分割成28行(列),将这28个部分看成是序列。

如果batch_size 设为 4表示一次喂入网络的有4张图片;

timestep为28指将每一张图片都分割成28个时刻,分别喂给每一个LSTM单元 。

参考:

keras中LSTM的units是什么意思 - 简书

(1条消息) 【NLP实践-Task8 循环神经网络】LSTM详解 & Text-RNN文本分类 & RCNN原理_lstm text_y430的博客-CSDN博客

(1条消息) lstm 的timestep_如何理解lstm的输入输出_网易玩家工作室的博客-CSDN博客(timestep)

lstm原理+timesteps理解+实操+时间序列多变量_jiekclek的博客-CSDN博客(timestep)

RNN和LSTM中batchsize和timestep的区别是什么?_lstm的batch_size_空字符(公众号:月来客栈)的博客-CSDN博客(LSTM 输入输出维度,timestep)

对LSTM中间变量形状shape的理解, 附keras中LSTM的各个变量的shape理解_五四三两幺-发射!的博客-CSDN博客(LSTM 输入输出维度,timestep)


http://www.ppmy.cn/news/163362.html

相关文章

为Ideapad Y430的Vista 系统更换 XP系统

大家可能会换系统,但装上之后又会发现不稳定,或是有莫名其妙的现象,有时候是驱动安装顺序的原因!在此将随机盘里的驱动安装顺序发上来大家注意一下!IdeaPad Y430驱动(XP)下载:http:/…

学数控计算机哪个好,学数控用什么笔记本电脑最好要什么配置?

回答: 您学摄影就是和图片处理有关啦,我和你差不多,我喜欢用PS及其它软件做图片处里,很不错的 我现在用的是这款联想,很不错,5100块(我去年买的,现在差不多4800左右能买的到) 相关配置列表如下:…

『最新』关于联想IdeaPad Y430A-TSI一周有感!!

各位关注Y430-TSI(T6400)的友人注意了,小弟这里有最新的情况汇报,希望对你们有所参考啊!哈哈哈 我是2月7日买的,5850元,河南三门峡,价格是不是比各位前辈的都高啊,没办法…

联想y430 t4200

到现在为止感觉挺好的,哈哈

Y430下backtrack重新编译alsa驱动

Y430电脑有个低音炮,正是这个特立独行的设计,使得在使用Linux时候,当插入耳机时候低音炮仍然会发出声音。解决这个问题的方法很简单,修改alsa驱动并重新手工编译。 详细的内容可以参考 http://forum.ubuntu.org.cn/viewtopic.ph…

SpringBoot使用flywaydb实现数据库版本管理【附源码】

一、项目背景 本文主要是配合SpringBoot使用用户输入的自定义数据源启动一文附带产出。前文主要介绍了SpringBoot无数据源启动,然后通过用户录入自定义数据库配置后,连接数据库的操作。但是当整个项目交给用户使用时,谁使用都不知道情况下&a…

联想笔记本Y430p升级硬件(内存扩容+升级固态)

小白一个,14年底入手的联想Y430p笔记本,吭哧吭哧用到了2021年,现在只能写写文档看看视频,跑些小代码。突然想升级一下子硬件看能不能提升下流畅度,再挺个几年。 一、原电脑信息 下载个万能的鲁大师检测一下硬件&…

CYUSB3014设计方案|替代CYUSB3014芯片|方寸微T630可完全替代兼容CYPRESS CYUSB3014

CYUSB3014设计方案|替代CYUSB3014芯片|方寸微T630可完全替代兼容CYPRESS CYUSB3014 赛普拉斯CYPRESS CYUSB3014是一款USB 3.0 PHY芯片,广泛应用于视频转接类接口设计,比如各种摄像机、采集卡、扫描仪、医疗成像设备、视频监控等产品 方寸微T630&#xff…