DataWhale AI夏令营-《李宏毅深度学习教程》笔记-task3

2024-09-03 22:04

本文主要是介绍DataWhale AI夏令营-《李宏毅深度学习教程》笔记-task3,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

DataWhale AI夏令营-《李宏毅深度学习教程》笔记-task2

  • 第五章 循环神经网络
    • 5.1 独热编码
    • 5.2 RNN架构
    • 5.3 其他RNN
      • 5.3.1 Elman 网络 &Jordan 网络
      • 5.3.2 双向循环神经网络

第五章 循环神经网络

循环神经网络RNN,RNN在处理序列数据和时间依赖性强的问题上具有独特的优势,尤其是在自然语言处理和时间序列预测领域。
由图可知RNN的输入来自于上一层的输出结果和当前层的输入,所以RNN常被用来预测金融市场、气象等领域,通过分析过去的数据序列预测未来的趋势。
在这里插入图片描述
但是这种RNN的结果有很大的缺陷就是,当进行长序列预测时,RNN可能会由于序列较长遗忘了之前某些重要信息,导致预测精度下降。

为了解决RNN长序列遗忘问题,长短记忆网络LSTM被开发出来,通过引入三个“门”机制来管理记忆的存储、更新和删除,这使得它能够更有效地捕捉长期依赖关系。这三个门分别是输入门、遗忘门和输出门,如下图,it作为输入门;ft作为遗忘门;ot作输出门。
在这里插入图片描述
除了LSTM之外,Transformer架构也很好解决了RNN所面临的长期依赖和计算效率问题,并且Transformer架构目前也被广泛的应用于大模型领域,也取得了很好的效果。
Transformer架构的核心包括以下三个方面:

  1. 自注意力机制(Self-Attention): 自注意力机制是 Transformer的核心。它通过计算输入序列中每个元素与其他所有元素之间的相似性(注意力权重),并根据这些权重加权和更新每个元素的表示。这样,模型能够捕捉到序列中元素之间的依赖关系,而不受元素位置的限制。
  2. 位置编码(Positional Encoding): 由于 Transformer模型不依赖序列顺序,它需要一种方法来表示输入序列中元素的位置。位置编码是一种向量,它被添加到输入的嵌入向量中,用来保留序列的位置信息。
  3. 多头注意力机制(Multi-Head Attention):多头注意力机制通过将自注意力机制应用于多个不同的“头”,从不同的子空间中学习信息。这样可以捕捉到更多样化的依赖关系,并提高模型的表达能力。
    在这里插入图片描述

5.1 独热编码

回归本书正题,独热编码(one-hot)编码,常被用在自然语言处理领域多标签多分类等任务中。编码形式如图所示,即对应维度标签为1,其余为0。
在这里插入图片描述

5.2 RNN架构

其实前面提到过了RNN架构,书中给出的例子如下图,其实也就是之前提到过的每一层的输出不知取决于当前层的输入还有上一层的输出有关,书中给出的解释是,上一层的输出结果会储存在记忆层中,这时候当前隐藏层预测结果会同时考虑当前的输入与记忆层的内容。
请添加图片描述

5.3 其他RNN

5.3.1 Elman 网络 &Jordan 网络

Jordan 网络,Jordan 网络存的是整个网络输出的值,它把输出值在下一个时间点在读进来,把输出存到记忆元里。Elman网络没有目标,很难控制说它能学到什么隐藏层信息(学到什么放到记忆元里),但是Jordan网络是有目标,比较很清楚记忆元存储的东西。
请添加图片描述

5.3.2 双向循环神经网络

循环神经网络还可以是双向,即双向循环神经网络(Bidirectional Recurrent Neural Network,Bi-RNN)。如图,假设句子里的每一个单词用 xt 表示,其是先读 xt,再读 xt+1、xt+2。但其读取方向也可以是反过来的,它可以先读xt+2,再读xt+1、xt。我们可以同时训练一个正向的循环神经网络,又可以训练一个逆向的循环神经网络,然后把这两个循环神经网络的隐藏层拿出来,都接给一个输出层得到最后的yt。所以把正向的网络在输入xt 的时候跟逆向的网络在输入 xt 时,都丢到输出层产生 yt,产生 yt+1,yt+2,以此类推。
双向循环神经网络的好处是,神经元产生输出的时候,它看的范围是比较广的。
请添加图片描述

这篇关于DataWhale AI夏令营-《李宏毅深度学习教程》笔记-task3的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1134171

相关文章

Nexus安装和启动的实现教程

《Nexus安装和启动的实现教程》:本文主要介绍Nexus安装和启动的实现教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Nexus下载二、Nexus安装和启动三、关闭Nexus总结一、Nexus下载官方下载链接:DownloadWindows系统根

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

CnPlugin是PL/SQL Developer工具插件使用教程

《CnPlugin是PL/SQLDeveloper工具插件使用教程》:本文主要介绍CnPlugin是PL/SQLDeveloper工具插件使用教程,具有很好的参考价值,希望对大家有所帮助,如有错... 目录PL/SQL Developer工具插件使用安装拷贝文件配置总结PL/SQL Developer工具插

Java中的登录技术保姆级详细教程

《Java中的登录技术保姆级详细教程》:本文主要介绍Java中登录技术保姆级详细教程的相关资料,在Java中我们可以使用各种技术和框架来实现这些功能,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录1.登录思路2.登录标记1.会话技术2.会话跟踪1.Cookie技术2.Session技术3.令牌技

Python中文件读取操作漏洞深度解析与防护指南

《Python中文件读取操作漏洞深度解析与防护指南》在Web应用开发中,文件操作是最基础也最危险的功能之一,这篇文章将全面剖析Python环境中常见的文件读取漏洞类型,成因及防护方案,感兴趣的小伙伴可... 目录引言一、静态资源处理中的路径穿越漏洞1.1 典型漏洞场景1.2 os.path.join()的陷

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

Python使用Code2flow将代码转化为流程图的操作教程

《Python使用Code2flow将代码转化为流程图的操作教程》Code2flow是一款开源工具,能够将代码自动转换为流程图,该工具对于代码审查、调试和理解大型代码库非常有用,在这篇博客中,我们将深... 目录引言1nVflRA、为什么选择 Code2flow?2、安装 Code2flow3、基本功能演示

Java Spring 中的监听器Listener详解与实战教程

《JavaSpring中的监听器Listener详解与实战教程》Spring提供了多种监听器机制,可以用于监听应用生命周期、会话生命周期和请求处理过程中的事件,:本文主要介绍JavaSprin... 目录一、监听器的作用1.1 应用生命周期管理1.2 会话管理1.3 请求处理监控二、创建监听器2.1 Ser

MySQL 安装配置超完整教程

《MySQL安装配置超完整教程》MySQL是一款广泛使用的开源关系型数据库管理系统(RDBMS),由瑞典MySQLAB公司开发,目前属于Oracle公司旗下产品,:本文主要介绍MySQL安装配置... 目录一、mysql 简介二、下载 MySQL三、安装 MySQL四、配置环境变量五、配置 MySQL5.1

MQTT SpringBoot整合实战教程

《MQTTSpringBoot整合实战教程》:本文主要介绍MQTTSpringBoot整合实战教程,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录MQTT-SpringBoot创建简单 SpringBoot 项目导入必须依赖增加MQTT相关配置编写