好好说话:深度学习扫盲

大创项目是和目标检测算法YOLO相关的,浅浅了解了一些有关深度学习的知识。在这里根据本人的理解做一些梳理。

深度学习是什么?

之前经常听到AI,机器学习,深度学习这三个概念,但是对于三者的区别一直很模糊。

AI(人工智能)是一个广泛的概念,指的是模拟或模仿人类智能的计算机系统。AI的目标是让机器能够进行感知、推理、学习、决策等操作,像人类一样执行任务。AI不仅限于机器学习和深度学习,它还包括规则系统、专家系统、自然语言处理等技术。比如chatGPT等大语言模型,就是自然语言处理为核心的基于深度学习的AI。

机器学习是人工智能的一个子集,它通过让机器从数据中学习并进行预测或决策,而不需要显式编程机器学习的核心是利用算法从数据中提取规律,进而使机器能够做出判断或预测。机器学习的方法主要分为监督学习、无监督学习、强化学习等,其中包括了很多传统的算法,如决策树、支持向量机(SVM)、随机森林等。

深度学习是机器学习中的一个子集,它借鉴了人脑的结构,使用深层神经网络(即含有多层神经元的网络)来自动学习数据中的特征和模式深度学习特别擅长处理图像、语音、文本等大规模数据,并在许多领域取得了突破性的成果。深度学习是目前机器学习中最先进的方法之一,尤其在计算机视觉、语音识别、自然语言处理等领域表现突出。 

省流: 三者是一个包含关系

  • AI 是一个大框架,包含了所有试图模拟智能的技术。
  • 机器学习 是AI中的一种方法,它专注于通过数据和算法进行学习。
  • 深度学习 是机器学习中的一种方法,利用神经网络来解决更复杂的任务,尤其适合处理大规模、复杂的数据。

神经网络是什么?

神经网络是一种模拟人脑神经元结构和工作方式的计算模型,广泛应用于机器学习和人工智能领域,尤其是深度学习中。神经网络通过大量的“神经元”节点和它们之间的连接来处理数据、学习规律,并进行预测或分类等任务。

神经网络的基本结构:

神经网络由多个层(layers)组成,每一层都包含多个神经元(neurons)。这些神经元通过连接(称为“权重”)相互连接,形成一个网络。典型的神经网络结构包括以下几层:

  1. 输入层(Input Layer)

    接收外部输入数据,如图片、文本、音频等。在输入层,每个神经元代表一个输入特征(例如,图像中的像素值)。
  2. 隐藏层(Hidden Layers)

    输入层的数据会经过一个或多个隐藏层进行处理和转换。隐藏层包含神经元,它们通过加权和激活函数来进行处理。通过多层处理,网络能够学习到更复杂的特征和规律。
    在深度神经网络(DNN)中,隐藏层的数量可能很大,甚至有数十层。
  3. 输出层(Output Layer)

    输出层给出神经网络的最终预测结果,例如分类任务中的类别标签,回归任务中的数值预测。

神经网络的工作原理:

  1. 前向传播(Forward Propagation)

    数据从输入层开始,逐层传递到输出层。每个神经元通过接收输入并与权重相乘,然后通过激活函数生成输出,传递到下一层。
  2. 权重和偏置

    神经元之间的连接有权重(表示连接强度),每个神经元还有一个偏置(bias),这两个参数会影响神经网络的输出。权重和偏置在训练过程中通过反向传播调整,以使得神经网络的预测更准确。
  3. 激活函数

    激活函数的作用是给神经元添加非线性因素,帮助网络学习复杂的模式。常见的激活函数有Sigmoid、ReLU(Rectified Linear Unit)等。
  4. 反向传播(Backpropagation)

    反向传播是神经网络训练中的一个关键步骤,用来通过计算输出与真实标签之间的误差,逐层调整网络中的权重和偏置,最小化误差。它使用梯度下降算法来优化模型。

神经网络的分类:

  1. 前馈神经网络(Feedforward Neural Network, FNN)

    最基本的神经网络模型,信息只在网络中前向传播,没有反馈循环。
  2. 卷积神经网络(CNN)

    主要用于图像处理、计算机视觉任务,具有卷积层、池化层等,用于提取图像中的空间特征。
  3. 循环神经网络(RNN)

    主要用于处理序列数据(如时间序列、文本),神经元之间有反馈连接,可以捕捉数据的时间依赖性。
  4. 生成对抗网络(GAN)

    包含两个神经网络:生成器和判别器,用于生成新的数据(如图像、音频等),通常用于生成任务。

