首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Softmax函数无法预测

Softmax函数无法预测
EN

Stack Overflow用户
提问于 2019-12-23 01:09:38
回答 1查看 207关注 0票数 0

我有一个NN,在softmax之前的最后一层输出中,我有17编号(每个患者的每个编号)。以下是这些数字:

代码语言:javascript
复制
[[   -534.2598 ]
 [-255322.64   ]
 [-251120.55   ]
 [-248624.     ]
 [   -538.3214 ]
 [-255104.42   ]
 [-248609.89   ]
 [-253180.05   ]
 [-247280.56   ]
 [   -539.3145 ]
 [   -538.0261 ]
 [   -540.1227 ]
 [-254579.94   ]
 [   -532.4342 ]
 [   -531.34863]
 [   -528.2402 ]
 [-259635.69   ]]

现在,这些数字的基本事实是:

代码语言:javascript
复制
[[0 1 1 1 0 1 1 1 1 0 0 0 1 0 0 0 1]]

现在可以非常清楚地看到,softmax的输入是预测基本事实的很好的输入-每次数字大于-1000 -我们知道答案是0。由于某些原因,softmax函数不能学习这样简单的东西,并且总是给出答案(在对输出执行"argmax“之后)。

代码语言:javascript
复制
 [0 0 0 0 0 0 0 0 0 ...]

有趣的是,当输入正数作为0的预测器,负数作为1的预测器时,它不会出错,并获得100%精度。

更有趣的是,当两组的数字都是正数时,它也会出错。

现在,我唯一的问题是-为什么我的softmax很难区分2类型的类,而这对人类来说是如此清晰。我觉得我在softmax上犯了一些基本的错误。

我错过了什么?

谢谢!

(很抱歉这里的第一个问题,stackoverflow用这种代码格式折磨了我,如果这篇文章看起来很奇怪,我很抱歉)

EN

回答 1

Stack Overflow用户

发布于 2019-12-23 01:34:38

不确定其他事情,但是softmax不能预测多个标签。你的softmax层的总和是1(根据softmax函数的数学设计),这意味着使用softmax你只能有一个答案(输出只有一个1,其他的都是零)。因此softmax的预期输出可以是

0,0,0,0,0,0,0,1,0

但不是

0,0,0,0,1,0,0,1,0,0

例如,如果您对多标签分类感兴趣,请尝试使用sigmoid层。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59446348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档