sheng的学习笔记-AI-注意力模型(Attention Model)

news2024/12/14 1:35:38

 Ai目录:sheng的学习笔记-AI目录-CSDN博客

先看下这两个文章:

序列模型:sheng的学习笔记-AI-序列模型(Sequence Models),RNN,GRU,LSTM_音乐识别是一对多吗-CSDN博客

机器翻译 

sheng的学习笔记-AI-自然语言处理(NLP),机器翻译,情感分类,词嵌入-CSDN博客

RNN的痛点

在机器翻译等RNN模型中,如果输入的时间步路径很长,会对更远的数据遗忘,举例子

像这样给定一个很长的法语句子,在你的神经网络中,这个绿色的编码器要做的就是读整个句子,然后记忆整个句子,再在感知机中传递。而对于这个紫色的神经网络,即解码网络(the decoder network)将生成英文翻译。

它对于短句子效果非常好,于是它会有一个相对高的Bleu分(Bleu score),但是对于长句子而言,比如说大于30或者40词的句子,它的表现就会变差。即便是GRU或者LSTM,也无法处理这么长的句子

注意力模型

用注意力模型,可以优化对长句子的理解,虽然这个模型源于机器翻译,但它也推广到了其他应用领域

大概流程

要将(法语)Jane visite l'Afrique en Septembre翻译成英语,

  1. 对于输出y1(jane),需要关注x输入的x1,x2,x3。。x5,用α<1,1>表示x1(jane)对y1的影响,α<1,2>表示x2(visite)对y1的影响,以此类推,所以在生成y1的时候,有α<1,1>,α<1,2>。。。α<1,5>来表示5个输入对y1的影响
  2. 生成y2(visits)的时候,也会考虑5个输入值,用α<2,1>表示x1(jane)对y2的影响,有α<2,1>,α<2,2>。。。α<2,5>表示5个输入对于y2的影响
  3. x<1>...x<5>作为输入,计算出α的过程,都是lstm或者GRU架构,然后输出a的部分都是编码器,以α为输入和s部分一起计算,得出y的部分,是解码器,这是一个编码/解码器模式的变种
  4. 对于生成y1,需要根据x知道a的矩阵作为输入,以及s<0>作为上一个节点的输入,在s<1>中做计算,生成y1

因为在生成每个y的时候,会考虑所有的输入,所以在长输入的时候也会表现的很好,并且对于每个输入x1,x2...xn会有α来表示这些输入对y的影响

总体框架 

  1. 根据每个x计算出a的值,a<t>代表时间步骤t的a的值,比如x<1>的a就是a<1>,通过rnn架构(lstm或者gru,走双向循环神经网络,这部分内容在sheng的学习笔记-AI-序列模型(Sequence Models),RNN,GRU,LSTM_音乐识别是一对多吗-CSDN博客) 计算出a的矩阵
  2. 计算出α(注意,这是阿尔法,不是字母a),α<1,1>代表x1对于y1的影响
  3. 上下文c = ∑α * a 所有时间步的和,这里的意思是c<1>=∑α<1,t'> * a<t'> 其中t'的步骤和,并且注意力权重α将会满足非负的条件,所以这就是个0或正数,它们加起来等于1,意思是α<1,t'>的和为1
  4. 通过c1和s0计算y1,通过y1(t-1时间步的输出)和c2计算y2,这也是个标准的rnn模型

​另找一个架构图,辅助理解 

计算注意力权重

对 于如何计算注意力权重α,看下面的图

  1. 根据x算出a<t'>
  2. 根据整个模型的上一个状态s<t-1>,和a<t'>做一个小型的神经网络,计算出e<t,t'>,代表要生成t,需要花多少关注在时间t'上,比如要生成y1,需要花多少时间在x2上,那就是e<1,2>
  3. 将e在t'的值,除以所有时间步的e的和,就是a<t,t'> 在生成t需要花多少关注在时间t'上,注意公式中有exp(代表e的指数)

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

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

相关文章

Arduino: Arduino IDE安装

