机器学习笔记之核函数再回首:Nadarya-Watson核回归python手写示例

引言

本节从代码角度,介绍基于高维特征向量使用 Nadaraya-Watson \text{Nadaraya-Watson} Nadaraya-Watson核回归的示例。

回顾: Nadaraya-Watson \text{Nadaraya-Watson} Nadaraya-Watson核回归

注意力机制基本介绍中,我们提到过这种基于注意力机制权重懒惰学习方法。该方法与注意力机制关联的核心操作有如下步骤:

通过核函数描述样本之间的关联关系

我们想要主观获取某陌生样本 x ∈ R p x \in \mathbb R^p xRp数据集内各样本 x ( i ) ∈ D = { x ( i ) , y ( i ) } i = 1 N , x ( i ) ∈ R p x^{(i)} \in \mathcal D = \{x^{(i)},y^{(i)}\}_{i=1}^N,x^{(i)} \in \mathbb R^p x(i)D={ x(i),y(i)}i=1N,x(i)Rp之间的关联关系。而这种描述关联关系的操作,我们首先会想到内积
x ⋅ x ( i ) = x T [ x ( i ) ] x \cdot x^{(i)} = x^T [x^{(i)}] xx(i)=xT[x(i)]
如果涉及到一个非线性问题——或者说仅仅使用内积对关联关系的表达不够丰富,可以通过高维特征转换非线性问题转化为高维线性问题
{ x ⇒ ϕ ( x ) x ( i ) = ϕ ( x ( i ) ) ( i = 1 , 2 , ⋯   , N ) x T [ x ( i ) ] ⇒ [ ϕ ( x ) ] T ϕ ( x ( i ) ) \begin{cases} x \Rightarrow \phi(x) \\x^{(i)} = \phi(x^{(i)})(i=1,2,\cdots,N) \\ x^T[x^{(i)}] \Rightarrow [\phi(x)]^T \phi(x^{(i)}) \end{cases} xϕ(x)x(i)=ϕ(x(i))(i=1,2,,N)xT[x(i)][ϕ(x)]Tϕ(x(i))
低维特征转化为高维特征同样存在弊端。在核方法思想与核函数中介绍过:映射后的特征结果 ϕ ( x ) , \phi(x), ϕ(x),其特征维数远远超过原始特征维数 p p p,甚至是无限维。在这种情况下去计算 [ ϕ ( x ) ] T ϕ ( x ( i ) ) [\phi(x)]^T \phi(x^{(i)}) [ϕ(x)]Tϕ(x(i)),其计算代价是无法估量的。而核技巧提供了一种简化运算的方式。关于核函数 κ ( ⋅ ) \kappa(\cdot) κ()的定义表示如下:
κ [ x , x ( i ) ] = ⟨ ϕ ( x ) , ϕ ( x ( i ) ) ⟩ = [ ϕ ( x ) ] T ϕ ( x ( i ) ) \kappa \left[x,x^{(i)}\right] = \left\langle\phi(x),\phi(x^{(i)})\right\rangle= [\phi(x)]^T \phi(x^{(i)}) κ[x,x(i)]=ϕ(x),ϕ(x(i))=[ϕ(x)]Tϕ(x(i))
可以看出:核函数 κ ( ⋅ ) \kappa(\cdot) κ()的自变量是未经过高维转换的原始特征;而对应函数是高维转换后的内积结果。因而该函数的作用可以简化运算。最终我们可以通过核函数描述 x x x与数据集内所有样本 x ( i ) ( i = 1 , 2 , ⋯   , N ) x^{(i)}(i=1,2,\cdots,N) x(i)(i=1,2,,N)之间的关联关系
κ [ x , x ( i ) ] i = 1 , 2 , ⋯   , N \kappa \left[x,x^{(i)}\right] \quad i=1,2,\cdots,N κ[x,x(i)]i=1,2,,N

使用 Softmax \text{Softmax} Softmax函数对权重进行划分

此时已经得到 x x x所有样本 x ( i ) x^{(i)} x(i)核函数结果,这 N N N个结果有大有小,数值大的意味着样本之间的关联程度。从而可以将关联关系描述成 x x x与样本 x ( i ) x^{(i)} x(i)对应标签结果 y ( i ) y^{(i)} y(i)的权重 G ( x , x ( i ) ) \mathcal G(x,x^{(i)}) G(x,x(i))
G ( x , x ( i ) ) = κ ( x , x ( i ) ) ∑ j = 1 N κ ( x , x ( j ) ) \mathcal G(x,x^{(i)}) = \frac{\kappa(x,x^{(i)})}{\sum_{j=1}^{N}\kappa(x,x^{(j)})} G(x,x(i))=

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静静的喝酒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值