循环神经网络(二)

简介: 循环神经网络(二)

开发者学习笔记【阿里云人工智能工程师ACA认证(2023版):循环神经网络(二)

课程地址:https://edu.aliyun.com/course/3112108/lesson/19269

 

循环神经网络(二)

二、经典循环神经网络


图片537.png

接下来,我们将深入了解经典的循环神经网络,即长短期记忆网络(LSTM)。"LS"代表长短期记忆,正如我们之前提到的,循环神经网络(RNN)具有记忆,但这种记忆相对短暂,因此称为短期记忆。然而,LSTM引入了长期记忆的概念,使其不仅具有短期记忆,还具有长期记忆。因此,长短期记忆网络(LSTM)成为了循环神经网络的最著名和最成功的扩展之一。LSTM通过增强循环神经网络的学习能力,解决了速度消失等问题。它有助于确定哪些信息是有价值的,并将这些信息存储在长期记忆中,从而减轻了循环神经网络的学习难度。下面是LSTM神经网络的结构,相对于之前的循环神经网络,它更加复杂,但基本上仍然是链式结构,具有从t-1到t到t+1的链接和类数的输出。但其内部结构更加复杂,包括将信息传递到下一个状态的箭头。接下来,我们将详细解释LSTM的原理。

现在,让我们来深入了解LSTM网络的核心部分。


首先是细胞状态。它是一条水平线,从c(t-1)延伸到c(t),在这之间只有很少的分支。这确保了信息可以保持不变地传递到整个RNN。LSTM网络内部包含一种被称为"门"的结构,它用于控制是否删除或添加信息到细胞状态c。这些门可以有选择地决定哪些信息通过,是通过一些简单的层和激活函数操作实现的,其输出是介于0和1之间的值,代表了信息应该被保留的程度。

图片538.png

然后,在一个带有三个门的长短期记忆(LSTM)单元中,细胞状态保持良好。但是要讨论这一点并不容易。我们需要整合这些信息,然后考虑如何使LSTM网络具有长期记忆。这是因为细胞状态C相当于一个用于记录长期信息的账本。而原始的循环神经网络(RNN)则将其视为上一时刻的输入。RNN以这种方式具有短期和长期记忆。但是,对于长期记忆,我们需要一种特殊的机制,它类似于在账本中记录重要信息。


这种机制是LSTM中的门结构。关于门结构,有两种主要修改方式。首先,它们可以用于删除信息,就像在账本上划掉一部分内容,或者在其中写入新信息。这些修改操作对于长期记忆至关重要。再次强调,LSTM具有长短期记忆,其中短期记忆来自上一时刻的输入h(t-1),而长期记忆来自细胞状态C。


对于这个细胞状态C,我们需要执行操作,包括读取它,清除它,写入它,以及使用它。这些操作是必要的,以便在生成下一个时间步的输出时发挥作用,这是LSTM最核心的部分。

图片539.png
第一步,对于C来说,我们需要决定丢弃其中的哪些信息。也就是说,我们需要通过遗忘门来擦除一些内容。遗忘门的操作涉及查看h(t)、h(t-1)和x,然后生成一个介于0和1之间的向量。然后,将这个向量应用于细胞状态中的每个数字,以决定保留哪些信息,哪些需要被擦除。

图片540.png第二步,我们需要确定要添加哪些信息。这些信息也来自h(t-1)和h(t),但是它们是通过输入门进行的操作,然后用于更新细胞态C(t)的一部分。这个过程使用数学公式来表示。

图片541.png

第三步是将旧的细胞状态C(t-1)更新为新的细胞状态C(t)。这个更新过程受到遗忘门的控制,以决定保留多少旧信息,并受到输入门的控制,以确定添加多少新信息。这也使用数学公式来表示。

图片542.png

 

第四步,根据h(t-1)和x来判断细胞状态的哪些特征应该输出,从而决定新的h(t)。这个过程涉及输出门和一个tanh层的计算,最终得到新的h(t)。


三、循环神经网络的应用


图片543.png接下来,让我们讨论一下循环神经网络(RNN)的应用。循环神经网络主要用于处理序列数据的问题。与之相比,卷积神经网络(CNN)通常处理二维或三维数据。这种区别在自然语言处理领域尤为重要,因为自然语言的输入通常是有序的,前后文之间存在关联。

第一个应用领域是文本生成,RNN可以根据前后文来预测中间未知的词语,类似于阅读理解中的完形填空。


第二个应用是机器翻译,RNN可以将一种语言的文本转换成另一种语言,其中词语的顺序对翻译结果产生影响。这对于处理语序敏感的语言差异非常有用。

第三个领域是语音识别,RNN可以根据音频输入识别相应的文本内容。

第四个应用是生成图像描述,类似于将图像转化为文字描述,让计算机能够理解图像的内容。

