[深度学习]机器学习和深度学习
机器学习和深度学习
文章目录
- 机器学习和深度学习
- 人工智能与机器学习和深度学习的关系
- 侠义的机器学习
- 深度学习的概念
- 常见的神经网络的输入形式
- 想要的输出(任务类别)
- 深度学习的流程
- 线性函数与多层神经元
人工智能与机器学习和深度学习的关系
所谓人工智能就是,让计算机为人类做工作,其中机器学习属于人工智能,深度学习属于机器学习。
传统人工智能系统与机器学习的区别:
- 传统系统是将输入数据以及处理数据的规则交给计算机,然后让计算机得出数据处理结果(输出数据)。
- 机器学习是将输入数据以及数据处理结果(输出数据)交给计算机,然后让计算机得出处理数据的规则。
侠义的机器学习
侠义的机器学习是指除去深度学习的机器学习部分,也就是下图中浅蓝色的中间层部分:
具有一般是基于数学,或者统计学的方法,具有很强的可解释性的特点。所谓的可解释性就像数学公式的推导过程一样,得到的每个结果都是有逻辑的,令人信服的。
这里简述几个经典的传统机器学习算法:
- K最近邻居(K-Nearest Neighbors,简称KNN)
举例如下图:
小明的周围都是北大的,因此小明大概率是北大的;小明的周围大多是清华的,因此小明大概率是清华的;小明周围清华和北大人数接近,因此小明是清华还是北大难以判断;小明周围有很多川大的,对推断小明是清华还是北大没有价值,因此难以判断。
根据以上的例子,我们可以体会它的基本思想是通过测量不同数据点之间的距离来进行预测。此外,KNN是一种监督学习算法,用于分类和回归问题。
而KNN的工作原理可以概括为以下几个步骤:
- 距离度量: KNN使用距离度量(通常是欧氏距离)来衡量数据点之间的相似性。
- 确定邻居数量K
- 投票机制
如下图,图中点的位置可以表示点之间的距离,可以选取不同的邻居数量,然后根据选中的邻居的所在各类的数量判断数据属于哪类可能性。
-
决策树
决策树是将所有可能情况和相应的数据给出,举例判断邮件是否为垃圾邮件如下图:
通过输入的是否认识的人和垃圾关键字两个维度的数据去查找决策树中对应的输出,另外决策树不善于处理未见过的特征。
-
朴素贝叶斯
基于贝叶斯定理,并假设特征之间是条件独立的,举例如下图:
以上介绍的机器学习的算法,具有数学上的可解释性,但准确率不是百分百,且不灵活,因此引入了深度学习。
深度学习的概念
深度学习是机器学习的子集,让机器利用多层神经网络从大量数据中自己进行学习。
最后学习出来的模型,我们直接拿来使用,往后的数据都通过这个学出来的模型得到输出数据,由于成功率比较高,因此我们可以拿来使用,但是完全没有可解释性,因此深度学习是一门实践性的科目。
实际上,深度学习就是找一个函数f。给到机器的是输入数据X和输出数据Y,让其使用神经网络学习,学习得到数据处理的规则,也就是X如何得到Y,这个规则就是所谓的函数f。
深度学习的意义
在一些复杂的场景下,比如给到的输入是一张图片,输出是图中物品的类别,我们要推断输入得到输出的规则是十分困难的,是人类很难得到,因此采用深度学习推断规则。
常见的神经网络的输入形式
-
向量
一组有序的数字,可以表示输入数据的每个特征。
-
矩阵/张量
神经网络处理更高维度数据时的常见输入形式,特别是在涉及到 二维数据(如图像或表格数据)时,图像是用矩阵表示的。
-
序列
具有 时间依赖性 或 顺序关系 的数据。如一句话和视频。
苹果一词放到不同语境有不同的解释,视频是由一帧一帧的图像组成,并且图像之间有严格的前后顺序。
想要的输出(任务类别)
-
回归任务
回归任务好似一道填空题,输出的是一个数在连续的区间内选出一个。如根据以前的温度推测明天的温度大概有多高。
-
分类任务
分类任务好似一道选择题,输出只能是给定的离散的数据中选出一个。如给出一张图片,判断图中是猫还是狗,即使输入是一只狼,输出也只能是猫和狗。
-
生成任务
生成任务好似一道简答题,输出是具有结构化的数据。如一段文字或一张图片。
分类和回归是结构化的基础。 分类时, 是用数字来表示类别。 有的时候需要多个模态的数据, 比如 图片, 文字, 声音。
深度学习的流程
深度学习需要数据,因为要从数据中找到函数。深度学习的流程如下图:
举一个例子来理解深度学习的流程,假设有如下数据:
有6组x和y,x也成为数据(feature),y也成为标签(label),x和y实际的函数关系是
y = 2 ∗ x + 1 + ε y=2*x+1+ε y=2∗x+1+ε
其中,ε为扰动,因为真实数据是不会是完全符合一个特定函数关系的,要做的就是找到x和y之间的函数关系,然后推测出第7组x对应的y。特别注意的是,我们已知的只有x和y,x和y的函数关系是未知的,也就是我们深度学习要求得的。
关于这个例子,我们进行深度学习:
-
定义一个函数模型
函数模型的定义是任意的,可以选择线性模型
y = w ∗ x + b y=w*x+b y=w∗x+b
,也可以选择二次函数模型,三次函数模型甚至更复杂的函数模型,不同的函数模型得到的模型效果有差异,由于实际函数关系是未知的,因此模型的选择是具有猜测性。本例中我们就选择线性模型
y = 3 ∗ x + 2 y=3*x+2 y=3∗x+2
也就是w选取3,b选取2,其中w称为权重(weight),b称为偏置(bias)。 -
定义一个合理的损失函数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+b−y∣
如果我们设计的模型和真实函数关系十分接近的话,那么用模型求的的
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=1∑Nl
比如第一个x为1,经过我们设定的模型求的
y ^ \hat y y^
为5,而x对应的y为3.1,因此LOSS值为1.9。 -
根据损失对模型进行优化
为了让设定的模型更加接近真实的函数关系,因此要根据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^−y)2(均方误差)
模型优化有公式如下:
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为例):
-
随机选取一个 w 0 w^0 w0
在定义函数模型为线性模型后,设定的w=3就是所谓的 w 0 w^0 w0(w的第0版)也就是给参数w设定的初始值。
-
计算梯度
在选取的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+b−y∣
中因为要做的是通过改变w和b来改变函数L的值,因此在这个过程中w,b为自变量,x,y为常数,因为本例要调整参数w,因此要计算函数L对自变量w取档当前值时的梯度
∂ L ∂ w ∣ w = w 0 \frac{\partial L}{\partial w}|w=w^0 ∂w∂L∣w=w0 -
更新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 w1←w0−η∂w∂L∣w=w0
采用该公式时,梯度大于0,w会减小;梯度小于0时,w会增大。其中η为学习率,η的作用是控制参数调整的幅度,学习率的设定和模型的设定一样影响最后的效果,并且没有明确的选取方式。学习率设定的过大或过小都会有问题,学习率设定的过大,会使参数调整时参数的调整幅度过大,导致不断偏离最小值,会导致梯度爆炸;学习率设置的过小,调整的幅度过小,会使得学习时间变长。
**特别要注意的是:**η是一个超参数,超参数在设定后,是不会随着深度学习而改变的,初次之外,模型也是一种超参数,比如设定了为线性结构,学习过程中就不可能再变成其他如二次函数的结构。
- 在完成1,2,3之后,不断执行2,3调整参数,直至LOSS函数值满足要求,或训练轮次达到。
- 模型中的所有参数都要采用梯度下降算法进行调整,采用相同的方法。
- 当参数众多时,梯度计算过程会很复杂,可以使用torch提供的框架来完成。
线性函数与多层神经元
研究深度学习时,总能看到类似如下图的神经网络图:
单取出一个神经元做解释:
一个神经元实际表示的数据公式为
y ^ = w ∗ x + b \hat y=w*x+b y^=w∗x+b
因此在一个神经网络中,一个结点要表示的就是一个线性关系
y = ∑ i = 1 N w i x i + b y=\sum \limits_{i=1}^Nw_ix_i+b y=i=1∑Nwixi+b
b为几个 x i x_i xi的偏置值之和,取其中一个结点举例,关系如下图:
相关文章:

