当前位置: 首页 > news >正文

【机器学习】面试题:LSTM长短期记忆网络的理解?LSTM是怎么解决梯度消失的问题的?还有哪些其它的解决梯度消失或梯度爆炸的方法?

(1)简单介绍一下LSTM

因为循环神经网络(Recurrent Neural Networks,RNN),本质是一个全连接网络,在处理长期依赖的问题上会出现梯度消失和梯度爆炸。长短时记忆模块(Long Short Term Memory,LSTM),是对RNN存在的梯度消失、梯度爆炸问题的一种优化模型。通过增加输入门限,遗忘门限和输出门限,使得自循环的权重是变化的,这样一来在模型参数固定的情况下,不同时刻的积分尺度可以动态改变,从而避免了梯度消失或者梯度膨胀的问题。

LSTM的三个门的作用:输入门决定何时让输入进入细胞单元;遗忘门决定何时应该记住前一时刻的信息;输出门决定何时让记忆流入下一时刻。

LSTM包含了两种激活函数,sigmoid 用在了各种门限上,产生0~1之间的值。tanh 用在了状态和输出上,是对数据的处理,这个用其他激活函数或许也可以。

(2)LSTM是怎么解决梯度消失的问题的?

传统的神经网络层数一多,就会有梯度消逝和爆炸的现象,因为导数的链式法则导致了连乘的形式。造成梯度指数级的消失,lstm使用CEC(constant error carousel)机制,使得远处的梯度传到近处没有改变、但这样又会造成输入输出权重矛盾,所以又使用了门限单元来解决。

(3)还有哪些其它的解决梯度消失或梯度爆炸的方法?

  • 梯度裁剪gradient clipping,当BP时的梯度小于某个阈值或大于某个阈值时 ,直接裁剪,防止太小的梯度累乘带来的梯度消失或太大的梯度累乘带来的梯度爆炸。
  • 改变激活函数,例如减少使用sigmoid、tanh这类激活函数,改成使用Relu、LeakRelu等。
  • 残差结构,类似于CEC的模块,跨层的连接结构能让梯度无损的进行后向传播。
  • Batch Normalization,相当于对每一层的输入做了一个规范化,强行把这个输入拉回标准正态分布*N~(0,1)。*这样使得激活输入值落在非线性函数对输入比较敏感的区域,这样输入的小变化就会导致损失函数的大变化,进而梯度变大,避免产生梯度消失问题。而且梯度变化大意味着学习收敛速度快,加快模型的训练速度。

相关文章:

  • 什么是UI设计?UI学习一般分几个阶段呢?
  • Dom Based XSS
  • 盘点10个.NetCore实用的开源框架项目
  • yolov7 mask 使用学习笔记
  • 『 云原生·分布式』分布式基础——虚拟机与Docker容器
  • docker镜像编译与docker-compose部署与编排
  • Spring事务底层源码剖析
  • 《WEB安全渗透测试》(31)BeEF-XSS一款红队XSS神器
  • 【优化组合】基于遗传算法求解不同投资比例的收益附matlab代码
  • 什么是JavaScript(快速入门)
  • 树莓派PICO入门教程
  • 深入理解计算机系统——第五章 Optimizing Program Performance
  • 【JDBC实战】水果库存系统 [设计阶段]
  • 【前端之旅】JavaScript进阶笔记
  • JVM运行时参数
  • CentOS 7 防火墙操作
  • docker python 配置
  • hadoop集群管理系统搭建规划说明
  • Java反射-动态类加载和重新加载
  • Java方法详解
  • Linux链接文件
  • MD5加密原理解析及OC版原理实现
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • Redis学习笔记 - pipline(流水线、管道)
  • redis学习笔记(三):列表、集合、有序集合
  • STAR法则
  • vue-cli3搭建项目
  • vue学习系列(二)vue-cli
  • 后端_MYSQL
  • 聊聊sentinel的DegradeSlot
  • 我看到的前端
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 再谈express与koa的对比
  • 最近的计划
  • 进程与线程(三)——进程/线程间通信
  • ​香农与信息论三大定律
  • ​用户画像从0到100的构建思路
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • $refs 、$nextTic、动态组件、name的使用
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (02)Hive SQL编译成MapReduce任务的过程
  • (16)Reactor的测试——响应式Spring的道法术器
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (九)信息融合方式简介
  • (六)c52学习之旅-独立按键
  • (十)T检验-第一部分
  • (算法)前K大的和
  • (一)基于IDEA的JAVA基础10
  • (转)Oracle存储过程编写经验和优化措施
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .htaccess 强制https 单独排除某个目录
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .NET Core、DNX、DNU、DNVM、MVC6学习资料
  • .NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证
  • .NET版Word处理控件Aspose.words功能演示:在ASP.NET MVC中创建MS Word编辑器