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

【学习笔记】理解深度学习的基础:机器学习

1. 机器学习基础

1.1 机器学习的定义与重要性

  • 定义:深度学习是机器学习的一种特定形式。为了深入理解深度学习,必须牢固掌握机器学习的基本原理。机器学习算法是一种能够从数据中学习的算法,通过经验E在任务T上提高性能度量P(Mitchell, 1997)。
  • 重要性:对于解决那些对人类来说过于复杂、难以通过固定程序编写和设计的任务,机器学习提供了一种强大的工具。它广泛应用于各个领域,如图像识别、语音识别、自然语言处理等。

1.2 机器学习的任务类型

  • 分类任务:计算机程序需要指定输入属于k个类别中的哪一个。例如,图像识别中,输入是图像,输出是识别出的物体类别。
  • 回归任务:计算机程序需要预测给定输入的数值。例如,预测保险索赔金额或未来证券价格。
  • 转录任务:观察某种数据的相对非结构化表示,并将其转录成离散文本形式。例如,光学字符识别和语音识别。
  • 机器翻译任务:将一种语言的符号序列转换为另一种语言的符号序列。例如,英语到法语的翻译。
  • 结构化输出任务:输出是一个向量(或其他包含多个值的数据结构),元素之间具有重要关系。例如,图像分割和图像标注。
  • 异常检测任务:在一组事件或对象中标记出那些不寻常或典型的。例如,信用卡欺诈检测。
  • 合成与采样任务:自动生成纹理、声音等。例如,语音合成。
  • 缺失值填充:预测输入中缺失的值。
  • 去噪:从损坏的输入中预测干净的示例。
  • 密度估计:学习输入数据的概率分布。

1.3 性能度量

  • 准确率:对于分类、分类与缺失输入、转录等任务,常用准确率来衡量模型性能。准确率是正确分类的示例比例。
  • 对数概率:对于密度估计等任务,常用平均对数概率来衡量模型性能。
  • 测试集:为了评估模型在未见过的数据上的性能,通常使用与训练集分开的测试集。

2. 监督学习与无监督学习

2.1 监督学习

  • 定义:监督学习算法观察一组包含特征和标签的示例,学习从特征预测标签。例如,使用标注了物种的鸢尾花数据集来训练分类算法。
  • 目标:估计条件概率分布p(y|x),即给定输入x时输出y的概率。

2.2 无监督学习

  • 定义:无监督学习算法只观察特征,不观察监督信号(标签)。目标通常是发现数据中的某些结构。
  • 任务:包括密度估计、聚类、降维等。例如,主成分分析(PCA)是一种无监督学习算法,用于数据降维。

2.3 半监督学习与多实例学习

  • 半监督学习:部分示例有监督目标,部分没有。
  • 多实例学习:整个示例集合被标注为包含或不包含某个类别的示例,但集合中的单个成员未被标注。

3. 学习算法的基本组件

3.1 数据集

  • 设计矩阵:一种常见的数据集描述方式,其中每行是一个示例,每列是一个特征。例如,鸢尾花数据集可以用一个150行4列的设计矩阵表示。
  • 异构数据:当示例不能用相同大小的向量表示时,数据集可以描述为一组元素。

3.2 成本函数

  • 定义:成本函数衡量模型在训练集上的性能。例如,线性回归中常用的均方误差(MSE)成本函数。
  • 优化:学习算法的目标是找到使成本函数最小化的参数。

3.3 模型

  • 定义:模型是算法学习的假设空间中的函数。例如,线性回归模型是输入x的线性函数。
  • 容量:模型的容量是指其拟合各种函数的能力。容量过低可能导致欠拟合,过高可能导致过拟合。

3.4 优化算法

  • 定义:优化算法用于找到使成本函数最小化的模型参数。例如,梯度下降算法。
  • 随机梯度下降(SGD):一种常用于大规模数据集的优化算法,通过在每个步骤中估计梯度来更新参数。

4. 线性回归示例

4.1 定义与输出

  • 定义:线性回归是一种解决回归问题的算法,输出是输入的线性函数。
  • 输出:ˆy = wx,其中w是参数向量,x是输入向量。

4.2 性能度量与成本函数

  • 均方误差(MSE):常用作线性回归的性能度量,定义为预测值与真实值之差的平方的平均值。
  • 成本函数:在训练过程中,算法的目标是最小化MSE成本函数。

