【机器学习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及之后所有词的信息, 防止了前后文信息的丢失。
在这里插入图片描述

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

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

相关文章

websocket学习

写在前面 新公司用到了websocket技术&#xff0c;所以这里学习下。 1&#xff1a;Java原生 1.1&#xff1a;maven <dependency><groupId>org.java-websocket</groupId><artifactId>Java-WebSocket</artifactId><version>1.5.3</ver…

代码随想录算法训练营第五十七天丨 动态规划part17

647. 回文子串 思路 动态规划 动规五部曲&#xff1a; 确定dp数组&#xff08;dp table&#xff09;以及下标的含义 如果大家做了很多这种子序列相关的题目&#xff0c;在定义dp数组的时候 很自然就会想题目求什么&#xff0c;我们就如何定义dp数组。 绝大多数题目确实是…

【java学习—十五】经典例题:生产者/消费者问题(7)

文章目录 1. 题目2. 答案 1. 题目 生产者 (Productor) 将产品交给店员 (Clerk) &#xff0c;而消费者 (Customer)从店员处取走产品&#xff0c;店员一次只能持有固定数量的产品 ( 比如 4 &#xff09;&#xff0c;如果生产者试图生产更多的产品&#xff0c;店员会叫生产者停一下…

特隆美储能PVS ASEAN 2023展览会完美落幕

2023年11月14-16日&#xff0c;特隆美储能参加在印尼雅加达举办的“2023东盟光伏与储能展览会”&#xff08;简称PVS ASEAN 2023&#xff09;。该展会展览面积达20000平米&#xff0c;有超过300家企业参展。 展会旨在推动印度尼西亚以及东南亚地区朝着绿色可持续发展和高能效的…

鉴源论坛 · 观模丨软件单元测试真的有必要吗?(下)

作者 | 包丹珠 上海控安产品总监 版块 | 鉴源论坛 观模 社群 | 添加微信号“TICPShanghai”加入“上海控安51fusa安全社区” “软件单元测试真的有必要吗&#xff1f;&#xff08;上&#xff09;”一文中&#xff0c;着重探讨了单元测试的重要性及其正面临的困境&#xff0c…

【LeetCode:2736. 最大和查询 | 贪心 + 二分 + 单调栈】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

一文带你了解ADC测试参数有哪些?

模数转换器&#xff08;ADC&#xff09;是数字电子系统中重要组成部分&#xff0c;用于捕获外部世界的模拟信号&#xff0c;如声音、图像、温度、压力等&#xff0c;并将它们转化为数字信号0\1, 以供计算机进行处理分析。ADC芯片在出厂交付之前&#xff0c;需要对产品的性能做各…

超详细的Monkey测试介绍

前言 Monkey 是Android SDK提供的一个命令行工具&#xff0c; 可以简单&#xff0c;方便地运行在任何版本的Android模拟器和实体设备上。 Monkey会发送伪随机的用户事件流&#xff0c;适合对app做压力测试 。 环境搭建 安装Android SDK 并配置环境变量 什么是Monkey 顾名…

PyTorch - 高效快速配置 Conda + PyTorch 环境 (解决 segment fault )

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/134463035 在配置算法项目时&#xff0c;因网络下载速度的原因&#xff0c;导致默认的 conda 与 pytorch 包安装缓慢&#xff0c;需要配置新的 co…

医美三季报内卷,华熙生物、爱美客、昊海生科混战双11

双十一落幕&#xff0c;据天猫大美妆数据统计&#xff0c;被称为“医美三剑客”的华熙生物(688363.SH&#xff09;、爱美客(300896.SZ)、昊海生科(688366.SH)的医美产品均未进入天猫双11美容护肤类目TOP10榜单。 与此同时&#xff0c;其业绩承压困局也写在最新的三季报里。 「…

【教学类-36】八等分格子-A4竖版-4条(制作皇冠、戒指)

