在处理 2 个类时使用 sigmoid 或 softmax 方法的优缺点是什么?

人工智能 神经网络 机器学习 深度学习 激活函数
2021-11-10 11:46:01

我知道使用Sigmoid时,您只需要 1 个输出神经元(二元分类),而对于Softmax - 它是 2 个神经元(多类分类)。但是为了提高性能(如果有的话),这两种方法中哪一种效果更好,或者你什么时候推荐使用其中一种方法有什么区别。或者在某些情况下,使用其中一种比另一种更好。任何意见或分享经验将不胜感激。

2个回答

Sigmoid 用于二进制情况,softmax 是其用于多个类的通用版本。但是,本质上他们所做的是过度夸大各种值之间的距离。

如果您在单位球体上有值,则对这些值应用 sigmoid 或 softmax 会导致点指向球体的两极。

基本上,我通常将 softmax 用于所有 2 类或 k 类问题,因为我总是喜欢为每个类设置一个输出节点。对于 sigmoid,即逻辑,您可以使用关系估计每个样本的 MSE

Ei=cC(ycy^c)2,

在哪里C是类的数量,yc对于真正的类成员资格是 0 或 1,并且y^c是预测的类成员i对象。例如,一个 4 类问题的第 2 类对象的目标或结果真相可能是yi=(0,1,0,0)而 4 个节点中每个节点的预测输出可能是y^i=(0.01,0.2,0.5,0.001),表明预测的类别是 3(来自 softmax 的最大概率)。

在特定的训练时期,计算MSE对于所有的训练对象

MSE=1ninEi

显然,交叉熵的使用是一个主题的变体。