神经网络自定义二元预测

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

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

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

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


回答:

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

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

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

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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