所谓的“模型”是什么?

在人工智能(AI)和机器学习(ML)领域,“模型”通常指的是一个经过训练,可以对输入数据进行处理并产生预测、分类或其他输出的数学或计算结构。简单来说,模型是一个用来从数据中学习并作出决策或推理的工具。

听起来和机器学习的概念是不是很像?其实机器学习可以理解为是一种技术,而模型是使用了机器学习这种技术的最终产品

如果参与过数学建模类型的比赛的话,对此部分的理解会更加深入。

模型的组成:

  1. 输入数据

    模型的输入可以是任何类型的数据,如图片、文本、数字、音频等。输入数据将通过模型进行处理,得出相应的输出。
  2. 参数

    模型通常包含一些参数(例如权重和偏置),这些参数是通过训练过程学习到的。模型的目的是通过调整这些参数,使得模型能够更好地适应数据并做出准确的预测。
  3. 结构或算法

    模型背后有一个特定的结构或算法,决定了它如何处理输入数据。比如在神经网络中,这个结构是由层(如输入层、隐藏层、输出层)组成的神经元连接而成;而在回归模型中,它可能只是一个线性方程。
  4. 输出

    模型的输出是模型根据输入数据计算得到的结果。输出可以是一个预测值(如回归任务中的数值),也可以是分类标签(如分类任务中的类别)。

模型的训练:

训练是机器学习过程中的一个重要步骤。在训练过程中,模型会通过学习大量的数据,不断调整其内部参数,直到能够最小化预测与实际结果之间的差距。通常使用损失函数来衡量这种差距,通过优化算法(如梯度下降)来调整参数。

模型的类型:

  1. 监督学习模型

    • 在监督学习中,模型会通过包含输入和已知标签的训练数据进行学习。目标是使模型能够对新的未标记数据进行准确的预测或分类。
    • 例子:线性回归、支持向量机(SVM)、决策树、神经网络等。
  2. 无监督学习模型

    • 在无监督学习中,模型只能看到没有标签的输入数据。目标是从数据中发现隐藏的结构或模式。
    • 例子:聚类算法(如K-means)、主成分分析(PCA)等。
  3. 强化学习模型

    • 强化学习模型通过与环境交互获得反馈,从而学习如何最大化奖励。在训练过程中,模型会不断进行试错,调整策略。
    • 例子:Q-learning、Deep Q Networks(DQN)等。
  4. 生成模型

    • 生成模型能够生成新的数据,它不仅能够对现有数据进行建模,还能根据学到的分布生成新的数据点。
    • 例子:生成对抗网络(GAN)、变分自编码器(VAE)等。

模型评估:

训练好的模型通常需要通过一些评估指标来测试它的效果,评估的方式因任务不同而有所不同:

  • 分类任务:准确率、精确率、召回率、F1分数等。
  • 回归任务:均方误差(MSE)、均方根误差(RMSE)等。
  • 生成任务:生成图像的质量、与真实数据的相似度等。

后面的内容就是作者自己看的了

什么是卷积神经网络?

卷积神经网络(Convolutional Neural Network,简称CNN)是一种专门用于处理具有网格结构数据(如图像)的深度学习模型。CNN在计算机视觉领域中非常成功,广泛应用于图像分类、目标检测、图像生成等任务。

1. CNN的基本构成

CNN的架构通常由以下几个主要部分组成:

1. 1卷积层(Convolutional Layer)

卷积层是CNN的核心,负责从输入数据中提取特征。它使用一组称为卷积核(滤波器,Filter)权重,对输入数据进行卷积操作。每个卷积核在图像上滑动,计算卷积核与图像局部区域的点积,生成一个新的特征图(Feature Map)。

  • 卷积操作:假设输入是一个图像,卷积操作就是用一个小的矩阵(卷积核)在图像上滑动,通过矩阵乘法生成新的特征图。这样可以有效地提取图像的局部特征(如边缘、角落、纹理等)。
  • 感受野:卷积核对图像的局部区域进行操作,因此每个卷积层的输出特征图反映了输入图像的局部特征。
1.2 激活层(Activation Layer)

在卷积层的输出之后,通常会使用激活函数(如ReLU)来引入非线性。ReLU(Rectified Linear Unit)是最常用的激活函数,它会对卷积结果进行阈值处理,输出大于零的部分,负值部分输出为零,增强网络的非线性表示能力。