4.3 正规方程

  • 定义:正规方程提供了一种直接求解线性回归参数的方法,而不需要迭代优化。
  • :w = (X^TX)^(-1)X^Ty,其中X是设计矩阵,y是目标向量。

5. 欠拟合与过拟合

5.1 定义

  • 欠拟合:模型在训练集上的误差较大,无法很好地拟合数据。
  • 过拟合:模型在训练集上表现很好,但在未见过的数据上表现很差。

5.2 容量与泛化能力

  • 容量:模型的容量决定了其拟合复杂函数的能力。容量过低导致欠拟合,过高导致过拟合。
  • 泛化能力:模型在未见过的数据上的性能称为泛化能力。

5.3 控制容量

  • 方法:通过选择假设空间(即模型类型)和调整模型参数的数量来控制容量。例如,增加多项式回归的度数可以增加容量。
  • 正则化:一种通过向成本函数添加惩罚项来控制容量的方法。例如,权重衰减(L2正则化)。

6. 交叉验证与模型选择

6.1 交叉验证

  • 定义:一种评估模型性能的方法,通过将数据集分成多个子集,轮流使用其中一部分作为测试集,其余部分作为训练集。
  • k折交叉验证:将数据集分成k个子集,进行k次训练和测试,每次使用不同的子集作为测试集。

6.2 验证集

  • 定义:一部分从训练集中分离出来的数据,用于调整模型参数(如正则化强度)。
  • 用途:帮助选择模型参数,避免直接使用测试集导致乐观估计。

7. 估计器、偏差与方差

7.1 点估计

  • 定义:提供单个“最佳”预测的估计方法。例如,线性回归中的权重估计。
  • 偏差:估计器的偏差是其期望值与真实值之差。无偏估计器的偏差为零。

7.2 方差

  • 定义:估计器的方差衡量其输出随数据集变化而变化的程度。
  • 标准误差:方差的平方根,用于估计真实期望值落在某个区间内的概率。

7.3 偏差-方差权衡

  • 定义:在偏差和方差之间进行权衡以最小化均方误差(MSE)。
  • U形曲线:随着模型容量的增加,偏差减小,方差增大,导致泛化误差呈现U形曲线。

8. 最大似然估计

8.1 定义

  • 最大似然估计(MLE):一种通过最大化观测数据似然来估计参数的方法。
  • 对数似然:为了方便计算,通常使用对数似然函数。

8.2 性质

  • 一致性:在适当条件下,最大似然估计量随着样本量的增加收敛到真实参数值。
  • 效率:在固定样本量下,最大似然估计量通常比其他估计量具有更低的均方误差。

8.3 线性回归与最大似然

  • 线性回归:可以解释为最大似然估计的一个特例,其中假设输出服从高斯分布。
  • 条件对数似然:在监督学习中,通常最大化条件对数似然。

9. 贝叶斯统计

9.1 定义

  • 贝叶斯统计:一种使用概率来反映知识状态的统计方法。与频率派统计不同,贝叶斯统计将参数视为随机变量。
  • 先验分布:在观察数据之前对参数的信念分布。

9.2 后验分布

  • 定义:通过贝叶斯定理结合先验分布和似然函数得到的后验分布。
  • 预测:使用后验分布进行预测,而不是单一的点估计。

9.3 最大后验估计(MAP)

  • 定义:一种结合先验信息和数据似然来找到单个点估计的方法。
  • 示例:线性回归中的权重衰减可以解释为最大后验估计。

10. 监督学习算法

10.1 概率监督学习

  • 定义:大多数监督学习算法基于估计条件概率分布p(y|x)。
  • 示例:线性回归和逻辑回归都是概率监督学习算法。

10.2 支持向量机(SVM)

  • 定义:一种用于分类和回归的监督学习模型。
  • 核技巧:通过将输入映射到高维空间来允许非线性决策边界。

10.3 k近邻算法

  • 定义:一种简单的非参数监督学习算法,通过查找训练集中最近的k个邻居来进行分类或回归。
  • 优点:能够处理高容量,但在小训练集上可能泛化能力差。

10.4 决策树

  • 定义:一种将输入空间分成多个区域的监督学习算法,每个区域有一个单独的参数。
  • 优点:易于理解和解释,但可能难以处理非线性决策边界。

11. 无监督学习算法

