深度学习入门(第四天)——递归神经网络与词向量原理解读

一、RNN网络架构解读

常规神经网络并不能考虑时间序列的特征(比如前天+昨天+今天或者带有前后关联的特征),现在每个特征都是独立考虑的,那么如果有这样的特征,网络应该怎么学呢

而递归递归网络hidden这里的转回箭头,表示训练完第一个X后,再拿回来去训练第二个X,即前一次训练的结果对后一次的训练结果产生影响。

类似现在有X0、X1、X2 ... Xt,假设X0就是本月的1号,X1就是2号以此类推,Xt就是昨天,这样是不是就是一个时间序列。

X输入后有了h,h是中间的结果,每个h保证能联合前一个的h。

二、LSTM网络

RNN的问题在于,每一次的h只考虑前一个,当h到最后的时候,它只考虑n-1的h,这样对吗?或者说越后面的时间的数据一定越重要吗?我们是不是应该考虑每个时间的数据

  • C:控制参数,决定什么样的信息会被保留什么样的会被遗忘。

  • 门:一种让信息选择式通过的方法

  • 每次计算的结果和前一轮的结果进行比较,选择要更新的信息

 

三、词向量Word2Vec模型通俗解释

先考虑第一个问题:如何将文本向量化

比如描述一个人,只用身高或体重,还是综合各项指标?如下

只要有了向量,就可以用不同的方法来计算相似度。如下

通常,数据的维度越高,能提供的信息也就越多,从而计算结果的可靠性就更值得信赖了。如下

如何描述语言的特征呢?通常都在词的层面上构建特征。Word2Vec就是把词转成向量:

假设现在已经拿到一份训练好的词向量,其中每个词都表示50维的向量:

如果在热度图中显示,结果如下:

从结果中可以发现,相似的词在特征表达中比较相似,也就是说明词的特征是有实际意义的!

如上图的男人和男孩有相当部分的区域颜色是相似的,只是有的浅了点,有的深了点。同样的地方,对比水,它们之间相差的就非常远,颜色基本没有关联。

四、训练数据构建

输入数据从哪来?首先我们得理解的是,文字单词转换成数值,它并不是仅仅针对该次任务或者该数据的,Thou或者shalt在这里是有这些意思,转成对应的数值,在其它文本其它数据中也是同样的意思,所以只要是符合逻辑的文本,我们都可以拿来训练。目前有Google的预训练bert模型也是这个原理。一般我们会维护一下语料库大表。

如何训练

我们选中三个单词,以thou shalt 来预测not,也可以不断的往后滑动,如以shalt not来预测make

也就是可以是无监督学习,但文字的前后一定是有先后顺序的,不能没有说话逻辑。

五、CBOW与Skipgram模型

CBOW:根据上下文预测中间内容

Skipgram:根据中间内容预测上下文

两模型输入输出如下:

这两个模型都存在gensim里,后续调用该工具包即可。

最终预测的词也会带有概率,而前面我们讲到如SoftMax用到会将最大的值提取出来,如果我们的语料库非常大,比如5万字,那么要给出5万字的概率,而SoftMax也得计算这5万,可以说是非常耗时的,怎么解决这个问题呢?

六、负采样方案

1.初始方案:

输入两个单词,看它们是不是前后对应的输入和输出,也就相当于一个二分类任务

出发点是好的,但是此时训练集构建出来的标签全为1,无法进行较好的训练

如上图,这样相当于告诉模型,只要往1预测,那么一定能效果好,类似风控场景中,正负样本非常悬殊甚至达到1:1万的情况。我们是不能直接训练的,我们会“构造”一些正样本,而这里是1太多,需要构建一些负样本。

2.改进方案:

加入一些负样本

1个1添加多少个0呢?gensim工具包给出的默认参数是1个1和5个0,即正负样本比1:5

正常情况下的Skipgram训练集

大致流程如下:

1.初始化词向量矩阵

最左边Embedding是语料库大表,所有的词都在里面。

Context是本次的预测的文本

dataset是负采样完成后的结果

