当前位置: 首页 > 编程日记 > 正文

LSTM神经网络

LSTM是什么

LSTM即Long Short Memory Network,长短时记忆网络。它其实是属于RNN的一种变种,可以说它是为了克服RNN无法很好处理远距离依赖而提出的。

我们说RNN不能处理距离较远的序列是因为训练时很有可能会出现梯度消失,即通过下面的公式训练时很可能会发生指数缩小,让RNN失去了对较远时刻的感知能力。

解决思路

RNN梯度消失不应该是由我们学习怎么去避免,而应该通过改良让循环神经网络自己具备避免梯度消失的特性,从而让循环神经网络自身具备处理长期序列依赖的能力。

RNN的状态计算公式为


,根据链式求导法则会导致梯度变为连乘的形式,而sigmoid小于1会让连乘小得很快。为了解决这个问题,科学家采用了累加的形式,


,其导数也为累加,从而避免梯度消失。LSTM即是使用了累加形式,但它的实现较复杂,下面进行介绍。

LSTM模型

回顾一下RNN的模型,如下图,展开后多个时刻隐层互相连接,而所有循环神经网络都有一个重复的网络模块,RNN的重复网络模块很简单,如下下图,比如只有一个tanh层。

这里写图片描述

这里写图片描述

而LSTM的重复网络模块的结构则复杂很多,它实现了三个门计算,即遗忘门、输入门和输出门。每个门负责是事情不一样,遗忘门负责决定保留多少上一时刻的单元状态到当前时刻的单元状态;输入门负责决定保留多少当前时刻的输入到当前时刻的单元状态;输出门负责决定当前时刻的单元状态有多少输出。

这里写图片描述

每个LSTM包含了三个输入,即上时刻的单元状态、上时刻LSTM的输出和当前时刻输入。

LSTM的机制

这里写图片描述

根据上图咱们一步一步来看LSTM神经网络是怎么运作的。

首先看遗忘门,用来计算哪些信息需要忘记,通过sigmoid处理后为0到1的值,1表示全部保留,0表示全部忘记,于是有

其中中括号表示两个向量相连合并,W_f是遗忘门的权重矩阵,\sigma为sigmoid函数,b_f为遗忘门的偏置项。设输入层维度为d_x,隐藏层维度为d_h,上面的状态维度为d_c,则W_f的维度为d_c\times(d_h+d_x)。

这里写图片描述

其次看输入门,输入门用来计算哪些信息保存到状态单元中,分两部分,第一部分为

该部分可以看成当前输入有多少是需要保存到单元状态的。第二部分为

该部分可以看成当前输入产生的新信息来添加到单元状态中。结合这两部分来创建一个新记忆。

这里写图片描述

而当前时刻的单元状态由遗忘门输入和上一时刻状态的积加上输入门两部分的积,即

这里写图片描述

最后看看输出门,通过sigmoid函数计算需要输出哪些信息,再乘以当前单元状态通过tanh函数的值,得到输出。

这里写图片描述

LSTM的训练

化繁为简,这里只讨论包含一个LSTM层的三层神经网络(如果有多个层则误差项除了沿时间反向传播外,还会向上一层传播),LSTM向前传播时与三个门相关的公式如下,

需要学习的参数挺多的,同时也可以看到LSTM的输出h_t有四个输入分量加权影响,即三个门相关的 f_t i_t c_t o_t,而且其中权重W都是拼接的,所以在学习时需要分割出来,即






相关阅读:
循环神经网络
卷积神经网络
机器学习之神经网络
机器学习之感知器
神经网络的交叉熵损失函数

========广告时间========

鄙人的新书《Tomcat内核设计剖析》已经在京东销售了,有需要的朋友可以到 item.jd.com/12185360.ht… 进行预定。感谢各位朋友。

为什么写《Tomcat内核设计剖析》

=========================

欢迎关注:

这里写图片描述

相关文章:

用C#实现在PowerPoint文档中搜索文本

用编程的方式根据对象模型很容易实现在Word、Excel文档中搜索文本,在PowerPoint里面也同样如此,使用对象模型有助于我们了解office的文档结构。 搜索的思路和方法基本是一样的,用PowerPoint应用程序对象打开指定的文档,用文档对象…

雷军的最后一次 重 大 创 业

这是我人生最后一次重大创业项目。我愿意押上人生全部的声誉,亲自带队,为小米汽车而战!——雷军作者 | Carol头图 | 下载于视觉中国出品 | CSDN(ID:CSDNnews)3月29日19:30,小米春季新品发布会拉…

shell之冒号的作用

冒号: :在shell中是一种命令,意思是总是为真,但是却不做任何操作,即总是为真的空命令eg:[rootlocalhost ~]# ${abc:t1}-bash: t1: command not found[rootlocalhost ~]# : ${abc:t1}[rootlocalhost ~]# echo $abct1[ro…

关于epel源的配置

