无监督学习以优化输入的功能

人工智能 神经网络 优化 无监督学习
2021-10-24 22:21:50

我正在寻找建立一个接受输入向量的神经网络x并输出一个向量y这样在f(x,y)被最小化,其中f是一些功能。网络将看到许多不同的x在训练期间调整其权重和偏差;然后我将使用测试集测试网络{x1,,xn}计算(f(x1,y),,f(xn,y))看看这个总和是否最小化。

但是,我没有输出标签y. 我试图最小化的损失函数是基于输入和输出,而不是输出和标签。

我尝试了许多标准的 Keras 和 TensorFlow 损失函数,但它们无法完成这项工作。关于如何实现这一点的任何想法?

2个回答

根据你的描述,你已经知道你的功能了f待优化。所以你应该直接使用它而不是标准的损失函数。一篇文章中,解释了如何使用f作为 Keras 中的自定义损失函数。

从您的问题来看,听起来您唯一的训练数据是 {𝑥1,...,𝑥𝑛},并且网络必须神奇地得出值 {y1,...,y𝑛},以便最小化未知函数。您打算如何在训练期间向网络提供反馈?

您的情况似乎是这样的:

X-->Model-->Y-->f(X,Y)

其中 X 使用非顺序架构从第一层复制到最后一层。

这个问题的解决方案是在你的网络中添加一个额外的层来实现 f(X, Y)。但是,如果 f(X, Y) 是可微的,则只能使用梯度下降等标准方法进行训练。如果 f(X, Y) 不可微,那么您可能需要使用不同的优化方法来学习模型的权重,这可能会更加困难。粒子群优化是这里的一种可能性。