目标函数和输出层激活函数之间的联系有多灵活?


10

在许多神经网络软件包中,将目标函数与输出层中的激活函数配对以使其最小化似乎是标准的。

例如,对于用于回归的线性输出层,具有平方误差目标函数是标准的(通常是唯一的选择)。另一个常见的配对是逻辑输出和对数损失(或交叉熵)。还有一个是softmax和多对数丢失。

使用符号表示激活前的值(权重之和乘以来自上一层的激活),表示激活,表示用于训练的地面真理,表示输出神经元的索引。一个ÿ ž一个ÿ一世

  • 线性激活带有平方误差1一个一世=ž一世1个2一世ÿ一世-一个一世2

  • 乙状结肠激活与对数损耗/交叉熵目标 -Σ∀ÿ*Ô+1-Ÿ*Ô1-一个一个一世=1个1个+Ë-ž一世i(yilog(ai)+(1yi)log(1ai))

  • Softmax激活与多类对数丢失目标ai=ezijezĴ-一世ÿ一世ØG一个一世

这些是我所知道的,我希望有很多我还没有听说过。

似乎只有输出和目标在[0,1]范围内时,对数损失才会起作用,并且数值上稳定。因此,尝试使用具有logloss目标函数的线性输出层可能没有意义。除非有一个更通用的logloss函数可以处理超出范围的值?ÿ

但是,尝试使用平方误差目标的S型输出看起来并不那么糟糕。它应该稳定并且至少收敛。

我了解这些配对背后的某些设计是,它使得的公式-其中是目标函数的值-易于向后传播。但是,仍然有可能使用其他配对来找到该导数。此外,还有许多其他激活函数在输出层中并不常见,但可行的是,例如,并且不清楚可以应用什么目标函数。δËδžËtanh

在设计神经网络的体系结构时,是否会使用或应该使用输出激活和目标函数的“非标准”对?

Answers:


4

您使用的不是哪个激活函数决定了应该使用哪种损失函数,而是您对输出的解释是什么。

如果假设输出是概率,那么对数损失是可行的方法。

如果输出是通用值,则均方误差是默认的处理方法。因此,例如,如果您的输出是灰度像素,且灰度像素标有从0到1的数字,则可以使用具有均方误差目标函数的S型激活函数。

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.