当前位置: 首页 > news >正文

【初学人工智能原理】【12】循环:序列依赖问题

前言

本文教程均来自b站【小白也能听懂的人工智能原理】,感兴趣的可自行到b站观看。

代码及工具箱

本专栏的代码和工具函数已经上传到GitHub:1571859588/xiaobai_AI: 零基础入门人工智能 (github.com),可以找到对应课程的代码

正文

对于时间上有关联性的数据,如语音和文字,我们需要一种能够理解序列数据的神经网络。这种网络就是循环神经网络(RNN)。RNN的设计理念是利用记忆来处理序列数据,它的隐藏层不仅取决于当前输入,还取决于上一个时间点的隐藏状态。
以处理文字为例,我们首先需要将文字转换为计算机能够理解的数字形式,这通常是通过嵌入层实现的。嵌入层将每个单词映射为一个固定长度的向量,这个向量能够捕捉单词的语义信息。
接下来,这些向量序列被输入到RNN中。RNN的每个时间点都会处理一个单词向量,并更新其内部状态,这个状态包含了之前所有单词的信息。这样,RNN能够在整个句子层面上理解单词的上下文。
最后,RNN的输出可以被用来进行分类任务,比如判断评论是正面的还是负面的。通过训练,RNN学会在序列的每个时间点捕捉到关键信息,并能够在整个序列处理完成后做出决策。
总结来说,对于时间序列数据,我们使用RNN来处理,因为它能够记住序列中的信息,并利用这些信息来理解和预测序列的下一个状态。

如何把文字转成计算机能够识别的数字?

词典索引

在自然语言处理中,我们通常将词作为处理的基本单位,因为词能够更好地捕捉语言的语义。为了将词转换为数字,我们可以使用一种叫做“词袋”模型的方法。这种方法简单来说,就是给每个词分配一个唯一的数字ID。
例如,我们可以通过查词典,找到每个词在词典中的位置,这个位置就可以作为这个词的数字表示。比如,“nice”是第6787个词,“to”是第2845个词,“meet”是第5898个词,“you”是第9032个词。这样,整句话“nice to meet you”就可以被转换为数字序列[6787, 2845, 5898, 9032]。
这种转换后的数字序列可以作为神经网络的输入。然而,这种方法有一个缺点,就是它没有考虑到词之间的上下文关系。为了更好地捕捉词的语义和上下文信息,我们通常使用词嵌入技术,如Word2Vec或GloVe,这些技术可以将每个词映射到一个高维空间中的向量,其中向量之间的距离反映了词之间的语义关系。这样,神经网络就能更好地理解和处理自然语言数据。

处理中文文本时,我们首先需要进行分词,因为中文没有像英文那样的自然空格来分隔单词。分词是将句子切割成一个个有意义的词的过程。一旦我们有了分好的词汇,我们就可以像处理英文那样,将每个词转换成它在词典中的位置,也就是一个数字。
但是,这种方法可能会遇到一个问题。如果两个词在词典中的位置很接近,比如“开除”和“开心”,它们在数字表示上可能非常相似,尤其是在进行归一化处理后。这种相似性可能会误导我们的模型,因为它没有考虑到词的具体含义和上下文。
为了解决这个问题,我们可以使用词嵌入技术,比如Word2Vec或GloVe,这些技术不仅考虑到词的位置,还考虑到词的上下文,能够为每个词生成一个更加丰富的向量表示。这样,即使“开除”和“开心”在词典中的位置接近,它们的向量表示也能够体现出它们在语义上的差异,从而帮助模型更好地理解中文文本。

onehot编码

在自然语言处理中,为了避免词汇之间的混淆,我们通常使用一种叫做one-hot编码的方法。这种编码方式将每个词表示为一个很长的向量,这个向量的维度等于词典中词汇的总数。在这个向量中,只有一个元素是1,其他所有元素都是0。这个1的位置就代表了特定的词。
比如,如果我们有一个包含1万个词的词典,那么“苹果”这个词可能会被编码为一个向量,其中第500个位置是1,其他位置都是0。同样,“香蕉”这个词可能会被编码为另一个向量,其中第800个位置是1,其他位置都是0。这样,每个词都有了自己独特的编码,不会有任何混淆。
使用one-hot编码后,每个词都是完全不一样的,因为每个词的向量都有一个唯一的1。这样,即使是“开除”和“开心”这样在词典中位置接近的词,在one-hot编码后也会是完全不同的向量。不过,one-hot编码并没有考虑到词之间的语义关系,所以通常我们还会使用词嵌入技术来进一步处理这些编码,以便更好地捕捉词的语义。

