深度学习(3)--递归神经网络(RNN)和词向量模型Word2Vec

目录

一.递归神经网络基础概念

二.自然语言处理-词向量模型Word2Vec

2.1.词向量模型

2.2.常用模型对比

2.3.负采样方案

2.4.词向量训练过程


一.递归神经网络基础概念

递归神经网络(Recursive Neural Network, RNN)可以解决有时间序列的问题,处理诸如树、图这样的递归结构。

CNN主要应用在计算机视觉CV中,RNN主要应用在自然语言处理NLP中。

1.h0,h1.....ht对应的是不同输入得到的中间结果。

2.处理自然语言I am GodFishhh or AFish:

则对应的输入为X0 -- I,X1 -- am,X2 -- GodFishhh,X3 -- or,X4 -- AFish,再通过一定的方法将自然语言输入转换为计算机能够理解的形式(例如Word2Vec方法,将文本中的词语转换为向量形式)。

3.RNN网络最后输出的结果会考虑之前所有的中间结果,记录的数据太多可能会产生误差或者错误。

LSTM长短记忆网络是一种特殊的递归神经网络,可以解决上述记录数据太多的问题:

在普通的RNN中,t-1时刻得到的输出值h(t-1)会被简单的复制到t时刻,并与t时刻的输入值X(t)整合再经过一个tanh函数后形成输出。

而在LSTM中,对于t-1时刻得到的输出值h(t-1)会有更加复杂的操作。

二.自然语言处理-词向量模型Word2Vec

2.1.词向量模型

将文本向量化后,就可以通过不同方法(欧氏距离、曼哈顿距离、切比雪夫距离、余弦相似度等)来计算两个向量之间的相似度。

同时通常来说,向量的维度越高,能够提供的信息也越多,因此所计算出的相似度的可靠性也就越高,匹配的正确性也就越高(常用向量维度为50~300)

而词向量模型Word2Vec的作用就是把词转化为向量

例如如下训练好的词向量,将每一个词都表示为50维的向量:

通过比对不同词向量的热度图可以发现,有相关特性的词在热度图上较为相似,而无明显相关特性的词在热度图上则差异较大:

在词向量模型中,输入可以是多个词,而在模型的最后一层中连接了SoftMax,所以会输出所有词可能是下一个词的概率。

而文字的输入则是通过一个embeddings层(词嵌入层)来解决。在神经网络初始化时,会随机初始化一个N×K的矩阵,其中N为词典的大小,K为词向量的维度数。初始的词嵌入曾是随机生成的,通过反向传播进行更新优化。

2.2.常用模型对比

一切具有正常逻辑的语句都可以作为训练数据。

(1).CBOW模型

CBOW的全称是continuous bag of words(连续词袋模型)。其本质也是通过context word(背景词)来预测target word(目标词)。

该模型的输入为上下文,输出为该上下文中间的词汇:


 

(2).Skip-gram模型

该模型与CBOW模型相反,模型的输入为一个词汇,而输出是该词汇的上下文:

 示例:

2.3.负采样方案

如下图所示,将构建好的数据集丢给词模型进行训练:

发现最后一层SoftMax的计算在语料库很大的情况下会非常耗时。

因此,有一种改进方法是将此时的输入和输出都作为输入值,做一个二分类问题,如果两个输入是邻居则输出1,不是邻居则输出0。(eg.传统模型中,输入not,希望输出是thou,但需要经过SoftMax层计算出所有词可能作为下一个词的概率,但此时则是将not和thou均作为输入,如果相邻则输出1,不相邻则输出0)

 

但此时的问题在于,训练集本身就是由上下文构建出来的,所以训练集构建出来的输出targer均为1,无法进行较好的训练。

改进方案:加入一些负样本,即不相邻的两个输入词,输出的target值为0.(一般负样本个数为5个左右) 

2.4.词向量训练过程

(1).初始化词向量矩阵

(2).训练模型

通过神经网络反向传播来训练模型,与普通的训练模型只更新权重值不同,此时不光会更新权重参数矩阵,还会更新输入数据。

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

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

相关文章

畅游创新之源!打开谷歌浏览器默认链接https://discovery.lenovo.com.cn/home/baidu/v1/c2的完美指南!

谷歌浏览器怎么默认打开https://discovery.lenovo.com.cn/home/baidu/v1/c2 打开联想电脑管家,点安全防护,把浏览器保护关闭就行了

NAT地址转换协议

目录 NAT应用场景静态NAT动态NATNAPTEasy IPNAT服务器 点击跳转NAT配置(动态nat,静态nat,Easy IP) NAT应用场景 - 随着网络设备的数量不断增长,对IPv4地址的需求也不断增加,导致可用IPv4地址空间逐渐耗尽…

13. VTK采集点法向量标记、平面切割

今天依旧是在摸索医学图像可视化的一天呢。这个笔记主要介绍了VTK上做法向量标记以及做切割平面的方法。 1. 将多边形数据的采集点法向量标记成锥形符号 在读取和使用.stl文件过程中,我们经常要用到法向量。这个例子展示了我们应该如何计算多边形数据的法向量并用v…

8.Gateway服务网关

3.Gateway服务网关 Spring Cloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等响应式编程和事件流技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式…

银行常用操作指引:浦发

