聊聊RNN与Attention

news2024/11/16 3:28:50

前言

Attention Mechanism,称为注意力机制。基于Attention机制,seq2seq可以像我们人类一样,将“注意力”集中在必要的信息上。

Attention的结构

seq2seq存在的问题

seq2seq中使用编码器对时序数据进行编码,然后将编码信息传递给解码器。此时,编码器的输出是固定长度的向量。从正常的理解来看,固定长度的编码器输出迟早会有溢出上下文信息的情况。

编码器的改进

目前的seq2seq结构,只将LSTM层的最后的隐藏状态传递给解码器,但是编码器的输出的长度应该根据输入文本的长度相应地改变。因此我们可以使用LSTM各个时刻(各个单词)输出的隐藏状态向量,可以获得和输入的单词数相同数量的向量。使用编码器各个时刻(各个单词)的LSTM层的隐藏状态(这里表示为hs):
image.png

有一点可以确定的是,各个时刻的隐藏状态中包含了大量当前时刻的输入单词的信息。因此,最终编码器的输出hs具有和单词数相同数量的向量,各个向量中蕴含了各个单词对应的信息:
image.png

解码器的改进
改进一

由于编码器的输出包含了各个时刻的隐藏状态向量,因此解码器的输入,也需要增加这一层输入。因此解码器中就包含了某个时刻下,当前单词的主要信息,而如果可以找到这些主要信息并提取出来,对其做翻译,就能实现我们的目标。
从现在开始,我们的目标是找出与“翻译目标词”有对应关系的“翻译源词”的信息,然后利用这个信息进行翻译。也就是说,我们的目标是仅关注必要的信息,并根据该信息进行时序转换。这个机制称为Attention。

以上的逻辑流程其实就是在模仿人在翻译单词时的过程,尤其是中式翻译;逐字/成对的将中文汉字转换为对应的英语讲出来,我想这种例子在我们身边是很常见的。哈哈哈哈,很有画面感!
这个过程,也被称为 “对齐”。

改进二

增加一个表示各个单词重要度的权重(记为a)。此时,a像概率分布一样,各元素是0.0~1.0的标量,总和是1。然后,计算这个表示各个单词重要度的权重和单词向量hs的加权和,可以获得目标向量。其计算流程如下:
image.png

即 hs 向量 与 a 权重向量 的内积

计算单词向量的加权和,这里将结果称为上下文向量,并用符号c表示。

改进三

有了表示各个单词重要度的权重a,就可以通过加权和获得上下文向量,从而获取到主要信息。那么,怎么求这个a呢?
首先,从编码器的处理开始,到解码器第一个LSTM层输出隐藏状态向量的处理为止,流程如下
image.png
用h表示解码器的LSTM层的隐藏状态向量。此时,我们的目标是用数值表示这个h在多大程度上和hs的各个单词向量“相似”。
因此,可以直接将隐藏状态向量h 与编码器全时刻向量hs做点积
image.png
这里通过向量内积算出h和hs的各个单词向量之间的相似度,并将其结果表示为s。不过,这个s是正规化之前的值,也称为得分。再经过softmax函数对点积结果归一化
image.png
计算各个单词权重的计算图
image.png

hr向量只是扩大了h向量的部分,使其与hs向量行列一致。

汇总

如上,现在将单词权重的计算与权重加权两层逻辑合并起来,如下展示了获取上下文向量c的计算图的全貌
image.png
图中分为Weight Sum层和Attention Weight层进行了实现。
这里进行的计算是:Attention Weight层关注编码器输出的各个单词向量hs,并计算各个单词的权重a;
Weight Sum层计算a和hs的加权和,并输出上下文向量c。我们将进行这一系列计算的层称为Attention层。
image.png
以上就是Attention技术的核心内容。关注编码器传递的信息hs中的重要元素,基于它算出上下文向量,再继续流转传递。
编码器的输出hs被输入到各个时刻的Attention层,并输出当前时刻的上下文向量信息。最终,具有Attention层的解码器的层结构,如下所示,
image.png

总结

