是什么决定了Logistic分类器中功能的选择(Softmax与Sigmoid)?
假设有4个输出类。上面的每个函数都给出了每个类作为正确输出的概率。那么哪个适合分类器呢?
是什么决定了Logistic分类器中功能的选择(Softmax与Sigmoid)?
假设有4个输出类。上面的每个函数都给出了每个类作为正确输出的概率。那么哪个适合分类器呢?
Answers:
的S形函数被用于在两个级逻辑回归,而SOFTMAX函数被用于多类逻辑回归(又名最大墒,多项式逻辑回归,回归SOFTMAX,最大熵分类器)。
在两类logistic回归中,使用S型函数预测的概率如下:
在类的多类logistic回归中,使用softmax函数的预测概率如下:
可以看到softmax函数是S型函数到多类情况的扩展,如下所述。让我们看一下类的多类逻辑回归:
与。我们看到我们使用Sigmoid函数获得了与两类logistic回归相同的概率。维基百科对此进行了扩展。
实际上,它们在某种意义上是等效的,因为一个可以转换为另一个。
假设您的数据由任意大小的向量表示,并使用仿射变换和softmax为它构建了一个二进制分类器:
让我们将其转换为使用S型而不是softmax的等效二进制分类器。首先,我们必须确定希望输出S型信号的概率是(可能适用于或类)。这个选择是绝对任意的,因此我选择类。然后,我的分类器将具有以下形式:
如果概率相同,则分类器是等效的,因此我们必须施加:
更换,和通过他们的表情来讲和,并做一些简单的代数操纵,您可以验证且仅当和由以下公式给定时,上述等式成立:
我注意到人们在搜索是否在神经网络中使用S形vs Softmax时经常会被问到这个问题。如果您是构建神经网络分类器的人之一,那么以下是如何决定将Sigmoid还是softmax应用于网络的原始输出值的方法:
参考:有关何时在神经网络设计中使用Sigmoid与Softmax的更详细说明,包括示例计算,请参阅本文:“分类:Sigmoid与Softmax”。
除上述所有答案外,我想提及一个事实,即可以使用“一对多”方法将任何多类分类问题简化为多个二元分类问题,即具有C的S形(当C为S的数量时)。类),并解释每个S型是否属于该特定类的概率,并采用最大概率。
因此,例如,在MNIST数字示例中,您可以使用softmax或十个S型曲线。实际上,这就是吴安德(Andrew Ng)在他的Coursera ML课程中所做的。您可以在此处查看 Andrew Ng如何使用10个Sigmoids进行多类分类(我从Matlab修改为python),这是我在python中对softmax的适应。
另外,值得注意的是,尽管这些函数是等效的(出于多类分类的目的),但它们的实现有所不同(尤其是关于它们的派生以及如何表示y)。
与单个多类分类(即Softmax)相比,使用多个二进制分类(即Sigmoids)的最大优势是-如果您的softmax太大(例如,如果您使用字典大小为10K或更大的单字词嵌入) )-训练它可能效率低下。相反,您可以做的是只占训练集的一小部分,并用它来训练您的乙状结肠的一小部分。这是负采样背后的主要思想。