文章目录 引言浦发2.1 设置查询密码2.2 微信公众号绑定2.3 查询卡转账额度II 其他银行常用操作see also引言 浦发 2.1 设置查询密码 2.2 微信公众号绑定 入口:点击菜单的微信通知 用途:查询余额和明细 口令:解除绑定 2.3 查询卡转账额度 II 其他银行常用操作

基于SpringBoot Vue求职招聘系统

大家好✌!我是Dwzun。很高兴你能来阅读我,我会陆续更新Java后端、前端、数据库、项目案例等相关知识点总结,还为大家分享优质的实战项目,本人在Java项目开发领域有多年的经验,陆续会更新更多优质的Java实战项目&#x…

解锁加密货币增长的秘密:通过 Token Explorer 解读市场信号

解读市场信号,就像医生通过观察患者的体征来判断健康状况一样,可以帮助我们评估加密货币的采用速度。 Token Explorer 这个工具,就像是我们医生的听诊器,它追踪了一些核心的采用指标: ● 市值:通过比较主…

一文搞清楚Java中的包、类、接口

写在开头 包、类、接口、方法、变量、参数、代码块,这些都是构成Java程序的核心部分,即便最简单的一段代码里都至少要包含里面的三四个内容,这两天花点时间梳理了一下,理解又深刻了几分。 Java中的包 Java 定义了一种名字空间&…

Python __repr__()方法:显示属性

先看下面程序: class Item:def __init__ (self, name, price):self.name nameself.price price # 创建一个Item对象,将之赋给im变量 im Item(鼠标, 29.8) # 打印im所引用的Item对象 print(im) 上面程序创建了一个 Item 对象,然后使用 prin…

数据库原理及应用期末复习汇总(附某高校期末真题试卷)

文章目录 《数据库原理及应用》试题1一、选择题二、填空三、简答题四、T-SQL综合题五、综合应用题 《数据库原理及应用》试题2一、选择题二、填空三、简答题四、T-SQL综合题五、综合应用题 《数据库原理及应用》试题3一、选择题二、填空三、简答题四、T-SQL语言编程…

性能优化-高通的Hexagon DSP和NPU

原文来自【 Qualcomm’s Hexagon DSP, and now, NPU 】 本文主要介绍Qualcomm Hexagon DSP和NPU,这些为处理简单大量运算而设计的硬件。 🎬个人简介:一个全栈工程师的升级之路! 📋个人专栏:高性能&#xf…

如何在阿里云提交使用工单

有时候大家在使用阿里云的服务时候,可能会遇到一些问题,或许是云服务器如何升级了如何改套餐啊之类的,亦或者是域名ICP备案啊看进度啊等等问题,遇到问题怎么办不要慌。我们可以使用阿里云的工单系统,阿里云工单系统可以…

【UEFI基础】EDK网络框架(MTFTP4)

MTFTP4 在TCP/IP网络协议族中有FTP协议,但是UEFI下的MTFTP4并不是对FTP协议的实现,两者虽然功能上差不多,但是实现却是不同的。FTP下层使用TCP来连接: 而MTFTP4下层却是UDP4。 MTFTP4代码综述 MTFTP4的实现在NetworkPkg\Mtftp4…

AssertionError: Torch not compiled with CUDA enabled

目录 报错查看已安装的torch的版本卸载安装GPU版本的torch查看cuda版本手工安装通过pip命令手工安装。 结果更新cuda到12.1大功告成 报错 经查阅,这个问题是因为conda默认安装的是CPU版本的torch,应该使用GPU版本的。 查看已安装的torch的版本 pip li…

UI设计师主要是做什么的?

由于用户体验越来越受到重视,UI 设计师也成为现代互联网行业不可或缺的职业。他们通过美化和优化软件界面,为用户带来舒适的使用体验,目标是提高用户满意度。本文将对 UI 进行深入分析设计人员的工作职责和 UI 设计人员的工作内容&#xff0c…

云架构师学习------腾讯云通识-网络与安全

云架构师学习------腾讯云通识-存储与数据库 云架构师学习------腾讯云通识-网络与安全云上网络负载均衡工作原理产品优势使用场景技术原理基础架构转发路径 私有网络产品概述VIP核心组成部分私有网络连接私有网络安全 产品优势应用场景访问公网对公网提供服务应用容灾部署混合…

【办公类-19-02】20240122图书EXCEL插入列并删除空行

作品展示 背景需求 上次23个班级班主任统计图书,写在EXCEL内 【办公类-19-01】20240108图书统计登记表制作(23个班级)EXCEL复制表格并合并表格-CSDN博客文章浏览阅读693次,点赞12次,收藏7次。【办公类-19-01】202401…

webrtc线程代码研究

webrtc线程类的实现集成了socket的收发,消息队列,值得研究,基于webrtc75版本。 主要类介绍 Thread类 虚线:继承 实线:调用 橙色:接口 Thread继承MessageQueueThread提供两个静态方法,分别用来创建带socke…

Asp.net core 框架入门

概述 appsettings.json:配置文件,数据库连接字符串配置信息 Program.cs:程序入口文件(里面有个Main方法) Startup.cs:启动配置文件 依赖项:管理项目所依赖的第三方组件的安装,配…

数字图像处理(实践篇)二十六 使用cvlib进行人脸检测、性别检测和目标检测

目录 1 安装cvlib 2 涉及的函数 3 实践 4 其他 cvlib一个简单,高级,易于使用的开源Python计算机视觉库。 1 安装cvlib # 安装依赖pip install opencv-python tensorflow# 安装cvlibpip install cvlib</