为啥我们在 softmax 中使用 (exp) 而不是 (log)?

Posted

技术标签:

【中文标题】为啥我们在 softmax 中使用 (exp) 而不是 (log)?【英文标题】:Why we use (exp) rather than (log) in softmax?为什么我们在 softmax 中使用 (exp) 而不是 (log)? 【发布时间】:2016-03-04 01:57:41 【问题描述】:

我不太了解log和exp的关系。但是,我很困惑,softmax 回归中没有使用 log 吗?

Features to Probabilities section

【问题讨论】:

【参考方案1】:

Exp 是为所有实数值定义的,而 log 不是。

任何等于或小于零的向量元素都会导致 log 函数出现数值错误或未定义的行为。 exp没有这个问题。

为避免未定义,您需要为所有元素添加一个非常小的偏差。但是这个 epsilon 应该有多小?你怎么处理负数。您可能永远不会期望一个负数,而只是通过截断错误或非常接近浮点表示(一个非常小的值最终被表示为一个小的负数)来获得它。

【讨论】:

以上是关于为啥我们在 softmax 中使用 (exp) 而不是 (log)?的主要内容,如果未能解决你的问题,请参考以下文章

为啥需要softmax函数?为啥不简单归一化?

深度学习的分类器为啥选择softmax

数值稳定的softmax

深度学习sigmoid与softmax

为啥softmax不在隐藏层中使用[重复]

TensorFlow 的softmax实例理解