当前位置: 首页 > news >正文

[深度学习]机器学习和深度学习

机器学习和深度学习

文章目录

  • 机器学习和深度学习
    • 人工智能与机器学习和深度学习的关系
    • 侠义的机器学习
    • 深度学习的概念
      • 常见的神经网络的输入形式
      • 想要的输出(任务类别)
      • 深度学习的流程
    • 线性函数与多层神经元

人工智能与机器学习和深度学习的关系

image-20250120155116339

所谓人工智能就是,让计算机为人类做工作,其中机器学习属于人工智能深度学习属于机器学习

传统人工智能系统与机器学习的区别:

image-20250120155627822

  • 传统系统是将输入数据以及处理数据的规则交给计算机,然后让计算机得出数据处理结果(输出数据)。
  • 机器学习是将输入数据以及数据处理结果(输出数据)交给计算机,然后让计算机得出处理数据的规则

侠义的机器学习

侠义的机器学习是指除去深度学习的机器学习部分,也就是下图中浅蓝色的中间层部分:

image-20250120160136310

具有一般是基于数学,或者统计学的方法,具有很强的可解释性的特点。所谓的可解释性就像数学公式的推导过程一样,得到的每个结果都是有逻辑的,令人信服的。

这里简述几个经典的传统机器学习算法:

  1. K最近邻居(K-Nearest Neighbors,简称KNN)

举例如下图:

image-20250120160819442

小明的周围都是北大的,因此小明大概率是北大的;小明的周围大多是清华的,因此小明大概率是清华的;小明周围清华和北大人数接近,因此小明是清华还是北大难以判断;小明周围有很多川大的,对推断小明是清华还是北大没有价值,因此难以判断。

根据以上的例子,我们可以体会它的基本思想是通过测量不同数据点之间的距离来进行预测。此外,KNN是一种监督学习算法,用于分类和回归问题。

而KNN的工作原理可以概括为以下几个步骤:

  1. 距离度量: KNN使用距离度量(通常是欧氏距离)来衡量数据点之间的相似性。
  2. 确定邻居数量K
  3. 投票机制

如下图,图中点的位置可以表示点之间的距离,可以选取不同的邻居数量,然后根据选中的邻居的所在各类的数量判断数据属于哪类可能性。

image-20250120161709359

  1. 决策树

    决策树是将所有可能情况和相应的数据给出,举例判断邮件是否为垃圾邮件如下图:

    image-20250120162328814

    通过输入的是否认识的人和垃圾关键字两个维度的数据去查找决策树中对应的输出,另外决策树不善于处理未见过的特征。

  2. 朴素贝叶斯

    基于贝叶斯定理,并假设特征之间是条件独立的,举例如下图:

image-20250120162900482

以上介绍的机器学习的算法,具有数学上的可解释性,但准确率不是百分百,且不灵活,因此引入了深度学习。

深度学习的概念

深度学习是机器学习的子集,让机器利用多层神经网络从大量数据中自己进行学习。

image-20250120163625543

最后学习出来的模型,我们直接拿来使用,往后的数据都通过这个学出来的模型得到输出数据,由于成功率比较高,因此我们可以拿来使用,但是完全没有可解释性,因此深度学习是一门实践性的科目。

实际上,深度学习就是找一个函数f。给到机器的是输入数据X和输出数据Y,让其使用神经网络学习,学习得到数据处理的规则,也就是X如何得到Y,这个规则就是所谓的函数f。

image-20250120182244527

深度学习的意义

在一些复杂的场景下,比如给到的输入是一张图片,输出是图中物品的类别,我们要推断输入得到输出的规则是十分困难的,是人类很难得到,因此采用深度学习推断规则。

常见的神经网络的输入形式

  1. 向量

    一组有序的数字,可以表示输入数据的每个特征。

    image-20250120165816593

  2. 矩阵/张量

    神经网络处理更高维度数据时的常见输入形式,特别是在涉及到 二维数据(如图像或表格数据)时,图像是用矩阵表示的。

    image-20250120165947926

  3. 序列

