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

文章目录

前言

你需要解决什么问题?

你想预测数值吗?

你想预测分类结果吗?

回归:预测数值

分类:预测二元结果

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

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

总结表


前言

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

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


你需要解决什么问题?

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

你想预测数值吗?

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

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

你想预测分类结果吗?

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

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

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

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

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

回归:预测数值

例如:预测产品的价格。

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

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

最终激活函数

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

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}进行比较,并汇总它们的结果。

总结

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

参考: 人工智能学习指南

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/318916.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Neo4j和Langchain创建知识图谱

使用Neo4j和Langchain创建知识图谱 知识图谱是组织和整合信息的强大工具。通过使用实体作为节点和关系作为边缘,它们提供了一种系统的知识表示方法。这种有条理的表示有利于简化查询、分析和推理,使知识图在搜索引擎、推荐系统、自然语言处理和人工智能…

SpringBoot文件上传+拦截器

1、resource static下有个图片,希望浏览器可以查看这个图片 访问: 若yml设置路径,则可以定义在static下才可以访问 classpath代表类路径,都在target下 也就是项目在运行后的resource下的文件都会到classes下去 无需在target下创…

设计模式之业务代表模式

在编程江湖的风雨中漂泊多年,每当我遇到那些错综复杂的业务逻辑和系统交互,总有一个模式像一位忠诚的骑士,默默守护着我的代码城堡,那就是——业务代表模式(Business Delegate Pattern)。它不是最耀眼的明星…

Spark Structured Streaming 分流或双写多表 / 多数据源(Multi Sinks / Writes)

博主历时三年精心创作的《大数据平台架构与原型实现:数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行,点击《重磅推荐:建大数据平台太难了!给我发个工程原型吧!》了解图书详情,…

分类预测 | MATLAB实现LSSVM最小二乘支持向量机多分类预测

分类预测 | MATLAB实现LSSVM最小二乘支持向量机多分类预测 目录 分类预测 | MATLAB实现LSSVM最小二乘支持向量机多分类预测分类效果基本介绍程序设计参考资料分类效果 基本介绍 MATLAB实现LSSVM最小二乘支持向量机多分类预测。最小二乘支持向量机(Least Squares Support Vecto…

android 分区存储(沙盒存储)适配总结

目录 一、分区存储概念 1.外部存储分类 2.分区存储如何影响文件访问 二、分区适配方案 1. 应用分区存储的文件访问规定 (1).应用专属目录--私有目录 (2).共享目录文件--公有目录 2.MediaStore API介绍 3.Storage Access Framework介绍 三、所有文件访问权限 四、总结…

【开发技巧 | 第二篇】IDEA新增作者信息、方法参数返回值

文章目录 2.IDEA新增作者信息、方法参数返回值2.1类新增作者信息2.2方法新增参数返回信息2.3测试2.3.1新建类2.3.2新建方法 2.IDEA新增作者信息、方法参数返回值 2.1类新增作者信息 打开IDEA的Settings,Editor->Code Style->File and Code Templates->Inc…

LabVIEW鸡蛋品质智能分级系统

LabVIEW鸡蛋品质智能分级系统 随着现代农业技术的飞速发展,精确、高效的农产品质量控制已成为行业的重要需求。其中,鸡蛋作为日常膳食中不可或缺的重要组成部分,其品质直接关系到消费者的健康与满意度。本文设计并实现了一套基于LabVIEW的鸡…

工厂模式和策略模式区别

工厂模式和策略模式都是面向对象设计模式,但它们的目的和应用场景有所不同。 工厂模式是一种创建型设计模式,旨在通过使用一个工厂类来创建对象,而不是直接使用new关键字来创建对象。这样做可以使系统更容易扩展和维护,因为新的对…

Kotlin基础​​

数据类型 定义变量 var表示定义变量,可以自动推导变量类型,所以Int可以不用写。 定义常量 条件语句 if表达式可以返回值,该值一般写在if里的最后一行 类似switch的用法 区间 循环 a是标签,可以直接break到标签的位置&#xf…

超详细的Vue脚手架

文章目录 Node.js介绍安装快速入门控制台输出使用函数模块化编程 npm包管理器介绍命令初始化命令本地安装(了解)全局安装(掌握)批量下载淘宝npm镜像(建议使用) Webpack介绍安装快速入门方式一:webpack原始方式方式二:基于NPM方式 webpack-dev-server 开发…

GPU并行计算CUDA

一、CUDA 和 GPU 简介 CUDA 是显卡厂商 NVIDIA 推出的运算平台,是一种通用并行计算架构,使得 GPU 能够解决复杂的计算问题。开发人员可以使用 C 语言来为 CUDA 架构编写程序,可以在支持 CUDA 的处理器上以超高性能运行,CUDA 3.0 …

【Docker学习】docker version查看版本信息

就像很多应用一样,docker也使用version来查看版本信息。但因为docker包含有不少独立组件,version的作用范围会更广一些。 用法1: docker --version 描述: 输出安装的Docker CLI 的版本号。关于Docker CLI,请访问。 实操…

ROS2专栏(三) | 理解ROS2的动作

​ 1. 创建一个动作 目标: 在ROS 2软件包中定义一个动作。 1.1 新建包 设置一个 workspace 并创建一个名为 action_tutorials_interfaces 的包: mkdir -p ros2_ws/src #you can reuse existing workspace with this naming convention cd ros2_ws/s…

【C++】:类和对象(下)

目录 一,再谈构造函数1.初始化列表2. 隐式类型转换的过程及其优化3. 隐式类型转换的使用4. explcit关键字5. 单参数和多参数构造函数的隐式类型转换 二,static成员1.静态成员变量2.静态成员函数3. static 成员的应用 三,友元3.1 友元函数3.2 …

SQL注入漏洞扫描---sqlmap

what SQLMap是一款先进的自动执行SQL注入的审计工具。当给定一个URL时,SQLMap会执行以下操作: 判断可注入的参数。判断可以用哪种SQL注入技术来注入。识别出目标使用哪种数据库。根据用户的选择,读取哪些数据库中的数据。 更详细语法请参考…

Mac 安装 JDK21 流程

一、下载JDK21 访问Oracle官方网站或选择OpenJDK作为替代品。Oracle JDK从11版本开始是商业的,可能需要支付费用。OpenJDK是一个免费开源选项。 Oracle JDK官方网站:Oracle JDK Downloads OpenJDK官方网站:OpenJDK Downloads 这里以JDK21为…

Nginx实现端口转发与负载均衡配置

前言:当我们的软件体系结构较为庞大的时候,访问量往往是巨大的,所以我们这里可以使用nginx的均衡负载 一、配置nginx实现端口转发 本地tomcat服务端口为8082 本地nginx端口为8080 目的:将nginx的8080转发到tomcat的8082端口上…

如何从Mac电脑恢复任何删除的视频

Microsoft Office是包括Mac用户在内的人们在世界各地创建文档时使用的最佳软件之一。该软件允许您创建任何类型的文件,如演示文稿、帐户文件和书面文件。您可以使用 MS Office 来完成。所有Microsoft文档都可以在Mac上使用。大多数情况下,您处理文档&…

网络安全审计

一、什么叫网络安全审计 网络安全审计是按照一定的安全策略,利用记录、系统活动和用户活动等信息,检查、审查和检验操作时间的环境及活动,从而发现系统漏洞、入侵行为或改善系统性能的过程,它是提高系统安全性的重要手段。 系统…