神经网络自定义二进制预测

问题描述 投票:1回答:1

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

通常做二进制预测,我会使用softmax作为我的最后一层,然后我的损失可能是我做的预测和真正的二进制值之间的差异。

但是,如果我不想使用softmax图层怎么办?相反,我输出一个实数值,并检查此数字上的某些条件是否为真。在一个非常简单的情况下,我检查这个数字是否为正数。如果是,我预测1,否则我预测0。假设我希望所有数字都是正数,所以真正的预测应该都是1,然后我想训练这个网络,使其输出所有正数。我很困惑如何为这个问题制定一个损失函数,以便我能够反向传播和训练网络。

有谁知道如何创建这种网络?

machine-learning tensorflow neural-network deep-learning classification
1个回答
1
投票

我很困惑如何为这个问题制定一个损失函数,以便我能够反向传播和训练网络。

这是你应该如何处理它。实际上,您需要将标签转换为正负目标值(比如+1-1)并解决回归问题。损失函数可以是简单的L1或L2损失。网络将尝试学习输出接近训练目标的预测,然后您可以解释它是否更接近一个目标或另一个目标,即正面或负面。您甚至可以继续制作更大的目标(例如+2+10),以强调这些示例非常重要。示例代码:linear regression in tensorflow

但是,我只是要警告你,你的方法有严重的缺点,例如参见this question。训练数据中的一个异常值很容易扭曲您的预测。 softmax +交叉熵损失的分类更稳定,这就是为什么几乎总是更好的选择。

© www.soinside.com 2019 - 2024. All rights reserved.