具有 时间依赖性顺序关系 的数据。如一句话和视频。

image-20250120170314850

苹果一词放到不同语境有不同的解释,视频是由一帧一帧的图像组成,并且图像之间有严格的前后顺序。

想要的输出(任务类别)

  1. 回归任务

    回归任务好似一道填空题,输出的是一个数在连续的区间内选出一个。如根据以前的温度推测明天的温度大概有多高。

  2. 分类任务

    分类任务好似一道选择题,输出只能是给定的离散的数据中选出一个。如给出一张图片,判断图中是猫还是狗,即使输入是一只狼,输出也只能是猫和狗。

  3. 生成任务

    生成任务好似一道简答题,输出是具有结构化的数据。如一段文字或一张图片。

分类和回归是结构化的基础。 分类时, 是用数字来表示类别。 有的时候需要多个模态的数据, 比如 图片, 文字, 声音。

image-20250120172333436

深度学习的流程

深度学习需要数据,因为要从数据中找到函数。深度学习的流程如下图:

image-20250120182223937

举一个例子来理解深度学习的流程,假设有如下数据:

image-20250120182412940

有6组x和y,x也成为数据(feature),y也成为标签(label),x和y实际的函数关系是
y = 2 ∗ x + 1 + ε y=2*x+1+ε y=2x+1+ε
其中,ε为扰动,因为真实数据是不会是完全符合一个特定函数关系的,要做的就是找到x和y之间的函数关系,然后推测出第7组x对应的y。特别注意的是,我们已知的只有x和y,x和y的函数关系是未知的,也就是我们深度学习要求得的。

关于这个例子,我们进行深度学习:

  1. 定义一个函数模型

    函数模型的定义是任意的,可以选择线性模型
    y = w ∗ x + b y=w*x+b y=wx+b
    ,也可以选择二次函数模型,三次函数模型甚至更复杂的函数模型,不同的函数模型得到的模型效果有差异,由于实际函数关系是未知的,因此模型的选择是具有猜测性。本例中我们就选择线性模型
    y = 3 ∗ x + 2 y=3*x+2 y=3x+2
    也就是w选取3,b选取2,其中w称为权重(weight),b称为偏置(bias)。

  2. 定义一个合理的损失函数LOSS

    损失函数LOSS的作用判断我们选择的这组参数怎么样。在我们选取的模型中参数就是w和b,我们设计LOSS函数为
    L ( w , b ) = ∣ y ^ − y ∣ = ∣ w x + b − y ∣ L(w, b) = |\hat y - y| = | w x+b- y| L(w,b)=y^y=wx+by
    如果我们设计的模型和真实函数关系十分接近的话,那么用模型求的的
    y ^ \hat y y^
    和真实的y差值的绝对值,也会很小,也就是LOSS值会很小,由于不止一组x和y因此求LOSS时要取多个LOSS的平均值
    L O S S = 1 N ∑ i = 1 N l LOSS = \frac{1}{N}\sum \limits_{i=1}^N l LOSS=N1i=1Nl
    比如第一个x为1,经过我们设定的模型求的
    y ^ \hat y y^
    为5,而x对应的y为3.1,因此LOSS值为1.9。

  3. 根据损失对模型进行优化

为了让设定的模型更加接近真实的函数关系,因此要根据LOSS值不断调整参数,在这里就是w和b,直到LOSS值为我们所能接受的值。下面给出两个常见的LOSS函数:
M A E : L ( w , b ) = ∣ y ^ − y ∣ ( 均绝对误差 ) MAE : L(w, b) = |\hat y - y| (均绝对误差) MAE:L(w,b)=y^y(均绝对误差)

M S E : L ( w , b ) = ( y ^ − y ) 2 ( 均方误差 ) MSE : L(w, b) = (\hat y - y )^2(均方误差) MSE:L(w,b)=y^y2(均方误差)

