热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

深入解析LSTM理论在深度学习中的应用与核心机制

在深度学习领域,长短期记忆(LSTM)网络作为递归神经网络的一种改进形式,能够有效捕捉时间序列数据中的长期依赖关系。与传统的神经网络不同,LSTM通过引入门控机制,使得模型能够在处理当前时刻的信息时,选择性地保留或遗忘之前时刻的数据,从而更好地理解上下文信息。例如,在对电影场景进行逐帧分类时,LSTM能够利用先前帧的信息来提高分类的准确性。这种机制不仅增强了模型的时间感知能力,还显著提升了其在自然语言处理、语音识别等任务中的表现。

递归神经网络

在传统神经网络中,模型不会关注上一时刻的处理会有什么信息可以用于下一时刻,每一次都只会关注当前时刻的处理.举个例子,我们想对一部影片中每一刻出现的事件进行分类.如果我们知道视频前面的时间序列信息,那么对于当前时刻观看量的预测就会非常简单.实际上,传统神经网络没有记忆功能,所以它对每一刻出现的时间进行预测不会用到之前已经出现的信息.那么有什么办法可以让神经网络能够记住这些信息呢?


递归神经网络就是把以前的信息传播下去的.(有记忆功能的神经网络)

递归神经网络的结果与传统神经网络有一些不同,它带有一个指向自身的环,用来表示传递当前时刻处理的信息给下一时刻使用.

其中ht为隐藏变量,W是权重,Yt为输出.

其中X表示输入,W为各类权重,y表示输出,h表示隐藏层状态.上图可以认为它是对相同神经网络的多重复制,每一时刻的神经网络会传递信息给下一时刻.

长时依赖问题

长时依赖是这样的一个问题.当预测点与依赖的相关信息距离比较远的时候,就难以学到该相关信息.例如对于视频预测第几十分钟的预测和几千分钟后的预测关系.理论上,递归神经网络是可以处理这样的问题,但是实际上,常规的递归神经网络不能很好地解决长时依赖。而LSTM就是为了解决这样的问题.

LSTM神经网络

LSTM的核心思想

遗忘门输出公式:

ft=sigmoid(Wf*[h(t-1),xt]+bf),ft∈[0,1]

物理含义:这个决定由遗忘门通过sigmoid控制,它会根据上一时刻的输出h(t-1)和当前输入Xt来决定产生一个0到1的ft值.目的是决定是否让上一时刻学到的信息C(t-1)通过多少.

输入门

第二步是产生我们想要更新的信息.这一步包含两部分.

第一个是输入门通过sigmoid决定哪些值用来更新(注意对象是h(t-1),xt).it∈[0,1].

