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

人工智能-注意力机制之注意力汇聚:Nadaraya-Watson 核回归

查询(自主提示)和键(非自主提示)之间的交互形成了注意力汇聚; 注意力汇聚有选择地聚合了值(感官输入)以生成最终的输出。 本节将介绍注意力汇聚的更多细节, 以便从宏观上了解注意力机制在实践中的运作方式。 具体来说,1964年提出的Nadaraya-Watson核回归模型 是一个简单但完整的例子,可以用于演示具有注意力机制的机器学习。

import torch
from torch import nn
from d2l import torch as d2l

生成数据集

在这里生成了50个训练样本和\(50\)个测试样本。 为了更好地可视化之后的注意力模式,需要将训练样本进行排序。

n_train = 50  # 训练样本数
x_train, _ = torch.sort(torch.rand(n_train) * 5)   # 排序后的训练样本def f(x):return 2 * torch.sin(x) + x**0.8y_train = f(x_train) + torch.normal(0.0, 0.5, (n_train,))  # 训练样本的输出
x_test = torch.arange(0, 5, 0.1)  # 测试样本
y_truth = f(x_test)  # 测试样本的真实输出
n_test = len(x_test)  # 测试样本数
n_test

下面的函数将绘制所有的训练样本(样本由圆圈表示), 不带噪声项的真实数据生成函数\(f\)(标记为“Truth”), 以及学习得到的预测函数(标记为“Pred”)。

def plot_kernel_reg(y_hat):d2l.plot(x_test, [y_truth, y_hat], 'x', 'y', legend=['Truth', 'Pred'],xlim=[0, 5], ylim=[-1, 5])d2l.plt.plot(x_train, y_train, 'o', alpha=0.5);

平均汇聚

如下图所示,这个估计器确实不够聪明。 真实函数(f)(“Truth”)和预测函数(“Pred”)相差很大。

y_hat = torch.repeat_interleave(y_train.mean(), n_test)
plot_kernel_reg(y_hat)

 

相关文章:

  • Spring Cloud + Nacos 项目启动失败【No spring.config.import property has been defined】
  • 网络安全之渗透测试入门准备
  • 视频剪辑技巧:如何高效批量转码MP4视频为MOV格式
  • linux部署jar 常见问题
  • 点大商城V2.5.3分包小程序端+小程序上传提示限制分包制作教程
  • web前端之引入svg图片、html引入点svg文件、等比缩放、解决裁剪问题、命名空间、object标签、阿里巴巴尺量图、embed标签、iframe标签
  • 格式化输入输出
  • 关于vs code Debug调试时候出现“找不到任务C/C++: g++.exe build active file” 解决方法
  • Linux技能篇-非交互式修改密码
  • springboot 返回problem+json
  • 【Vue】filter的用法
  • debian 12 配置
  • 老牌开源 SVG 编辑器 SVGEdit 是如何架构的?
  • 优秀的时间追踪软件Timemator for Mac轻松管理时间!
  • vscode-insiders Remote-SSH XHR failed无法访问远程服务器
  • 收藏网友的 源程序下载网
  • CentOS 7 防火墙操作
  • javascript从右向左截取指定位数字符的3种方法
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • java正则表式的使用
  • log4j2输出到kafka
  • mockjs让前端开发独立于后端
  • React16时代,该用什么姿势写 React ?
  • vue-router 实现分析
  • 从0实现一个tiny react(三)生命周期
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 类orAPI - 收藏集 - 掘金
  • 聊聊sentinel的DegradeSlot
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 我感觉这是史上最牛的防sql注入方法类
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • #传输# #传输数据判断#
  • $.ajax中的eval及dataType
  • (1)(1.11) SiK Radio v2(一)
  • (pojstep1.3.1)1017(构造法模拟)
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • .describe() python_Python-Win32com-Excel
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .NET 反射 Reflect
  • .net 开发怎么实现前后端分离_前后端分离:分离式开发和一体式发布
  • .NET4.0并行计算技术基础(1)
  • .NET框架
  • /deep/和 >>>以及 ::v-deep 三者的区别
  • @SuppressWarnings(unchecked)代码的作用
  • [ C++ ] STL---string类的使用指南
  • [ 隧道技术 ] cpolar 工具详解之将内网端口映射到公网
  • []新浪博客如何插入代码(其他博客应该也可以)
  • [145] 二叉树的后序遍历 js
  • [Angularjs]ng-select和ng-options
  • [BUUCTF NewStarCTF 2023 公开赛道] week3 crypto/pwn
  • [bzoj 3124][sdoi 2013 省选] 直径
  • [C++]C++入门--引用