[深度学习]机器学习和深度学习
机器学习和深度学习 文章目录 机器学习和深度学习人工智能与机器学习和深度学习的关系侠义的机器学习深度学习的概念常见的神经网络的输入形式想要的输出(任务类别)深度学习的流程 线性函数与多层神经元 人工智能与机器学习和深度学习的关系 所谓人工智能就是,让计算…...
区块链技术
区块链是一个信息技术领域的术语,它代表了去中心化、安全性高、透明度强的分布式账本技术。以下是对区块链的详细介绍: 一、定义与基本原理 区块链(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 队列࿰…...
【数据库知识】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学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...

【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...
Android第十三次面试总结(四大 组件基础)
Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机: onCreate() 调用时机:Activity 首次创建时调用。…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...

破解路内监管盲区:免布线低位视频桩重塑停车管理新标准
城市路内停车管理常因行道树遮挡、高位设备盲区等问题,导致车牌识别率低、逃费率高,传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法,正成为破局关键。该设备安装于车位侧方0.5-0.7米高度,直接规避树枝遮…...

Python异步编程:深入理解协程的原理与实践指南
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 持续学习,不断…...

中科院1区顶刊|IF14+:多组学MR联合单细胞时空分析,锁定心血管代谢疾病的免疫治疗新靶点
中科院1区顶刊|IF14:多组学MR联合单细胞时空分析,锁定心血管代谢疾病的免疫治疗新靶点 当下,免疫与代谢性疾病的关联研究已成为生命科学领域的前沿热点。随着研究的深入,我们愈发清晰地认识到免疫系统与代谢系统之间存在着极为复…...