【机器学习10】循环神经网络

news2024/10/6 8:26:58

1循环神经网络

RNN通过将神经元串行起来处理序列化的数据。 由于每个神经元能用它的内部变量保存之前输入的序列信息,因此整个序列被浓缩成抽象的表示, 并可以据此进行分类或生成新的序列。
在这里插入图片描述

2 循环神经网络的梯度消失或梯度爆炸问题

传统的循环神经网络梯度可以表示成连乘的形式:
在这里插入图片描述
在这里插入图片描述

由于预测的误差是沿着神经网络的每一层反向传播的, 因此当雅克比矩阵的最大特征值大于1时, 随着离输出越来越远, 每层的梯度大小会呈指数增长, 导致梯度爆炸; 反之, 若雅克比矩阵的最大特征值小于1, 梯度的大小会呈指数缩小,产生梯度消失。

对于循环神经网络来说, 长短时记忆模型及其变种门控循环单元( Gated recurrent unit, GRU)等模型通过加入门控机制, 很大程度上弥补了梯度消失所带来的损失。

3循环神经网络的激活函数

根据前向传播公式向前传递一层, 可以得到
在这里插入图片描述
如果采用ReLU替代公式中的激活函数f, 并且假设ReLU函数一直处于激活区域(即输入大于0) , 则有f(x)=x,

在这里插入图片描述

继续将其展开, 表达式中最终包含t个W连乘。 如果W不是单位矩阵,最终的结果将会趋于0或者无穷, 引发严重的数值问题。
当采用ReLU作为循环神经网络中隐含层的激活函数时, 只有当W的取值在单位矩阵附近时才能取得比较好的效果, 因此需要将W初始化为单位矩阵。 实验证明, 初始化W为单位矩阵并使用ReLU激活函数在一些应用中取得了与长短期记忆模型相似的结果, 并且学习速度比长短期记忆模型更快。

4 LSTM

4.1 LSTM结构图

在这里插入图片描述加入了输入门it、 遗忘门ft以及输出门ot三个门和一个内部记忆单元ct。 输入门控制当前计算的新状态以多大程度更新到记忆单元中; 遗忘门控制前一步记忆单元中的信息有多大程度被遗忘掉; 输出门控制当前的输出有多大程度上取决于当前的记忆单元。
在这里插入图片描述

其中it是通过输入xt和上一步的隐含层输出ht−1进行线性变换, 再经过激活函数σ得到的。 输入门it的结果是向量, 其中每个元素是0到1之间的实数, 用于控制各维度流过阀门的信息量; Wi、 Ui两个矩阵和向量bi为输入门的参数, 是在训练过程中需要学习得到的。 遗忘门ft和输出门ot的计算方式与输入门类似, 它们有各自的参数W、 U和b。 与传统的循环神经网络不同的是, 从上一个记忆单元的状态ct−1到当前的状态ct的转移不一定完全取决于激活函数计算得到的状态, 还由输入门和遗忘门来共同控制。

4.2 LSTM激活函数

在LSTM中, 遗忘门、 输入门和输出门使用Sigmoid函数作为激活函数; 在生成候选记忆时, 使用双曲正切函数Tanh作为激活函数。 值得注意的是, 这两个激活函数都是饱和的, 也就是说在输入达到一定值的情况下, 输出就不会发生明显变化了。

5 Seq2Seq

5.1模型思想

Seq2Seq模型的核心思想是, 通过深度神经网络将一个作为输入的序列映射为一个作为输出的序列, 这一过程由编码输入与解码输出两个环节构成。 在经典的实现中, 编码器和解码器各由一个循环神经网络构成, 既可以选择传统循环神经网络结构, 也可以使用长短期记忆模型、 门控循环单元等。 在Seq2Seq模型中, 两个循环神经网络是共同训练的。

在文本摘要任务中, 输入的序列是长句子或段落, 输出的序列是摘要短句。在图像描述文本生成任务中, 输入是图像经过视觉网络的特征, 输出的序列是图像的描述短句。 进行语音识别时, 输入的序列是音频信号, 输出的序列是识别出的文本。

5.2 模型解码部分

Seq2Seq模型最核心的部分是其解码部分,最基础的解码方法是贪心法, 即选取一种度量标准后, 每次都在当前状态下选择最佳的一个结果, 直到结束。 贪心法获得的是一个局部最优解, 由于实际问题的复杂性, 该方法往往并不能取得最好的效果。

5.3模型解码改进

5.3.1 集束模型

