机器学习小补充(加深理解)

1. 分类交叉熵损失(Categorical Crossentropy)

定义:当标签以独热编码形式表示时使用。

原理:在多分类问题中,分类交叉熵损失用于计算模型预测的概率分布与实际分布之间的差异。模型输出的预测概率通常是一个向量,其元素表示每个类别的预测概率。

公式

假设有 N N N 个样本,每个样本的类别数为 C C C。模型输出的概率分布为 p p p,实际标签为独热编码向量 y y y。分类交叉熵损失的公式如下:

Loss = − 1 N ∑ i = 1 N ∑ c = 1 C y i c log ⁡ ( p i c ) \text{Loss} = -\frac{1}{N} \sum_{i=1}^{N} \sum_{c=1}^{C} y_{ic} \log(p_{ic}) Loss=N1i=1Nc=1Cyiclog(pic)

其中:

  • y i c y_{ic} yic 是样本 i i i 的实际标签(独热编码),如果样本属于类别 c c c,则 y i c = 1 y_{ic}=1 yic=1;否则 y i c = 0 y_{ic}=0 yic=0
  • p i c p_{ic} pic 是模型预测样本 i i i 属于类别 c c c 的概率。

2. 稀疏分类交叉熵损失(Sparse Categorical Crossentropy)

定义:当标签以整数形式表示时使用。

原理:稀疏分类交叉熵损失与分类交叉熵损失的概念相似,不同之处在于它的标签是以整数形式表示的,而不是独热编码。这种表示形式可以更方便地用于多分类问题。

公式

假设有 N N N 个样本,模型输出的概率分布为 p p p,实际标签用整数 y y y 表示。稀疏分类交叉熵损失的公式如下:

$
\text{Loss} = -\frac{1}{N} \sum_{i=1}^{N} \log(p_{i, y_i})
$

其中:

  • y i y_i yi 是样本 i i i 的实际标签(整数形式),表示样本 i i i 的类别。
  • p i , y i p_{i, y_i} pi,yi 是模型预测样本 i i i 属于真实类别的概率。

1. 准确率(Accuracy)

Accuracy = 正确分类的样本数量 总样本数量 \text{Accuracy} = \frac{\text{正确分类的样本数量}}{\text{总样本数量}} Accuracy=总样本数量正确分类的样本数量

  • 优点:简单易懂,适合于类别分布相对均衡的场景。
  • 缺点:在类别不平衡的情况下,准确率可能会误导。例如,如果95%的样本是某一类,仅凭准确率,模型可以只预测该类就能达到95%的准确率,但实际上并没有学习到有效的信息。

2. 混淆矩阵(Confusion Matrix)

混淆矩阵是一个非常有用的工具来可视化模型的性能。它展示了实际标签与模型预测标签之间的关系。一个二分类问题的混淆矩阵通常如下所示:

Predicted PositivePredicted Negative
Actual PositiveTrue Positive (TP)False Negative (FN)
Actual NegativeFalse Positive (FP)True Negative (TN)
  • True Positive (TP):正确预测为正样本的数量
  • False Positive (FP):错误预测为正样本的数量(实际为负样本)
  • True Negative (TN):正确预测为负样本的数量
  • False Negative (FN):错误预测为负样本的数量(实际为正样本)

3. 精确率(Precision)、召回率(Recall)与 F1 分数

这些指标特别适用于类别不平衡的情况,以下是它们的定义:

  • 精确率(Precision)

    定义:精确率是指在所有模型预测为正样本的结果中,实际上是真正正样本的比例。这一指标主要关注模型的假正率(False Positive, FP),即将负样本预测为正样本的错误数量。

    衡量模型预测为正的样本中有多少是真正的正样本,公式为:

    Precision = T P T P + F P \text{Precision} = \frac{TP}{TP + FP} Precision=TP+FPTP

  • 召回率(Recall)

    定义:召回率是指在所有实际为正的样本中,模型正确预测为正的比例。召回率主要关注模型的假负率(False Negative, FN),即将正样本预测为负样本的错误数量。

    衡量实际正样本中有多少被模型正确预测为正,公式为:

    Recall = T P T P + F N \text{Recall} = \frac{TP}{TP + FN} Recall=TP+FNTP

  • F1 分数:精确率和召回率的调和平均数,旨在找到两者之间的平衡,公式如下:

    F 1 = 2 × Precision × Recall Precision + Recall F1 = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}} F1=2×Precision+RecallPrecision×Recall

作用:

1. 卷积层(Convolutional Layer)

  • 原理:卷积层通过滑动窗口(也称为卷积核或过滤器)在输入图像上进行操作,计算局部区域的加权和。这使得网络能够提取图像中的特征,如边缘、纹理和形状。
  • 作用:通过卷积操作,卷积层能够有效地捕捉空间特征,从而减少参数数量,并且相比全连接层更能利用图像的空间结构。

