具有 2 个单元和 softmax 的输出层是使用 LSTM 进行二进制分类的理想选择吗?

Posted

技术标签:

【中文标题】具有 2 个单元和 softmax 的输出层是使用 LSTM 进行二进制分类的理想选择吗?【英文标题】:Is an output layer with 2 units and softmax ideal for binary classification using LSTM? 【发布时间】:2021-12-04 08:44:46 【问题描述】:

我正在使用 LSTM 进行二元分类,最初尝试了一个在输出(密集)层中具有 1 个单元的模型,并以 sigmoid 作为激活函数。 但是,它表现不佳,我看到一些笔记本在输出层(紧随 LSTM 之后的层)中使用了 2 个单元,并使用 softmax 作为激活函数。使用 2 个输出层并使用 softmax 而不是单个单元和 sigmoid(出于二进制分类的目的)有什么优势吗?我使用 binary_crossentropy 作为损失函数

【问题讨论】:

你使用什么损失函数? 两者在概率上都是正确的。 binary_crossentropy 是损失函数 【参考方案1】:

Softmax 应该优于 sigmoid,因为 sigmoid 的导数斜率几乎接近 1(梯度消失问题)。这使得分类变得困难。这可能是 softmax 比 sigmoid 表现更好的原因

【讨论】:

以上是关于具有 2 个单元和 softmax 的输出层是使用 LSTM 进行二进制分类的理想选择吗?的主要内容,如果未能解决你的问题,请参考以下文章

在pytorch中使用交叉熵损失时我应该使用softmax作为输出吗?

使用 softmax 函数进行多任务分类

numpy : 计算 softmax 函数的导数

具有对数损失的 TensorFlow 单 sigmoid 输出与具有稀疏 softmax 交叉熵损失的两个线性输出,用于二进制分类

使用整流线性单元的反向传播

交叉熵损失函数