1.3 池化层(Pooling Layer)

池化层用于降低特征图的空间尺寸(宽度和高度),从而减少计算量和参数量,同时防止过拟合。常见的池化方法有:

  • 最大池化(Max Pooling):选取池化窗口中的最大值。
  • 平均池化(Average Pooling):选取池化窗口中的平均值。

池化层有助于减小特征图的维度,并且能保留重要的特征,使网络对小的平移、旋转和缩放变化具有更好的鲁棒性。

1.4 全连接层(Fully Connected Layer)

全连接层位于网络的后端,通常是在经过多次卷积层和池化层的特征图之后,进行特征的汇总。全连接层的每个神经元与前一层的所有神经元相连接,最终输出的是网络的预测结果(如分类标签、回归值等)。

1.5 归一化层(Normalization Layer)

常见的归一化方法有批量归一化(Batch Normalization),用于加速训练并稳定网络的学习过程。它对每一层的输出进行规范化,使得数据分布保持一致,从而避免训练过程中梯度消失或爆炸。

2. CNN的工作流程

  • 输入:输入数据(通常是图像)被输入到CNN中。
  • 卷积操作:卷积层通过卷积核提取图像的特征。
  • 池化操作:池化层降低特征图的空间尺寸,保留关键信息。
  • 激活:激活函数使得网络能够学习非线性的特征。
  • 全连接层:在最终的全连接层中,网络会将所有提取到的特征综合,得出预测结果(如分类标签)。
  • 输出:最终通过输出层生成最终的分类结果或者回归结果。

3. CNN的特点

3.1 局部感受野(Local Receptive Field)

卷积层通过使用局部感受野的方式,只关注输入数据的局部区域(局部感知),而不是整个图像。这样就能有效提取图像中的局部特征(如边缘、角落等)。

3.2 权重共享(Weight Sharing)

在CNN中,卷积核(滤波器)在图像上进行滑动,计算各个局部区域的卷积操作。这意味着同一个卷积核在整个图像上共享权重。这样大大减少了网络需要学习的参数量。

3.3 空间不变性(Spatial Invariance)

卷积操作能够捕捉到图像中局部位置无关的特征,即物体在图像中进行平移时,CNN仍然能够识别出来。池化操作进一步增强了这一能力,使得网络对于输入图像的平移、旋转、缩放等具有较强的鲁棒性。

3.4 层次化特征学习

CNN通过多层的卷积层,可以逐渐从简单的局部特征(如边缘、角落)学习到更复杂的高级特征(如面部、物体等)。这使得CNN特别适合处理视觉任务。

4. CNN的应用

CNN的应用非常广泛,尤其在图像处理领域。以下是一些常见的应用:

  • 图像分类:识别图像中包含的物体类别,如识别猫、狗、汽车等。
  • 目标检测:不仅识别图像中的物体,还标定物体的具体位置(即边界框)。
  • 语义分割:为图像中的每个像素分配一个标签,识别图像中的不同区域。
  • 图像生成:如图像超分辨率、图像修复等。
  • 人脸识别:根据面部图像进行身份识别。
  • 医学图像分析:如CT扫描、X光影像等的自动诊断。

5. CNN的优势

  • 自动特征提取:CNN能够自动从数据中提取有效的特征,而不需要人工设计特征。
  • 高效性:通过卷积和池化操作,CNN在处理大规模数据时表现出色,尤其在图像数据处理上具有明显优势。
  • 较强的泛化能力:由于权重共享和局部感受野,CNN能够在多种不同的图像变换(如平移、缩放、旋转)下依然表现出较好的鲁棒性。

总结:

卷积神经网络(CNN)是一种专门用于处理图像等结构化数据的深度学习模型。通过局部感受野、权重共享和多层次特征学习,CNN能够自动从数据中提取出有效的特征,并在图像分类、目标检测等任务中取得了显著的成功。

YOLO是什么?

YOLO(You Only Look Once)是一种基于深度学习的目标检测算法。它的主要特点是速度快精度高,在处理图像中的目标检测任务时表现非常优秀。YOLO的核心思想是将目标检测问题视为一个回归问题,通过一个神经网络直接从图像中预测目标的位置(边界框)和类别,而不是像传统方法那样使用多个阶段。