2. 池化层(Pooling Layer)

  • 原理:池化层通常位于卷积层后面,其通过选择局部区域内的最值或均值来减少特征图的空间维度。最大池化选择一个窗口中的最大值,而平均池化则计算平均值。
  • 作用:降低特征图的维度,减少计算量,增加模型的计算速度,并在某种程度上防止过拟合,通过提炼出关键特征,增强模型的鲁棒性。

3. 全连接层(Dense Layer)

  • 原理:每个神经元与上一层的每个神经元相连接,计算所有输入的加权和并通过激活函数(如 ReLU)进行非线性变换。
  • 作用:全连接层往往是网络的最后一层,负责将所有提取的特征映射到最终的分类标签或回归输出,适用于较小的输入特征集。

4. 批归一化层(Batch Normalization Layer)

  • 原理:对每一批输入进行归一化,使得每个特征的均值接近于 0,方差接近于 1。这是通过计算当前批次的均值和标准差来实现的。
  • 作用:加速训练,稳定模型,提高收敛速度,降低对初始化和学习率的敏感性,通常用在激活函数之前。

5. Dropout层

  • 原理:在每个训练批次中,随机选择一定比例的神经元将其输出设置为零,这样有效地减少了模型的复杂度。
  • 作用:防止模型在训练数据上过拟合,增加模型的泛化能力。

6. 循环层(Recurrent Layer)

  • 原理:通过内部状态(记忆)和序列数据的输入进行连接,允许前一时刻的信息影响当前时刻的输出。LSTM 通过门机制来控制信息流,而 GRU 是 LSTM 的一个简化版本。
  • 作用:处理序列数据,比如时间序列分析和自然语言处理,能够记住长期依赖的信息。

7. 自注意力层(Attention Layer)

  • 原理:计算输入序列中每个元素对其他元素的重要性权重,然后为每个元素生成加权求和的输出。注意力机制帮助模型选择性地关注输入中的重要部分。
  • 作用:在处理序列数据时增强模型的注意力,特别是在自然语言处理和图像任务中提升性能。

8. 嵌入层(Embedding Layer)

  • 原理:将离散的输入(如词汇中的单词)映射到连续的向量空间中,使得相似的输入在向量空间中也相近。嵌入层通常会学习这些向量。
  • 作用:提高文本或离散空间数据的表示能力,将离散数据转化为能够参与深度学习模型的稠密特征向量。

9. 转置卷积层(Transposed Convolution Layer)

  • 原理:通过逆向的卷积操作(也被称为反卷积),在特征图上进行上采样,将低维空间的特征映射到更高维空间。通过在输入中插入零并应用卷积来实现。
  • 作用:用于生成更大输出的特征图,广泛应用于图像生成任务,如生成对抗网络(GAN)中。

10. 残差块(Residual Block)

  • 原理:通过添加跳跃连接,将输入直接加到输出中,让模型更容易学习到恒等映射。这样在训练深层网络时,可以有效缓解梯度消失问题。
  • 作用:在构建深层网络时提高了训练的有效性,减少了复杂度,使得网络可以更高效地学习,能够构建更深的网络而不会遇到性能下降的问题。

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

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

相关文章

【ubuntu】Geogebra

Geogebra 几何作图工具 是一款跨平台的几何作图工具软件, 目前已经覆盖了, windows,android, mac, linux 等操作系统。 Ubuntu 现状 Ubuntu 自带应用市场 Ubuntu 自带应用市场目前只有 Geogebra 4.0 版本, 不能画立…

Qt 编写插件plugin,支持接口定义信号

https://blog.csdn.net/u014213012/article/details/122434193?spm1001.2014.3001.5506 本教程基于该链接的内容进行升级,在编写插件的基础上,支持接口类定义信号。 环境:Qt5.12.12 MSVC2017 一、创建项目 新建一个子项目便于程序管理【…

MFC工控项目实例二十九主对话框调用子对话框设定参数值

在主对话框调用子对话框设定参数值,使用theApp变量实现。 子对话框各参数变量 CString m_strTypeName; CString m_strBrand; CString m_strRemark; double m_edit_min; double m_edit_max; double m_edit_time2; double …

x-cmd pkg | lf - 轻量级终端文件管理器,开销低,效率高,适合资源受限的环境

目录 简介快速上手安装使用 技术特点竞品和相关项目进一步阅读 简介 lf(list files)是 github.com/gokcehan 用 Go 开发的轻量级终端文件管理器,能提供一个通过键盘快捷键进行文件浏览、操作和管理的方法。它的界面风格和操作模式类似于 ran…

D64【python 接口自动化学习】- python基础之数据库

day64 SQL-DQL-基础查询 学习日期:20241110 学习目标:MySQL数据库-- 133 SQL-DQL-基础查询 学习笔记: 基础数据查询 基础数据查询-过滤 总结 基础查询的语法:select 字段列表|* from 表过滤查询的语法:select 字段…

力士乐工控机触摸屏面板维修CFG-BTV40.BN

力士乐工控机触摸屏维修包括BTV20系列,BTV30系列,BTV40等系列均可提供维修服务。 力士乐工控机维修,先区分故障是来自小信号处理部分,还是功率部分故障,很多设备的上位机会有所提示。处理部分包括i/o端口,…