在这里插入图片描述
该方法会保存b当前的较佳选择, 然后解码时每一步根据保存的选择进行下一步扩展和排序, 接着选择前b个进行保存, 循环迭代, 直到结束时选择最佳的一个作为解码的结果。

堆叠的RNN、 增加Dropout机制、 与编码器之间建立残差连接等,均是常见的改进措施。

6 注意力机制

使用Seq2Seq模型, 通常会先使用一个循环神经网络作为编码器, 将输入序列(源语言句子的词向量序列) 编码成为一个向量表示; 然后再使用一个循环神经网络模型作为解码器, 从编码器得到的向量表示里解码得到输出序列(目标语言句子的词序列) 。随着序列增长,
句子越前面的词的信息丢失就越严重。
在这里插入图片描述

Seq2Seq模型中引入注意力机制就是为了解决上述的问题。 在注意力机制中,仍然可以用普通的循环神经网络对输入序列进行编码, 得到隐状态h1,h2…hT。 但是在解码时, 每一个输出词都依赖于前一个隐状态以及输入序列每一个对应的隐状态:

在这里插入图片描述

其中注意力权重参数αij并不是一个固定权重, 而是由另一个神经网络计算得到:
在这里插入图片描述

神经网络a将上一个输出序列隐状态si−1和输入序列隐状态hj作为输入, 计算出一个xj, yi对齐的值eij, 再归一化得到权重αij。
一个典型的Seq2Seq模型里, 生成一个输出词yj, 会用到第i个输入词对应的隐状态hi以及对应的注意力权重αij。 如果只使用一个方向的循环神经网络来计算隐状态, 那么hi只包含了x0到xi的信息, 相当于在αij这里丢失了xi后面的词的信息。
而使用双向循环神经网络进行建模, 第i个输入词对应的隐状态包含了在这里插入图片描述
在这里插入图片描述 , 前者编码x0到xi的信息, 后者编码xi及之后所有词的信息, 防止了前后文信息的丢失。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

再学动态规划

先用一张图来理一下动态规划大纲 参考:https://www.zhihu.com/question/291280715/answer/1007691283 动态规划五个步骤 参考:https://www.zhihu.com/question/25814123 ①判断题目能否用动规解法 ②确定状态 最后一步 子问题 ③转移方程 ④确定初始条…

2024年山东省职业院校技能大赛中职组 “网络安全”赛项竞赛试题-A卷

2024年山东省职业院校技能大赛中职组 “网络安全”赛项竞赛试题-A卷 2024年山东省职业院校技能大赛中职组 “网络安全”赛项竞赛试题-A卷A模块基础设施设置/安全加固(200分)A-1:登录安全加固(Windows, Linux)A-2&#…

图像分类系列(四) InceptionV2-V3学习详细记录

前言 上一篇我们介绍了Inception的原始版本和V1版本:经典神经网络论文超详细解读(三)——GoogLeNet学习笔记(翻译+精读代码复现) 这个结构在当时获得了第一名,备受关注。但InceptionV1是比较复…

【机器学习】 逻辑回归算法:原理、精确率、召回率、实例应用(癌症病例预测)

1. 概念理解 逻辑回归,简称LR,它的特点是能够将我们的特征输入集合转化为0和1这两类的概率。一般来说,回归不用在分类问题上,但逻辑回归却能在二分类(即分成两类问题)上表现很好。 逻辑回归本质上是线性回归,只是在特…

机器学习中的独立和同分布 (IID):假设和影响

一、介绍 在机器学习中,独立和同分布 (IID) 的概念在数据分析、模型训练和评估的各个方面都起着至关重要的作用。IID 假设是确保许多机器学习算法和统计技术的可靠性和有效性的基础。本文探讨了 IID 在机器学习中的重要性、其假设及其对模型开…

JUC工具类_CyclicBarrier与CountDownLatch

最近被问到CyclicBarrier和CountDownLatch相关的面试题,CountDownLatch平时工作中经常用到,但是CyclicBarrier没有用过,一时答不上来,因此简单总结记录一下 1.什么是CyclicBarrier? 1.1 概念 CyclicBarrier&#xff…

php中RESTful API使用

1、RESTful AP是什么 RESTful API是一种软件架构风格 RESTful API基于HTTP协议,并遵循一系列约定和原则。它的设计理念是将资源(Resource)作为核心概念,并通过一组统一的接口对资源进行操作。API的资源通常通过URL进行标识&…

Linux grep 命令

