神经网络中二进制文本分类的最佳激活函数是什么?

数据挖掘 神经网络 深度学习 喀拉斯 美国有线电视新闻网 激活函数
2022-03-03 20:40:09

我知道有许多激活函数,如 Relu、sigmoid、tanh ..等,我只想知道最适合我的情况的一个 - 二进制文本分类。

我听说 Relu 最适合二进制分类(不确定我是否正确)

我用 keras 训练了一个模型,它是2 层,Dense 512,dropout 0.3,activation = "Relu"对于这些层,

但预测并不符合标准。

我还将Dense 单位更改为 1024,保持其他单位不变,但我仍然得到了不好的预测。(验证准确率 50%)

那么,我可以使用其他激活,或者更改我的模型层(添加更多层)吗?

什么是最好的选择?

3个回答

Sigmoid 激活产生介于 0,1 之间的输出,使其适合二进制分类。就超参数调整而言,实验总是必要的。

Relu 通常效果很好,但最终你需要尝试。如果你真的只有一个隐藏层,你可能有一个无法正确学习的模型。

我猜你使用的是顺序的、密集的模型架构?尝试添加更多隐藏层。不要一开始就增加太多容量。你可以尝试类似256, 8, 8, 1with 的东西relu

Dropout 可以很好地防止过拟合。这对于学习本身并不重要。

只是对未来帖子的评论:如果可能,请始终包含您的基本模型代码。所以人们可以理解你的真正目的。一点数据描述也很有用。特别是对于文本,预处理非常重要。因此,在数据进入模型之前处理数据的方式是相关的。

由于您没有具体说明如何将文本输入转换为数字以提供给模型,因此我只能笼统地回答您的问题。

首先,对于二元分类的最后一层,激活函数通常是 softmax(如果你定义最后一层有 2 个节点)或 sigmoid(如果最后一层有 1 个节点)。

对于其他层,很难说 sigmoid 或 relu 更好。但根据我的经验,relu 更适用于更复杂的模型。