但问题是我们严格把每个词都变得完全不一样的同时,也丢失了词汇之间的关联性,比如猫和狗这两个词在数据上应该更加接近,苹果和西瓜更加接近,而猫和苹果的差距应该更大,但呆板的onehot编码却无法体现这一点,因为这种人为的随意且呆板的词表示方法完全不能体现语言中词语的特点,而特征提取不当的数据会让神经网络变得难以训练和泛化。

再者onehot的编码会让输入数据非常的大,比如我们使用一个有1万个词的词典,这样每个词的onehot的编码都是一个1万倍的向量,那么一个有4个词的句子,那么输入数据就是4万个元素。

词向量

在自然语言处理中,为了让计算机更好地理解词汇,人们提出了词向量的概念。词向量是一种将词汇表示为向量(即一组数字)的方法,这些数字代表了词汇的不同特征。就像我们用多个特征(如大小、颜色、硬度)来描述一个物体一样,词向量也是通过提取词汇的不同特征来形成的。
例如,“狗”这个词可以被认为有一些特征:它是一个名词(0.9的概率),它是动物(不是植物),它有皮毛,有尾巴等。这些特征可以被转换成数字,从而形成一个向量。这样,“狗”这个词就被表示为一个多维空间中的一个点,这个点在空间中的位置反映了“狗”这个词的特征。
词向量使得计算机能够更好地理解词汇的语义,因为向量之间的距离可以表示词汇之间的相似性。如果两个词向量在空间中的距离很近,那么它们在语义上可能很相似。这种方法比简单的one-hot编码更加强大,因为它能够捕捉到词汇的语义和上下文信息。
词向量通常是通过机器学习算法在大规模文本数据上训练得到的,这些算法能够自动从文本中学习词汇的特征。常见的词向量训练工具有Word2Vec、GloVe等。这些词向量在许多自然语言处理任务中都非常有用,比如文本分类、情感分析、机器翻译等。

点击【初学人工智能原理】【12】循环:序列依赖问题 - 古月居 (guyuehome.com)可查看全文

相关文章:

【初学人工智能原理】【12】循环:序列依赖问题

前言 本文教程均来自b站【小白也能听懂的人工智能原理】,感兴趣的可自行到b站观看。 代码及工具箱 本专栏的代码和工具函数已经上传到GitHub:1571859588/xiaobai_AI: 零基础入门人工智能 (github.com),可以找到对应课程的代码 正文 对于…...

【QT】无法打开QT的ui文件,出现闪退情况

打开qt的ui文件出现闪退的情况: 解决办法:点击扩展-Qt VS Tools-Options 找到Qt General中的Qt Designer 的Run in detached window改为True。...

三、Spring-WebFlux实战案例-流式

目录 一、springboot之间通讯方式 1. 服务端 (Spring Boot) 1.1 添加依赖 1.2 控制器 2. 客户端 (WebClient) 2.1 添加依赖 2.2 客户端代码 3. 运行 二、web与服务之间通讯方式 1、服务端代码 2、客户端代码 3、注意事项 三、移动端与服务端之间通讯方式…...

html+css 实现hover双层按钮

前言:哈喽,大家好,今天给大家分享htmlcss 绚丽效果!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 文…...

SPIFFS与LittleFS的对gz文件格式的区别

SPIFFS 只能安装在Arduino上。LittleFS支持Arduino IDE和VScode的 PlatformIO。 SPIFFS serveStatic: server.serveStatic("/", SPIFFS, "/") 负责提供 SPIFFS 文件系统中的文件。您可以在 SPIFFS 上放置 .gz 文件,并该方法将自动处理它们。 …...

STM32L051K8U6-开发资料

STM32L051测试 (四、Flash和EEPROM的读写)-云社区-华为云 (huaweicloud.com) STM32L051测试 (四、Flash和EEPROM的读写) - 掘金 (juejin.cn) STM32L0 系列 EEPROM 读写,程序卡死?_stm32l0片内eeprom_stm3…...

Markdown语法学习

Markdown学习 一、基础语法讲解 1. 换行 本行末尾双空格然后回车(在Typora的中直接回车也可以) 2. 换段 本段末尾两次回车 3. 加粗 **加粗** __加粗__效果:加粗 4. 斜体 *加粗* _加粗_效果:斜体 5. 斜体加粗 ***加粗**…...

[最短路Floyd],启动!!!

B3647 【模板】Floyd #include<bits/stdc.h> #define ll long long #define fi first #define se second #define pb push_back #define PII pair<int,int > #define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0) using namespace std; const int N …...

7月29(信息差)

