CYJ0go 2018-07-27
本文的目的是提供指导,根据业务目标,应在神经网络中使用最终层激活函数和损失函数的组合。
本文假设读者具有激活函数的知识。
例如,预测产品的价格
神经网络的最后一层将有一个神经元,它返回的值是一个连续的数值。
为了理解预测的准确性,将其与真实值进行比较,该真实值也是连续数。
最终激活函数
线性 - 这会产生我们需要的数值
损失函数
均方误差(MSE) - 它找到预测值和真值之间的平均平方差
例如,预测交易是否是欺诈
神经网络的最后一层将有一个神经元并将返回0到1之间的值,这可以推断为可能。
为了理解预测的准确性,将其与真实值进行比较。如果数据是该类,则true值为1,否则为0。
最终激活函数
Sigmoid - 这导致一个介于0和1之间的值,我们可以推断该模型对该类示例的可能性如何
损失函数
二元交叉熵 - 交叉熵量化两个概率分布之间的差异。我们的模型预测{p,1-p}的模型分布,因为我们有二元分布。我们使用二元交叉熵将其与真实分布进行比较{y,1-y}
例如,预测文档的主题
神经网络的最后一层将为每个类提供一个神经元,它们将返回0到1之间的值,这可以推断为可能。然后输出导致概率分布,因为它总和为1。
为了理解预测的准确性,将每个输出与其对应的真值进行比较。真值是one-hot编码的,意味着1对应于正确的类别出现在列中,否则出现0
最终激活函数
Softmax - 这导致每个输出的值介于0和1之间,所有输出总和为1.因此,这可以推断为概率分布
损失函数
交叉熵 - 交叉熵量化两个概率分布之间的差异。我们的模型预测{p1,p2,p3}的模型分布(其中p1 + p2 + p3 = 1)。我们使用交叉熵将其与真实分布{y1,y2,y3}进行比较
例如,预测图像中动物的存在
神经网络的最后一层将为每个类提供一个神经元,它们将返回0到1之间的值,这可以推断为可能。
为了理解预测的准确性,将每个输出与其对应的真值进行比较。如果1出现在真值列中,则它对应的类别出现在数据中,否则出现0。
最终激活函数
Sigmoid - 这导致0到1之间的值,我们可以推断出它在类上的自信程度
损失函数
二元交叉熵 - 交叉熵量化两个概率分布之间的差异。我们的模型预测每个类的{p,1-p}(二元分布)的模型分布。我们使用二元交叉熵将这些与每个类的真实分布{y,1-y}进行比较,并总结其结果
下表总结了上述信息,以便您快速找到适合您的用例的最终层激活函数和损失函数