我目前正在解决一个问题,我提供一个神经网络的输入变量a,以及另一个输入x,它是一个单调递增的序列,包含N个数字。
所以我的神经网络基本上看起来像这样:
a_input = Input(shape=[1], name='a')
x_input = Input(shape=[N], name='x')
nn = concatenate([a_input, x_input])
nn = Dense(100, activation='relu')(nn)
nn = Dense(N, activation='relu')(nn)
model = Model(inputs=[a_input, x_input], outputs=[nn])
model.compile(loss='mean_squared_error', optimizer="adam")
我在输入空间上进行回归(其中对于每个 a,序列 x 是唯一的),我希望网络能够为每组输入 a 和 x 输出一个单调递增的(非负)N 个数字的序列。
现在,我注意到到目前为止我的输出不严格单调递增,但如果你“放大”它们,它们看起来有点像。我的意思是,对于给定的 a 和 x 的选择,如果我希望我的输出数组像这样:
[0, 0.5, 0.51, 0.7, 0.75, 0.9, 1.],
我可能会选择获取:
[0.001, 0.5, 0.48, 0.7, 0.75, 0.9, 1.].
因此,我想知道是否有标准的方法或特定的工具可用于Keras,以将模型限制为仅输出单调递增的序列?