模型优化有公式如下:
w ∗ , b ∗ = a r g m i n L w^*,b^* = arg \ minL w,b=arg minL

其中 w ∗ , b ∗ w^*,b^* w,b为L最小时w,b所取的值,根据LOSS调整参数w,b进行的优化模型采用的是梯度下降算法。

梯度下降算法的过程如下(以参数w为例):

  1. 随机选取一个 w 0 w^0 w0

    在定义函数模型为线性模型后,设定的w=3就是所谓的 w 0 w^0 w0(w的第0版)也就是给参数w设定的初始值。

  2. 计算梯度

    在选取的LOSS函数
    L ( w , b ) = ∣ y ^ − y ∣ = ∣ w x + b − y ∣ L(w, b) = |\hat y - y| = | w x+b- y| L(w,b)=y^y=wx+by
    中因为要做的是通过改变w和b来改变函数L的值,因此在这个过程中w,b为自变量,x,y为常数,因为本例要调整参数w,因此要计算函数L对自变量w取档当前值时的梯度
    ∂ L ∂ w ∣ w = w 0 \frac{\partial L}{\partial w}|w=w^0 wLw=w0

  3. 更新w的值

    如果梯度值是大于0的,说明函数在邻域内左低右高,w减小,L有可能减小;如果梯度值小于0,说明函数在邻域内左高右低,w增大,L有可能减小。w的更新采用如下公式:
    w 1 ← w 0 − η ∂ L ∂ w ∣ w = w 0 w1←w0-η\frac{\partial L}{\partial w}|w=w^0 w1w0ηwLw=w0
    采用该公式时,梯度大于0,w会减小;梯度小于0时,w会增大。其中η为学习率,η的作用是控制参数调整的幅度,学习率的设定和模型的设定一样影响最后的效果,并且没有明确的选取方式。

    学习率设定的过大或过小都会有问题,学习率设定的过大,会使参数调整时参数的调整幅度过大,导致不断偏离最小值,会导致梯度爆炸学习率设置的过小,调整的幅度过小,会使得学习时间变长

    **特别要注意的是:**η是一个超参数,超参数在设定后,是不会随着深度学习而改变的,初次之外,模型也是一种超参数,比如设定了为线性结构,学习过程中就不可能再变成其他如二次函数的结构。

    • 在完成1,2,3之后,不断执行2,3调整参数,直至LOSS函数值满足要求,或训练轮次达到。
    • 模型中的所有参数都要采用梯度下降算法进行调整,采用相同的方法。
    • 当参数众多时,梯度计算过程会很复杂,可以使用torch提供的框架来完成。

线性函数与多层神经元

研究深度学习时,总能看到类似如下图的神经网络图:

image-20250120233032429

单取出一个神经元做解释:

image-20250120233351777

一个神经元实际表示的数据公式为
y ^ = w ∗ x + b \hat y=w*x+b y^=wx+b
因此在一个神经网络中,一个结点要表示的就是一个线性关系
y = ∑ i = 1 N w i x i + b y=\sum \limits_{i=1}^Nw_ix_i+b y=i=1Nwixi+b
b为几个 x i x_i xi的偏置值之和,取其中一个结点举例,关系如下图:

Screenshot_20250120_234054

相关文章:

[深度学习]机器学习和深度学习

机器学习和深度学习 文章目录 机器学习和深度学习人工智能与机器学习和深度学习的关系侠义的机器学习深度学习的概念常见的神经网络的输入形式想要的输出(任务类别)深度学习的流程 线性函数与多层神经元 人工智能与机器学习和深度学习的关系 所谓人工智能就是,让计算…...

区块链技术

区块链是一个信息技术领域的术语,它代表了去中心化、安全性高、透明度强的分布式账本技术。以下是对区块链的详细介绍: 一、定义与基本原理 区块链(Blockchain)是指通过去中心化和去信任的方式集体维护一个可靠数据库的技术方案…...

vim函数定义跳转相关设置