第五个领域是视频标注,将视频分解成一系列图像,并使用RNN来描述每个图像的内容。这实际上将视频处理为序列数据。

通过这些应用案例,我们可以看到循环神经网络在处理序列数据方面的广泛用途。

 

本节回顾

通过本节的学习,我们学到了:

1、循环神经网络的概述

福环神经网络是一类以序列数据为输入,在序列的演进方向进行递归且所有节点按链式连接的递口神经网络

2、循环神经网络的结构及类别

一个典型的RNN网络包含一个输入x,一个输出h和一个神经网络单元A

别:一对一、一对多、多对一、多对多

3、经典循环神经网络

长短期记忆网络(LSTM):增强活环神经网络的学习能力,对有价值的信息进行长期记忆,减小活环神经网络的学习难度

4、循环神经网络的应用

>文本生成、机器翻译、语音识别、生成图像描述,视频标记

相关文章
|
4月前
|
网络协议 算法 数据可视化
工业机器人基础:五大核心坐标系
在真实的机械臂调试现场,“换个夹爪就撞机”或“工装偏移2厘米导致几百个点位全废”是极易踩坑的工程痛点。其核心原因往往在于开发者未能彻底理清底层控制中的空间转换逻辑。本文剥离了冗长的纯数学推导,从实际工程应用的视角出发,系统梳理了工业机器人的**五大核心坐标系(大地、基、关节、工具、工件)**及其空间变换链路(TF Tree)。通过真实的调试场景,深入拆解 TCP 标定、姿态重定位与离线编程背后的物理映射原理。无论你是操作示教器的现场工程师,还是编写底层运动规划算法的开发者,本文都将为你构建清晰、实用的机器人空间几何基石。
732 2
|
机器学习/深度学习 算法
概率分布深度解析:PMF、PDF和CDF的技术指南
本文将深入探讨概率分布,详细阐述概率质量函数(PMF)、概率密度函数(PDF)和累积分布函数(CDF)这些核心概念,并通过实际示例进行说明。
2599 15
概率分布深度解析:PMF、PDF和CDF的技术指南
|
JavaScript 安全 前端开发
介绍DOM Based XSS
【8月更文挑战第25天】介绍DOM Based XSS
652 1
|
C语言
【数据结构】双向带头循环链表(c语言)(附源码)
本文介绍了双向带头循环链表的概念和实现。双向带头循环链表具有三个关键点:双向、带头和循环。与单链表相比,它的头插、尾插、头删、尾删等操作的时间复杂度均为O(1),提高了运行效率。文章详细讲解了链表的结构定义、方法声明和实现,包括创建新节点、初始化、打印、判断是否为空、插入和删除节点等操作。最后提供了完整的代码示例。
649 0
|
C++
【洛谷 P1307】[NOIP2011 普及组] 数字反转 题解(字符串)
**NOIP2011普及组题目:给定整数N,反转其位得到新数。新数首位非0(除非N=0)。输入0时直接输出0,其他情况输出反转后的数,考虑负数及前导0。提供的C++代码实现通过读入字符串,反转数字顺序并处理符号和前导0。**
310 0
|
人工智能 弹性计算 物联网
GPU实验室-部署Stable Diffusion玩转AI绘画
在本实验场景中,我们将向大家介绍如何基于 Stable Diffusion 实现文字到图片的生成,包括Stable Diffusion的安装和基本使用方法,以及使用Lora模型调整图片生成的风格。
|
数据采集 JavaScript 前端开发
“探秘JS加密算法:MD5、Base64、DES/AES、RSA你都知道吗?”
“探秘JS加密算法:MD5、Base64、DES/AES、RSA你都知道吗?”
1308 0
|
存储 Linux 网络安全
【网络安全/CTF】unseping 江苏工匠杯
【网络安全/CTF】unseping 江苏工匠杯
410 0
【网络安全/CTF】unseping 江苏工匠杯
leetcode-1319:连通网络的操作次数
leetcode-1319:连通网络的操作次数
198 0
|
存储 供应链 文件存储
计算机演变过程
我们先从最早的计算机讲起,人们在最初设计计算机时采用这样一个模型: 人们通过输入设备把需要处理的信息输入计算机,计算机通过中央处理器把信息加工后,再通过输出设备把处理后的结果告诉人们。 其实这个模型很简单,举个简单的例子,你要处理的信息是1+1,你把这个信息输入到计算机中后,计算机的内部进行处理,再把处理后的结果告诉你。 早期计算机的输入设备十分落后,根本没有键盘和鼠标,那时候计算机还是一个大家伙,最早的计算机有两层楼那么高。人们只能通过扳动计算机庞大的面板上无数的开关来向计算机输入信息,而计算机把这些信息处理之后,输出设备也相当简陋,就是计算机面板上无数的信号灯。所以那时的计算机根本无法处理
353 0