从无序元组学习?

机器算法验证 回归 造型 功能数据分析
2022-04-10 22:36:24

编辑:我将我的问题简化为一个更具体的问题: https ://math.stackexchange.com/questions/26573/ 但我仍然对其他想法感兴趣。

假设我们的数据是由

Yi=f(Xi)+ϵi

其中Xi是观测向量,f是未知函数。我们知道f对于X的元素的排列f是不变的例如,如果X_i=[x_{i1},x_{i2},x_{i3}],那么我们有XXi=[xi1,xi2,xi3]

f([xi1,xi2,xi3])=f([xi1,xi3,xi2])=f([xi2,xi1,xi3])=

是否有可用于估计f的线性回归、支持向量机、森林等的修改版本?我对Xi是矩阵的特征值(因此它们具有复值条目)的情况特别感兴趣。

编辑:一个绝望的举动是用每个X_i向量的所有排列复制每个数据点,Xi然后应用标准方法,但这显然在计算上是不切实际的。

3个回答

的标记排列不变的派生变量xi

例如,在您的三变量示例中,仅考虑总阶数不超过 3 的多项式,这样的组合将是:

  • w1=x1+x2+x3
  • w2=x1x2+x1x3+x2x3
  • w3=x12+x22+x32
  • w4=x1x2x3
  • w5=x12x2+x12x3+x22x1+x22x3+x32x1+x32x2
  • w6=x13+x23+x33

然后,您可以使用任何形式的回归,包括一些函数并通过非线性最小二乘法、广义线性建模或其他方法找到组合的排列中是对称的f(a1w1+a2w2++a8w8)aia1w1+a2w2++a8w8x1,x2,x3

显然,如果您希望允许多项式以外的函数,例如对数、分数幂......

(编辑我在看到您对答案的编辑之前完成了这篇文章,其中包含指向 mathoverflow 上更具体问题的链接。我开始认为必须有一些数学框架来列出给定总阶的所有此类多项式,但听起来你已经比我更了解相关的数学领域了!)

为了增加 onestop 的响应,math.SE 确认多项式

w1=x1++xn
w2=x12++xn2
wn=x1n++xnn

为您提供确定原始所需的所有信息。X=(x1,,xn)

这是一个简洁的结果,因为它也适用于具有均匀概率的离散分布的矩。

Deep SetsPointNet提供了两个(相当近的)置换不变深度学习架构的示例。这两种方法在引入时都提供了最先进的结果,并且对于基础集的扰动是连续的(在他们的论文中描述的意义上)。

置换不变的 Deep Sets 神经架构可以写成:

FDS(A)=ρ(aAϕ(a))

一个(简化的)PointNet 架构可以写成:

FPN(A)=ρ(maxaAϕ(a))

其中中的每个点创建特征,结合了这些特征转换为单个实值输出(这里向量的被认为是组件方面的最大值,并且是连续的)。由于求和和最大值是排列不变的,因此整个网络也是如此。ϕ:RnRmAρ:RmRmaxρϕ

理想情况下,我们会选择作为一起最小化所有此类连续函数之间的误差的函数,但这是非常难以处理的。相反,我们建模为神经网络,其联合参数集被选择以最小化回归误差。ρϕρϕΘ


关于的上下文和符号,这些模型如下所示:|Xi|=3

FDS(Xi)=ρ(ϕ(xi1)+ϕ(xi2)+ϕ(xi3))

FPN(Xi)=ρ(max{ϕ(xi1),ϕ(xi2),ϕ(xi3)})


奖励: Deep Sets 实际上也描述了一种置换等变架构。