深度学习500问——Chapter01:数学基础
文章目录
前言
1.1 向量和矩阵
1.1.1 标量、向量、矩阵、张量之间的联系
1.1.2 张量与矩阵的区别
1.1.3 矩阵和向量相乘结果
1.1.4 向量和矩阵的范数归纳
1.1.5 如何判断一个矩阵为正定
1.2 导数和偏导数
1.2.1 导数偏导计算
1.2.2 导数和偏导数有什么区别
1.3 特征值和特征向量
1.3.1 特征值分解与特征向量
1.3.2 奇异值与特征值有什么关系
1.4 概率分布与随机变量
1.4.1 机器学习为什么要使用概率分布
1.4.2 变量与随机变量有什么区别
1.4.3 随机变量与概率分布的联系
1.4.4 离散型随机变量和概率质量函数
1.4.5 连续型随机变量和概率密度函数
1.4.6 举例理解条件概率
1.4.7 联合概率与边缘概率联系区别
1.4.8 条件概率的链式法则
1.4.9 独立性和条件独立性
1.5 常见概率分布
1.5.1 Bernoulli 分布
1.5.2 高斯分布
1.5.3 何时采用正态分布
1.5.4 指数分布
1.5.5 Laplace 分布(拉普拉斯分布)
1.5.6 Dirac 分布和经验分布
1.6 期望、方差、协方差、相关系数
1.6.1 期望
1.6.2 方差
1.6.3 协方差
1.6.4 相关系数
参考文献
前言
深度学习通常又需要哪些数学基础?深度学习里的数学到底难在哪里?通常初学者都会有这些问题,在网络推荐及书本的推荐里,经常看到会列出一系列数学科目,比如微积分、线性代数、概率论、复变函数、数值计算、优化理论、信息论等等。这些数学知识有相关性,但实际上按照这样的知识范围来学习,学习成本会很久,而且会很枯燥。本章我们通过选举一些数学基础里容易混肴的一些概念作以介绍,帮助大家更好的理清这些易混肴概念之间的关系。
1.1 向量和矩阵
1.1.1 标量、向量、矩阵、张量之间的联系
标量(scalar)
一个标量表示一个单独的数,它不同于线性代数中研究的其他大部分对象(通常是多个数的数组)。我们用斜体表示标量。标量通常被赋予小写的变量名称。
向量(vector)
一个向量表示一组有序排列的数。通过次序中的索引,我们可以确定每个单独的数。通常我们赋予向量粗体的小写变量名称,比如xx。向量中的元素可以通过带脚标的斜体表示。向量是第一个元素是
,第二个元素是
,以此类推。我们也会注明存储在向量中的元素的类型(实数、虚数等)。
矩阵(matrix)
矩阵是具有相同特征和纬度的对象的集合,表现为一张二维数据表。其意义是一个对象表示为矩阵的一行,一个特征表示为矩阵的一列,每个特征都有数值型的取值。通常会赋予矩阵粗体的大写变量名称,比如。
张量(tensor)
在某些情况下,我们会讨论坐标超过两维的数组。一般地,一个数组中的元素分布在若干维坐标的规则网格中,我们将其称之为张量。使用来表示“A”。张量
中坐标为
的元素记作
。
四者之间关系:
标量是0阶张量,向量是1阶张量。举例:
标量就是知道棍子的长度,但是你不会知道棍子指向哪儿。
向量就是不但知道棍子的长度,还知道棍子指向前面还是后面。
张量就是不但知道棍子的长度,也知道棍子指向前面还是后面,还能知道这棍子又向上/下和左/右偏转了多少。
1.1.2 张量与矩阵的区别
- 从代数角度讲,矩阵它是向量的推广。向量可以看成一维的“表格”(即分量按照顺序排成一排),矩阵是二维的“表格”(分量按照纵横位置排列),那么
阶张量就是所谓的
维“表格”。张量的严格定义是利用线性映射来描述。
- 从几何角度讲,矩阵是一个真正的几何量,也就是说,它是一个不随参照系的坐标变换而变化的东西。向量也具有这种特性。
- 张量可以用
矩阵形式来表达。
- 表示标量的数和表示向量的三维数组也可分别看作
,
的矩阵。
1.1.3 矩阵和向量相乘结果
若使用爱因斯坦求和约定(Einstein summation convention),矩阵,
相乘得到矩阵
可以用下式表示:
其中,,
,
分别表示矩阵
的元素,
出现两次,是一个哑变量(Dummy Variables),表示对该参数进行遍历求和。而矩阵和向量相乘可以看成是矩阵相乘的一个特殊情况,例如:矩阵
是一个
的矩阵。
1.1.4 向量和矩阵的范数归纳
向量的范数(norm)
定义一个向量为:。任意一组向量设为
。其不同范数求解如下:
向量1的范数:向量的各个元素的绝对值之和,上述向量的1范数结果就是:29。
向量2的范数:向量的每个元素的平方和再开平方根,上述的2范数结果就是:15。
向量的负无穷范数:向量的所有元素的绝对值中最小的:上述向量的负无穷范数结果就是:5。
向量的正无穷范数:向量的所有元素的绝对值中最大的:上述向量的正无穷范数结果就是:10。
向量的p范数:
矩阵的范数
定义一个矩阵:。任意矩阵定义为:
,其元素为
。
矩阵的范数定义为:
当向量取不同范数时,相应得到了不同的矩阵范数。
矩阵的1范数(列范数):矩阵的每一列上的元素绝对值先求和,再从中取个最大的,(列和最大),上述矩阵的1范数先得到
,再取最大的最终结果就是:9。
矩阵的2范数:矩阵的最大特征值开平方根,上述矩阵
的2范数先得到最终结果是:10.0623。
其中,为
的特征值绝对值的最大值。
矩阵的无穷范数(行范数):矩阵的每一行上的元素绝对值先求和,再从中取个最大的,(行和最大),上述矩阵的行范数先得到
,再取最大的最终结果是:16。
矩阵的核范数:矩阵的奇异值(将矩阵svd分解)之和,这个范数可以用来低秩表示(因为最小化核范数,相当于最小化矩阵的秩——低秩),上述矩阵的最终结果就是:10.9287。
矩阵的L0范数:矩阵的非0元素的个数,通常用它来表示稀疏,L0范数越小0越苏越多,也就越稀疏,上述矩阵的最终结果就是:6。
矩阵的L1范数:矩阵中的每个元素的绝对值之和,它是L0范数的最优凸近似,因此它也可以表示稀疏,上述矩阵的最终结果就是:22。
矩阵的F范数:矩阵的各个元素平方之和再开平方根,它通常也叫做矩阵的L2范数,它的优点在于它是一个凸函数,可以求导求解,易于计算,上述矩阵的最终结果就是:10.0995。
矩阵的L21范数:矩阵先以每一列为单位,求每一列的F范数(也可认为是向量的2范数),然后再将得到的结果求L1范数(也可认为是向量的1范数),很容易看出它是介于L1和L2之间的一种范数,上述矩阵的最终结果就是:17.1559。
矩阵的p范数:
1.1.5 如何判断一个矩阵为正定
- 判断一个矩阵是否为正定,通常有以下几个方面:
- 顺序主子式全大于0;
- 存在可逆矩阵
使
等于该矩阵;
- 正惯性指数等于
;
- 合同于单位矩阵
(即:规范形为
);
- 标准形中主对角元素全为正;
- 特征值全为正;
- 是某基的度量矩阵。
1.2 导数和偏导数
1.2.1 导数偏导计算
导数定义
导数(derivative)代表了在自变量变化趋于无穷小的时候,函数值的变化与自变量的变化的比值。几何意义是这个点的切线。物理意义是该时刻的(瞬时)变化率。
注意:在一元函数中,只有一个自变量变动,也就是说只存在一个方向的变化率,这也就是为什么一元函数没有偏导数的原因。在物理学中有平均速度和瞬时速度之说。平均速度有:
其中,表示平均速度,
表示路程,
表示时间。这个公式可以改写为:
其中,表示两点之间的距离,而
表示走过这段距离需要花费的时间。当
趋向于0(
)时,也就是时间变得很短时,平均速度也就变成了在
时刻的瞬时速度,表示成如下形式:
实际上,上式表示的是路程关于时间
的函数在
处的导数。一般的,这样定义导数:如果平均变化率的极限存在,即有:
则称此极限为函数在点
处的导数。记作
或
或
或
。
通俗地说,导数就是曲线在某一点切线的斜率。
偏导数
既然谈到偏导数(partial derivative),那就至少涉及到两个自变量。以两个自变量为例,,从导数到偏导数,也就是曲线来到了曲面。曲线上的一点,其切线只有一条。但在曲面上的一点,切线有无数条。而偏导数就是指多元函数沿着坐标轴的变化率。
注意:直观地说,偏导数也就是函数在某一点上沿坐标轴正方向的变化率。
设函数在点
处关于自变量
的偏导数,记作
或
或
或
。
偏导数在求解时可以将另一个变量看作常数,利用普通的求导方式求解,比如关于
的偏导数就为
,这个时候
就相当于
的系数。
某点处的偏导数的几何意义为曲面
与面
或面
交线在
或
处切线的斜率。
1.2.2 导数和偏导数有什么区别
导数和偏导数没有本质区别,如果极限存在,都是当自变量的变化量趋于0时,函数值的变化量与自变量变化量比值的极限。
- 一元函数,一个
对应一个
,导数只有一个。
- 二元函数,一个
对应一个
和一个
,有两个导数:一个是
对
的导数,一个是
对
的导数,称之为偏导。
- 求偏导时要注意,对一个变量求导,则视另一个变量为常数,只对该变量求导,从而将偏导的求解转化成了一元函数的求导。
1.3 特征值和特征向量
1.3.1 特征值分解与特征向量
特征值分解可以得到特征值(eigenvalues)与特征向量(eigenvectors);
特征值表示的是这个特征到底有多重要,将一定可以表示成下面的形式:
为特征向量
对应的特征值。特征值分解是将一个矩阵分解为如下形式:
其中,是这个矩阵
的特征向量组成的矩阵,
是一个对角矩阵,每一个对角线元素就是一个特征值,里面的特征值是由大到小排列的,这些特征值所对应的特征向量就是描述这个矩阵变化方向(从主要的变化到次要的变化排列)。也就是说矩阵
的信息可以由其特征值和特征向量表示。
1.3.2 奇异值与特征值有什么关系
那么奇异值和特征值是怎么对应起来的呢?我们将一个矩阵的转置乘以
,并对
求特征值,则有下面的形式:
这里就是上面的右奇异向量,另外还有:
这里的就是奇异值,
就是上面所说的左奇异值。奇异值
跟特征值剋四,在矩阵
中也是从大到小排列,而且
的减少特别快,在很多情况下,前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上了。也就是说,我们也可以用前
(
远小于
)个奇异值来近似描述矩阵,即部分奇异值分解:
右边的三个矩阵相乘的结果将会是一个接近于的矩阵,在这儿,
越接近于
,则相乘的结果越接近于
。
1.4 概率分布与随机变量
1.4.1 机器学习为什么要使用概率分布
事件的概率是衡量该事件发生的可能性的量度。虽然在一次随机试验中某个事件的发生是带有偶然性的,但那些可在相同条件下大量重复的随机试验却往往呈现出明显的数量规律。
机器学习除了处理不确定量,也需处理随机量。不确定性和随机性可能来自多个方面,使用概率论来量化不确定性。
概率论在机器学习中扮演着一个核心角色,因为i机器学习算法的设计通常依赖于对数据的概率假设。
例如在机器学习(Andrew Ng)的课中,会有一个朴素贝叶斯假设就是条件独立的一个例子。该学习算法对内容做出假设,用来分辨电子邮件是否为垃圾邮件。假设无论邮件是否为垃圾邮件,单词x出现在邮件中的概率条件独立于单词y。很明显这个假设不是不失一般性的,因为某些单词几乎总是同时出现。然而,最终结果是,这个简单的假设对结果的影响并不大,且无论如何都可以让我们快速判别垃圾邮件。
1.4.2 变量与随机变量有什么区别
随机变量(random variable)
表示随机现象(在一定条件下,并不总是出现相同结果的现象称为随机现象)中各种结果的实值函数(一切可能的样本点)。例如某一时间内公共汽车站等车乘客人数,电话交换台在一定时间内收到的呼叫次数等,都是随机变量的实例。
随机变量与模糊变量的不确定性的本质差别在于,后者的测定结果仍具有不确定性,即模糊性。
变量与随机变量的区别:
当变量的取值的概率不是1时,变量就成了随机变量;
当随机变量取值的概率为1时,随机变量就变成了变量。
比如:
当变量值为100的概率为1的话,那么
=100 就是确定了的,不会再有变化,除非有进一步运算. 当变量
的值为100的概率不为1,比如为50的概率是0.5,为100的概率是0.5,那么这个变量就是会随不同条件而变化的,是随机变量,取到50或者100的概率都是0.5,即50%。
1.4.3 随机变量与概率分布的联系
一个随机变量仅仅表示一个可能取得的状态,还必须给定与之相伴的概率分布来制定每个状态的可能性。用来描述随机变量或一簇随机变量的每一个可能是状态的可能性大小的方法,就是概率分布(probability distribution)。
随机变量可以分为离散型随机变量和连续性随机变量。
相应的描述其概率分布的函数是:
概率质量函数(Probability Mass Function,PMF):描述离散型随机变量的概率分布,通常用大写字母表示。
概率密度函数(Probability Density Function,PDF):描述连续型随机变量的概率分布,通常用小写字母表示。
1.4.4 离散型随机变量和概率质量函数
PMF将随机变量能够取得的每个状态映射到随机变量取得该状态的概率。
- 一般而言,
表示
的概率;
- 有时为了防止混肴,要明确写出随机变量的名称
;
- 有时需要先定义一个随机变量,然后制定它遵循的概率分布x服从
。
PMF可以同时作用于多个随机变量,即联合概率分布(joint probability distribution)表示
和
同时发生的概率,也可以简写成
。
如果一个函数是随机变量
的PMF,那么它必须满足如下三个条件:
的定义域必须是x的所有可能状态的集合;
;
.我们把这一条性质称之为 归一化的(normalized)。
1.4.5 连续型随机变量和概率密度函数
如果一个函数是随机变量x的PDF,那么它必须满足如下三个条件:
的定义域必须是x的所有可能状态的集合;
注意,我们并不要求
,因为此处
不是表示的对应此状态具体的概率,而是概率的一个相对大小(密度)。具体的概率,需要积分去求。
,积分下来,总和还是1,概率之和还是1。
注:PDF并没有直接对特定的状态给出概率,给出的是密度,相对的,它给出了落在面积为
的无线小的区域内的概率为
。由此,我们无法求得具体某个状态的概率,我们可以球的的是某个状态
落在某个区间
内的概率为
。
1.4.6 举例理解条件概率
条件概率公式如下: 说明:在同一个样本空间
中的事件或者子集
与
,如果随机从
中选出的一个元素属于
,那么下一个随机选择的元素属于
的概率就定义为在
的前提下
的条件概率。条件概率文氏图示意如图1.1所示。
图1.1 条件概率文氏图示意
根据文氏图,可以很清楚地看到在事件B发生的情况下,事件A发生的概率就是除以
。
举例:一对夫妻有两个小孩,已知其中一个是女孩,则另一个是女孩子的概率是多少?(面试、笔试都碰到过)
穷举法:已知其中一个是女孩,那么样本空间为男女,女女,女男,则另外一个仍然是女生的概率就是1/3。
条件概率法:P(女|女)=P(女女)/P(女),夫妻有两个小孩,那么它的样本空间为女女,男女,女男,男男,则P(女女)为1/4,P(女)= 1-P(男男)=3/4,所以最后1/3。
这里大家可能会误解,男女和女男是同一种情况,但实际上类似姐弟和兄妹是不同情况。
1.4.7 联合概率与边缘概率联系区别
区别:
联合概率:联合概率指类似于这样,包含多个条件,且所有条件同时成立的概率。联合概率是指在多元的概率分布中多个随机变量分别满足各自条件的概率。
边缘概率:边缘概率是某个事件发生的概率,而与其它事件无关。边缘概率指类似于,
这样,仅与单个随机变量有关的概率。
联系:
联合分布可求边缘分布,但若只知道边缘分布,无法求得联合分布。
1.4.8 条件概率的链式法则
由条件概率的定义,可直接得出下面的乘法公式:
乘法公式 设是两个事件,并且
, 则有
,推广
。
一般地,用归纳法可证:若,则有:
任何多维随机变量联合概率分布,都可以分解成只有一个变量的条件概率相乘形式。
1.4.9 独立性和条件独立性
独立性
两个随机变量和
,概率分布表示成两个因子乘积形式,一个因子只包含
,另一个因子只包含
,两个随机变量相互独立(independent)。
条件有时为不独立的事件之间带来独立,有时也会把本来独立的事件,因为此条件的存在,而失去独立性。
举例:, 事件
和事件
独立。此时给定
,
事件独立时,联合概率等于概率的乘积。这是一个非常好的数学性质,然而不幸的是,无条件的独立是十分稀少的,因为大部分情况下,事件之间都是互相影响的。
条件独立性
给定的情况下,
和
条件独立,当且仅当
,
和
的关系依赖于
,而不是直接产生。
举例定义如下事件:
:明天下雨;
:今天的地面是湿的;
:今天是否下雨;
的事件成立,对
和
均有影响。然而,在
事件成立的前提下,今天的地面情况对明天是否下雨没有影响。
1.5 常见概率分布
1.5.1 Bernoulli 分布
Bernoulli分布(伯努利分布,0-1分布)是单个二值随机变量分布, 单参数∈[0,1]控制,
给出随机变量等于1的概率. 主要性质有:
,
,
概率质量函数:。
其期望和方差为:,
。
适用范围: 伯努利分布适合对离散型随机变量建模。
Multinoulli分布也叫范畴分布, 是单个k值随机分布,经常用来表示对象分类的分布. 其中$k$是有限值.Multinoulli分布由向量参数化,每个分量
表示第
个状态的概率, 且
.这里
表示元素全为1的列向量的转置,其实就是对于向量p中除了k的概率之和。可以重写为
。
补充二项分布、多项分布:
二项分布,通俗点硬币抛多次。二项分布(Binomial distribution)是n重伯努利试验成功次数的离散概率分布。
多项式分布(Multinomial Distribution)是二项式分布的推广。二项式做n次伯努利实验,规定了每次试验的结果只有两个,如果现在还是做n次试验,只不过每次试验的结果可以有多m个,且m个结果发生的概率互斥且和为1,则发生其中一个结果X次的概率就是多项式分布。
1.5.2 高斯分布
高斯也叫正态分布(Normal Distribution), 概率度函数如下:
其中, 和
分别是均值和标准差, 中心峰值x坐标由
给出, 峰的宽度受
控制, 最大点在
处取得, 拐点为
。
正态分布中,±1、±2
、±3
下的概率分别是68.3%、95.5%、99.73%,这3个数最好记住。
此外, 令,高斯分布即简化为标准正态分布:
,对概率密度函数高效求值:
其中,通过参数
来控制分布精度。
1.5.3 何时采用正态分布
问:何时采用正态分布?答:缺乏实数上分布的先验知识,不知选择何种形式时,默认选择正态分布总是不会错的,理由如下:
- 中心极限定理告诉我们,很多独立随机变量均近似服从正态分布,现实中很多复杂系统都可以被建模成正态分布的噪声,即使该系统可以被结构化分解。
- 正态分布是具有相同方差的所有概率分布中,不确定性最大的分布,换句话说,正态分布是对模型加入先验知识最少的分布。
正态分布的推广:正态分布可以推广到空间,此时称为多位正态分布,其参数是一个正定对称矩阵
:
对多位正态分布概率密度高效求值:
此处,是一个精度矩阵。
1.5.4 指数分布
深度学习中,指数分布用来描述在点处取得边界点的分布,指数分布定义如下:
指数分布用指示函数来使
取负值时的概率为零。
1.5.5 Laplace 分布(拉普拉斯分布)
一个联系紧密的概率分布是 Laplace 分布(Laplace distribution),它允许我们在任意一点处设置概率质量的峰值:
1.5.6 Dirac 分布和经验分布
Dirac分布可保证概率分布中所有质量都集中在一个点上. Diract分布的狄拉克函数(也称为单位脉冲函数)定义如下:
Dirac分布经常作为经验分布(empirical distribution)的一个组成部分出现:
其中,m个点是给定的数据集,经验分布将概率分布密度
赋予给了这些点。
当我们在训练集上训练模型时,可以认为从这个训练集上得到的经验分布指明了采样来源。
适用范围:狄拉克函数适合对连续性随机变量的经验分布。
1.6 期望、方差、协方差、相关系数
1.6.1 期望
在概率论和统计学中,数学期望(或均值,亦简称期望)是试验中每次可能结果的概率乘以其结果的总和。它反映随机变量平均取值的大小。
线性运算:
推广形式:
函数期望:设为
的函数,则
的期望为:
- 离散函数:
- 连续函数:
注意:
- 函数的期望大于等于期望的函数(Jensen(詹森)不等式,即
);
- 一般情况下,乘积的期望不等于期望的乘积;
- 如果
和
相互独立,则
。
1.6.2 方差
概率论中方差用来度量随机变量和其数学期望(即均值)之间的偏离程度。方差是一种特殊的期望。定义为:
方差性质:
(1)
(2)常数的方差为0
(3)方差不满足线性性质
(4)如果
和
相互独立,
1.6.3 协方差
协方差是衡量两个变量线性相关性强度及变量尺度。两个随机变量的协方差定义为:
方差是一种特殊的协方差,当时,
。
协方差性质:
(1)独立变量的协方差为0
(2)协方差计算公式:
(3)特殊情况:
1.6.4 相关系数
相关系数是研究变量之间线性相关程度的量。两个随机变量的相关系数定义为:
相关系数的性质:
(1)有界性。相关系数的取值范围是[-1,1],可以看成无量纲的协方差。
(2)值越接近1,说明两个变量正相关性(线性)越强。越接近-1,说明负相关性越强。当为0时,表示两个变量没有相关性。
参考文献
[1]Ian,Goodfellow,Yoshua,Bengio,Aaron...深度学习[M],人民邮电出版,2017
[2]周志华.机器学习[M].清华大学出版社,2016.
[3]同济大学数学系.高等数学(第七版)[M],高等教育出版社,2014.
[4]盛骤,试式千,潘承毅等编. 概率论与数理统计(第4版)[M],高等教育出版社,2008
相关文章:
深度学习500问——Chapter01:数学基础
文章目录 前言 1.1 向量和矩阵 1.1.1 标量、向量、矩阵、张量之间的联系 1.1.2 张量与矩阵的区别 1.1.3 矩阵和向量相乘结果 1.1.4 向量和矩阵的范数归纳 1.1.5 如何判断一个矩阵为正定 1.2 导数和偏导数 1.2.1 导数偏导计算 1.2.2 导数和偏导数有什么区别 1.3 特征值和特征向量…...