EPEL,即Extra Packages for Enterprise Linux,这个软件仓库里有很多非常常用的软件,而且是专门针对RHEL设计的,对RHEL标准yum源是一个很好的补充,完全免费使用,由Fedora项目维护,所以如果你使用的是RHEL&am…

C#如何在Form中嵌入并且操作Excel表格

网上比较多讲述如何操作excel表的文章,但都是启动excel的窗口来打开excel数据文件。有时候需要把excel表嵌入到自己程序的form中,给客户一个不用切换窗口的操作界面,似乎更好。这在vc中用ole技术很容易实现,但是在c#中方法就不一样…

自研芯片架构 ,这家中国公司发布DPU芯片计划

近日,专注于智能计算领域的DPU芯片和解决方案公司中科驭数发布了其下一代DPU芯片计划,将基于自研的KPU(Kernel Processing Unit)芯片架构,围绕网络协议处理、数据库和大数据处理加速、存储运算、安全加密运算等核心功能&#xff0…

QQ超时不能刷新好友接收发送信息

如果您在其它电脑登录时正常,只在本地出现此种情况,可能与您本机的设置及网络限制有关,建议您先确保安装的是我司的官方版本,然后再搜索并删除您的QQ号码文件夹(会丢失聊天记录,请注意备份)&…

JavaStuNote 4

装箱(inbox)和拆箱(outbox) 代表了类类型和基本类型之间的转换行为。 手动版本号: Integer b new Integer(10); Int a b.intValue; 自己主动版本号: Integer b30; Integer bnew Integer(30); Int ab; int a b.intValue(); 由于基本类型…

把Doc文档转换成HTML等其它格式