2.通过神经网络返回传播来计算更新,此时不光更新权重参数矩阵W,也会更新输入数据

给出损失函数Error的结果,并更新到输入和输出数据中。更新输出数据是为了输出本次的预测结果,而更新输入数据,是为了维护我们将一直使用的语料库大表,使得我们的语料库的词向量等越来越准确。

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

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

相关文章

全球地表水数据集JRC Global Surface Water Mapping Layers, v1.2数据

简介: 全球地表水覆盖(Global Surface Water)是利用1984至2019年获取的landsat5、landsat7和landsat8的卫星影像,生成分辨率为30米的一套全球地表水覆盖的地图集。用户可以在全球尺度上按地区回溯某个时间上地表水分的变化情况。…

MySQL内部组件与日志详解

MySQL的内部组件结构 MySQL 可以分为 Server 层和存储引擎层两部分。 Server 层主要包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等)&am…

Android开发APP显示头部Bar

Android开发显示头部Bar 需求&#xff1a; 显示如下图&#xff1a; 显示头部Bar&#xff0c;颜色也能自定义。 解决方案 这个修改是在如下三个文件里进行修改&#xff1a; 按顺序修改&#xff1a; themes.xml(night): <resources xmlns:tools"http://schemas.andr…

21 - 深入JVM即时编译器JIT,优化Java编译

说到编译&#xff0c;我猜你一定会想到 .java 文件被编译成 .class 文件的过程&#xff0c;这个编译我们一般称为前端编译。Java 的编译和运行过程非常复杂&#xff0c;除了前端编译&#xff0c;还有运行时编译。由于机器无法直接运行 Java 生成的字节码&#xff0c;所以在运行…

Odoo 15开发手册第六章 模型 - 结构化应用数据

本章我们更进一步学习模型层&#xff0c;以及如何使用模型来设计支撑应用的数据结构。我们会探讨可用的模型类型&#xff0c;以及在使用这些类型时如何定义强制进行数据验证的约束。 模型由支持不同数据类型的数据字段组成&#xff0c;一些字段类型支持定义模型间的关联。对于…

excel导入 Easy Excel

依旧是框架感觉有东西&#xff0c;但是确实是模拟不出来&#xff0c;各种零零散散的件太多了 controller层 ApiOperation(value "导入Excel", notes "导入Excel", httpMethod "POST", response ExcelResponseDTO.class)ApiImplicitParams({…

回调方法Callbak方法的理解——Java中回调的实现方式 从系统调用角度理解回调

目录 回调方法实现用反射实现直接调用callback进化&#xff1a;接口实现分离 匿名内部类 到 函数式编程 从系统调用角度理解回调同步调用异步调用不需要对方结果需要对方的结果 菜鸡问大佬问题案例同步回调异步回调基于Future的半同步 回调方法就是一个参数,将一个A方法作为参数…

Power Automate-创建自定义连接器

点击左侧导航栏&#xff0c;更多&#xff0c;点击全部发现 点击下方的自定义连接器 点击从空白创建 注意命名要用英文 常规信息中可以上传连接器icon、写一些说明 方案是观察接口地址前面的文本&#xff0c;主机是下方接口地址中蓝色框中的内容 点击下一步&#xff0c;根据API自…

CTF-PWN-堆-【前置知识】

CTF-PWN-堆 堆申请堆块main_areanabrk&sbrk函数mallocfreefree后top chunk 堆 由malloc alloc realloc 函数分配 chunk的前指的是地址低的&#xff0c;chunk的高指的是地址高的 申请堆块 ptmalloc2堆管理器&#xff1a; 通俗的讲就是相当于一个”中间商”&#xff0c;在…

Python编程技巧 – 使用列表(list)

Python编程技巧 – 使用列表(list) Python Programming Skills – Using a List 在Python编程语言中&#xff0c;我们会用到许多列表&#xff08;List&#xff09;。 一门强大的编程语言会包含列表&#xff08;或者数组&#xff09;的数据结构。列表&#xff08;或数组&#…

cpolar+LightPicture,将个人电脑改造成公网图床服务器