第二个是用tanh函数生成新的候选值C`t,作为当前输入门产生的候选值会添加到细胞状态Ct(时间序列).

把这两部分产生的值结合起来更新.

更新好的Ct有两部分,我们将老的细胞状态乘以ft忘掉不需要的信息,使用候选细胞乘以it更新需要更新的新,再把两者加起来,得到新的细胞状态.如下图所示.

输出门

第三步是决定模型的输出.

首先h(t-1),Xt通过sigmoid函数得到一个初始输出Ot.(h(t-1)是上一时刻的输出,Xt是本次的输入.h(t-1)与Xt理想化是一样的.实际上存在误差.).

输出:使用tanh将Ct值缩放到(-1,1)状态.再与s初始输出Ot相乘得到模型输出ht.

这可以理解,首先sigmoid函数的输出是不考虑先前时刻学习到的信息,tanh函数是对先前学到的信息Ct压缩处理,起到稳定数值的作用.

两者的结合学习就是RNN的学习思考.至于模型是如何学习的,这就是后向传播误差学习权重的过程.

上面是对LSTM的典型结构的理解,一般下,它会有一些结构上的变形,但是基本思想不变.

 [1]https://blog.csdn.net/shijing_0214/article/details/52081301?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1.control


推荐阅读
  • 深入解析人工神经网络中的神经元模型
    目前,深度学习(DeepLearning,简称DL)在算法领域可谓是大红大紫,现在不只是互联网、人工智能,生活中的各大领域都能反映出深度学习引领的巨大变革。要学习深度学习,那么首先 ... [详细]
  • 基于TensorFlow的鸢尾花数据集神经网络模型深度解析
    基于TensorFlow的鸢尾花数据集神经网络模型深度解析 ... [详细]
  • Python–tensorflow.math.multiply() ... [详细]
  • 我在滴滴数据分析岗实习8个月的收获(文末附内推机会)
    我在滴滴数据分析岗实习8个月的收获(文末附内推机会)作者:海潮来源:数据管道大家好,我是宝器!今天分享一下交流群里海潮兄弟的「数据分析岗」求职与工作经验,以下是海潮兄弟的自诉,全文 ... [详细]
  • CSWS_E_ROB深度估计方法
    论文链接:https:arxiv.orgpdf1708.02287.pdf正文翻译概述……首先,我们把深度估计看做一种多类别的密集标记任务,然后与基于公式的 ... [详细]
  • 本文详细解析了如何利用Appium与Python在真实设备上执行测试示例的方法。首先,需要开启手机的USB调试功能;其次,通过数据线将手机连接至计算机并授权USB调试权限。最后,在命令行工具中验证设备连接状态,确保一切准备就绪,以便顺利进行测试。 ... [详细]
  • 在Vite项目优化过程中,通过使用rollup-plugin-visualizer插件,可以有效地对Rollup打包结果进行可视化分析,帮助开发者清晰地了解各个模块的占用情况,从而进行更有针对性的优化。此外,结合其他常用插件,如vite-plugin-compression和vite-plugin-inspect,可以进一步提升项目的性能和可维护性。 ... [详细]
  • 在LAPACK库中,每个函数的命名都遵循特定的规则,清晰地反映了其功能和用途。函数名称通常采用XYYZZZ的格式,其中某些函数可能缺少第六个字符。这一命名规范不仅有助于用户快速理解函数的功能,还便于在大量函数中进行查找和引用。此外,了解这些命名规则对于高效利用LAPACK库中的各种线性代数操作至关重要。 ... [详细]
  • 为了帮助 Vue.js 开发者提高开发效率,本文介绍了几种高效的安装与调试工具。首先,需要下载相关工具的压缩包,然后在谷歌浏览器中访问 `chrome://extensions` 页面,启用开发者模式,点击“加载已解压的扩展程序”按钮,并选择之前解压的文件夹。此外,我们还推荐使用一些流行的 Vue.js 调试插件,如 Vue Devtools,以进一步提升开发体验。 ... [详细]
  • TensorFlow基础知识深化讲解
    批标准化批标准化(batchnormalization,BN)是为了克服神经网络层数加深导致难以训练而诞生的。深度神经网络随着深度加深,收 ... [详细]
  • 可以自适应的调整各通道的特征响应值,对通道间的内部依赖关系进行建模,主要为下面三个步骤:Squeeze:沿着空间维度进行特征压缩,将每个二维的特征通道变成一个数,是具有全局的感受野 ... [详细]
  • 农企的深度学习加速库MIOpen1.0更新了,它现在已经能支持对CNN的加速。ROCm全称RadeonOpenComputeplatform,是AMD在 ... [详细]
  • 《本文同步发布于“脑之说”微信公众号,欢迎搜索关注~~》**摘要:**虽然大多数生物系统的功能受到其结构的严格限制,但目前的证据表明,大脑网络的结构和功能之间的耦合是相对温和的。我 ... [详细]
  • python绘制拟合回归散点图_机器学习之利用Python进行简单线性回归分析
    前言:在利用机器学习方法进行数据分析时经常要了解变量的相关性,有时还需要对变量进行回归分析。本文首先对人工智能机器学习深度学习、相关分析因果分析回归分析 ... [详细]
  • 深度学习的理论基础
    谈到深度学习的理论基础,可能读者首先想到的就是通用近似定理(Universalapproximationtheorem),其表示拥有无限神经元的单层前馈网络能逼近紧致实数子集上的任 ... [详细]
author-avatar
李大乔vivi
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有