YOLO的工作原理:

  1. 整体框架

    • YOLO与传统的目标检测方法不同,它采用单一的神经网络来进行整个图像的目标检测任务。这意味着,YOLO会一次性“看”完整个图像(即通过整个图像的前向传播),然后同时输出多个目标的边界框和类别标签。
    • 传统目标检测算法(如R-CNN系列)通常先生成候选框(region proposals),然后再进行分类和回归,而YOLO则通过一个端到端的网络直接输出最终结果。
  2. 网格划分

    • YOLO将输入图像划分为S×S的网格(如13×13、19×19等)。每个网格负责检测图像中该区域内的目标。
    • 每个网格不仅预测一个边界框的坐标(x, y, w, h)和置信度(表示该框包含目标的概率),还预测目标的类别
  3. 边界框和置信度

    • 每个网格会预测多个边界框,每个边界框都会有一个置信度,表示框内是否存在目标以及该框与真实边界框的重叠程度。
    • 置信度 = P(object) × IOU(预测框与真实框的交并比),即它同时考虑了目标存在的概率和框的准确性。
  4. 多类别预测

    • YOLO不仅仅是做二分类(有目标或无目标),它还能够对每个目标进行多类别的分类。例如,YOLO可以识别图像中的“猫”、“狗”、“车”等不同类型的对象。

YOLO的优点:

  1. 实时性

    YOLO的最大特点之一是速度快,因为它将整个检测过程集成在一个神经网络中,不需要多阶段的处理。通过这种方式,YOLO能够进行实时目标检测,适用于视频流、自动驾驶等场景。
  2. 全局信息

    YOLO通过整个图像的分析来做预测,这意味着它能够捕捉到图像的全局信息,而不像一些局部特征的检测算法(如R-CNN)容易忽视全局背景信息。
  3. 准确性

    尽管YOLO以速度为优势,但它在准确性上也表现不俗,尤其是在大规模物体检测时。

模型的压缩技术?

知乎文章

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

node.js+兰空图床实现随机图

之前博客一直用的公共的随机图API,虽然图片的质量都挺不错的,但是稳定性都比较一般,遂打算使用之前部署的兰空图床,自己弄一个随机图 本文章服务器操作基于雨云——新一代云服务提供商的云服务器进行操作,有兴趣的话可…

【个人开发】deepseed+Llama-factory 本地数据多卡Lora微调

文章目录 1.背景2.微调方式2.1 关键环境版本信息2.2 步骤2.2.1 下载llama-factory2.2.2 准备数据集2.2.3 微调模式2.2.4 微调脚本 2.3 踩坑经验2.3.1 问题一:ValueError: Undefined dataset xxxx in dataset_info.json.2.3.2 问题二: ValueError: Target…

灵活运用yaml格式配置你的python项目

Python开发时常用的配置文件后缀是.ini、.conf、.py、.json,今天风云要介绍的 .yaml 是当下最推荐的配置文件格式。容易阅读和修改,支持注释,且支持丰富的数据类型。 YAML(YAML Aint Markup Language)是一种人类可读的…

DeepSeek 指导手册(入门到精通)

第⼀章:准备篇(三分钟上手)1.1 三分钟创建你的 AI 伙伴1.2 认识你的 AI 控制台 第二章:基础对话篇(像交朋友⼀样学交流)2.1 有效提问的五个黄金法则2.2 新手必学魔法指令 第三章:效率飞跃篇&…

Tcp_socket

Tcp不保证报文完整性(面向字节流) 所以我们需要在应用层指定协议,确保报文完整性 // {json} -> len\r\n{json}\r\n bool Encode(std::string &message) {if(message.size() 0) return false;std::string package std::to_string(m…

激光工控机在精密制造中的应用与优势

在精密制造中,激光工控机可以用于许多场景例如 激光切割与雕刻:用于金属、塑料、陶瓷等材料的精密切割和雕刻,适用于汽车、航空航天、电子等行业;可实现复杂图案和高精度加工,满足微米级精度要求。 激光焊接&#xf…

基于微型5G网关的石化厂区巡检机器人应用

石化工业属于高风险产业,由于涉及易燃易爆、有毒有害工业原料,为了保障企业的安全生产与持续运营,因此相比其它行业需要进行更高频次、更全面细致的安全巡检和监测。由于传统的人工巡检监测存在诸多不便,例如工作强度大、现场环境…

WebP2P+自研回音消除:视频通话SDK嵌入式EasyRTC构建高交互性音视频应用

随着移动互联网时代的到来,手机端的扬声器大多采用外置设计,且音量较大。在这种情况下,扬声器播放的声音更容易被麦克风捕捉,从而导致回声问题显著加剧。这种设计虽然方便用户在免提模式下使用,但也带来了更复杂的音频…

