我正在寻找建立一个接受输入向量的神经网络并输出一个向量这样在被最小化,其中是一些功能。网络将看到许多不同的在训练期间调整其权重和偏差;然后我将使用测试集测试网络计算看看这个总和是否最小化。
但是,我没有输出标签. 我试图最小化的损失函数是基于输入和输出,而不是输出和标签。
我尝试了许多标准的 Keras 和 TensorFlow 损失函数,但它们无法完成这项工作。关于如何实现这一点的任何想法?
我正在寻找建立一个接受输入向量的神经网络并输出一个向量这样在被最小化,其中是一些功能。网络将看到许多不同的在训练期间调整其权重和偏差;然后我将使用测试集测试网络计算看看这个总和是否最小化。
但是,我没有输出标签. 我试图最小化的损失函数是基于输入和输出,而不是输出和标签。
我尝试了许多标准的 Keras 和 TensorFlow 损失函数,但它们无法完成这项工作。关于如何实现这一点的任何想法?
根据你的描述,你已经知道你的功能了待优化。所以你应该直接使用它而不是标准的损失函数。在另一篇文章中,解释了如何使用作为 Keras 中的自定义损失函数。
从您的问题来看,听起来您唯一的训练数据是 {𝑥1,...,𝑥𝑛},并且网络必须神奇地得出值 {y1,...,y𝑛},以便最小化未知函数。您打算如何在训练期间向网络提供反馈?
您的情况似乎是这样的:
X-->Model-->Y-->f(X,Y)
其中 X 使用非顺序架构从第一层复制到最后一层。
这个问题的解决方案是在你的网络中添加一个额外的层来实现 f(X, Y)。但是,如果 f(X, Y) 是可微的,则只能使用梯度下降等标准方法进行训练。如果 f(X, Y) 不可微,那么您可能需要使用不同的优化方法来学习模型的权重,这可能会更加困难。粒子群优化是这里的一种可能性。