目录 1.1 Arduino软件下载与安装 1.2 esp32_arduino的开发库安装 1.3 手动安装板支持包 1.1 Arduino软件下载与安装 Arduino官网下载地址&#xff1a;https://www.arduino.cc/en/software。 1.2 esp32_arduino的开发库安装 接下来安装esp32_arduino的开发库。 1.2.1 在线安…

在Ubuntu 22.04上搭建Kubernetes集群

Kubernetes 简介 什么是 Kubernetes&#xff1f; Kubernetes&#xff08;常简称为 K8s&#xff09;是一个强大的开源平台&#xff0c;用于管理容器化应用程序的部署、扩展和运行。它最初由 Google 设计并捐赠给 Cloud Native Computing Foundation&#xff08;CNCF&#xff0…

【ubuntu】将Chroma配置为LINUX服务

Chroma是一个轻量级向量数据库。既然是数据库&#xff0c;那么我希望它是能够长时间运行。最直接的方式是配置为service服务。 可惜官方没有去提供配置为服务的办法&#xff0c;而鄙人对docker又不是特别感冒。所以自己研究了下chroma配置为服务的方式。 系统&#xff1a;ubu…

【CSS in Depth 2 精译_071】11.4 思考字体颜色的对比效果 + 11.5 本章小结

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第四部分 视觉增强技术 ✔️【第 11 章 颜色与对比】 ✔️ 11.1 通过对比进行交流 11.1.1 模式的建立11.1.2 还原设计稿 11.2 颜色的定义 11.2.1 色域与色彩空间11.2.2 CSS 颜色表示法 11.2.2.1 RGB…

PHP:连接Grid++Report模板,实现循环打印

实现效果 模板 代码 cycle.php <html xmlns"http://www.w3.org/1999/xhtml"><head><title>Web报表(B/S报表)演示 - 不用报表插件展现报表而是直接输出</title><meta http-equiv"Content-Type" content"text/html; chars…

Ubuntu22.04安装docker desktop遇到的bug

1. 确认已启用 KVM 虚拟化 如果加载了模块&#xff0c;输出应该如下图。说明 Intel CPU 的 KVM 模块已开启。 否则在VMware开启宿主机虚拟化功能&#xff1a; 2. 下一步操作&#xff1a; Ubuntu | Docker Docs 3. 启动Docker桌面后发现账户登陆不上去&#xff1a; Sign in | …

STM32F103单片机HAL库串口通信卡死问题解决方法

在上篇文章 STM32F103单片机使用STM32CubeMX创建IAR串口工程 中分享了使用cubeMX直接生成串口代码的方法&#xff0c;在测试的过程中无意间发现&#xff0c;串口会出现卡死的问题。 当串口一次性发送十几个数据的时候&#xff0c;串口感觉像卡死了一样&#xff0c;不再接收数据…

qt QCommandLineParser详解

1、概述 QCommandLineParser是Qt框架中提供的一个类&#xff0c;专门用于解析命令行参数。它简化了命令行参数的处理过程&#xff0c;使得开发者能够轻松定义、解析和验证命令行选项和参数。QCommandLineParser适用于需要从命令行获取输入的控制台应用程序&#xff0c;以及需要…

默认插槽,具名插槽(v-slot:具名,name=‘ ‘),作用域插槽

在App.vue父组件需要两次调用MyDialog子组件&#xff0c;但是想要两个子组件中略有不同。 1.首先在父组件中引入子组件&#xff0c;定义子组件&#xff0c;展示组件标签 2.不一样的地方在子组件中放<slot>标签占位 3.在父组件中的子组件标签中写上不一样的内容&#xff0…

快速上手Neo4j图关系数据库

快速上手Neo4j图关系数据库 参考视频&#xff1a; 【IT老齐589】快速上手Neo4j网状关系图库 1 Neo4j简介 Neo4j是一个图数据库&#xff0c;是知识图谱的基础 在Neo4j中&#xff0c;数据的基本构建块包括&#xff1a; 节点(Nodes)关系(Relationships)属性(Properties)标签(Lab…

远程桌面防护的几种方式及优缺点分析

