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

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.rhkb.cn/news/196325.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WPF xaml Command用法介绍

WPF (Windows Presentation Foundation) 中的命令设计模式是一种用于分离用户界面逻辑和业务逻辑的方法。在WPF中,这种模式通过命令接口(如 ICommand)实现,使得用户界面组件(如按钮、菜单项等)可以触发不直…

k8s ingress高级用法一

前面的文章中,我们讲述了ingress的基础应用,接下来继续讲解ingress的一些高级用法 一、ingress限流 在实际的生产环境中,有时间我们需要对服务进行限流,避免单位时间内访问次数过多,常用的一些限流的参数如下&#x…

深度学习(五)softmax 回归之:分类算法介绍,如何加载 Fashion-MINIST 数据集

Softmax 回归 基本原理 回归和分类,是两种深度学习常用方法。回归是对连续的预测(比如我预测根据过去开奖列表下次双色球号),分类是预测离散的类别(手写语音识别,图片识别)。 现在我们已经对回…

JAVAEE 初阶 多线程基础(一)

多线程基础 一.线程的概念二.为什么要有线程三.进程和线程的区别和关系四.JAVA的线程和操作系统线程的关系五.第一个多线程程序1.继承Thread类 一.线程的概念 一个线程就是一个 “执行流”. 每个线程之间都可以按照顺讯执行自己的代码. 多个线程之间 “同时” 执行着多份代码 同…

CV计算机视觉每日开源代码Paper with code速览-2023.11.14

点击CV计算机视觉,关注更多CV干货 论文已打包,点击进入—>下载界面 点击加入—>CV计算机视觉交流群 1.【基础网络架构:Transformer】Aggregate, Decompose, and Fine-Tune: A Simple Yet Effective Factor-Tuning Method for Vision…

流媒体协议

◆ RTP(Real-time Transport Protocol),实时传输协议。 ◆ RTCP(Real-time Transport Control Protocol),实时传输控制协议。 ◆ RTSP(Real Time Streaming Protocol),实时流协议。 ◆ RTMP(Real Time Messaging Protocol),实时…

【Proteus仿真】【Arduino单片机】LM35温度计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器,使用PCF8574、LCD1602液晶、LM35传感器等。 主要功能: 系统运行后,LCD1602显示传感器检测温度。 二、软件设计 /* 作者&a…

单片机的冷启动、热启动、复位

一文看懂STC单片机冷启动和复位有什么区别-电子发烧友网 单片机的冷启动、热启动和复位是不同的启动或重置方式,它们在系统状态和初始化方面有所不同: 1.冷启动(Cold Start): 定义: 冷启动是指系统从完全关…

【火炬之光-魔灵装备】

文章目录 装备天赋追忆石板技能魂烛刷图策略 装备 头部胸甲手套鞋子武器盾牌项链戒指腰带神格备注盾牌其余的装备要么是召唤物生命,要么是技能等级,鞋子的闪电技能等级加2不是核心,腰带的话主要是要冷却有冷却暗影的技能是不会断的&#xff…

揭示CDN加速的局限性与探讨其小众化原因

在网络加速领域,CDN(内容分发网络)被认为是提升性能的关键技术之一。然而,尽管其在某些方面表现出色,CDN在广泛应用中仍然相对小众。本文将从CDN加速的局限性出发,深入探讨为何这项技术尚未迎来大规模的应用…

.NET 8.0 中有哪些新的变化?

1性能提升 .NET 8在整个堆栈中带来了数千项性能改进 。默认情况下会启用一种名为动态配置文件引导优化 (PGO) 的新代码生成器,它可以根据实际使用情况优化代码,并且可以将应用程序的性能提高高达 20%。现在支持的 AVX-512 指令集能够对 512 位数据向量执…

计算机毕业设计选题推荐-掌心办公微信小程序/安卓APP-项目实战

✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

竞赛选题 疫情数据分析与3D可视化 - python 大数据

文章目录 0 前言1 课题背景2 实现效果3 设计原理4 部分代码5 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 大数据全国疫情数据分析与3D可视化 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐&#xff0…

websocket详解

一、什么是Websocket WebSocket 是一种在单个 TCP 连接上进行 全双工 通信的协议,它可以让客户端和服务器之间进行实时的双向通信。 WebSocket 使用一个长连接,在客户端和服务器之间保持持久的连接,从而可以实时地发送和接收数据。 在 Web…

Alibaba Nacos注册中心实战

为什么需要注册中心 思考:网络请求,如果服务提供者发生变动,服务调用者如何感知服务提供者的ip和端口变化? // 微服务之间通过RestTemplate调用,ip:port写死,如果ip或者port变化呢? String ur…

DRF纯净版项目搭建和配置

一、安装模块和项目 1.安装模块 pip install django pip install djangorestframework pip install django-redis # 按需安装 2.开启项目和api (venv) PS D:\pythonProject\env_api> django-admin startproject drf . (venv) PS D:\pythonProject\env_api> python ma…

elementui 实现树形控件单选

实现&#xff1a; <!--author: itmacydesc: 树节点单选 --> <template><div class"about"><el-tree :data"data"ref"tree":props"defaultProps"node-key"id"show-checkboxcheck-strictlycheck-change…

第七部分:Maven(项目管理工具)

目录 Maven简介 7.1&#xff1a;为什么学习Maven&#xff1f; 7.1.1、Maven是一个依赖管理工具 7.1.2&#xff1a;Maven是一个构建工具 7.1.3&#xff1a;结论 7.2&#xff1a;Maven介绍 7.3&#xff1a;Maven的优点 Maven安装和配置 7.4&#xff1a;安装教程及环境配置 …

记一次服务器配置文件获取OSS

一、漏洞原因 由于网站登录口未做双因子校验,导致可以通过暴力破解获取管理员账号,成功进入系统;未对上传的格式和内容进行校验,可以任意文件上传获取服务器权限;由于服务器上配置信息,可以进一步获取数据库权限和OSS管理权限。二、漏洞成果 弱口令获取网站的管理员权限通…

科研学习|研究方法——python T检验

一、单样本T检验 目的&#xff1a;检验单样本的均值是否和已知总体的均值相等前提条件&#xff1a; &#xff08;1&#xff09;总体方差未知&#xff0c;否则就可以利用 Z ZZ 检验&#xff08;也叫 U UU 检验&#xff0c;就是正态检验&#xff09;&#xff1b; &#xff08;2&a…