文章目录 1.前言2. Lightpicture网站搭建2.1. Lightpicture下载和安装2.2. Lightpicture网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 现在的手机越来越先进&#xff0c;功能也越来越多&#xff0c;而手机…

C++ Qt 学习(九):模型视图代理

1. Qt 模型视图代理 Qt 模型视图代理&#xff0c;也可以称为 MVD 模式 模型(model)、视图(view)、代理(delegate)主要用来显示编辑数据 1.1 模型 模型 (Model) 是视图与原始数据之间的接口 原始数据可以是&#xff1a;数据库的一个数据表、内存中的一个 StringList&#xff…

什么是持续集成的自动化测试?

持续集成的自动化测试 如今互联网软件的开发、测试和发布&#xff0c;已经形成了一套非常标准的流程&#xff0c;最重要的组成部分就是持续集成&#xff08;Continuous integration&#xff0c;简称CI&#xff0c;目前主要的持续集成系统是Jenkins&#xff09;。 那么什么是持…

Python爬虫教程:从入门到实战

更多Python学习内容&#xff1a;ipengtao.com 大家好&#xff0c;我是涛哥&#xff0c;今天为大家分享 Python爬虫教程&#xff1a;从入门到实战&#xff0c;文章3800字&#xff0c;阅读大约15分钟&#xff0c;大家enjoy~~ 网络上的信息浩如烟海&#xff0c;而爬虫&#xff08;…

4G工业路由器智慧电梯联网应用方案

随着电梯老旧增多及日常管理上缺失&#xff0c;电梯安全运行上存在一定的问题&#xff0c;从全国电梯统计数据中可以发现&#xff0c;主要的电梯困人、故障事件发生在住宅小区&#xff0c;当前&#xff0c;住宅小区的电梯绝大多数是通过物业公司负责管理&#xff0c;物业公司安…

【尘缘赠书活动第四期】推荐几本架构师成长和软件架构技术相关的好书,助你度过这个不太景气的寒冬!

目录 1 《高并发架构实战&#xff1a;从需求分析到系统设计》2《架构师的自我修炼&#xff1a;技术、架构和未来》3《中台架构与实现&#xff1a;基于DDD和微服务》4《分布式系统架构&#xff1a;架构策略与难题求解》5《流程自动化实战&#xff1a;系统架构和软件开发视角 》6…

验证码识别之OCR识别

验证码识别&#xff1a; 背景&#xff1a; ​ 决定开一个专题给大家讲一下验证码识别&#xff0c;不要多想&#xff0c;我们不搞深度学习&#xff0c;知识用于攻破模拟登录的时候弹出的验证码&#xff0c;后续会给大家讲讲滑块等等&#xff0c;反爬虫策略如何应对。 好了&am…

大会技术“硬核”资讯来啦!点击预约 IoTDB 现场一对一调优咨询服务

承诺大家的&#xff0c;2023 IoTDB 用户大会现场“快讯”第一弹来啦&#xff01; 我们将在大会现场设置 IoTDB Workshop&#xff0c;IoTDB 原厂团队将免费提供一对一技术咨询、使用调优、疑问解答等服务。 现场提供的一对一咨询、调优时长为 30 分钟&#xff0c;在您预约的时间…

Linux_VMware 软件安装与虚拟机

从这里开始&#xff0c;我们就踏上了学习 Linux 的路程。长路漫漫亦灿灿&#xff0c;祝我也祝所有看到这篇文章的朋友&#xff01;&#xff01;&#xff01; 参考书目&#xff1a;【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.81 / ARM 裸机与嵌入式 Linux 驱动…

Stable Diffusion1.5网络结构-超详细原创

目录 1 Unet 1.1详细整体结构 1.2 缩小版整体结构 1.3 时间步编码 1.4 CrossAttnDownBlock2D 1.4.1 ResnetBlock2D 1.4.2 Transformer2DModel 1.4.2.1 BasicTransformerBlock 1.4.2.1.1 SelfAttention 1.4.2.1.2 CrossAttention 2 VAE 3 CLIP 绘制软件&#xff1a;…