11.1 主成分分析(PCA)

  • 定义:一种用于数据降维和特征提取的无监督学习算法。
  • 目标:找到一个低维表示,尽可能保留原始数据的信息。

11.2 k均值聚类

  • 定义:一种将数据集分成k个簇的无监督学习算法。
  • 目标:最小化簇内点到簇中心的距离之和。

12. 深度学习与机器学习的关系

12.1 深度学习的动机

  • 传统机器学习的局限性:在高维空间中学习复杂函数时,传统机器学习算法面临泛化能力差和计算成本高的挑战。
  • 深度学习的优势:通过引入深度分布式表示,深度学习能够克服这些挑战,并在许多AI任务中取得显著效果。

12.2 深度学习的基本原理

  • 表示学习:深度学习算法能够自动学习数据的层次化表示,这些表示对于解决复杂任务非常有用。
  • 深层网络:通过堆叠多个非线性层,深度学习算法能够构建非常复杂的函数,从而捕捉数据中的复杂模式。

12.3 深度学习的应用

  • 图像识别:深度学习在图像识别领域取得了巨大成功,如卷积神经网络(CNN)在ImageNet竞赛中的表现。
  • 语音识别:深度学习在语音识别中的应用也取得了显著进展,如循环神经网络(RNN)和长短时记忆网络(LSTM)的应用。
  • 自然语言处理:深度学习在自然语言处理任务中表现出色,如机器翻译、文本生成等。

总结

本文详细介绍了机器学习的基础知识,包括机器学习的定义、任务类型、性能度量、监督学习与无监督学习、学习算法的基本组件等。通过线性回归示例,阐述了学习算法如何最小化成本函数以找到最佳参数。同时,讨论了欠拟合与过拟合的问题,以及如何通过控制模型容量和正则化来避免这些问题。此外,还介绍了交叉验证、模型选择、估计器、偏差与方差等概念,为读者提供了全面的机器学习知识框架。

在监督学习算法部分,本文介绍了概率监督学习、支持向量机、k近邻算法和决策树等常见算法。在无监督学习算法部分,介绍了主成分分析和k均值聚类等算法。这些算法为读者提供了解决不同类型问题的工具。

本文探讨了深度学习与机器学习的关系,阐述了深度学习的动机、基本原理和应用。通过与传统机器学习算法的比较,展示了深度学习在处理复杂任务时的优势。深度学习通过自动学习数据的层次化表示和构建复杂函数,能够在许多AI任务中取得显著效果。

相关文章:

【学习笔记】理解深度学习的基础:机器学习