&#x1f30d;最强模型 Llama 3.1 如期而至&#xff01;扎克伯格最新访谈&#xff1a;Llama 会成为 AI 界的 Linux &#x1f384;谷歌AlphaProof攻克国际奥赛数学题 https://www.51cto.com/article/793632.html ✨SearchGPT第一波评测来了&#xff01;响应速度超快还没广告&…...

ubuntu中禁止使用鼠标拖动来移动文件

windows和ubuntu中都可以拖动文件到其他路径&#xff0c;然后达到移动文件的目的。 这种方式有好处也有坏处&#xff0c;好处是移动文件方便了&#xff0c;坏处是误操作后会造成故障&#xff0c;尤其是ubuntu中&#xff0c;本身鼠标就特别灵敏并且操作不便&#xff0c;拖动一个…...

【密码学】椭圆曲线密码体制(ECC)

椭圆曲线密码体制&#xff08;Elliptic Curve Cryptography, ECC&#xff09;是一种基于椭圆曲线数学特性的公钥密码系统。在介绍椭圆曲线之前&#xff0c;我们先来了解一下椭圆曲线的基本概念。 一、椭圆曲线是什么&#xff1f; &#xff08;1&#xff09;椭圆曲线的数学定义…...

第25集《大佛顶首楞严经》

丑二、腾疑细释 分二&#xff1a;寅一、阿难腾疑&#xff1b;寅二、如来细释 请大家打开讲义第五十六页&#xff0c;“丑二、腾疑细释”。 本经的修学重点&#xff0c;就是修学首楞严王三昧。它的整个重点&#xff0c;其实就是一个心地法门。我们在行菩萨道的时候慢慢会发觉…...

python 读写文件之 open 和 with open() 详细解析

python 读写文件之 open 和 with open() 详细解析 文章目录 python 读写文件之 open 和 with open() 详细解析1. open() 和 with open() 能打开不同的文件类型吗&#xff1f;2. 文本文件和二进制文件的区别2.1 文本文件 (Text Files)2.2 二进制文件 (Binary Files)区别 3. 读文…...

操作系统:内存----知识点

什么是虚拟内存&#xff1f; 虚拟内存简称虚存&#xff0c;是计算机系统内存管理的一种技术。它是相对于物理内存而言的&#xff0c;可以理解为“假的”内存。它使得应用程序认为它拥有连续可用的内存&#xff08;一个连续完整的地址空间&#xff09;&#xff0c;允许程序员编…...

pfx如何配置到nginx中

有pfx文件的时候如何在nginx上使用 好的&#xff0c;如果您已经确认没有中间证书&#xff08;或中间证书内容为空&#xff09;&#xff0c;那么可以直接使用服务器证书和私钥。以下是简化后的步骤&#xff1a; 从PFX文件中导出私钥&#xff1a; openssl pkcs12 -in xxx.com.pfx…...

详细测评下搬瓦工香港CN2 GIA VPS

搬瓦工香港VPS分移动CMI和电信CN2 GIA两个大类&#xff0c;一个属于骨干网&#xff0c;一个属于轻负载。搬瓦工的香港CN2 GIA根据测试来看实际上是CN2 GIABGP&#xff0c;并非三网纯CN2 GIA。详细测评数据如下&#xff1a; 用FIO再给测试一下硬盘I/O&#xff0c;可以仔细看看数…...

Java中的五种线程池类型

Java中的五种线程池类型 1. CachedThreadPool &#xff08;有缓冲的线程池&#xff09;2. FixedThreadPool &#xff08;固定大小的线程池&#xff09;3. ScheduledThreadPool&#xff08;计划线程池&#xff09;4. SingleThreadExecutor &#xff08;单线程线程池&#xff09…...

FFmpeg Windows安装教程

一. 下载ffmpeg 进入Download FFmpeg网址&#xff0c;点击下载windows版ffmpeg。 下载第一个essentials版本就行。 二. 环境配置 上面源码解压后如下 将bin添加到系统环境变量 验证安装是否成功&#xff0c;输入ffmpeg –version&#xff0c;显示版本即为安装成功。...

‘#‘ is not followed by a macro parameter 关于宏定义的错误

今天在项目代码上想定义一个这样的宏&#xff0c;结果编译错误&#xff0c;这个宏定义类似这样的&#xff1a; #define DELETE_FILE_DPP(key) \ #ifdef PLATFORM_DPP \delete_file(&key); \ #endif 因为有平台之分需要用到编译宏&#xff0c;但不想每个调用的地方都写 #i…...

内网穿透--meterpreter端口转发实验

