机器学习--循环神经网路(RNN)2

在这篇文章中,我们介绍一下其他的RNN。

一.深层RNN

循环神经网络的架构是可以任意设计的,之前提到的 RNN 只有一个隐藏层,但 RNN 也可以是深层的。比如把 xt 丢进去之后,它可以通过一个隐藏层,再通过第二个隐藏层,以此类推 (通过很多的隐藏层) 才得到最后的输出。
每一个隐藏层的输出都会被存在记忆元里面,在下一个时间点的时候,每一个隐藏层会把前一个时间点存的值再读出来,以此类推最后得到输出,这个过程会一直持续下去。
在这里插入图片描述

二. Elman 网络 &Jordan 网络

循环神经网络会有不同的变形,如下图所示,刚才讲的是简单循环网络(Simple Recurrent Network,SRN),即把隐藏层的值存起来,在下一个时间点在读出来。
Jordan 网络存的是整个网络输出的值,它把输出值在下一个时间点在读进来,把输出存到记忆元里。Elman 网络(简单循环网络也称为 Elman 网络)没有目标,很难控制说它能学到什么隐藏层信息(学到什么放到记忆元里),但是 Jordan 网络是有目标,比较很清楚记忆元存储的东西。
在这里插入图片描述

三. 双向循环神经网络

循环神经网络还可以是双向
刚才 RNN 输入一个句子,它就是从句首一直读到句尾。如下图所示,假设句子里的每一个单词用 xt 表示,其是先读 xt,再读 xt+1、xt+2。
在这里插入图片描述

但其读取方向也可以是反过来的,它可以先读 xt+2,再读 xt+1、xt。我们可以同时训练一个正向的循环神经网络,又可以训练一个逆向的循环神经网络,然后把这两个循环神经网络的隐藏层拿出来,都接给一个输出层得到最后的 yt。所以把正向的网络在输入 xt 的时候跟逆向的网络在输入 xt 时,都丢到输出层产生 yt,产生 yt+1, yt+2,以此类推。

双向循环神经网络(Bidirectional Recurrent Neural Network,Bi-RNN)的好处是,神经元产生输出的时候,它看的范围是比较广的。
如果只有正向的网络,再产生 yt、yt+1 的时候,神经元只看过 x1 到xt+1的输入。但双向循环神经网络产生yt+1的时候,网络不只是看过x1,到xt+1所有的输入,它也看了从句尾到xt+1的输入。网络就等于整个输入的序列。
假设考虑的是槽填充,网络就等于看了整个句子后,才决定每一个单词的槽,这样会比看句子的一半还要得到更好的性能

四、长短期记忆网络

最常用的记忆元是长短期记忆网络(Long Short-Term Memory network,LSTM),长时间
的短期记忆(之前的循环神经网络,它的记忆元在每一个时间点都会被洗掉,只要有新的输入进来,每一个时间点都会把记忆元洗掉,所以的短期是非常短的,但如果是长时间的短期记忆元,它记得会比较久一点,只要遗忘门不要决定要忘记,它的值就会被存起来)。
在这里插入图片描述

LSTM 是比较复杂的。LSTM 有三个门(gate),当外界某个神经元的输出想要被写到记忆元里面的时候,必须通过一个输入门(input gate),输入门要被打开的时候,才能把值写到记忆元里面。如果把这个关起来的话,就没有办法把值写进去。
输入门的开关是神经网络自己学的,其可以自己学什么时候要把输入门打开,什么时候要把输入门关起来。

输出的地方也有一个输出门(output gate),输出门会决定外界其他的神经元能否从这个记忆元里面把值读出来。把输出门关闭的时候是没有办法把值读出来,输出门打开的时候才可以把值读出来。跟输入门一样,输出门什么时候打开什么时候关闭,网络是自己学到的。

第三个门称为遗忘门(forget gate),遗忘门决定什么时候记忆元要把过去记得的东西忘掉。这个遗忘门什么时候会把存在记忆元的值忘掉,什么时候会把存在记忆元里面的值继续保留下来,这也是网络自己学到的。

整个 LSTM 可以看成有 4 个输入、1 个输出。在这 4 个输入中,一个是想要被存在记忆元的值,但不一定能存进去,还有操控输入门的信号、操控输出门的信号、操控遗忘门的信号,有着四个输入但它只会得到一个输出。