修改下vim的一些ctags相关快捷键,个人用着顺手点。 小结如下: normal模式下的gk,用来打开一个预览窗口预览函数定义(需要ctags生成好tags文件)。normal模式下的gd,修改映射为ctrl],即跳转到函…...

如何使用Python爬虫获取微店商品详情:代码示例与实践指南

在电商领域,获取商品详情数据对于商家和开发者来说至关重要。微店作为国内知名的电商平台,提供了丰富的商品数据接口,方便开发者通过API调用获取商品详情。本文将详细介绍如何使用Python爬虫获取微店商品详情,并提供具体的代码示例…...

Autosar CP RTE规范解读之不同 BSW 接口的通知与软件组件激活机制:标准化接口与 AUTOSAR 接口的实现方式

在汽车电子系统开发中,特别是在遵循 AUTOSAR 架构的系统中,基本软件(BSW)模块之间的通信和信息通知机制至关重要,它直接影响着系统的性能、可靠性以及各个软件组件之间的协同工作能力。本文根据不同类型的 BSW 接口&am…...

基于STM32的智能门锁安防系统(开源)

目录 项目演示 项目概述 硬件组成: 功能实现 1. 开锁模式 1.1 按键密码开锁 1.2 门禁卡开锁 1.3 指纹开锁 2. 功能备注 3. 硬件模块工作流程 3.1 步进电机控制 3.2 蜂鸣器提示 3.3 OLED显示 3.4 指纹与卡片管理 项目源代码分析 1. 主程序流程 (main…...

搭建Hadoop源代码阅读环境

个人博客地址:搭建Hadoop源代码阅读环境 | 一张假钞的真实世界 环境 Mac OS X EI Capitan 10.11.6java version “1.7.0_80”git version 2.7.4 (Apple Git-66)Apache Maven 3.3.9下载源代码 从Git上下载最新源代码: git clone git://git.apache.org/hadoop-common.git 构…...

【25】Word:林涵-科普文章❗

目录 题目​ NO1.2.3 NO4.5.6 NO7.8 NO9.10 NO11.12 不连续选择:按住ctrl按键,不连续选择连续选择:按住shift按键,选择第一个,选择最后一个。中间部分全部被选择 题目 NO1.2.3 布局→纸张方向:横向…...

Spring Boot接收参数的19种方式

Spring Boot是一个强大的框架,允许开发人员通过多种方式接收和处理参数。无论是HTTP请求参数、路径变量,还是请求体中的数据,Spring Boot都能提供灵活的处理方式。本文将介绍19种不同的方式来接收参数。 1. 查询参数(Query Param…...

云IDE:开启软件开发的未来篇章

敖行客一直致力于将整个研发协作流程线上化,从而打破物理环境依赖,让研发组织模式更加灵活、自由且高效,今天就来聊聊AT Work(一站式研发协作平台)的重要组成部分-云IDE。 在科技领域,历史常常是未来的风向…...

Leetcode 189 轮转数组

leetcode 189 轮转数组 题目 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向…...

华为服务器(iBMC)监控指标解读

美信监控易内置了数千种常见设备监测器,能够监测超过20万项指标。这些指标涵盖了从硬件设备到软件系统,从网络性能到安全状态等各个方面。如下基于美信监控易——IT基础监控模块,对华为服务器(iBMC)部分监控指标进行解…...

网络编程-UDP套接字

文章目录 UDP/TCP协议简介两种协议的联系与区别Socket是什么 UDP的SocketAPIDatagramSocketDatagramPacket 使用UDP模拟通信服务器端客户端测试 完整测试代码 UDP/TCP协议简介 两种协议的联系与区别 TCP和UDP其实是传输层的两个协议的内容, 差别非常大, 对于我们的Java来说, …...

Web 音视频(一)基础知识

前言 阅读后续文章或开始使用 WebAV 处理音视频数据之前,需要一点点背景知识。 本篇主要简单介绍音视频最基础的知识,以及 WebCodecs 的核心 API。 视频结构 视频文件可以理解为容器包含了元数据和编码数据(压缩的音频或视频)…...

数字化时代,传统代理模式的变革之路

在数字化飞速发展的今天,线上线下融合(O2O)成了商业领域的大趋势。这股潮流,正猛烈冲击着传统代理模式,给它带来了新的改变。 咱们先看看线上线下融合现在啥情况。线上渠道那是越来越多,企业纷纷在电商平台…...

Linux 高级路由与流量控制-用 tc qdisc 管理 Linux 网络带宽

大家读完记得觉得有帮助记得关注和点赞!!! 此分享内容比较专业,很多与硬件和通讯规则及队列,比较底层需要有技术功底人员深入解读。 Linux 的带宽管理能力 足以媲美许多高端、专用的带宽管理系统。 1 队列&#xff0…...

【数据库知识】PostgreSQL介绍

PostgreSQL介绍 概述一、起源与发展二、特性与功能三、PL/pgSQL语言四、应用场景五、配置与优化 核心概念一、基础数据结构二、数据操作三、高级特性四、应用场景 多版本控制MVCC说明一、MVCC的基本概念二、MVCC的实现原理三、MVCC的工作流程四、MVCC的优势五、MVCC的局限性 可…...

软考,沟通管理

软件沟通管理 已发送、巳收到、已理解、己认可、已转化为积极的行动 有效的沟通活动和成果创建具有如下3个基本属性:①沟通目的明确;②尽量了解沟通接收方,满足其需求及偏好;③监督并衡量沟通的效果。 让干系人参加项目会议&…...

Linux 存储设备和 Ventoy 启动盘制作指南

一、Linux 存储设备基础知识 1. 设备路径(/dev) 设备路径是 Linux 系统中物理存储设备的唯一标识,类似设备的"身份证号"。 命名规则解析 /dev/sda: /dev:device(设备)的缩写&…...

Android SystemUI——CarSystemBar车载状态栏(九)

上一篇文章我们介绍了车载开发中的 CarSystemUI,而车载开发中的状态栏也被 CarSystemBar 所取代,这里我们就来看看一下车载系统中的状态栏——CarSystemBar。 一、车载状态栏创建 1、CarSystemBar 源码位置:/packages/apps/Car/SystemUI/src/com/android/systemui/car/sy…...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...

React Native在HarmonyOS 5.0阅读类应用开发中的实践

一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...

Selenium常用函数介绍

目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...

Python 实现 Web 静态服务器(HTTP 协议)

目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1)下载安装包2)配置环境变量3)安装镜像4)node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1)使用 http-server2)详解 …...