编码器层输出各个时刻的向量信息数据,不仅可以伸缩编码层的长度限制,更是存储了更重要的时序时刻数据信息。
而解码器层,根据Attention架构(注意力机制),增加权重矩阵a,计算出当前时刻的上下文向量信息,提取出对齐单词,进行翻译。

最后

感谢你们的阅读和喜欢,我收藏了很多技术干货,可以共享给喜欢我文章的朋友们,如果你肯花时间沉下心去学习,它们一定能帮到你。

因为这个行业不同于其他行业,知识体系实在是过于庞大,知识更新也非常快。作为一个普通人,无法全部学完,所以我们在提升技术的时候,首先需要明确一个目标,然后制定好完整的计划,同时找到好的学习方法,这样才能更快的提升自己。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

四、AI大模型商业化落地方案

img

五、面试资料

我们学习AI大模型必然是想找到高薪的工作,下面这些面试题都是总结当前最新、最热、最高频的面试题,并且每道题都有详细的答案,面试前刷完这套面试题资料,小小offer,不在话下。
在这里插入图片描述

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JS:JavaScript 简介

前言 在当今数字时代,JavaScript已然成为了现代Web开发的基石。从最初作为浏览器中的一个小型脚本语言,到如今成为驱动全球互联网的强大引擎,JavaScript的发展历程本身就是一个令人着迷的故事。 好了开始学习JS吧 1. 如果刚开始了解js&#…

Node.js自动化处理TOML文件

在软件开发过程中,自动化处理配置文件是一种常见的需求。TOML(Tom’s Obvious, Minimal Language)是一种用于配置文件的简单易读的格式。本文将展示如何使用Node.js和一些流行的库来自动化读取、修改并写入TOML文件。 1. 准备工作 在开始之前…

IAR工程设置

这篇记录一下工作中对IARide的工程设置的配置步骤。 所以这不是一篇通用的文章,只是个人记录。 目的:为了是ARM仿真器能够下载调试锐能微的芯片 一、工程设置 1、更改boot文件的工程设置: 2、编译boot文件 3、配置8213B的工程设置&#x…

iPhone 16 Pro Max电池大揭秘,听说迎来了有史以来最持久的续航

智能手机市场的竞争日益激烈,各大厂商都在寻求创新以保持领先地位。而苹果公司即将推出的iPhone 16 Pro Max,则以其革命性的不锈钢电池壳和电诱导粘合剂脱离技术,再次刷新了我们对智能手机电池技术的认知。 一、不锈钢电池壳的突破 苹果公司…

Windows系统编程API 学习之路

目录 I. 基础 进程 动态链接库 线程 Windows应用程序开发 初入Windows编程 使用strings C/C运行时中的字符串 安全字符串函数 32位与64位开发 定义自定义错误代码 I. 基础 Windows NT操作系统系列有着悠久的历史,从1993年推出的3.1版本开始。今天的Windo…

如何主持收集故事研讨会

如何主持收集故事研讨会 引言 在文化的长河中,故事是传承知识、情感与智慧的桥梁。收集故事不仅是对过去的回顾,更是对未来灵感的启迪。组织一场收集故事研讨会,旨在汇聚各界人士,共同挖掘、整理并分享那些触动人心、富有意义的故事。作为这样一场活动的主持人,您的角色…

C++开源界面库duilib的使用细节与实战技巧总结(实战经验分享)

目录 1、使用CEditUI编辑框 2、使用CLabelUI或CTextUI的Html文本效果 3、使用CTextUI控件对文字宽度自适应的特性 4、CRichEditUI富文本控件使用注意点 4.1、指定CRichEditUI加在2.0版本的Riched20.dll库 4.2、解决向CRichEditUI中插入文字后显示空白的问题 5、设置窗口…

拓扑排序+dp(消除主观臆断)

这题一开始写错的原因就是搞错了&#xff0c;处于西边的节点的编号不一定小&#xff0c;不能直接dp&#xff0c;要先进行拓扑排序 写到一般我才发现&#xff0c;其实可以一边dp&#xff0c;一边进行dp #define _CRT_SECURE_NO_WARNINGS #include<bits/stdc.h> using name…

信息安全工程师下午题

