输出层有哪些激活功能?


44

虽然隐藏层的激活函数的选择非常明确(大多数为S型或tanh),但我想知道如何确定输出层的激活函数。常见的选择是线性函数,S形函数和softmax函数。但是,什么时候应该使用哪个呢?


2
最近,ReLU作为隐藏单元的激活功能已变得流行。
ijuneja '18

Answers:


39
  • 回归:线性(因为值是无界的)
  • 分类:softmax(简单的S型也可以,但softmax的效果更好)

仅在您的输出接受多个“真”答案(例如,检查图像中各种对象是否存在的网络)时,才使用简单的S形。换句话说,输出不是概率分布(不需要求和为1)。


2
如果您有多个分类组,Softmax也很重要
cdeterman

15
我认为说softmax比S型更“好”是不正确的,但是在无法使用S型的情况下,可以使用softmax。对于二元分类,逻辑函数(S型)和softmax的性能相同,但是逻辑函数在数学上更简单,因此自然而然。但是,当您有两个以上的类时,就不能使用像logistic函数这样的标量函数,因为您需要多个输出来了解所有类的概率,因此您使用softmax。
HelloGoodbye

1
我不认为softmax是一种激活。一般来说,您必须先对其进行激活,然后再对其进行标准化(softmax)。
亚伦

23

我参加聚会可能会很晚,但是似乎有些事情需要在这里清除。

首先:输出层的激活函数GX通常取决于成本函数。这样做是为了使衍生Cž成本函数的C相对于所述输入ž在最后层容易计算。

作为一个例子,我们可以使用的平均平方误差损失CÿGž=1个2ÿ-Gž2在回归设置中。通过设置GX=X(线性激活函数),我们发现对于衍生物

CÿGžž=CÿGžGžGžž=Gž1个2ÿ-Gž2žž=-ÿ-Gž1个=Gž-ÿ
你得到相同的,容易表达Cž如果你把与物流乙状结肠或激活添加Softmax职能交叉熵损失。

这就是为什么线性激活经常用于回归而将logistic / softmax激活用于二进制/多类分类的原因。但是,没有什么可以阻止您尝试不同的组合。虽然表达Cž可能不会那么好,这并不意味着你的激活功能将执行更差。

其次,我想补充一点,有很多激活功能可用于隐藏层。S形(如物流功能和双曲线正切)已被证明的工作确实很好,但指示Jatin,这些从消失梯度遭受当你的网络变得过深。在这种情况下,ReLU变得很流行。不过,我想强调的是,还有更多可用的激活函数,并且不同的研究人员一直在寻找新的函数(例如,指数线性单位(ELU),高斯误差线性单位(GELU)等)更好的性能

结论:寻找最佳的激活功能时,请发挥创造力。尝试不同的方法,看看哪些组合可以带来最佳性能。


附录:对于更多的损失函数和激活对,您可能想要寻找(规范的)链接函数


为什么这不是最佳答案?漂亮该死的直观和全面的科学
维克拉姆·穆尔蒂

13

Sigmoid和tanh不应用作隐藏层的激活函数。这是由于梯度消失的问题所致,即,如果您的输入位于较高的一侧(S型曲线平坦),则梯度将接近零。这将导致反向传播过程中非常缓慢的学习,甚至没有学习效果,因为权重将使用非常小的值进行更新。

此处有详细说明:http : //cs231n.github.io/neural-networks-1/#actfun

因此,隐藏图层的最佳功能是ReLu。


11
问题是要求输出层。-1
Euler_Salter '17

1
同意 根据问题的第一行添加了答案。也许这应该是评论而不是答案。
贾廷

好吧,但是那您难道还不会遇到“死亡的ReLU神经元问题”吗?另外,可以通过批量归一化来“解决”消失的梯度问题。如果您仍想像ReLU激活一样“停用”某些神经元,则可以通过退出随机关闭神经元。因此,我认为,最终,这完全取决于问题,并使用最有效的方法
Kevvy Kim,

5

2345

234

pÿ=1个1个-pÿ=1个=pÿ=0

当输出不受限制时,将标识函数用作输出会很有帮助。某些公司四分之一的损益在任何一方都可能是无限的。

当输出限制在上方或下方时,ReLU单位或类似变体可能会有所帮助。如果仅将输出限制为非负值,则可以将ReLU激活用作输出函数。

[-1个1个]

神经网络的好处在于它们是非常灵活的工具。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.