day03_登录注销(前端接入登录,异常处理, 图片验证码,获取用户信息接口,退出功能)
文章目录 1. 前端接入登录1.1 修改前端代码1.2 跨域请求1.2.1 跨域请求简介1.2.2 COSR概述CORS简介CORS原理 1.2.3 CORS解决跨域 2. 异常处理2.1 提示空消息分析2.2 系统异常分类2.3 异常处理2.2.1 方案一2.2.2 方案二 3. 图片验证码3.1 图片验证码意义3.2 实现思路3.3 后端接口…...

k8s初始化报错 [ERROR CRI]: container runtime is not running: ......
一、环境参数 linux系统为centos7kubernetes版本为v1.28.2containerd版本为1.6.28 二、报错内容 执行初始化命令kubeadm init命令时报错,内容如下 error execution phase preflight: [preflight] Some fatal errors occurred:[ERROR CRI]: container runtime is…...
vscode windows 免密登录 powershell.sh
Linux 生成秘钥 ssh-keygenwindows powershell.sh $HOST_IP"zhang192.168.1.1" $PUBPATH"$HOME\.ssh\id_rsa.pub" $KEY(Get-Content "$PUBPATH" | Out-String); ssh "$HOST_IP" "mkdir -p ~/.ssh && chmod 700 ~/.ssh …...
10 种3D 建模技术
在本文中,我将列出 10 种不同类型的 3D 建模。也许可以了解下一个项目将走向何方,或者你可能会像我一样惊讶,究竟有多少 3D 被用作以多种方式进行可视化的工具。这些是我们将讨论和探索的建模类型: 盒子造型多边形建模Nurbs 和曲…...