【STM32】通过HAL库Flash建立FatFS文件系统并配置为USB虚拟U盘MSC

【STM32】通过HAL库Flash建立FatFS文件系统并配置为USB虚拟U盘MSC 在先前 分别介绍了FatFS文件系统和USB虚拟U盘MSC配置 前者通过MCU读写Flash建立文件系统 后者通过MSC连接电脑使其能够被操作 这两者可以合起来 就能够实现同时在MCU、USB中操作Flash的文件系统 【STM32】通过…

飞书专栏-TEE文档

CSDN学院课程连接:https://edu.csdn.net/course/detail/39573

【gRPC-gateway】auth-通过拦截器从上下文中提取元数据用于认证,与从http header转发待认证数据到上下文进行验证,go案例

从grpc上下文中提取元数据用于认证 案例 interceptor.go package serverimport ("context""errors""google.golang.org/grpc""google.golang.org/grpc/metadata""strings" )// UnaryInterceptor 是一个 unary RPC 的拦截器…

win11 终端乱码导致IDE 各种输出也乱码

因为 win11 终端乱码导致IDE 各种输出也乱码导致作者对此十分头大。所以研究了各种方法。 单独设置终端编码对 HKEY_CURRENT_USER\Console 注册表进行修改对 HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processo 注册表进行修改使用命令[Console]::OutputEncoding [Syst…

deepseek+kimi一键生成PPT

1、deepseek生成大纲内容 访问deepseek官方网站:https://www.deepseek.com/ 将你想要编写的PPT内容输入到对话框,点击【蓝色】发送按钮,让deepseek生成内容大纲,并以markdown形式输出。 等待deepseek生成内容完毕后&#xff0c…

从零搭建:Canal实时数据管道打通MySQL与Elasticsearch

Canal实时同步Mysql Binlog至 Elasticsearch 文章目录 Canal实时同步Mysql **Binlog**至**Elasticsearch** 一. 环境准备1.环境检查检查Mysql是否开启BinLog开启Mysql BinlogJava环境检查 2.新建测试库和表3.新建Es索引 二.**部署 Canal Server****2.1 解压安装包****2.2 配置 …

Excel 合并列数据

场景 要求每行数据的每个字段的内容不能以 [2,3,33,22] 形式展示 要求独立成列形式如下 代码 maven 依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.17</version></dependency>…

从零到一:基于Rook构建云原生Ceph存储的全面指南(下)

接上篇&#xff1a;《从零到一&#xff1a;基于Rook构建云原生Ceph存储的全面指南&#xff08;上&#xff09;》 链接: link 六.Rook部署云原生CephFS文件系统 6.1 部署cephfs storageclass cephfs文件系统与RBD服务类似&#xff0c;要想在kubernetes pod里使用cephfs&#…

人工智能之深度学习的革命性突破

深度学习的革命性突破 深度学习是机器学习的一个子领域&#xff0c;通过模拟人脑神经网络的结构和功能&#xff0c;实现对复杂数据的高效处理。近年来&#xff0c;深度学习在计算机视觉、自然语言处理、语音识别等领域取得了革命性突破。本文将深入探讨深度学习的核心架构、突…

C#快速排序QuickSort将递归算法修改为堆栈Stack非递归方式

我们知道,方法的调用是采用Stack的方式[后进先出:LIFO], 在DeepSeek中快速搜索C#快速排序, 搜索结果如图: 我们会发现是采用递归的方式 . 递归的优点: 简单粗暴,类似于直接写数学公式,因代码量较少,易于理解.递归与循环迭代的运行次数都是一致的 递归的缺点: 占用大量的内…

Django开发入门 – 3.用Django创建一个Web项目

Django开发入门 – 3.用Django创建一个Web项目 Build A Web Based Project With Django By JacksonML 本文简要介绍如何利用最新版Python 3.13.2来搭建Django环境&#xff0c;以及创建第一个Django Web应用项目&#xff0c;并能够运行Django Web服务器。 创建该Django项目需…

SQL布尔盲注、时间盲注

一、布尔盲注 布尔盲注&#xff08;Boolean-based Blind SQL Injection&#xff09;是一种SQL注入技术&#xff0c;用于在应用程序不直接显示数据库查询结果的情况下&#xff0c;通过构造特定的SQL查询并根据页面返回的不同结果来推测数据库中的信息。这种方法依赖于SQL查询的…