我正在解决一个设置如下的问题:
在集合{x_1,...,x_100}中,您得到了对象之间成对距离的离散距离矩阵D,即D_ij = x_i,x_j
我使用多维缩放将此距离矩阵嵌入到二维欧几里德空间中,所以我有了一个[100 x 2]矩阵
我对〜10000个离散距离矩阵重复此操作[全部用于100个对象]
现在,我想训练一个神经网络来学习函数f:R ^ 2-> R,该函数将这些[100 x 2]多维缩放矩阵之一作为输入并输出[100 x 2] 1]数组
损失函数应为函数L:D x R ^ 3-> R,其中将相应的距离矩阵D用作所使用的MDS矩阵,以及[100]的级联x 2] MDS矩阵数组,具有从神经网络输出的[100 x 1]函数(因此是[100 x 3]数组)。我们将此矩阵称为M。
特定损失将是平方差的总和(D_ij-距离(M_i,M_j))** 2。但是,我使用的距离函数不是欧几里得距离函数,而是神经网络在流形上产生的距离。我已经为这些距离写了一个近似算法,但是...
我需要传递流形嵌入函数(即神经网络返回的函数)作为输入。因此,在没有确切知道神经网络如何作用于R ^ 2到R中的单个点的情况下,我无法计算损失函数。
有人知道我怎么能从神经网络中提取R ^ 2-> R函数,然后在这个损失函数上训练网络?我也愿意使用Keras以外的框架。
对不起,这有多复杂!