常见的socket函数封装和多进程和多线程实现服务器并发
常见的socket函数封装和多进程和多线程实现服务器并发 1.常见的socket函数封装2.多进程和多线程实现服务器的并发2.1多进程服务器2.2多线程服务器2.3运行效果 1.常见的socket函数封装 accept函数或者read函数是阻塞函数,会被信号打断,我们不能让它停止&a…...

Tomcat架构分析
Tomcat的核心组件 Tomcat将请求器和处理器分离,使用多种请求器支持不同的网络协议,而处理器只有一个。从而网络协议和容器解耦。 Tomcat的容器 Host:Tomcat提供多个域名的服务,其将每个域名都视为一个虚拟的主机,在…...
旧项目集成阿里云滑动验证码(web和H5方式)
简述 旧项目集成阿里云滑动验证码(web和H5方式) 适用于servlet和HTML项目,VUE + springboot请看另一篇文档 前情提示 系统: 一说 部分截图、链接等因过期、更换域名、MD语法等可能不显示,可联系反馈(备注好博文地址),谢谢❤带有#号、删除线、不操作、不执行…...

机器人内部传感器阅读梳理及心得-速度传感器-数字式速度传感器
在机器人控制系统中,增量式编码器既可以作为位置传感器测量关节相对位置,又可作为速度传感器测量关节速度。当作为速度传感器时,既可以在模拟量方式下使用,又可以在数字量方式下使用。 模拟式方法 在这种方式下,需要…...