​​企业大模型服务合规指南:深度解析备案与登记制度​​

伴随AI技术的爆炸式发展,尤其是大模型(LLM)在各行各业的深度应用和整合,企业利用AI技术提升效率、创新服务的步伐不断加快。无论是像DeepSeek这样的前沿技术提供者,还是积极拥抱AI转型的传统企业,在面向公众…...

Windows 下端口占用排查与释放全攻略

Windows 下端口占用排查与释放全攻略​ 在开发和运维过程中,经常会遇到端口被占用的问题(如 8080、3306 等常用端口)。本文将详细介绍如何通过命令行和图形化界面快速定位并释放被占用的端口,帮助你高效解决此类问题。​ 一、准…...

门静脉高压——表现

一、门静脉高压表现 00:01 1. 门静脉构成 00:13 组成结构:由肠系膜上静脉和脾静脉汇合构成,是肝脏血液供应的主要来源。淤血后果:门静脉淤血会同时导致脾静脉和肠系膜上静脉淤血,引发后续系列症状。 2. 脾大和脾功能亢进 00:46 …...

字符串哈希+KMP

P10468 兔子与兔子 #include<bits/stdc.h> using namespace std; typedef unsigned long long ull; const int N 1000010; ull a[N], pw[N]; int n; ull gethash(int l, int r){return a[r] - a[l - 1] * pw[r - l 1]; } signed main(){ios::sync_with_stdio(false), …...