远程桌面登录是管理服务器最主要的方式&#xff0c;于是很多不法分子打起了远程桌面的歪心思。他们采用暴力破解或撞库的方式破解系统密码&#xff0c;悄悄潜入服务器而管理员不自知。 同时远程桌面服务中的远程代码执行漏洞也严重威胁着服务器的安全&#xff0c;攻击者可以利…

【机器学习】基础知识:拟合度(Goodness of Fit)

拟合度概念及意义 拟合度&#xff08;Goodness of Fit&#xff09;是衡量统计模型对数据解释能力的指标&#xff0c;用于评价模型对观测数据的拟合效果。在回归分析、分类模型或其他预测模型中&#xff0c;拟合度是模型性能的重要衡量标准。 1. 拟合度的作用 拟合度的主要作用…

康耐视智能相机(Insight)通过ModbusTCP发送字符串到倍福(BECKHOFF)PLC中

文章目录 1.背景2.分析3.实现3.1.PLC的ModbusTCP_Server3.1.1.安装TF6250-Modbus-TCP3.1.2.PLC设置 3.2.智能相机的ModbusTCP_Client3.2.1.了解ModbusTCP的协议3.2.2.根据协议写代码3.2.2.1.纯函数代码3.2.2.2.脚本代码 3.2.3.非脚本处理时的代码逻辑图3.2.4.关于代码的问题及解…

【设计模式系列】策略模式(二十四)

一、什么是策略模式 策略模式&#xff08;Strategy Pattern&#xff09;是软件设计模式中的一种行为型模式。它定义了一系列算法&#xff0c;并将每一个算法封装起来&#xff0c;使它们可以互换使用&#xff0c;算法的变化不会影响使用算法的用户。策略模式让算法的变化独立于…

Spark SQL 执行计划解析源码分析

本文用于记录Spark SQL执行计划解析的源码分析。文中仅对关键要点进行提及&#xff0c;无法面面具到&#xff0c;仅描述大体的框架。 Spark的Client有很多种&#xff0c;spark-sql&#xff0c;pyspark&#xff0c;spark- submit&#xff0c;R等各种提交方式&#xff0c;这里以…

(2)Spring Security - 了解UserDetailsService

目录 1.认识UserDetailsService1.1.认识UserDetails1.2.UserDetailsService的默认实现 -- InMemoryUserDetailsManager 2.用户信息存储在MySQL数据库中2.1.添加依赖2.2.配置MySQL和Mybatis2.3.在数据库中添加用户信息2.4.添加数据库实体类2.5.编写Mybatis代码2.6.实现UserDetai…

智能设备安全-固件逆向分析

固件逆向分析实验报告-20241022 使用固件常用逆向分析工具&#xff0c;对提供的固件进行文件系统提取&#xff0c;并记录逆向分析实验过程&#xff0c;提交实验报告&#xff08;报告要求图文并茂&#xff0c;对涉及到的关键步骤附截图说明&#xff09;。具体任务如下&#xff1…

图形编辑器基于Paper.js教程17:图像转gcode前的处理,灰度,黑白,抖动

好久没有正经写博客了&#xff0c;前一段时间一直在备考中级项目管理&#xff0c;再加上项目开发只有自己一个人&#xff0c;每天忙的飞起。有闲暇时间也不想写&#xff0c;其中一部分原因也是因为很多简单问题&#xff0c;AI就能回答的很好。而对复杂的问题&#xff0c;也不是…

AI大模型学习笔记|人工智能的发展历程、智能体的发展、机器学习与深度学习的基本理论

学习链接&#xff1a;冒死上传&#xff01;价值2W的大模型入门到就业教程分享给大家&#xff01;轻松打造专属大模型助手&#xff0c;—多模态、Agent、LangChain、ViT、NLP_哔哩哔哩_bilibili 百度网盘自己整理的笔记&#xff1a; 通过网盘分享的文件&#xff1a;1-人工智能的…

qt 设置系统缩放为150%,导致的文字和界面的问题

1 当我们设置好布局后&#xff0c;在100%的设置里面都是正常的&#xff0c;但是当我们修改缩放为150%后&#xff0c;字体图标&#xff0c;界面大小就出现问题了&#xff0c;这就需要我们设置一些参数。 QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);QCoreAppl…