记忆元的对应计算公式:
在这里插入图片描述
如下图所示,下面这个是外界传入单元的输入,还有输入门、遗忘门和输出门。
假设要被存到单元的输入叫做 z,操控输入门的信号为 zi,操控遗忘门的信号为 zf,操控输出门为 zo,综合这些东西会得到一个输出记为 a。
假设单元里面有这四个输入之前,它里面已经存了值 c。输出 a 会长什么样子呢,把 z 通过激活函数得到 g(z),zi 通过另外一个激活函数得到 f(zi) (激活函数通常会选择 sigmoid 函数),因为其值介在0到1之间的(sigmoid函数不清楚的可以去看之前的文章),这个0到1之间的值代表了这个门被打开的程度。(如果 f 的输出是1,表示为被打开的状态,反之代表这个门是关起来的)。
在这里插入图片描述
把 g(z) 乘以 f(zi) 得到 g(z)f(zi),对于遗忘门的 zf,也通过 sigmoid 的函数得到f(zf)
接下来把存到记忆元里面的值 c 乘以 f(zf) 得到 c f(zf),加起来 c′= g(z)f(zi)+cf(zf),那么 c′ 就是重新存到记忆元里面的值。所以根据目前的运算,这个 f(zi) 控制这个 g(z)。
假设输入 f(zi)=0,那 g(z)f(zi) 就等于 0,就相当于没有输入,如果 f(zi) 等于 1 就等于是把 g(z) 当做输入。
那这个 f(zf ) 决定是否要把存在记忆元的值洗掉,假设 f(zf ) = 1,遗忘门开启的时候,这时候 c 会直接通过,把之前的值还会记得。
如果 f(zf) = 0(遗忘门关闭的时候) cf(zf ) 等于 0。
然后把这个两个值加起来 (c′= g(z)f(zi) + cf(zf)) 写到记忆元里面得到c′。这个遗忘门的开关是跟直觉是相反的,遗忘门打开的时候代表的是记得,关闭的时候代表的是遗忘。
那这个 c′ 通过 h(c′),将 h(c′) 乘以 f(zo) 得到 a = f(c′f(zo))。
输出门受 f(zo) 所操控,f(zo) 等于 1 的话,就说明 h(c′) 能通过,f(zo) 等于 0 的话,说明记忆元里面存在的值没有办法通过输出门被读取出来。

在下一篇文章中我们再来详细探讨LSTM的原理。

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

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

相关文章

JavaEE企业开发新技术

目录 2.1 Class对象基本概念 1、概念 2.2 Class对象的获取方式 2.3基本数据类型的Class对象 1、概念 2.4 反射的基本概念 概念 2.5 Class对象的基本使用-1 2.6 Class对象的基本使用-2 newInstance()和new()区别: 2.1 Class对象基本概念 1、概念 反射的…

[LeetCode][102]二叉树的层序遍历——遍历结果中每一层明显区分

题目 102. 二叉树的层序遍历 给定二叉树的根节点 root,返回节点值的层序遍历结果。即逐层地,从左到右访问所有节点。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]] 示例 2: 输入…

Java设计模式:建造者模式之经典与流式的三种实现(四)

本文将深入探讨Java中建造者模式的两种实现方式:经典建造者与流式建造者。建造者模式是一种创建型设计模式,它允许你构建复杂对象的步骤分解,使得对象的创建过程更加清晰和灵活。我们将通过示例代码详细解释这两种实现方式,并分析…

Redux 与 Vuex:探索它们的设计思想及应用差异

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

图像压缩神器:使用wxPython和Pillow快速压缩JPEG文件

导语: 在数字时代,我们经常处理大量的图像文件,无论是个人照片、网络图片还是工作中的设计素材。然而,随着图像数量的增多,存储和传输这些文件可能会成为一个挑战。幸运的是,我们可以利用Python编程和两个强…

【Git】项目源码迁移到另一个gitlab(保留原来提交历史记录)

目录 前情提要迁移方案IDEA远程仓库管理团队其他成员切换gitgit命令操作界面 前情提要 公司原来是自己私有部署的gitlab。有了研发云后就希望将代码推送到研发云的代码仓库上。这时候需要迁移并保留原来提交的历史记录。 迁移方案 登录新的gitlab(代码仓库)新建空白项目获取…

如何搭建selenium自动化测试框架?selenium自动化测试环境搭建(webdriver+Python框架)

一、安装Python 选择Python版本后,进入Python官方网站下载适配机型版本:http://www.python.org/ 二、安装setuptools和pip setuptools下载地址:https://pypi.python.org/pypi/setuptools pip下载地址:https://pypi.python.org/py…

BUUCTF----[极客大挑战 2019]HardSQL