试题一(共 20 分) 阅读下列说明和图&#xff0c;回答问题 1 至问题 5&#xff0c;将解答填入答题纸的对应栏内。【说明】已知某公司网络环境结构主要由三个部分组成&#xff0c;分别是 DMZ 区、内网办公区和生产区&#xff0c;其拓扑结构如图 1-1 所示。信息安全部的王工正在按…

无人机像素经纬度识别

&#x1f3c6;本文收录于《CSDN问答解惑-专业版》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收…

代码随想录——组合总和 Ⅳ(Leetcode377)

题目链接 动态规划 class Solution {public int combinationSum4(int[] nums, int target) {int[] dp new int[target 1];dp[0] 1;for(int i 0; i < target; i){for(int j 0; j < nums.length; j){if(i > nums[j]){dp[i] dp[i - nums[j]];} }}return dp[targ…

【原创】java+ssm+mysql医生信息管理系统设计与实现

个人主页&#xff1a;程序员杨工 个人简介&#xff1a;从事软件开发多年&#xff0c;前后端均有涉猎&#xff0c;具有丰富的开发经验 博客内容&#xff1a;全栈开发&#xff0c;分享Java、Python、Php、小程序、前后端、数据库经验和实战 开发背景&#xff1a; 随着信息技术的…

【Golang 面试 - 基础题】每日 5 题(七)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/UWz06 &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏…

ajax请求成功但不执行success-function回调函数

目录 一、问题分析 二、处理问题 一、问题分析 在测试员工管理系统的登录和注册代码时&#xff0c;登录一切正常&#xff0c;就是注册成功后没有跳转页面&#xff0c;后面发现是success-function回调函数没有正常执行。原因主要是前端和后端交流的数据格式不一致&#xff0c;…

GNSS位移监测站:毫米级位移监测

推荐型号&#xff1a;TH-WY1】GNSS位移监测站是一种利用全球导航卫星系统&#xff08;GNSS&#xff09;进行高精度位移监测的设备。这些系统能够实现毫米级甚至亚毫米级的位移监测&#xff0c;广泛应用于大坝安全监测、桥梁健康检测、滑坡预警等领域。以下是GNSS位移监测站的主…

电力红外热成像手持终端是什么?有什么作用?

电力红外热成像手持终端&#xff0c;即手持红外热成像仪&#xff0c;在电力行业中扮演着重要角色。这种设备利用红外辐射技术实时捕捉物体&#xff08;特别是电力设备&#xff09;表面的热能分布&#xff0c;并将其转化为可视化的热像图&#xff0c;从而帮助用户进行非接触式的…

Llama3代码库一夜成名,Kapathy一键点赞,GitHub星标突破2千

让大神 Andrej Karpathy 一键三连❤️&#xff08;点赞 转发 评论&#xff09;&#xff0c;一个教你从头开始实现 Llama3 的代码库爆火。 X 上转赞收藏量超 6.8k&#xff0c;GitHub 揽星 2k。 火就火在&#xff0c;它教你从头用 Meta 开源的权重进行推理&#xff0c;详细解释…

InternLM-L0 Python作业

任务类型 任务内容 闯关任务 Python实现wordcount 闯关任务 Vscode连接InternStudio debug笔记 1. Python实现wordcount 基于作业 InternLM-L0 linux作业 &#xff0c;创建Python文件输入如下代码&#xff0c;并用Python 脚本运行&#xff1a; text """ Go…

新手vue学习问题汇总(自用)(长期更新)

1.export default export default 是 ES6 模块语法&#xff0c;用于导出模块的默认成员。在 Vue.js 中&#xff0c;通常用来导出一个组件对象&#xff0c;使其可以在其他文件中被导入并使用。 2.props props 是组件接收外部数据的方式。父组件可以通过向子组件传递 props 来…

电阻上的数字意义及电阻值辨别方法

电阻是电子电路中的基本元件&#xff0c;其阻值的大小直接影响电路的工作状态。电阻上的数字信息对于电路设计和维修至关重要。本文将详细解读电阻上数字的意义&#xff0c;并介绍如何通过数字辨别电阻值。 一、电阻上数字的意义 电阻上的数字通常表示电阻的阻值、功率、误差等…