理解LSTM一种递归神经网络(RNN)

1 递归神经网络结构

一个简单的传统神经网络结构如下图所示:

image.png
给他一些输入x0,x1,x2 … xt, 经过神经元作用之后得到一些对应的输出h0,h1,h2 … ht。每次的训练,神经元和神经元之间不需要传递任何信息。

递归神经网络和传统神经网络不同的一个点在于,每次的训练,神经元和神经元之间需要传递一些信息。本次的训练,神经元需要使用上一次神经元作用之后的状态信息。类似递归函数一样。

image.png

3 传统RNN的瓶颈

如果我们尝试预测这句话 “云飘在天空”里的最后一个词,我们只需要参考之前的几个词,就可以很容易的得出结果是“天空“,

image.png

但是有些时候,我们需要之前的更多内容才可以得出结果。假设我们想要预测这句话 ”我家小狗从小接受握手训练,所以现在会和人握手”里的最后一个词,最近的几个词只能帮助我们限制最后一词的范围,如果想进一步缩小这个范围,就需要更多之前的内容。当需要的之前内容越来越多时, RNN恐怕很难处理了。

image.png

4 LSTM网络

LSTM是一种特殊的RNN, 用来解决长期依赖问题。和传统的RNN一样,网络结构是重复的,每次的训练,神经元和神经元之间需要传递一些信息。传统的RNN,每个重复的模块里都有一个简单tanh层。

image.png

LSTM拥有同样的结构,唯一不同的地方在于每个模块里面的结构不同,它里面有4个网络层,以一种特殊方式的相互作用。

image.png

5 具体怎样相互作用

状态单元(cell state) 可以长期保存某些状态,cell state的值通过忘记门层(forget gate),输入门层(input gate layer), 更新门层来控制实现保留多少旧状态,更新多少新的状态。

image.png

上图中Ct-1就是上一次神经元传递过来的状态信息,Ct就是经过本次神经元作用之后更新的状态信息,然后继续往后传递。

6 忘记门层(fortget gate layer),输入门层(input gate layer)

首先fortget gate layer使用Ht-1和Xt的值, 经过sigmoid函数作用之后,值ft落在0~1之间,用来控制需要忘记多少Ct-1里的内容,0到1之间的值相当于一个百分比。

image.png

接着input gate layer同样使用Ht-1和Xt的值,经过sigmoid函数作用之后,值it落在01之间,然后经过tanh函数作用之后,值![img]()落在-11之间,-1到1之间的值相当于是减少多少或者增加多少信息。

image.png

7 更新层(update layer)

接着通过下图中的函数来更新本单元里的Ct,用来传递到下一个单元里去。函数中加号左边用的算式用来控制需要忘记多少Ct-1里的内容,加号右边的算式用来控制需要改变多少本单元里的内容是减少还是增加,最后相加的结果Ct用来传递到下一个单元里去。

image.png

8 输出层(output layer)

接着我们需要决定输出什么,使用Ht-1和Xt的值,经过sigmoid函数作用之后,值Ot落在0~1之间 。然后使用Ct的值,经过tanh函数作用之后,值变成-1~1之间,接着乘以Ot,这样就可以控制想要输出的那一部分内容了,变成下一个单元的Ht-1。

在线教程

  • 麻省理工学院人工智能视频教程 – 麻省理工人工智能课程
  • 人工智能入门 – 人工智能基础学习。Peter Norvig举办的课程
  • EdX 人工智能 – 此课程讲授人工智能计算机系统设计的基本概念和技术。
  • 人工智能中的计划 – 计划是人工智能系统的基础部分之一。在这个课程中,你将会学习到让机器人执行一系列动作所需要的基本算法。
  • 机器人人工智能 – 这个课程将会教授你实现人工智能的基本方法,包括:概率推算,计划和搜索,本地化,跟踪和控制,全部都是围绕有关机器人设计。
  • 机器学习 – 有指导和无指导情况下的基本机器学习算法
  • 机器学习中的神经网络 – 智能神经网络上的算法和实践经验
  • 斯坦福统计学习

请添加图片描述

