学习一种双线性形式的矩阵函数

问题描述 投票:0回答:1

我正在考虑对标量函数 f:R^n->R 进行回归的问题,其中我有一组训练样本 (x1,y1),...,(xN,yN),其中 yi = f(xi).

我知道原则上我可以应用任何神经网络架构来对此函数进行回归,但是我想利用我所知道的属性来设计网络。

准确地说,我知道 f(x)= x^TA(x)x$ 对于 nxn 矩阵值函数 A(x),我不太清楚,但我知道它是对称且正定的。

我认为,既然我知道这个函数的结构,那么将“标准”架构应用于这个问题并不是一个有效的方法。这个问题实际上看起来像是在 R^n 上寻找并逼近度量的问题。

由于 A(x) 是对称正定的,对于未知的矩阵值函数 B(x),我想将其重写为 A(x) = B(x)^TB(x)。因此,函数 f(x) 以更简单的方式重写:f(x) = |B(x)x|^2,其中唯一的未知数是矩阵函数 B(x)。

现在,是否有一些已知的架构非常适合这种情况?

使用 B(x) 常数生成训练数据,我已经很容易地解决了这个问题,定义了要优化的权重,并且效果很好。但是,如果矩阵 B(x) 与 x 相关,我不完全确定如何继续。

到目前为止,我已经实现了一个从 R^n 到 R^{n^2} 的神经网络,其中输出被重塑为 nxn 矩阵 B(x) 来学习。然而,这仅适用于简单的 B(x),对我来说仍然不清楚为什么。

python machine-learning neural-network regression non-linear-regression
1个回答
0
投票

您可以在张量流中编写表达式

f(x) = |B(x)x|^2
,并通过标准梯度下降最小化求解 B。 Tensorflow 可以最小化您可以在 Tensorflow 中编写的任何内容。

© www.soinside.com 2019 - 2024. All rights reserved.