背景需求&#xff1a; 最近在大四班孩子中间普及铅画纸制作“方盒”的活动&#xff0c;目前进展到使用三条8等分的长条纸&#xff0c;制作一个“坚硬的、不漏底”的方盒。 实验后&#xff0c;我想试试如果缩小纸条长宽&#xff0c;是不是可以做“迷你”纸盒。 目的&#xff…

工业镜头中的远心镜头与普通镜头的光路

普通镜头&#xff1a; 主光线与镜头光轴有角度&#xff0c;工件上下移动时&#xff0c;像的大小有变化。 FOV&#xff1e;镜头前端直径。 物方远心镜头&#xff1a; 物方主光线平行于光轴&#xff0c;物距发生改变时&#xff0c;像高不会发生改变&#xff0c;测得的物体尺寸大…

使用Docker部署Python Flask应用的完整教程

一、引言 Docker是一种开源的容器化平台&#xff0c;可以将应用程序及其依赖项打包成一个独立的容器&#xff0c;实现快速部署和跨平台运行。本文将详细介绍如何使用Docker来部署Python Flask应用程序&#xff0c;帮助开发者更高效地构建和部署应用。 二、准备工作 在开始之前…

Unexpected WSL error错误处理备忘

运行docker时提示下图错误&#xff0c;看了下WSL好像没啥问题&#xff0c;看网上有人说需要重置下网络&#xff0c;命令是netsh winsock reset&#xff0c;重置完后果然好了

前端uniapp列表下拉到底部加载下一页列表【下拉加载页面/带源码/实战】

目录 一. 图片1.2. 二.list.vue三.uni-load-more.vue最后 一. 图片 1. 2. 二.list.vue <template><view><!--列表--><scroll-view scroll-y"true" class"scroll-Y" :style"height: scrollviewHigh px;" lower-threshol…

js 将多张图片合并成一张图片

其实就是将两张图片地址根据canvas组合在一起&#xff0c;我放到项目中因为会存在跨域问题&#xff0c;所以将图片转化成base64&#xff0c;后面还会带随机值&#xff0c;这样可避免图片跨域错误&#xff0c;正常情况下可以直接将图片放到canvas里面。 灵感来源&#xff1a;js…

SpringBoot-配置文件properties/yml分析+tomcat最大连接数及最大并发数

SpringBoot配置文件 yaml 中的数据是有序的&#xff0c;properties 中的数据是无序的&#xff0c;在一些需要路径匹配的配置中&#xff0c;顺序就显得尤为重要&#xff08;例如在 Spring Cloud Zuul 中的配置&#xff09;&#xff0c;此时一般采用 yaml。 Properties ①、位…

@各大高校|亚洲诚信TrustAsia接入CARSI,四大福利活动重磅来袭!

亚洲诚信TrustAsia EduPKI在CARSI平台正式上线&#xff0c;为广大CARSI成员校师生提供SSL证书和专业的技术服务支持&#xff0c;守卫高校安全&#xff01; 伴随着人工智能、大数据、物联网等新一代数字化技术的迅猛发展&#xff0c;教育信息化2.0和智慧校园建设得到快速推进。但…

日志存档及解析

网络中的每个设备都会生成大量日志数据&#xff0c;日志数据包含有关网络中发生的所有活动的关键信息&#xff0c;存储所有这些数据并对其进行管理对组织来说是一项挑战&#xff0c;因此&#xff0c;这些日志文件被压缩并存储在效率较低的存储介质中&#xff0c;无法轻松检索。…

将Agent技术的灵活性引入RPA,清华等发布自动化智能体ProAgent

近日&#xff0c;来自清华大学的研究人员联合面壁智能、中国人民大学、MIT、CMU 等机构共同发布了新一代流程自动化范式 “智能体流程自动化” Agentic Process Automation&#xff08;APA&#xff09;&#xff0c;结合大模型智能体帮助人类进行工作流构建&#xff0c;并让智能…