人工智能书籍

  • OpenCV(中文版).(布拉德斯基等)
  • OpenCV+3计算机视觉++Python语言实现+第二版
  • OpenCV3编程入门 毛星云编著
  • 数字图像处理_第三版
  • 人工智能:一种现代的方法
  • 深度学习面试宝典
  • 深度学习之PyTorch物体检测实战
  • 吴恩达DeepLearning.ai中文版笔记
  • 计算机视觉中的多视图几何
  • PyTorch-官方推荐教程-英文版
  • 《神经网络与深度学习》(邱锡鹏-20191121)

  • 在这里插入图片描述

第一阶段:零基础入门(3-6个月)

新手应首先通过少而精的学习,看到全景图,建立大局观。 通过完成小实验,建立信心,才能避免“从入门到放弃”的尴尬。因此,第一阶段只推荐4本最必要的书(而且这些书到了第二、三阶段也能继续用),入门以后,在后续学习中再“哪里不会补哪里”即可。

第二阶段:基础进阶(3-6个月)

熟读《机器学习算法的数学解析与Python实现》并动手实践后,你已经对机器学习有了基本的了解,不再是小白了。这时可以开始触类旁通,学习热门技术,加强实践水平。在深入学习的同时,也可以探索自己感兴趣的方向,为求职面试打好基础。

第三阶段:工作应用

这一阶段你已经不再需要引导,只需要一些推荐书目。如果你从入门时就确认了未来的工作方向,可以在第二阶段就提前阅读相关入门书籍(对应“商业落地五大方向”中的前两本),然后再“哪里不会补哪里”。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/341729.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

智能配电监控系统

摘要:利用微机综合保护测控装置 、控制单元、电力监测仪 、摄像机 ,设计开发出一套智能配电远程监控系统 ,实现配电室的无人值守 ,从而提高变配电运行现代化管理水平。 关键词:智能配电;现场监控&#xff…

IMX6ULL|GPIO子系统

一.GPIO子系统 GPIO是General Purpose I/O的缩写,即通用输入输出端口,简单来说就是MCU/CPU可控制的引脚,这些引脚通常有多种功能,最基本的是高低电平输入检测和输出,部分引脚还会与主控器的片上外设绑定,如…

性能篇:解密Stream,提升集合遍历效率的秘诀!

大家好,我是小米,一个热爱技术分享的小伙伴。今天我们来聊一聊 Java 中的 Stream,以及如何通过 Stream 来提高遍历集合的效率。 什么是Stream? 在开始深入讨论之前,我们先来了解一下什么是 Stream。 Stream 是 Java…

微信如何批量自动加好友?用它就对了!

你还在手动逐一输入号码,再搜索添加好友吗?这样实在是太麻烦了,还很费时间,稍不注意就会出错。不妨试试这个微信批量自动添加好友工具,解放双手,提高加人效率! 下面一起来看看如何操作吧&#…

(十一)Head first design patterns状态模式(c++)

状态模式 如何去描述状态机? 假设你需要实例化一台电梯,并模仿出电梯的四个状态:开启、关闭、运行、停止。也许你会这么写 class ILift{ public:virtual void open(){}virtual void close(){}virtual void run(){}virtual void stop(){} }…

机器学习实验1——朴素贝叶斯和逻辑回归分类Adult数据集

文章目录 🧡🧡实验内容🧡🧡🧡🧡数据预处理🧡🧡认识数据填充缺失值(“ ?”)将income属性替换为0-1变量筛除无效属性编码和缩放 🧡&…

GC6208 5V摄像机镜头驱动芯片,为什么可以替代AN41908,适用于摄像机镜头上

GC6208是一个镜头电机驱动IC摄像机和安全摄像机。该装置集成了一个由PID控制的可变光圈直流电机驱动器和两个通道的扫描隧道显微镜电机驱动器,用于变焦和聚焦控制。AN41908A是一款用于摄像机和安全摄像机的镜头马达驱动IC,具有lris控制功能。电压驱动系统…

基于springboot+vue新能源汽车充电管理系统

摘要 新能源汽车充电管理系统是基于Spring Boot和Vue.js技术栈构建的一款先进而高效的系统,旨在满足不断增长的新能源汽车市场对充电服务的需求。该系统通过整合前后端技术,实现了用户注册、充电桩管理、充电订单管理等核心功能,为用户提供便…

bxCAN 工作模式