实验背景 通过公司带有防火墙功能的路由器接入互联网&#xff0c;然后由于私网IP的缘故&#xff0c;公网无法直接访问内部主机&#xff0c;则需要通过已连接会话&#xff0c;代理穿透访问内网主机服务。 实验设备 1.路由器一台 2.内网 Win 7一台 3.公网 Kali 一台 4.网络 …...

RT-Thread消息邮箱机制解析与应用实践

RT-Thread消息邮箱机制深度解析1. 消息邮箱概述1.1 线程通信基础机制在实时操作系统中&#xff0c;线程间通信(IPC)是系统设计的关键组成部分。RT-Thread提供了两种基础通信机制&#xff1a;消息邮箱和消息队列。消息邮箱以其轻量级和高效性著称&#xff0c;特别适合小数据量的…...

5大维度解析Mac Mouse Fix:从工具到体验的蜕变之旅

5大维度解析Mac Mouse Fix&#xff1a;从工具到体验的蜕变之旅 【免费下载链接】mac-mouse-fix Mac Mouse Fix - A simple way to make your mouse better. 项目地址: https://gitcode.com/GitHub_Trending/ma/mac-mouse-fix Mac Mouse Fix是一款让普通鼠标在macOS系统上…...

告别环境配置劝退!跨平台研发环境搭建终极指南:从零基础到工程化落地

对于每一位开发者而言&#xff0c;研发环境是所有代码的「第一生产车间」&#xff0c;是技术成长的起点。但行业内一个非常普遍的现状是&#xff1a;超过80%的编程新手&#xff0c;在入门的第一周就会栽在环境配置上。 下载超时、权限报错、版本冲突、command not found玄学问…...

SpringBoot项目整合Redisson实战:从连接池报错到Redis集群健康检查的完整避坑指南

SpringBoot整合Redisson深度实践&#xff1a;连接池优化与集群健康监控全解析 Redis作为分布式系统的核心组件&#xff0c;其Java客户端Redisson的高阶用法一直是开发者关注的焦点。去年某电商平台大促期间&#xff0c;因Redis集群节点闪断导致的分布式锁失效事故&#xff0c;让…...

告别AP离线!深入浅出解析神州数码AC/AP注册机制:二层发现 vs. DHCP Option 43实战选型

神州数码无线网络部署实战&#xff1a;AC与AP注册机制深度解析 在企业无线网络部署中&#xff0c;AC&#xff08;无线控制器&#xff09;与AP&#xff08;无线接入点&#xff09;的注册机制是构建稳定无线网络的基础环节。神州数码作为国内领先的网络设备提供商&#xff0c;其A…...

深度解析Wiki.js操作日志系统:构建企业级安全监控的完整方案

深度解析Wiki.js操作日志系统&#xff1a;构建企业级安全监控的完整方案 【免费下载链接】wiki- Wiki.js | A modern and powerful wiki app built on Node.js 项目地址: https://gitcode.com/GitHub_Trending/wiki78/wiki- 当团队协作编辑Wiki内容时&#xff0c;你是否…...

CMake文件操作全攻略:从读取到加密,这些命令让你的项目更高效

CMake文件操作全攻略&#xff1a;从读取到加密&#xff0c;这些命令让你的项目更高效 在构建系统领域&#xff0c;CMake已经成为了事实上的标准工具。但很多开发者仅仅停留在基础的add_executable和target_link_libraries使用层面&#xff0c;忽视了CMake强大的文件操作能力。实…...

别再死记硬背了!用5分钟搞懂NPN和PNP三极管的电流流向(附快速判断技巧)

5分钟掌握NPN与PNP三极管的电流奥秘&#xff1a;从生活场景到实战技巧 记得第一次拆解收音机时&#xff0c;那些黑色的小方块上延伸出的金属腿让我一头雾水——它们看起来平平无奇&#xff0c;却能控制电流的放大与开关。直到导师用浇花的水管作比喻&#xff0c;三极管的秘密才…...

掌握Argos Translate:离线翻译与隐私保护实战指南

掌握Argos Translate&#xff1a;离线翻译与隐私保护实战指南 【免费下载链接】argos-translate Open-source offline translation library written in Python 项目地址: https://gitcode.com/GitHub_Trending/ar/argos-translate 在当今数据隐私日益受到重视的时代&…...

从‘飞到红色建筑左边’说起:拆解无人机视觉语言导航(VLN)背后的三大工程难题

从"飞到红色建筑左边"说起&#xff1a;拆解无人机视觉语言导航的工程化困局 当你在测试场地对无人机说出"飞到红色建筑左边"时&#xff0c;这个看似简单的指令背后&#xff0c;是一场跨越模态鸿沟的复杂解码过程。不同于实验室里的完美演示&#xff0c;真实…...