训练集的概率分布应该如何影响激活函数/损失函数的选择?
例如,如果我有一个 Multinoulli 分布,我应该选择哪个激活函数?为什么?
我无法得到训练集的概率分布与激活函数/损失函数的选择之间的这种相关性。
训练集分布和激活函数/损失函数相关
数据挖掘
机器学习
损失函数
可能性
激活函数
2022-03-07 01:30:43
1个回答
训练集的概率分布通常与激活函数/损失函数无关。相反,最后一层的激活函数和损失函数直接由您要预测的内容定义。
例如:
- 如果您有一个输出值无界的回归问题,您可能会在最后一层不使用激活,并使用均方误差作为损失函数。
- 如果您希望您的网络执行二进制分类,您将在最后一层使用 sigmoid 激活(输出一个介于 0 和 1 之间的值,与属于一个或另一个类的概率相关联),具有二进制交叉熵作为损失函数。
- 如果您希望您的网络在 N 个元素中进行选择(例如多类分类),您可能希望您的网络预测这些 N 个离散元素的概率分布。这正是离散输出空间上的分类/多努利分布(即从 N 个可能的离散备选方案中仅选择一个元素)。在这种情况下,网络最后一层的激活应该是 softmax,损失必须是分类交叉熵,也称为负对数似然。但是,请注意特定于帧的细节,因为这对激活和损失通常是在考虑数值稳定性的情况下实现的,您需要选择适当的实现。例如,Pytorch,当你使用NLLLoss,最后一层激活必须是LogSoftmax,而不是普通的 Softmax。或者,您可以使用将NLLLoss和 LogSoftmax 组合成一个类的 CrossEntropyLoss。这些方面通常在框架文档中进行描述。
其它你可能感兴趣的问题