神经网络自定义二元预测

我正在尝试设计一个进行自定义二元预测的神经网络。

通常进行二元预测时,我会使用softmax作为最后一层,然后我的损失可以是我的预测与真实二元值之间的差异。

然而,如果我不希望使用softmax层呢?相反,我输出一个实数,并检查这个数是否满足某个条件。在一个非常简单的案例中,我检查这个数是否为正。如果是正数,我预测1,否则我预测0。假设我希望所有数字都是正数,所以真实预测应该都是1,然后我想训练这个网络,使其输出所有正数。我对如何为这个问题制定损失函数感到困惑,这样我才能进行反向传播并训练网络。

有谁知道如何创建这种类型的网络吗?


回答:

我对如何为这个问题制定损失函数感到困惑,这样我才能进行反向传播并训练网络。

你应该这样处理这个问题。实际上,你需要将标签转换为正负目标值(例如+1-1),然后解决回归问题。损失函数可以是简单的L1或L2损失。网络将尝试学习输出接近训练目标的预测,之后你可以解释它是更接近一个目标还是另一个,即正数或负数。你甚至可以进一步设置一些目标值更大(例如+2+10),以强调这些例子非常重要。示例代码:TensorFlow中的线性回归

然而,我必须提醒你,你的方法有严重的缺点,例如参见这个问题。训练数据中的一个异常值很容易使你的预测出现偏差。使用softmax + 交叉熵损失的分类更加稳定,这几乎总是更好的选择。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注