d2l Nadaraya-Waston核回归

核回归(Kernel Regression) 本文讲解了核函数,并且实战通过核函数进行了预测,并附python代码 阅读详情

注意力机制里面的非参数注意力汇聚

目录

1.目标任务

2.数据生成

2.1构造原始数值

3.非参数注意力汇聚

4.对注意力机制的理解


1.目标任务

使用y_train(有噪声),拟合y_truth(没噪声)。给你所有的y_train,构造注意力权重生成拟合曲线。

2.数据生成

n_train = 50 # 训练样本数
x_train, _ = torch.sort(torch.rand(n_train) * 5) # 排序后的训练样本

其中:对于sort的返回值:

 sort返回两个值,第一个是拍好了从小到大的顺序后的values,另一个是对应原数据的indices

2.1构造原始数值

噪声服从u=0;std=0.5的正态分布:

 y_train为上述计算式,包含噪声;y_truth为上式不包含噪声

def f(x):
    return 2 * torch.sin(x) + x**0.8

y_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

训练样本是有噪声的x_train与y_train;真实数据是不带噪声的y_truth

3.非参数注意力汇聚

# X_repeat的形状:(n_test,n_train),
# 每⼀⾏都包含着相同的测试输⼊(例如:同样的查询)
X_repeat = x_test.repeat_interleave(n_train).reshape((-1, n_train))
# x_train包含着键。attention_weights的形状:(n_test,n_train),
# 每⼀⾏都包含着要在给定的每个查询的值(y_train)之间分配的注意⼒权重
attention_weights = nn.functional.softmax(-(X_repeat - x_train)**2 / 2, dim=1)
# y_hat的每个元素都是值的加权平均值,其中的权重是注意⼒权重
y_hat = torch.matmul(attention_weights, y_train)
plot_kernel_reg(y_hat)

上块代码中:

repeat_interleave就是将原来的x_test中的每一个元素赋值n_train次,得到一个一维tensor,再使用reshape操作使复制的相同元素都在同一行中。

 对dim=1进行softmax,即将每个Xi与给定x的距离首先进行:1.映射非负(exp)+2.归一化。此时attention_weights表示各个候选Xi与给定x的距离的归一化权重。

 

 由图可见,在第一行给定的x=0,距离Xi中对应的X1距离最近,其余该行上的值绝对值都比它大,所以最后的softmax它得分最多,权重最多;对于倒数第二行对应的x=4.8,最后一个X50=4.8466距离最近,所以对应位置的softmax得分最高

X_repeat - x_train,形状为(50,50)-(50),第一个tensor中的每一行的各个元素减去第二个tensor里面的每个元素,用来计算给定x(0.1等分)与候选Xi的距离

 dim=1表示的是沿着列增的方向操作,本质是对每一行操作!!!

