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

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

python 复制代码
import torch
from torch import nn
from d2l import torch as d2l

生成数据集

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

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

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

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

python 复制代码
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")相差很大。

python 复制代码
y_hat = torch.repeat_interleave(y_train.mean(), n_test)
plot_kernel_reg(y_hat)
相关推荐
山烛8 分钟前
KNN 算法中的各种距离:从原理到应用
人工智能·python·算法·机器学习·knn·k近邻算法·距离公式
青春不败 177-3266-05204 小时前
MATLAB近红外光谱分析技术及实践技术应用
随机森林·机器学习·支持向量机·matlab·卷积神经网络·遗传算法·近红外光谱
NeoFii10 小时前
Day 22: 复习
机器学习
码字的字节12 小时前
深度学习损失函数的设计哲学:从交叉熵到Huber损失的深入探索
深度学习·交叉熵·huber
凪卄121312 小时前
图像预处理 二
人工智能·python·深度学习·计算机视觉·pycharm
巫婆理发22212 小时前
强化学习(第三课第三周)
python·机器学习·深度神经网络
碳酸的唐12 小时前
Inception网络架构:深度学习视觉模型的里程碑
网络·深度学习·架构
AI赋能12 小时前
自动驾驶训练-tub详解
人工智能·深度学习·自动驾驶
seasonsyy12 小时前
1.安装anaconda详细步骤(含安装截图)
python·深度学习·环境配置
deephub12 小时前
AI代理性能提升实战:LangChain+LangGraph内存管理与上下文优化完整指南
人工智能·深度学习·神经网络·langchain·大语言模型·rag