Linux grep 命令 1: 作用 ​ grep是一种文本搜索工具,它能使用特定的搜索模式,包括[正则表达式]搜索文本,并默认输出匹配行。 ​ windows类似的命令是findstr. 2:语法 grep -options(参数)…

Spring Boot - devtools 热部署

spring-boot-devtools是Spring Boot提供的一组开发工具,它旨在提高开发体验。这些工具包括应用程序的自动重新启动、自动刷新和远程调试等功能。下面是将spring-boot-devtools整合到Spring Boot应用程序中的步骤: 0、启用"Build project automatic…

【AI视野·今日Sound 声学论文速览 第三十六期】Mon, 30 Oct 2023

AI视野今日CS.Sound 声学论文速览 Mon, 30 Oct 2023 Totally 7 papers 👉上期速览✈更多精彩请移步主页 Daily Sound Papers Style Description based Text-to-Speech with Conditional Prosodic Layer Normalization based Diffusion GAN Authors Neeraj Kumar, A…

开发知识点-前端-webpack

webpack技术笔记 一、 介绍二、 下载使用 一、 介绍 Webpack是一个现代 JavaScript 应用程序的静态模块打包器 打包:可以把js、css等资源按模块的方式进行处理然后再统一打包输出 静态:最终产出的静态资源都可以直接部署到静态资源服务器上进行使用 模…

达尔优EK87键盘说明书

EK87说明书连接说明: **有线模式:**开关拨到最右边,然后插线连接电脑即可使用 2.4G **接收器模式:**开关拨到中间,然后接收器插入电脑USB接口即可使用 **蓝牙模式:**开关拨到最左边,然后按FNQ长…

<Linux>(极简关键、省时省力)《Linux操作系统原理分析之Linux 进程管理 2》(6)

《Linux操作系统原理分析之Linux 进程管理 2》(6) 4 Linux 进程管理4.2 Linux 进程的状态和标识4.2.1 Linux 进程的状态及转换4.2.2 Linux 进程的标识4.2.3 进程标识哈希表 4 Linux 进程管理 4.2 Linux 进程的状态和标识 4.2.1 Linux 进程的状态及转换…

Navicat 基于 GaussDB 主备版的快速入门

Navicat Premium(16.2.8 Windows版或以上) 已支持对GaussDB 主备版的管理和开发功能。它不仅具备轻松、便捷的可视化数据查看和编辑功能,还提供强大的高阶功能(如模型、结构同步、协同合作、数据迁移等),这…

API接口怎么对接电商平台获取商品详情数据

对于api接口的对接,你可以按照以下步骤进行操作: 1. 确定需求:首先要明确你的对接需求,即想要通过对接api接口实现什么功能,例如获取数据、实现支付等。 2. 寻找文档:在对接之前,要找到相关ap…

一、认识STM32

目录 一、初识STM32 1.1 STM32的命名规则介绍 1.2 STM32F103ZET6资源配置介绍 二、如何识别芯片管脚 2.1 如何寻找 IO 的功能说明 三、构成最小系统的要素 一、初识STM32 1.1 STM32的命名规则介绍 以 STM32F103ZET6 来讲解下 STM32 的命名方法: &…

AH4056线性锂电池充电IC:高效、安全的充电解决方案

随着移动设备的普及,人们对电池续航能力的要求越来越高。为了满足这一需求,电池充电技术不断创新。本文将为您介绍一款AH4056线性锂电池充电IC,采用同步整流技术,具有宽输入电压范围、大充电电流、温度保护等优点,适用…

虾皮产品标题生成器:为您的商品打造吸引眼球的标题

在电商平台上,一个引人注目的商品标题是吸引潜在买家点击进入您的产品页面的第一步。然而,很多商家在创建商品标题时遇到困难,不知道如何吸引更多的目标受众。幸运的是,现在有一个名为知虾工具的强大工具,可以帮助商家…

【Git学习二】时光回溯:git reset和git checkout命令详解

😁 作者简介:一名大四的学生,致力学习前端开发技术 ⭐️个人主页:夜宵饽饽的主页 ❔ 系列专栏:JavaScript小贴士Git等软件工具技术的使用 👐学习格言:成功不是终点,失败也并非末日&a…

基于STM32的无线传感器网络(WSN)通信方案设计与实现

无线传感器网络(Wireless Sensor Network,简称WSN)是由一组分布式的无线传感器节点组成的网络,用于监测和收集环境中的各类物理信息。本文将基于STM32微控制器,设计并实现一个简单的无线传感器网络通信方案&#xff0c…