4.对注意力机制的理解

 给定x时(0.1等距分布),对所有候选Xi(rand)计算一下与x的距离(得到的X_repeat - x_train是(50,50)的tensor,其中每一行表示单个指定的x与各个Xi的距离。

  任务的目的使用y_train(有噪声),拟合y_truth(没噪声)。给你所有的y_train,构造权重生成拟合曲线。

  至于具体的在某个拟合点x(0.1等分),用attention_weights与所有的y_train相乘,每一行表示的是各个x_train(候选Xi)与x的距离的softmax值,距离越近权重越大,考虑的就越多。

R实现局部线性回归与核回归 阅读详情

相关推荐

Kernel Regression 核回归 详细讲解

Kernel Regression 核回归 详细讲解 目录Kernel Regression 核回归 详细讲解一、首先介绍一下核函数二、核估计举个例子三、核回归举个例子四、带宽的影响 传统的线性回归只能拟合一条直线,核回归作为拟合非线性模型的一种方法,本质是利用核函数作为权重函数来建立非线性回归模型的。接下来我们就从头开始讨论一下核回归,也称为局部线性回归。 一、首先介绍一下核函数 在非参数统计中,核是一个权重函数,并满足以下性质: 核函数是对称的,最大值在曲线中间。下图展示的是高斯核函数: 函数曲线下

weixin_39395368的博客 2万+

【Torch API】pytorch中的torch.sort()函数解析

torch.sort介绍

devil_son1234的博客 716

【零基础入门】一文解释torch.normal()函数(全网最详细)

本篇文章详细讲解了torch.normal函数的使用,以及scatter函数中c,lw,s等参数的使用(全网最详细)

十二月的猫 1793

11.注意力机制

11.注意力机制

Ricardo_PING的Blog 1867

【图像去噪】基于核回归算法实现图像去噪matlab代码

1 简介 在对图像信息进行处理的过程中,由于种种原因,其质量有可能受到损害,噪声是其中之一。因此为了后续更高层次的处理,有必要对图像进行去噪。近年来,在非参数估计理论基础上发展起来的核回归方法得到了很大发展,已经渗透到各个领域,并在图像去噪中取得了一定成效。虽然图像去噪方法已有很多,但利用核回归的图像去噪仍是值得关注的,在理论和实践上都具有很大的研究意义。 2 部分代码 % load image img=double(imread('JFKreg.jpg')); [N,M] =size(img...

qq_59747472的博客 986

带限制的二元核回归:Nadaraya-Watson kernel regression with limits-matlab开发

bivkernrest返回两个输入数据序列的边际核密度,即双变量核密度,条件核密度和条件期望。 内核是高斯的; 带宽西尔弗曼。 与标准内核回归不同,可以向其他自由的函数形式添加限制。 没有限制,这就是 Nadaraya-Watson。

torch.sort()用法

torch.sort()用法

weixin_42305201的博客 4905

实战指南:利用 LangGraph 的状态管理实现多轮对话的上下文隔离与持久化

本文详细介绍了如何利用LangGraph的状态管理机制,高效实现多轮对话中的上下文隔离与持久化。通过实战代码演示,从基础的消息历史管理到自定义状态扩展,再到使用SQLite进行生产级持久化,系统讲解了如何借助LangGraph的State和Checkpointer自动化处理对话记忆、用户隔离及数据存储,显著提升开发效率。

weixin_28396629的博客 488

64注意力机制 10章

not done

Yoyo211399的博客 725

ARM Cortex平台NEON指令集优化实战指南

本文为ARM Cortex平台开发者提供了一份全面的NEON指令集优化实战指南。文章从NEON的SIMD架构原理讲起,详细介绍了开发环境搭建、NEON内联函数与自动向量化两种核心编程方法、关键数据类型与指令,并通过图像饱和运算、矩阵乘法等实战案例,深入解析了性能调优技巧与常见避坑指南,旨在帮助开发者充分释放ARM处理器的并行计算潜力。

weixin_29162439的博客 259

clock-gating整理

文章目录clock gating 理解1、latch双稳态器件常见锁存器结构SR锁存器D锁存器2、clock gating(clock low-active) latch + AND gating 电路(clock high-active)latch + OR gating 电路 clock gating 理解 1、latch 参考:https://www.cnblogs.com/IClearner/p/6443539.html 双稳态器件 稳定状态为0或1两种 举例:交叉耦合反相器 假设初始Q为1,则可

d_b_的博客 1万+

torch中的sort用法|torch.sort

掌握torch中的sort函数

qq_37977007的博客 1694

手把手教程 | 使用 apktool 修改已发布 APK 的版本号与版本名称

摘要:本文介绍如何使用apktool工具直接修改APK版本信息,适用于版本回滚、多版本测试等场景。详细步骤包括反编译APK、修改版本号、重打包、对齐优化和重新签名,并分享了反编译相关实用知识。该方法无需源代码参与,但需注意修改后的APK必须重新签名才能安装。最后强调应在合法范围内使用反编译技术。

学无止境 825

Pytorch attention transformer整理

nn.Linear 接受两个参数:in_features:输入特征的数量,即输入张量的大小(除了批次维度之外的所有维度的乘积)。out_features:输出特征的数量,即输出张量的大小(除了批次维度之外的所有维度的乘积)。还可以通过bias=False表示不使用偏置参数,即不向线性变换中添加偏置。(1)定义类,继承nn.module(2)初始化网络参数 nn.Parameter(3)定义前向传播网络。

weixin_45528936的博客 1124

用 Python 和 XGBoost 进行疾病诊断预测

疾病诊断预测是医疗领域的重要研究方向,准确的疾病诊断预测可以帮助医生提前制定治疗方案,提高治疗效果,降低医疗成本。本文章的目的是介绍如何使用 Python 和 XGBoost 算法构建疾病诊断预测模型。范围涵盖了从数据预处理、模型训练到模型评估的整个流程,同时通过实际案例展示如何将该模型应用于疾病诊断预测中。本文首先介绍了疾病诊断预测的背景和 XGBoost 算法的核心概念,然后详细讲解了 XGBoost 算法的原理和具体操作步骤,包括 Python 代码实现。

AI Python 编程之道的博客 1064

AD9361功能介绍和使用

AD9361使用分数分频锁相环(PLL)来产生发射机和接收机本地振荡器(LO)频率和BB PLL。BB PLL 可用于数据转换、数字滤波器和 |/O 端口。PLL的参考时钟可以由外部振荡器或外部晶体(XO)和数字可编程片内可变电容提供,电容微调产生参考时钟频率,XO和微调电容的组合统称为DCXO。有多个天线输入的分集系统。接收链数据首先经过低噪声放大器(LNA),然后是同相(1)和正交(Q)放大器,混频器和频带整形滤波器,可将接收到的信号下变频为基带以进行数字化。时分双工(TDD)和频分双工(FDD)。。。

wangjie36的博客 1万+

攻克 Transformer & 注意力机制的查询、键和值 & 有无参数的Nadaraya-Watson核回归

目录(1)概念解释(2)手写笔记(非参数的Nadaraya-Watson核回归)(3)带有参数的Nadaraya-Watson核回归1. 自主性提示(意志线索):假设你想找到你的 Pen,此时是你的意志主动的请求大脑找到 Pen 2. 非自主性提示(非意识线索):你的大脑开始工作,结合以往的经验(神经元权重)去找 Pen3. 感官输入:物体通过你的眼睛传入你的大脑,直至你的大脑判断次物体是 Pen 为止;注意,此时你的键值对是匹配的预测效果图由观察可知“查询-键”对越接近,注意力汇聚的注意力权重就越高。 ⾮

Flying Bulldog 的博客 2141

华为OD机试 - 不含101的数(Python/JS/C/C++ 双机位C卷 100分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。小明在学习二进制时,发现了一类不含101的数,也就是:现在给定一个正整数区间,请问这个区间内包含了多少个不含101的数?输入的唯一一行包含两个正整数。输出的唯一一行包含一个整数,表示在区间内一共有几个不含101的数。8 1668 → “1000”

学Java,找哪吒 1250

【Pytorch】torch.normal()函数

是PyTorch中用于生成服从正态分布的随机数的函数。

weixin_41796265的博客 3561

从后端角度浅谈抗辐射设计----三模冗余(TMR)

三模冗余设计(TMR),是最常用的一种容错技术,三个模块采取相同的操作,以多数相同的输出作为表决系统的正确输出,即3取2,因为三个模块是相互独立的,而其中两个模块同时出错的概率是极小的,因此便可保证系统输出的可信度。然而这个设计也会存在面积浪费,功耗的增加,而且由于是冗余的设计,在后续进行综合或者pr的时候会被工具优化,因此需要对模块进行don’t touch设置;通过增值表得到,逻辑关系表达式为:Q=(Q1&Q2)|(Q1&Q3)|(Q2&Q3),通过工艺库的stdcell进行搭建,得到如下电路。

芯冰乐 326

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Pytorch torch.sort()、torch.argsort()函数解析

""" numpy的聚合运算 """ #生成100个0-0.99999之间的数 L=numpy.random.random(100) numpy.sum(L) numpy.min(L) numpy.max(L) X=numpy.arange(16).reshape(4,-1) big_array=numpy.array([1,1,2,2,10]) numpy.sum(X,axis=0)#[24 28 32 36],求出的是每一列的和 numpy.sum(X,axis=1)#求出的是每一行的和 nump.

Drug discovery 1万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

注意力机制(Attention Mechanism)

注意力机制 卷积、全连接、池化层都只考虑不随意线索 注意力机制则显示的考虑随意线索 随意线索被称之为查询(query) 每个输入是一个值(value)和不随意线索(key)的对 通过注意力池化层来有偏向性的选择某些输入 非参注意力池化层 给定数据(,), 平均池化是最简单的方案: 更好的方案是60年代提出来的Nadaraya-Watson核回归 Nadaraya-Watson核回归 使用高斯核 那么 总结 心理学任务人通过随意线索

qq_38304138的博客 4150

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

python,核回归

# -*- coding: utf-8 -*- """ Created on Fri Apr 3 17:40:00 2020 @author: guangjie2333 """ """" 库 """ import matplotlib.pyplot as plt import numpy as np from scipy.spatial.distance import cdist ...

guangjie2333的博客 2635

Python之reshape()用法简介

最近学习Python,发现Python的reshape()与matlab的reshape()虽然都可以对数组进行重置,但有本质区别,简要总结,作为学习笔记。 下面分别介绍reshape()在matlab和python中的重置规则,并做简单对比: 1.在matlab中,reshape()按列读取,按先行后列的原则存放,例如: 若将原数组重置为,则可用reshape(a,2,4,2): ...

qq_41950766的博客 8522

注意力机制

注意力机制

tantantan12321的博客 549

89. 注意力机制以及代码实现Nadaraya-Waston 核回归

笔记

weixin_47505105的博客 861
上一篇: d2l解码编码器与seq2seq
下一篇: d2l 注意力评分函数 --附加mask_softmax讲解
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值