数据挖掘全景:从基础理论到经典算法的深度探索

1 绪论--1.1 数据挖掘的概念和任务 1. (单选题)目前数据分析与挖掘领域的现实情况描述不正确的是() A. 信息爆炸 B. 数据爆炸 C. 信息贫瘠 D.数据收集能力远远超过人们的分析和理解能力 2. (单选题)你认为下面哪种数据对于数据挖掘算法来说最简单最…

简易入手《SOM神经网络》的本质与原理

原创文章,转载请说明来自《老饼讲解神经网络》:www.bbbdata.com 关于《老饼讲解神经网络》: 本网结构化讲解神经网络的知识,原理和代码。 重现matlab神经网络工具箱的算法,是学习神经网络的好助手。 目录 一、入门原理解说 01.…

ubuntu 安装kafka-eagle

上传压缩包 kafka-eagle-bin-2.0.8.tar.gz 到集群 /root/efak 目录 cd /root/efak tar -zxvf kafka-eagle-bin-2.0.8.tar.gz cd /root/efak/kafka-eagle-bin-2.0.8 mkdir /root/efakmodule tar -zxvf efak-web-2.0.8-bin.tar.gz -C /root/efakmodule/ mv /root/efakmodule/efak…

小程序服务商常见问题

1: 服务器域名和开发域名都不带https前缀, 业务域名每个都需要校验文件 2: 手机开了调试可以请求, 关闭调试无法请求, 体验版接口请求不同 答: 服务商还需要通过接口给小程序设置业务域名; 但不需要校验文件; 注意: 体验版通过快速配置小程序服务器域名接口会不生效, 用普通的 …

Llama架构及代码详解

Llama的框架图如图: 源码中含有大量分布式训练相关的代码,读起来比较晦涩难懂,所以我们对llama自顶向下进行了解析及复现,我们对其划分成三层,分别是顶层、中层、和底层,如下: Llama的整体组成…

Docker在微服务架构中的最佳实践

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 Docker在微服务架构中的最佳实践 Docker在微服务架构中的最佳实践 Docker在微服务架构中的最佳实践 引言 Docker 概述 定义与原理…

排序算法 - 冒泡

文章目录 1. 冒泡排序1.1 简介1.2 基本步骤:1.3 示例代码(C)1.4 复杂度分析1.5 动画展示 1. 冒泡排序 1.1 简介 冒泡排序(Bubble Sort)是一种简单的排序算法,其基本思想是通过相邻元素的比较和交换&#…

Nginx在Windows上和Linux上(Docker启动)分别配置基本身份认证示例

场景 Nginx代理的资源或网站等,url直接暴露有风险,需要添加身份认证,即输入用户名密码后才能成功访问。 注: 博客:霸道流氓气质-CSDN博客 实现 Windows上配置Nginx实现基本身份认证 修改nginx的配置文件 添加基…

丹摩征文活动|丹摩智算平台使用指南

目录 1. 登录平台与工作环境设置1.1 访问与登录1.2 创建或选择项目1.3 初始化项目环境 2. 数据上传与管理2.1 数据上传2.2 数据管理与预处理2.3 数据可视化 3. 模型构建与训练3.1 模型选择3.2 参数配置3.3 模型训练与评估 4. 模型部署与应用4.1 模型部署4.2 接口调用与集成4.3 …

用MVVM设计模式提升WPF开发体验:分层架构与绑定实例解析

MVVM(Model-View-ViewModel)是一种架构模式,广泛应用于现代前端开发,尤其是在微软的WPF(Windows Presentation Foundation)应用程序中。它旨在通过将视图(UI)与业务逻辑(…

【数据库实验一】数据库及数据库中表的建立实验

目录 实验1 学习RDBMS的使用和创建数据库 一、 实验目的 二、实验内容 三、实验环境 四、实验前准备 五、实验步骤 六、实验结果 七、评价分析及心得体会 实验2 定义表和数据库完整性 一、 实验目的 二、实验内容 三、实验环境 四、实验前准备 五、实验步骤 六…

前端 JS面向对象 原型 prototype

目录 一、问题引出 二、prototype原型对象 三、小结 四、constructor 五、__proto__对象原型 六、原型链 一、问题引出 由于JS的构造函数存在内存浪费问题: function Star(name,age){this.namenamethis.ageagethis.singfunction () {console.log("唱歌&…

NodeJS的安装 npm 配置和使用 Vue-cli安装 Vue项目介绍

一.前端工程化 前端工程化是使用软件工程的方法来单独解决前端的开发流程中模块化、组件化、规范化、自动化的问题,其主要目的为了提高效率和降低成本 1. NodeJS的安装 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环 境,可以使 JavaScript 运行在服务…

软件工程概论项目(二),node.js的配置,npm的使用与vue的安装

上一章我们配置了git仓库,这一章我们来配置项目需要用的一些其他的环境。 放一个思维导图在这里,可以参考一下,很不全面,没有参考价值,反正我先这样写吧。 参考了这个nodejs的配置,写的很好:https://blog.c…