【vue+element ui】大屏自适应中el-select下拉内容在低分辨率下显示不全问题解决
目录 背景 现象 解决方案 背景 最近要把一个1920px*1080px的大屏改成自适应的;最低适配到1028px*720px; 现象 自适应适配改完之后 将电脑屏幕改成1028px*720px分辨率后,下拉显示正常 通过谷歌浏览器设置Toggle device toolbar为1028px*…...

前端架构: 脚手架之多package项目管理和架构
多package项目管理 1 )多package项目管理概述 通常来说,当一个项目变大了以后,我们就要对这个项目进行拆分在前端当中,对于项目进行拆分的方式,通常把它称之为javascript包管理需要使用一个工具叫做 npm (Node Packag…...
【C# 多线程】如何停止正在运行中的子线程
如何停止正在运行中的子线程 通过协作式取消模式强制终止线程(可能存在资源不能及时释放的泄漏风险) 通过协作式取消模式 在线程函数中,你可以周期性地检查一个标志位,以确定是否应该停止线程。该标记位可以是共享变量࿰…...
服务器机房安全守护:五大物理安全实践
服务器机房是数字企业的心脏。无论是企业家还是经验丰富的IT专业人员,都知道服务器机房的安全性至关重要。如果没有采用适当的物理安全措施,其服务器很容易受到盗窃、人为破坏和自然灾害的破坏。 在保护服务器机房的领域内,需要采用多方面的…...

spring boot 修复 Spring Framework URL解析不当漏洞(CVE-2024-22243)
漏洞描述 当应用程序使用UriComponentsBuilder来解析外部提供的URL(如通过查询参数)并对解析的URL的主机执行验证检查时可能容易受到Open重定向攻击和SSRF攻击,导致网络钓鱼和内部网络探测等。 受影响产品或系统 6.1.0 < Spring Framew…...

VR全景HDR拍摄教程
什么是HDR? HDR可以用在哪里? 书面解释:HDR(高动态范围 High Dynamic Range)摄影,是摄影领域广泛使用的一种技术。 是不是有点懵? 我们来看一个实际的拍摄现场环境,你就懂了 我们…...
hive执行select count(1)返回0
背景: 做数据质量检核任务的时候,有些数据表有数据,直接查hive执行select count(1) from table返回的值一直是0 问题原因: hive通过select count(1)或者select count(*) 查询的是元数据库里面的rownum,如果数据表数据是通过load、…...
3D Gaussian splatting 协方差矩阵 球谐函数 简单理解
3D Gaussian splatting 是一种图形和视觉处理技术,常用于体积渲染、点云渲染和其他应用中,以便对数据进行平滑或重建。在这个上下文中,高斯分布(或高斯“splat”)用于表示单个数据点(如一个点云中的点&…...

代码随想录算法刷题训练营day27:LeetCode(39)组合总和、LeetCode(40)组合总和 II、LeetCode(131)分割回文串
代码随想录算法刷题训练营day27:LeetCode(39)组合总和、LeetCode(40)组合总和 II、LeetCode(131)分割回文串 LeetCode(39)组合总和 题目 代码 import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List;clas…...

docker 容器修改端口和目录映射
一、容器修改端口映射 一般在运行容器时,我们都会通过参数 -p(使用大写的-P参数则会随机选择宿主机的一个端口进行映射)来指定宿主机和容器端口的映射,例如 docker run -it -d --name [container-name] -p 8088:80 [image-name]…...

echarts鼠标事件
鼠标事件支持方法 ECharts 支持常规的鼠标事件类型,包括 ‘click’、 ‘dblclick’、 ‘mousedown’、 ‘mousemove’、 ‘mouseup’、 ‘mouseover’、 ‘mouseout’、 ‘globalout’、 ‘contextmenu’ 事件 简单实例 // 基于准备好的dom,初始化EChar…...
挑战杯推荐项目
“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 - 个性化梦境…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!
简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)
前言: 在Java编程中,类的生命周期是指类从被加载到内存中开始,到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期,让读者对此有深刻印象。 目录 …...

基于IDIG-GAN的小样本电机轴承故障诊断
目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) 梯度归一化(Gradient Normalization) (2) 判别器梯度间隙正则化(Discriminator Gradient Gap Regularization) (3) 自注意力机制(Self-Attention) 3. 完整损失函数 二…...

iview框架主题色的应用
1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题,无需引入,直接可…...

PHP 8.5 即将发布:管道操作符、强力调试
前不久,PHP宣布了即将在 2025 年 11 月 20 日 正式发布的 PHP 8.5!作为 PHP 语言的又一次重要迭代,PHP 8.5 承诺带来一系列旨在提升代码可读性、健壮性以及开发者效率的改进。而更令人兴奋的是,借助强大的本地开发环境 ServBay&am…...