利用microsoft Word 9.0 Object Library可以在页面中对Doc文档进行格式转换。有关Word对象的一些方法可以参考Open和Save。下面是进行转换的代码[C#]&#xff1a; /// <summary>/// WordToHtml 的摘要说明。/// 首先要添加引用&#xff1a;Microsoft Word 9.0 Object Li…

如何学好Python?相信很多人都做错了!

Python入门从哪开始&#xff0c;以我的过往经验&#xff0c;发现很多的教程都是这样讲的&#xff1a;先介绍 Python 的基本语法规则、list、dict、tuple 等数据结构&#xff0c;然后再介绍字符串处理和正则表达式&#xff0c;介绍文件等IO操作.... 就这样一点一点往下说。然而这…

艾麦捷科技-铂金小猪新年致辞

2019独角兽企业重金招聘Python工程师标准>>> 光阴似箭&#xff0c;2013年是匆忙的一年&#xff0c;艾麦捷科技从最初的“笑谈”到现在上线&#xff0c;招财猪进销存管理软件从无到有&#xff0c;到现在多次更新&#xff0c;无一不是在匆忙中完成的&#xff0c;尽管很…

C#开源框架整理

Json.NET http://json.codeplex.com/ Json.Net 是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更加简单。通过Linq To JSON可以快速的读写Json&#xff0c;通过JsonSerializer可以序列化你的.Net对象。让你轻松实现.Net中所有类型(对象,基本数据类型 …

提供一个基于.NET的加密/解密算法

提供一个基于.NET SymmetricAlgorithm 类的、带私钥的加密/解密算法的包装类。使用方法&#xff1a; symmcrypto de new SymmCrypto(SymmCrypto.SymmProvEnum.DES);Response.Write(x.Decrypting(de.Encrypting("ok","yyy"),"yyy")); 类的实现…

ubuntu修改IP

一、使用命令设置Ubuntu的ip地址1. 设置IP sudo ifconfig eth0 203.171.239.155 netmask 255.255.255.224 这样就算设置好了网卡eth0的IP地址和子网掩码2. 设置网关 sudo route add default gw 203.171.239.1293. 设置DNS 修改/etc/resolv.conf&#xff0c;在其中加入 nameserv…

Arm 十年重磅发布 v9 架构,不受 EAR 约束,未来将覆盖 3000 亿颗芯片

整理 | 伍杏玲出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;随着 AI、大数据、IoT 技术的相互渗透&#xff0c;人们对数据的要求也越来越高&#xff0c;如何提供普适专用、安全而强大的处理能力的架构&#xff1f;Arm 为这个答案准备十年。近日&#xff0c;Arm 推出…

HDU 6051 - If the starlight never fade | 2017 Multi-University Training Contest 2

/* HDU 6051 - If the starlight never fade [ 原根,欧拉函数 ] | 2017 Multi-University Training Contest 2 题意&#xff1a;给定 m,p, p 是素数设 f(i) 是 满足 (xy)^i ≡ x^i mod p 的 (x,y) 对数 且 1 ≤ x ≤ p-1 , 1 ≤ y ≤ m 求 ∑[1≤i≤p-1] i*f(i)限制&#xff…

干货!用 Python 快速构建神经网络

作者 | ZackSock责编 | 欧阳姝黎头图 | 下载于视觉中国前言机器学习一直是Python的一大热门方向&#xff0c;其中由神经网络算法衍生出来的深度学习在很多方面大放光彩。那神经网络到底是个个什么东西呢&#xff1f;说到神经网络很容易让人们联想到生物学中的神经网络&#xff…

才知道百度也提供了智能DNS服务 - 加速乐

http://jiasule.baidu.com/ 智能DNS 依托百度多年积累的高精度DNS识别库&#xff0c;平均只需5秒全球DNS服务器全部生效&#xff0c;百度蜘蛛1秒生效。抗攻击、无限解析记录&#xff0c;免费支持电信、联通、移动、铁通、教育网、国外、搜索引擎等分线路解析。 极致云加速 百度…

c#中结构与类的区别

类与结构的差别如何选择结构还是类一&#xff0e;类与结构的示例比较&#xff1a;结构示例&#xff1a;public struct Person {string Name;int height;int weightpublic bool overWeight(){//implement something}}类示例&#xff1a;public class TestTime {int hours;int mi…

Samba amp; Nginx - Resource temporarily unavailable

先说说本人的开发环境&#xff1a;Win7 Editplus VMware(CentosSambaNginx)。用Samba在Centos上把web文件夹(如www)共享&#xff0c;然后在Win7上訪问这个文件夹。之所以这么用的原因有&#xff1a; 习惯了Windows。效率比較高Editplus编辑器好用&#xff0c;相对于vi系列来说…

好多Javascript日期选择器呀-7

the Coolest DHTML Calendar 最特別的在於按下月份跟年份的加減按鈕不放&#xff0c;就可以選擇該項目。但實際上按著左鍵拖曳實在是一件很累的事&#xff0c;而且不懂電腦的 End-user 根本就不知道要按著不放&#xff0c;還得特地花時間去說明真的吃力不討好。 正好這次的專案…

话AI、学实践、探未来,亚马逊云科技AI在线大会报名开启!

Innovate 2021亚马逊云科技 AI 在线大会即将在 4 月 22 日举办。届时&#xff0c;亚马逊云科技大中华区产品部总经理顾凡&#xff0c;以及亚马逊云科技全球人工智能技术副总裁、杰出科学家Alex Smola将联袂为您献上精彩的主题演讲。大会开设六大分会场&#xff0c;可谓是别开生…

linux中的一些命令的想法

用户影子文件 ----shadow为什么要有影子文件因为Linux使用不可逆的加密算法来加密口令。加密算法不可逆的&#xff0c;因此***从密文处得不到明文&#xff0c;但/etc/passwd文件是全局可读的&#xff0c;而且加密算法是公开的&#xff0c;一旦用户有机会获取了/etc/passwd文件&…

vstpd服务

1、安装ftpyum install vsftpd -y systemctl start vsftpd systemctl stop firewalld systemctl enable vsftpd setenforce 0 #关闭selinux或者设置selinux不然会对试验造成影响 lftp ip ##能登陆并且显示&#xff0c;表示安装成功2、vsftpd文件信息/var/ftp …

LINQ to XML 建立,读取,增,删,改

LINQ to XML的出现使得我们再也不需要使用XMLDocument这样复杂的一个个的没有层次感的添加和删除。LINQ可以使的生成的XML文档在内存中错落有致。下面以一个小的例子说名LINQ to XML的简单应用。 需要添加必要的引用。System.XML.Linq , System.XML.Xpath使用XDocument 建立一个…

好多Javascript日期选择器呀-6

<script languagejavascript>var DS_x,DS_y; function dateSelector() //构造dateSelector对象&#xff0c;用来实现一个日历形式的日期输入框。{ var myDatenew Date(); this.yearmyDate.getFullYear(); //定义year属性&#xff0c;年份&#xff0c;默认值为当前系…

市值达 58 亿美元,吴恩达的在线教育平台 Coursera 正式上市

整理 | 寇雪芹出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;4 月 1 日&#xff0c;教育科技公司 Coursera 在纽约证券交易所上市&#xff0c;股票代码为 COUR。该股开盘价定为 39 美元 / 股&#xff0c;截至上市当日收盘&#xff0c;股价上涨至 45 美元 / 股&#…

软件包管理RPM

RPM 程序包管理器&#xff0c;可实现对程序包的安装、更新、查询和卸载操作&#xff0c;应用广泛下面通过实际操作来更好的理解RPM的功能安装程序&#xff1a;-i //安装数据包参数-v //显示安装过程-vv //显示更详细的安装信息-h //配合-v更加直观的显示程序安装过程&#…

好多Javascript日期选择器呀-4

<Script LANGUAGE"JavaScript"> var months new Array("一", "二", "三","四", "五", "六", "七", "八", "九","十", "十一", "十二&q…

SUBSTRING函數用法

---引用---從第二位開始,取三位 select SUBSTRING([價格條件],2,3) FROM [Ame_FSC_SEBGCelERP].[dbo].[物料採購價格信息表] SELECT * FROM [Ame_FSC_SEBGCelERP].[dbo].[物料採購價格信息表] update [Ame_FSC_SEBGCelERP].[dbo].[物料採購價格信息表] set [價格條件]SUBSTRI…