1. 机器学习基础 1.1 机器学习的定义与重要性 定义:深度学习是机器学习的一种特定形式。为了深入理解深度学习,必须牢固掌握机器学习的基本原理。机器学习算法是一种能够从数据中学习的算法,通过经验E在任务T上提高性能度量P(Mi…...

Docker 基础知识

背景 传统的linux的环境部署 命令多步骤多安装版本多使用docker的话,一个命令就可以全部搞定安装linux 之前安装过,所以直接使用的开罩进行复制的如果之前配置过静态地址,需要改成IPV4静态地址访问安装docker 参考连接:https://b11et3un53m.feishu.cn/wiki/Rfocw7ctXij2RBk…...

pyqt鸟瞰

QApplication‌是Qt框架中的一个类,专门用于管理基于QWidget的图形用户界面(GUI)应用程序的控制流和主要设置。QApplication类继承自QGuiApplication,提供了许多与GUI相关的功能,如窗口系统集成、事件处理等。 QAppli…...

Linux syslog 运行机制

Busybox的syslogd认识与使用 syslogd 的基本工作原理: syslogd 是一个系统日志守护进程,它接收来自各种进程和系统服务的日志消息,并根据配置将这些消息存储到不同的日志文件中。 syslogd日志记录器由两个守护进程(klogd&#x…...

ZYNQ初识10(zynq_7010)UART通信实验

基于bi站正点原子讲解视频: 系统框图(基于串口的数据回环)如下: 以下,是串口接收端的波形图,系统时钟和波特率时钟不同,为异步时钟,,需要先延时两拍,将时钟同…...

day38 tcp 并发 ,linux下的IO模型----IO多路复用

TCP 并发 由于tcp协议只能实现一对一的通信模式。为了实现一对多,有以下的的处理方式 1. 多进程 开销大 效率低 2. 多线程 创建线程需要耗时 3. 线程池 多线程模型创建线程耗时问题,提前创建 4. IO多路复用 在不创建进程和线程的前提下,对…...

el-date-picker 禁用一个月前、一个月后(当天之后)的时间 datetimerange

文章目录 功能需求今天是 2025-01-09示例1示例2 代码 Vue2 功能需求 时间范围选择器,最大时间选择尺度为一个月。 今天是 2025-01-09 示例1 选择 2025-01-02 日 禁用未来日期(2025-01-09之后日期) 禁用上月2号(31日之前&#…...

ES6的高阶语法特性

一、模板字符串的高级用法 1.1.模板字符串的嵌套 模板字符串的嵌套允许在一个模板字符串内部再嵌入一个或多个模板字符串。这种嵌套结构在处理复杂数据结构或生成具有层级关系的文本时非常有用。 1. 嵌套示例 假设我们有一个包含多个对象的数组,每个对象都有名称、…...

数据在内存的存储

数据类型介绍 前面我们已经学习了基本的内置类型: char //字符数据类型 1字节 打印%c short //短整型 2字节 打印%hd int //整形 4字节 打印%d long long int //长整型 4/8字节 打印%ld l…...

【微服务】面试题 6、分布式事务

分布式事务面试题讲解 一、问题背景与解决方案概述 因微服务项目涉及远程调用可能引发分布式事务问题,需解决。主流解决方案有阿里 Seata 框架(含 XA、AT、TCC 模式)和 MQ。 二、Seata 框架关键角色 事务协调者(TC)&…...

VMware中Ubuntu如何连接网络?安排!

一、设置NAT模式 1、关闭Ubuntu虚拟机: 确保Ubuntu已经完全关机,而不是挂起或休眠状态。 2、编辑虚拟网络设置: 在VMware主界面点击“编辑”菜单,选择“虚拟网络编辑器”。 如果需要,选择VMnet8 (NAT模式)并点击“更改…...

最近在盘gitlab.0.先review了一下docker

# 正文 本猿所在产品的代码是保存到了一个本地gitlab实例上,实例是别的同事搭建的。最近又又又想了解一下,而且已经盘了一些了,所以写写记录一下。因为这个事儿没太多的进度压力,索性写到哪儿算哪儿,只要是新了解到的…...

TCP封装数据帧

void *send_data(void *arg) //这是一个发送数据的线程 {int sockfd init_tcp_cli("192.168.0.148",50000) //传ip和port&#xff0c;port 50000是因为大概前五万都被其它服务所占用&#xff0c;50000后是私人ipif(sockfd < 0){return NULL;}unsigned char …...

基于Springboot+Vue的仓库管理系统

开发一个基于Spring Boot和Vue的仓库管理系统涉及到前端和后端的开发。本文呢&#xff0c;给出一个简单的开发步骤指南&#xff0c;用于指导初入的新手小白如何开始构建这样一个系统&#xff0c;如果**你想直接学习全部内容&#xff0c;可以直接拉到文末哦。** 开始之前呢给小…...

工厂人员定位管理系统方案(二)人员精确定位系统架构设计,适用于工厂智能管理

哈喽~这里是维小帮&#xff0c;提供多个场所的定位管理方案&#xff0c;如需获取工厂人员定位管理系统解决方案可前往文章最下方获取&#xff0c;如有项目合作及技术交流欢迎私信我们哦~撒花 在上一篇文章中&#xff0c;我们初步探讨了工厂人员定位管理系统的需求背景以及定位方…...

机器学习特征重要性之feature_importances_属性与permutation_importance方法

一、feature_importances_属性 在机器学习中&#xff0c;分类和回归算法的 feature_importances_ 属性用于衡量每个特征对模型预测的重要性。这个属性通常在基于树的算法中使用&#xff0c;通过 feature_importances_ 属性&#xff0c;您可以了解哪些特征对模型的预测最为重要…...

Go学习:多重赋值与匿名变量

目录 1. 变量的多重赋值 1.1 基本语法格式 1.2 交换变量值 2. 匿名变量的使用 1. 变量的多重赋值 1.1 基本语法格式 go语言中&#xff0c;可以将多个赋值语句 合并成 一句&#xff0c;比如&#xff1a; a : 10 b : 20 c : 30//a,b,c三个变量的赋值语句可以…...

解读Linux Bridge中的东西流向与南北流向

解读Linux Bridge中的东西流向与南北流向 在现代云计算和虚拟化环境中&#xff0c;网络流量的管理和优化变得越来越重要。Linux Bridge作为Linux内核提供的一个强大的二层交换机工具&#xff0c;在虚拟化和容器化应用中扮演着至关重要的角色。本文将深入探讨Linux Bridge中的两…...

spring mvn 国际化配置

目录 国际化配置测试测试自定义一个MessageSource类型的beanSpringApplicationUtil工具类MessageUtls工具类配置 国际化原理ResourceBundleMessageSource 国际化配置测试 测试 测试&#xff1a; 自定义一个MessageSource类型的bean import org.springframework.context.Mess…...

Windows下Dll在Unity中使用的一般方式

Windows下Dll在Unity中使用的一般方式 Unity中虽然已经有广泛的库和插件&#xff0c;但是相较于C的库生态而言&#xff0c;还是有一定的差距&#xff1b;因此本篇博文记录Windows下将C函数打包成动态链接库在Unity中使用的一般方法。 环境 Visual Studio 2019 &#xff0c; Uni…...

SQLite PRAGMA

SQLite的PRAGMA命令是一种特殊的命令&#xff0c;用于在SQLite环境中控制各种环境变量和状态标志。PRAGMA值可以被读取&#xff0c;也可以根据需求进行设置【0†source】。 PRAGMA命令的语法格式如下&#xff1a; 要查询当前的PRAGMA值&#xff0c;只需提供该PRAGMA的名字&am…...

Linux:进程控制

1.fork()函数初识 在linux中fork函数时非常重要的函数&#xff0c;它从已存在进程中创建一个新进程。新进程为子进程&#xff0c;而原进程为父进程。 #include <unistd.h> pid_t fork(void); 返回值&#xff1a;自进程中返回0&#xff0c;父进程返回子进程id&#xff0…...

一些计算机零碎知识随写(25年1月)-1

我原以为世界上有技术的那批人不会那么闲&#xff0c;我错了&#xff0c;被脚本真实了。 今天正隔着画画呢&#xff0c;手机突然弹出几条安全告警通知。 急忙打开服务器&#xff0c;发现问题不简单&#xff0c;直接关服务器重装系统..... 首先&#xff0c;不要认为小网站&…...

spring mvc源码学习笔记之十

前面的文章介绍了用 WebApplicationInitializer 或者 AbstractAnnotationConfigDispatcherServletInitializer 来代替 web.xml 。 我们学 java web 的时候就知道&#xff0c;servlet 容器会自动加载 web.xml。 那么&#xff0c;疑问就来了&#xff0c;WebApplicationInitialize…...

网络安全-安全散列函数,信息摘要SHA-1,MD5原理

安全散列函数 单向散列函数或者安全散列函数之所以重要&#xff0c;不仅在于消息认证(消息摘要。数据指纹)。还有数字签名&#xff08;加强版的消息认证&#xff09;和验证数据的完整性。常见的单向散列函数有MD5和SHA 散列函数的要求 散列函数的目的是文件、消息或者其它数据…...

《解锁计算机视觉智慧:编程实现图片场景文字描述的开源宝藏》

《解锁计算机视觉智慧&#xff1a;编程实现图片场景文字描述的开源宝藏》 一、MiniGPT-4&#xff1a;小模型撬动大视觉理解&#xff08;一&#xff09;项目概览&#xff08;二&#xff09;核心亮点&#xff08;三&#xff09;上手体验 二、ClipCap-Chinese&#xff1a;中文场景…...

vue封装axios请求

在vue项目中我们发送请求一般是使用axios 我们可以封装axios来避免冗余代码 首先引入axios npm install axios创建环境配置文件 NODE_ENV development VITE_APP_TITLE dev VITE_APP_BASE_API /test VITE_SERVE "http://127.0.0.1"上面是创建dev配置文件 也可以…...

【前端动效】原生js实现拖拽排课效果

目录 1. 效果展示 2. 效果分析 2.1 关键点 2.2 实现方法 3. 代码实现 3.1 html部分 3.2 css部分 3.3 js部分 3.4 完整代码 4. 总结 1. 效果展示 如图所示&#xff0c;页面左侧有一个包含不同课程&#xff08;如语文、数学等&#xff09;的列表&#xff0c;页面右侧…...

Python Selenium库入门使用,图文详细。附网页爬虫、web自动化操作等实战操作。

文章目录 前言1 创建conda环境安装Selenium库2 浏览器驱动下载&#xff08;以Chrome和Edge为例&#xff09;3 基础使用&#xff08;以Chrome为例演示&#xff09;3.1 与浏览器相关的操作3.1.1 打开/关闭浏览器3.1.2 访问指定域名的网页3.1.3 控制浏览器的窗口大小3.1.4 前进/后…...

AI华佗?港中大、深圳大数据研究院提出医疗推理大模型HuatuoGPT-o1

编辑 | 白菜叶 OpenAI o1 的突破凸显了通过增强推理能力来提高自然语言大模型&#xff08;LLM&#xff09;的应用潜力。然而&#xff0c;大多数推理研究都集中在数学任务上&#xff0c;而医学等领域尚未得到充分探索。 医学领域虽然不同于数学&#xff0c;但鉴于医疗保健的高…...

openEuler22.03系统使用Kolla-ansible搭建OpenStack

Kolla-ansible 是一个利用 Ansible 自动化工具来搭建 OpenStack 云平台的开源项目&#xff0c;它通过容器化的方式部署 OpenStack 服务&#xff0c;能够简化安装过程、提高部署效率并增强系统的可维护性。 前置环境准备&#xff1a; 系统:openEuler-22.03-LTS-SP4 配置&…...

uni-app无限级树形组件简单实现

因为项目一些数据需要树形展示&#xff0c;但是官网组件没有。现在简单封装一个组件在app中使用&#xff0c;可以无线嵌套&#xff0c;展开&#xff0c;收缩&#xff0c;获取子节点数据等。 简单效果 组件TreeData <template><view class"tree"><te…...

初学stm32 --- ADC单通道采集

目录 ADC寄存器介绍&#xff08;F1&#xff09; ADC控制寄存器 1(ADC_CR1) ADC控制寄存器 2(ADC_CR2) ADC采样时间寄存器1(ADC_SMPR1) ADC采样时间寄存器2(ADC_SMPR2) ADC规则序列寄存器 1(ADC_SQR1) ADC规则序列寄存器 2(ADC_SQR2) ADC规则序列寄存器 3(ADC_SQR3) AD…...

css盒子水平垂直居中

目录 1采用flex弹性布局&#xff1a; 2子绝父相margin&#xff1a;负值&#xff1a; 3.子绝父相margin:auto&#xff1a; 4子绝父相transform&#xff1a; 5通过伪元素 6table布局 7grid弹性布局 文字 水平垂直居中链接&#xff1a;文字水平垂直居中-CSDN博客 以下为盒子…...

django基于Python的智能停车管理系统

1.系统概述 1.定义&#xff1a;Django 基于 Python 的智能停车管理系统是一个利用 Django 框架构建的软件系统&#xff0c;用于高效地管理停车场的各种事务&#xff0c;包括车辆进出记录、车位预订、收费管理等诸多功能。 2.目的&#xff1a;它的主要目的是提高停车场的运营效…...

Rabbit Rocket kafka 怎么实现消息有序消费和延迟消费的

在消息队列系统中&#xff0c;像 RabbitMQ、RocketMQ 和 Kafka 这样的系统&#xff0c;都支持不同的方式来实现消息的有序消费和延迟消费。下面我们分别探讨这些系统中如何实现这两种需求&#xff1a; 1. RabbitMQ&#xff1a;实现消息有序消费和延迟消费 有序消费&#xff1…...

Kafka 会丢消息吗?

目录 01 生产者(Producer) 02 消息代理(Broker) 03 消费者(Consumer) 来源:Kafka 会丢消息吗? Kafka 会丢失信息吗? 许多开发人员普遍认为,Kafka 的设计本身就能保证不会丢失消息。然而,Kafka 架构和配置的细微差别会导致消息的丢失。我们需要了解它如何以及何时…...

状态模式详解与应用

状态模式&#xff08;State Pattern&#xff09;&#xff0c;是一种行为型设计模式。它允许一个对象在其内部状态改变时改变它的行为&#xff0c;使得对象看起来似乎修改了它的类。通过将不同的行为封装在不同的状态类中&#xff0c;状态模式可以避免大量的条件判断语句&#x…...

红队工具使用全解析:揭开网络安全神秘面纱一角

红队工具使用全解析&#xff1a;揭开网络安全神秘面纱一角 B站红队公益课&#xff1a;https://space.bilibili.com/350329294 学习网盘资源链接&#xff1a;https://pan.quark.cn/s/4079487939e8 嘿&#xff0c;各位网络安全爱好者们&#xff01;在风云变幻的网络安全战场上&am…...

【Spring】Redis缓存+ehcache

文章目录 基于Spring的RedisehcacheRedis 缓存配置Cacheable 注解CacheEvict 注解缓存配置 基于Spring的Redisehcache Redis 缓存配置 在项目中添加 Redis 的依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot…...

【硬件介绍】Type-C接口详解

一、Type-C接口概述 Type-C接口特点&#xff1a;以其独特的扁头设计和无需区分正反两面的便捷性而广受欢迎。这种设计大大提高了用户的使用体验&#xff0c;避免了传统USB接口需要多次尝试才能正确插入的问题。Type-C接口内部结构&#xff1a;内部上下两排引脚的设计虽然可能不…...

网络传输层TCP协议

传输层TCP协议 1. TCP协议介绍 TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff09;是一个要对数据的传输进行详细控制的传输层协议。 TCP 与 UDP 的不同&#xff0c;在于TCP是有连接、可靠、面向字节流的。具体来说&#xff0c;TCP设置了一大…...

Git 基础——《Pro Git》

⭐获取 Git 仓库 获取 Git 仓库有两种方式&#xff1a; 将未进行版本控制的本地目录转换为 Git 仓库。从其他服务器克隆一个已存在的 Git 仓库。 在已存在目录中初始化 Git 仓库 进入目标目录 在 Linux 上&#xff1a;$ cd /home/user/my_project在 macOS 上&#xff1a;$ c…...

数据结构与算法之二叉树: LeetCode 654. 最大二叉树 (Ts版)

最大二叉树 https://leetcode.cn/problems/maximum-binary-tree/ 描述 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点&#xff0c;其值为 nums 中的最大值递归地在最大值 左边 的 子数组前缀上 构建左子树递归地在最大值…...

学习记录:C++宏定义包含多条语句,使用注意事项

应该使用 do - while(0) 结构的情况 在条件语句&#xff08;如 if - else、switch - case&#xff09;或循环语句&#xff08;如 for、while、do - while&#xff09;中使用宏&#xff1a; 当宏定义包含多条语句且会在上述语句中使用时&#xff0c;使用 do - while(0) 可确保…...

PHP 使用 Redis

PHP 使用 Redis PHP 是一种广泛使用的服务器端编程语言,而 Redis 是一个高性能的键值对存储系统。将 PHP 与 Redis 结合使用,可以为 Web 应用程序提供快速的读写性能和丰富的数据结构。本文将详细介绍如何在 PHP 中使用 Redis,包括安装、连接、基本操作以及一些高级应用。 …...

项目开发实践——基于SpringBoot+Vue3实现的在线考试系统(五)

文章目录 一、学生管理模块功能实现1、添加学生功能实现1.1 页面设计1.2 前端功能实现1.3 后端功能实现1.4 效果展示2、学生管理功能实现2.1 页面设计2.2 前端功能实现2.3 后端功能实现2.3.1 后端查询接口实现2.3.2 后端编辑接口实现2.3.3 后端删除接口实现2.4 效果展示二、代码…...

下载并安装MySQL

在Linux系统上下载并安装数据库&#xff08;以MySQL为例&#xff09;的步骤如下&#xff1a; 一、下载MySQL 访问MySQL官网 打开浏览器&#xff0c;访问MySQL的官方网站&#xff1a;https://www.mysql.com/。 进入下载页面 在MySQL官网首页&#xff0c;找到并点击“Downloads…...

【C++入门】详解(中)

目录 &#x1f495;1.函数的重载 &#x1f495;2.引用的定义 &#x1f495;3.引用的一些常见问题 &#x1f495;4.引用——权限的放大/缩小/平移 &#x1f495;5. 不存在的空引用 &#x1f495;6.引用作为函数参数的速度之快&#xff08;代码体现&#xff09; &#x1f4…...

计算机视觉算法实战——车道线检测

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​​​​​​ ​​​​​​​​​​​​ ​​​​​ 车道线检测是计算机视觉领域的一个重要研究方向&#xff0c;尤其在自动驾驶和高级驾驶辅助…...