输入1’ 单引号闭合 进行永真式判断 竟然说我是臭弟弟----八嘎(肯定是进行了过滤) 经过手法判断,过滤了,空格,and等报错注入updatexml() 报错注入顾名思义就是,通过特殊函数错误使用并使其输出错误结果来获…

性能测试能力提升 —— 线程、并发、吞吐量、TPS、QPS、响应时间

一、背景 接着上一篇的知识:性能测试能力提升-关于性能测试,本篇文章,我们将主要介绍以下几方面的知识: 线程数&并发用户数相对并发&绝对并发吞吐量TPS&QPS响应时间 二、线程数、并发用户数 线程数: 主流的性能测…

Android Studio轮播图使用失败怎么办【已解决】

Android Studio轮播图使用失败怎么办 1.在gethub上面搜索轮播图 2.选择要使用的轮播图 3.查看该轮播图的配置方法 4.复制该依赖放入build.gradle中 5.重新构建 6.使用banner 发现没有报错了 7.参考网址 https://github.com/youth5201314/banner

解读BOT攻击,探索灵活高效的防护之道

回顾早期的互联网应用,由于业务流量比较小,往往单台服务器就能满足负载需求。随着互联网的流量越来越大,单服务器已经不能满足业务需求,无论它优化得再好,都较难承受大量的访问压力。支持负载均衡的技术很多&#xff0…

微信加好友频繁会被封号吗?

微信加好友频繁会被封号吗? 微信规定,每个人每天最多可以加20个好友,但一天之内如果频繁加好友,微信可能会出现异常提示,需要暂停好友添加操作。 面对微信上突如其来的大量好友申请,一定要谨慎处理,以免被…

【开源】SpringBoot框架开发教学资源共享平台

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 课程档案模块2.3 课程资源模块2.4 课程作业模块2.5 课程评价模块 三、系统设计3.1 用例设计3.2 类图设计3.3 数据库设计3.3.1 课程档案表3.3.2 课程资源表3.3.3 课程作业表3.3.4 课程评价表 四、系统展…

运维:记一次寻找定时任务并删除的经历

前言 我相信接手别人的服务器、或者在没有任何文档的情况去看自己原先的服务器,都或多或少会遇到莫名其妙的服务器独有规则。 比如你服务本身跑的好好的,突然啪的一下,没了! 什么原因导致的呢?其中,很大可能是定时任务在作祟。 原因分析 本次,我遇到的问题是:在Ubuntu系…

一分钟了解遥感中卫星、传感器、波段及数据之间的关系

感是利用卫星、飞机或其他载具上的传感器对地球表面进行观测和测量的科学技术。以下是一些常见的遥感相关术语: 卫星(Satellite):在遥感中,卫星是指绕地球轨道运行的人造卫星,其主要任务是携带各种传感器从空间中对地球表面进行观测。 传感器(Sensor):传感器是安装在卫…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:ImageSpan)

Text组件的子组件,用于显示行内图片。 说明: 该组件从API Version 10开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 子组件 无 接口 ImageSpan(value: ResourceStr | PixelMap) 参数: 参数名参数类…

抓包工具获取请求信息

Charles 下载安装 下载 官方下载地址:https://www.charlesproxy.com/latest-release/download.do 下载后傻瓜式安装就好,这个官方的需要激活,可以选择绿色版或者学习版 绿色版 绿色中文版:https://soft.kxdw.com/pc/Charles.z…

笔记78:软件包管理工具 apt 详解(包含常用 apt 命令介绍)

一、Ubuntu 的包管理工具 apt 过去,软件通常是从源代码安装的,安装步骤为:​​​​​​ 在Github上下载该软件的源码文件;查看Github上这个软件项目中提供的自述文件(通常包含配置脚本或 makefile 文件)&a…

Harbor二次开发前端环境搭建

1 前端开发环境搭建 (1)拉取分支代码 (2)前端开发推荐使用VsCode编辑器打开项目 打开 harbor\src\portal 文件夹,该文件夹为Harbor对应的前端代码所在位置 (3)在portal文件夹下创建名为 pro…

【Springer出版 · EI检索】| 第二届先进无人飞行系统国际会议(ICAUAS 2024)

会议简介 Brief Introduction 2024年第二届先进无人飞行系统国际会议(ICAUAS 2024) 会议时间:2024年6月14日-16日 召开地点:中国南昌 大会官网:ICAUAS 2024-2024 2nd International Conference on Advanced Unmanned Aerial Systems2024 2nd …