深度学习中损失函数和激活函数的选择

简介: 深度学习中损失函数和激活函数的选择

前言

本篇博客的目的是根据业务目标,为大家提供关于在构建神经网络时,如何根据需求选择合适的最终层激活函数和损失函数的指导和建议。

如果大家还没了解激活函数,可以参考:神经元和激活函数介绍


你需要解决什么问题?

和所有机器学习一样,业务目标决定了你应该如何评估是否成功。

你想预测数值吗?

例如:预测产品的合适价格,或预测每天的销售数量。

如果是这样,你需要用到“回归:预测数值”部分的知识。

你想预测分类结果吗?

比如,你想知道图片中有什么物体,或者对话是关于什么主题的。

如果是的话,接下来你需要考虑你的数据中有多少种不同的类别,以及你想为每个项目找到多少个标签。

如果你的数据是二元的,也就是说,每个项目要么属于某个类别,要么不属于(比如判断是否为欺诈行为、诊断结果、是否可能购买),那么你需要用到“分类:预测二元结果”这部分的知识。

如果你的数据有多个类别(比如,图片中可能有多个物体,电子邮件涉及多个主题,或者多种产品适合进行宣传),而且每个项目只能属于一个类别,那么你需要用到“分类:从多个类别中预测单个标签”这部分的知识。

最后,如果你的数据中的每个项目可能属于多个类别,也就是说,每个项目可以有多个标签,那么你需要用到“分类:从多类别中预测多个标签”这部分的知识。

回归:预测数值

例如:预测产品的价格。

神经网络的最终层将有一个神经元,它返回的值是一个连续的数值。

为了了解预测的准确性,它会与真实值进行比较,真实值也是一个连续的数字。

最终激活函数

线性——这将产生一个我们需要的数值。

ReLU——这将产生一个大于0的数值。

损失函数

均方误差(MSE)——这计算了预测值与真实值之间的平均平方差。

分类:预测二元结果

例如:预测一笔交易是否为欺诈。

神经网络的最终层将有一个神经元,并返回一个介于0到1之间的值,这个值可以被推断为概率。

为了了解预测的准确性,它会与真实值进行比较。如果数据属于该类,真实值为1,否则为0。

最终激活函数

Sigmoid——这将产生一个介于0和1之间的值,我们可以推断出模型对示例属于该类别的信心程度。

损失函数

二元交叉熵——交叉熵量化了两个概率分布之间的差异。

我们的模型预测了一个模型分布 {p,1-p},因为我们有一个二元分布。

我们使用二元交叉熵来将其与真实分布 {y,1-y} 进行比较。

分类:从多个类别中预测单个标签

神经网络的最终层将为每个类别有一个神经元,并返回一个介于0和1之间的值,这个值可以被推断为概率。

输出结果随后形成一个概率分布,因为其总和为1。

为了了解预测的准确性,每个输出都会与其对应的真实值进行比较。

真实值已经过独热编码,这意味着在对应正确类别的列中会出现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}进行比较,并汇总它们的结果。

总结

以下表格总结了上述信息,以便您能够快速找到适用于您用例的最终层激活函数和损失函数

参考: 人工智能学习指南

目录
相关文章
|
28天前
|
机器学习/深度学习 自然语言处理 语音技术
深入探索深度学习中的兼容性函数:从原理到实践
深入探索深度学习中的兼容性函数:从原理到实践
37 3
|
28天前
|
机器学习/深度学习 自然语言处理 语音技术
揭秘深度学习中的兼容性函数:原理、类型与应用
揭秘深度学习中的兼容性函数:原理、类型与应用
|
28天前
|
机器学习/深度学习 自然语言处理 语音技术
揭秘深度学习中的注意力机制:兼容性函数的深度解析
揭秘深度学习中的注意力机制:兼容性函数的深度解析
|
2月前
|
机器学习/深度学习 算法 PyTorch
深度学习笔记(十三):IOU、GIOU、DIOU、CIOU、EIOU、Focal EIOU、alpha IOU、SIOU、WIOU损失函数分析及Pytorch实现
这篇文章详细介绍了多种用于目标检测任务中的边界框回归损失函数,包括IOU、GIOU、DIOU、CIOU、EIOU、Focal EIOU、alpha IOU、SIOU和WIOU,并提供了它们的Pytorch实现代码。
327 1
深度学习笔记(十三):IOU、GIOU、DIOU、CIOU、EIOU、Focal EIOU、alpha IOU、SIOU、WIOU损失函数分析及Pytorch实现
|
28天前
|
机器学习/深度学习 自然语言处理 语音技术
探索深度学习中的兼容性函数:构建高效注意力机制的基石
探索深度学习中的兼容性函数:构建高效注意力机制的基石
29 0
|
28天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的兼容性函数:原理、类型与未来趋势
深度学习中的兼容性函数:原理、类型与未来趋势
|
2月前
|
机器学习/深度学习 编解码
深度学习笔记(三):神经网络之九种激活函数Sigmoid、tanh、ReLU、ReLU6、Leaky Relu、ELU、Swish、Mish、Softmax详解
本文介绍了九种常用的神经网络激活函数:Sigmoid、tanh、ReLU、ReLU6、Leaky ReLU、ELU、Swish、Mish和Softmax,包括它们的定义、图像、优缺点以及在深度学习中的应用和代码实现。
191 0
深度学习笔记(三):神经网络之九种激活函数Sigmoid、tanh、ReLU、ReLU6、Leaky Relu、ELU、Swish、Mish、Softmax详解
|
3月前
|
机器学习/深度学习 自动驾驶 搜索推荐
深度学习之探索神经网络、感知器与损失函数
在当今的数字化时代,深度学习作为一种强大的机器学习技术,正在迅速改变着我们的生活方式。无论是智能推荐系统、自动驾驶车辆还是语音识别应用,深度学习都在背后默默地发挥作用。
61 1
|
4月前
|
机器学习/深度学习 编解码 算法
《零基础实践深度学习》2.5 手写数字识别之损失函数
这篇文章详细探讨了手写数字识别任务中损失函数的选择和优化,解释了为何均方误差不适用于分类任务,并介绍了Softmax函数和交叉熵损失函数在分类问题中的应用,以及如何使用PaddlePaddle框架实现这些概念来提升模型性能。
 《零基础实践深度学习》2.5 手写数字识别之损失函数
|
5月前
|
机器学习/深度学习 算法 数据挖掘
深度学习中常用损失函数介绍
选择正确的损失函数对于训练机器学习模型非常重要。不同的损失函数适用于不同类型的问题。本文将总结一些常见的损失函数,并附有易于理解的解释、用法和示例
181 0
深度学习中常用损失函数介绍

相关实验场景

更多