bxCAN 工作模式 bxCAN 有三种主要的工作模式:初始化、正常和睡眠。硬件复位后,bxCAN 进入睡眠模式以降低功耗,同时 CANTX 上的内部上拉电阻激活。软件将主控制寄存器(CAN_MCR---CAN master control register)的初始化…

HTML+CSS:3D轮播卡片

效果演示 实现了一个3D翻转的卡片动画&#xff0c;其中每个卡片都有不同的图片和不同的旋转角度。整个动画循环播放&#xff0c;无限次。整个页面的背景是一个占据整个屏幕的背景图片&#xff0c;并且页面内容被隐藏在背景图片之下。 Code <div class"container"…

高效构建Java应用:Maven的使用总结

一、Maven简介和快速入门 1.1 Maven介绍 Maven-Introduction Maven 是一款为 Java 项目构建管理、依赖管理的工具&#xff08;软件&#xff09;&#xff0c;使用 Maven 可以自动化构建、测试、打包和发布项目&#xff0c;大大提高了开发效率和质量。 总结&#xff1a;Maven…

09-微服务Sentinel整合GateWay

一、概述 在微服务系统中&#xff0c;网关提供了微服务系统的统一入口&#xff0c;所以我们在做限流的时候&#xff0c;肯定是要在网关层面做一个流量的控制&#xff0c;Sentinel 支持对 Spring Cloud Gateway、Zuul 等主流的 API Gateway 进行限流。 1.1 总览 Sentinel 1.6.…

在线英文字母大小写转换工具

在线英文字母大小写转换 - BTool在线工具软件&#xff0c;为开发者提供方便。在线快速转换一段英文内容的大小写格式&#xff0c;例如转为一般句子大小写、全部小写、全部大写、大小写交错或像是标题的首字大写等等格式。https://www.btool.cn/case-converter此工具可在线快速转…

【书生·浦语】大模型实战营——第六次作业

使用OpenCompass 评测 InterLM2-chat-chat-7B 模型在C-Eval数据集上的性能 环境配置 1. 创建虚拟环境 conda create --name opencompass --clone/root/share/conda_envs/internlm-base source activate opencompass git clone https://github.com/open-compass/opencompass cd…

【Redis数据类型】String实现及应用场景

文章目录 String1、介绍2、内部实现整数值embstr 编码字符串raw编码字符串 3、常用命令4、应用场景缓存对象常规计数分布式锁共享session信息 参考&#xff1a;小林Coding Redis九种数据类型 Redis 提供了丰富的数据类型&#xff0c;常见的有五种&#xff1a;String&#xff08…

C++ 之LeetCode刷题记录(十四)

&#x1f604;&#x1f60a;&#x1f606;&#x1f603;&#x1f604;&#x1f60a;&#x1f606;&#x1f603; 开始cpp刷题之旅。 依旧是追求耗时0s的一天。 88. 合并两个有序数组 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2&#xff0c;另有两个整数 m 和 n &…

打造出色的 Prometheus 监控系统,看完后薪资翻倍?

一、监控概念&误区 监控是管理基础设施和业务的核心工具&#xff0c;监控应该和应用程序一起构建和部署&#xff0c;没有监控&#xff0c;将无法了解你的系统运行环境&#xff0c;进行故障诊断&#xff0c;也无法阻止提供系统性的性能、成本和状态等信息。 误区&#xff1…

怎样的安全数据交换系统 可以支持信创环境?

首先&#xff0c;我来看看&#xff0c;什么是安全数据交换系统&#xff1f;安全数据交换系统是一种专门设计用于在不同网络环境之间安全传输数据的技术解决方案。它确保数据在传输过程中的完整性、机密性和可用性&#xff0c;同时遵守相关的数据保护法规和行业标准。 那么&…

软件设计师——法律法规(四)

&#x1f4d1;前言 本文主要是【法律法规】——软件设计师——法律法规的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 &#x1f304…

为什么MOS管很容易失效?有哪些失效?

在电子元件中&#xff0c;金属-氧化物半导体场效应晶体管&#xff08;MOS管&#xff09;是独特且重要&#xff0c;然而相比其他元件&#xff0c;MOS管很容易失效&#xff0c;导致电路无法正常运行&#xff0c;因此工程师必须查找原因并解决问题。 1、MOS管为什么很容易失效&…