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

VAE变分自编码器VAE Loss基础数学知识

一、基础数学知识1.1凸函数的定义下面我们要讲到生成模型。首先我们复习一些要用到的数学知识。第一个是凸函数的定义因为不同教材对于凸函数的定义不同为了避免混淆这里我们讨论的是下凸函数也就是函数曲线向下突出。下凸函数有一个很明显的性质那就是任意两点的割线位于函数图形的上方。那么在数学中如何定义任意两点的割线位于函数图形上方的这个性质呢下边我们先给出公式然后再进行证明。Lambda是0到1之间的一个数对于下凸函数 f(x) 总有如下的性质任取两点x1x2。先用lambda和1 - lambda对x1x2进行加权求和再代入函数f得到的函数值 分别将x1x2代入函数f然后将函数值按照lambda和1 - lambda加权求和的值。现在我们取X1和X2之间的任意一点X我们把X1和X2之间的距离作为单位1设X和X2之间的距离为lamdalambda取值在0到1之间则X1和X之间的距离就为1 - lambda那么X实际坐标就等于X2 - lambda * (X2 - X1)。整理后就得到X的坐标为lambda * x1 (1 - lambda) * X2。然后我们看在二维坐标下的下凸函数f过f(x1)做一个平行于X轴的平行线然后再做这样一条中间的平行线。根据平行线切割线段等比例的关系我们可以得到在Y轴方向的距离也满足lambda和1 - lambda的比例关系。所以这一点的值就等于lambda * f(x1) (1 - lambda)*f(x2)。从图像观察它大于等于f (lambda * x1 (1 - lambda) * x2)。总之下凸函数就是对于参数先进行加权求和再经过下凸函数的值小于等于先经过下凸函数后经过加权求和的值。1.2Jenson不等式第二个要复习的点是Jenson不等式。Jenson不等式定义为对于一个下凸函数f(x)对于任意的点集xi如果有有一组权重参数lambda每个lambda_i都0并且这一组lambda_i加和为1则有对这一组xi按照lambda_i先加权求和再带入下凸函数f(x)得到的结果 先把每个xi带入下凸函f(x)再把函数值按照lambda_i加权求和的结果。简单来说对于下凸函数把参数加权求和小于等于把函数值加权求和。下边我们进行证明:所以我们就用归纳法证明了詹森不等式因为lambda 0且所有的lambda求和为1一个概率分布里的所有概率值正好满足这个性质。所以詹森不等式还有一种写法就是FX的期望小于等于对FX求期望。1.3KL散度接着我们复习一下KL散度KL散度是衡量两个概率分布差异的指标它的值大于等于0只有两个分布完全一致时它的值等于0。分布差异越大KL散度的值越大。比如这里有两个离散分布P和QP对Q的KL散度等于X每个可能的取值PX乘以log (PX / QX)然后累加。需要注意的是KL散度是不对称的P对Q的KL散度不等于Q对P的KL散度。当P和Q分布完全一致时在X的每个可能取值PX等于QXPX除以QX就等于1log1等于0累加求和为零。证明KL散度是大于等于零的。首先我们把KL散度公式的log里面的分子和分母交换位置为了保证整体的值不变我们需要给log前面加上负号。然后又因为PX是个概率质量函数累积和为1-log x是个下凸函数。所以根据詹森不等式对下凸函数值的加权求和大于等于对参数值的加权求和然后这里分子分母约去P对概率质量函数QX累加为1-log1 0。所以最后证明KL散度大于等于0。对于连续性随机变量也有同样的性质KL散度的公式就由累加变成了积分。二、VAE变分自编码器2.1为什么需要VAE在学习VAE算法之前我们需要先了解图片生成问题的本质是什么。比如对于一张黑白的人脸图片它是由几万个像素构成每个像素的灰度值可以看作是一个随机变量整个照片就是这几万个随机变量的联合分布可以想象其中是人脸图片的点在整个空间里是极其少的空间里几乎所有的点都是噪声。如果我们可以得到一个人脸图片概率密度函数PX那么我们就可以在里面随机采样出人脸图片。这样的想法很美好但是这个概率分布函数非常复杂不像正态分布、均匀分布或者二项分布这样只需要几个参数就可以表达复杂到我们无法求解。还有一个重要的原因是即使我们得到了这个概率密度函数我们也很难对其进行采样。那怎么办呢人们引入隐变量来解决这个问题。比如对于一个人脸图片从像素角度分析它的维度很大。比如对于一个100 * 100像素的彩色人脸图片需要3万个维度来表达。但是如果可以抽象到一些隐变量比如照片里人的头发的长短、脸的宽度、眼睛的大小、鼻子的高度等等我们可以用较少的隐变量比如128个隐变量来描述这个人脸图片。当然这里的隐变量不用我们人为定义可以让神经网络自己去学习并且让隐变量服从一个简单的分布比如是一个正态分布这个正态分布每一个采样都是一个有效的采样这个隐变量可以转化到真实的图片分布中间这个从隐变量到真实图片分布的映射可以交给一个神经网络去拟合。所以引入隐变量就解决了我们的问题引变量的维度低好采样便于我们生成图片。看到这里学过自编码器的同学可能已经坐不住了那是不是训练一个自编码器然后只用它的解码器部分就可以生成图片了呢自编码器是一类无监督学习的模型主要用于学习输入数据的有效表示也就是通过学习得到一组可以很好表示输入数据的隐变量。自编码器训练时分为编码器和解码器两部分。编码器把高维度的输入特征经过编码器网络映射到一个低维度的隐变量向量上然后这个隐变量向量再通过解码器网络重新映射回原来的高维度输入特征。训练时的误差就是重建后的高维度特征和原始输入的高维度特征之间的差异。一个经过良好训练的自编码器网络可以很好地把一张图片映射到一个低维度的隐变量向量上。然后这个隐变量向量通过解码器网络也可以很好的重建出原来的图片。2.2VAE的创新那是否我们可以从一个训练好的图片自编码器里仅取出解码器然后随机生成一个隐变量让解码器根据这个随机的隐变量生成一个图片呢答案是否定的。我们来看一下原因假设在编码器和解码器之间生成隐变量的隐空间是二维的。对于每个训练图片它生成的隐变量向量都是一个确定的点。然后这个确定的点可以通过解码器还原回原始的输入图片。隐空间内只有极少部分的点或者区域可以通过解码器来还原回图片。在绝大部分区域你采样一个隐变量向量生成的图片都是噪声数据。那怎么解决这个问题呢VAE想到的办法是让encoder生成的不是一个点还是一个正态分布。然后从这个正态分布里任意抽取一个点这个点代表的隐变量向量传入解码器需要还原出原来输入的图片这样隐空间内有意义可采样的空间就大大增加了。这时比如我们从这个点采样这个点同时属于这两个样本生成的正态分布里训练时会要求他同时生成像这两个人脸的图片。所以最终它生成的人脸图片会兼顾两者的特征从而形成一个新的在训练数据集里不存在的人脸图片。这样是比自编码器有所改进。但是我们发现每个训练样本生成的分布均值和方差是不一样的覆盖的隐空间的大小和区域也是不一样的还是存在很多没有被覆盖到的隐空间。这会导致我们在隐空间采样出来的有些隐变量还是不能生成人脸图片的情况产生VAE想到的优化方法是让所有的训练样本经过编码器生成的多元正态分布都尽量靠近多元标准正态分布而且各个维度之间是相互独立的也就是生成的每个隐变量都尽量靠近均值为零方差为一的正态分布。这样经过训练调整后所有训练样本在隐空间生成的分布都更靠近多元标准正态分布了。这样就可以保证生成时我们从隐空间的多元标准正态分布里采样得到的隐变量总能生成一个人脸图片了。我们还没有讲如何让编码器神经网络生成一个正态分布实际上很简单那就是让编码器生成决定正态分布的两个参数均值和方差。均值我们用μ表示它可以是任意数。我们知道方差必须为正数。假如神经网络输出为α它可正可负。我们知道e的任何次方都是正值。所以对神经网络输出的α在经过e的2次方的变化来表示方差σ的平方。所以神经网络原始输出的阿尔法就是log σ平方。为了后边讨论的方便我们来定义一些符号。输入的人脸照片为xencoder是一个映射它把x映射到隐空间zΦ是encoder的网络的参数。qΦ(z|x)表示给定一个x经过encoder将x映射到不同z的概率密度函数。z是隐变量P(z)代表我们期望的隐变量z的分布我们期望z是一个标准的多元正态分布生成时我们就是从P(z)里进行采样。pθ(x|z)表示给定一个Z解码器把这个Z映射到不同的X的概率密度函数decoder的把一个随机采样的Z映射到一个概率分布。我们也假设这个映射的分布是正态分布让神经网络输出每个正态分布的均值和方差。你可以从这个正态分布里采样一个图片作为最终的人脸图片。但是这样做没有必要我们直接只让decoder的输出这个正态分布的均值我们也只采样均值作为最终的人脸图片。我们再来看一下自编码器是如何计算loss它就是计算解码器输出的图片每个像素和原始输入图片每个像素值的MSE。对于自编码器来说它就是一个普通的全连接神经网络解码器的输入就是编码器的输出。2.3重参数化技巧我们看一下VAE的反向传播会有什么问题。我们发现编码器输出的是正态分布的参数而解码器输入的是从正态分布的采样的点采样操作是不可导的没有办法计算梯度。反向传播在采样操作这里就中断了。那怎么办呢这里就需要用到重参数化技巧。它首先从标准正态分布里采样一个噪声变量ε然后用编码器生成的μ和σ一起来生成随机采样ZZ μ σ * ε这样随机性就在ε里但是Z对于μ和σ来说是一个确定的可导的函数这样就解决了从正态分布里随机采样操作的可导性的问题了。如果没有ε这个噪声就比如你射箭每次射出去是一支箭但它无法回传参数到你手中这是个随机采样的数据所以无法更新虽然VAE把这个射箭从一个点变成了发射一片区域但是依旧无法回传参数但是现在有这个噪声ε之后你的箭就好像有了一个特点永远在以0为中心半径为1的一个小圈里随机乱飞这个时候你再加上μ和σ让μ和σ一个管圆心在哪一个管半径的放大缩小这样之前无法回传的参数就到了μ和σ这两个可以回传的参数身上而随机性被重定义到了噪声ε上。与自编码器不同VAE还有一个额外的限制那就是让每个人脸照片映射到隐空间的分布都要尽量接近标准正态分布。这个怎么来保证呢这里可以用KL散度来进行约束把Q散度加入到loss函数里让每个人脸照片生成的隐变量Z的分布都尽可能和隐空间的标准多元正态分布一致。所以最终VAE的loss就由两部分构成一个是重建人脸图片的loss一个是KL散度的loss。重建loss要求重建的图片尽可能和原始输入图片一致KL散度的loss要求每个人脸图片生成的分布尽可能接近标准多元正态分布。在实际训练时这两个loss实际上是一个互相博弈的过程。因为要想让每个生成的图片都尽可能和原始图片一致就需要在隐空间里把不同的人脸图片尽可能的区分开来让不同的图片离得尽可能的远。而KL散度的loss又要求所有的图片生成的分布都要尽可能的接近 标准多元正态分布。到这里我们通过直观理解的方式从自编码器的演化得到了VAE的loss函数的构成。VAE在自编码器的基础上让编码器不是输出一个点而是输出一个正态分布并且让这个正态分布尽可能地接近标准多元正态分布。通过这样的改进可以在隐空间的标准多元正态分布里来采样并通过解码器来生成真实的人脸图片。下边我们从另一种方式也就是通过数学推导来得到同样的VE的loss函数。这也是大多数教程讲解VAE的方式。2.4VAE Loss数学推导对于输入的人脸照片样本x1 x2一直到x n我们希望通过解码器生成Pθ(xi)的概率尽可能的大。因为有多个输入样本我们把解码器能生成每一个样本的概率连乘起来让这个联合分布的概率值最大。其中θ是神经网络的参数我们就是需要求得让这个联合概率最大的神经网络参数θ的值。让这个连成最大的θ的值等于让这个log函数取得最大值的θ。Log内的连乘可以变为连加上边是求最大值我们加上负号让它变为loss函数也就是求能让这个式子最小的θ的值。下边我们就来一步步推导任取一个训练数据X解码器生成这个X的概率为Pθ(x)就等于取隐空间里的每一个z的概率乘以在取这个z时可以生成x的概率所以这里是积分。然后第二步我们引入编码器部分同时乘以和除以一个qΦ(z|x)第三步我们移动分子和分母部分可以发现这是一个数学期望的表达形式于是可以写作下面这种数学期望的形式。下一步根据Jenson不等式log在外面的表达式小于等于log在里面的表达式。下一步我们交换log内分子和分母的位置同时去掉log前面的负号。下一步我们把log内的相除变为log的相减。下一步把期望内的相减变成两个期望的相减。然后我们看第一项它就是qΦ(z|x)对p(z)的KL散度所以我们写作KL散度得到最终的loss函数。我们把最终的loss函数放在这边可以看。第一项就是解码器对一个X生成的分布对p(z)分布的KL散度。第二项因为前面有个负号在loss函数里后面的越大越好这是一个期望表示对一个给定的X编码器将它编码到一个分布这个分布内的任意一个Z都要让生成X的概率最大。Log在这里并不影响函数的单调性有没有log让后面这一项取得最大值的θ都是相同的。所以我们通过数学推导得到VAE的loss和我们之前通过直观理解VAE得到的是一致的都是一个图片重建loss再加一个KL散度重建loss让生成的图片尽可能和训练图片一致。KL loss让编码器给每一个图片生成的分布尽可能接近隐空间内的多元标准正态分布。我们说了重建loss可以按照图片每个维度的mse loss来计算那么KL散度的部分该怎么计算呢下边我们就来推导一下。根据KL散度的公式我们把它展开成为积分形式然后把这里log内的除法变为log外的相减我们逐项来求解这个积分。首先我们看 log q_φ(z|x)。我们知道编码器输出的 z 是一个多元分布均值为 μ方差为 σ^2。我们假设 z 的各个维度都是独立的每个维度 z_i 服从正态分布 N(μ_i, σ_i^2)。接下来我们代入这个多元正态分布的概率密度函数。因为每个维度独立所以联合概率密度可以写作每个维度一元正态分布概率密度函数的乘积即 q_φ(z|x) ∏{i1}^d N(z_i; μ_i, σ_i^2)。取对数后log 内的连乘转化为 log 的相加log q_φ(z|x) ∑{i1}^d log N(z_i; μ_i, σ_i^2)。每个一元正态分布的概率密度函数为 (1/√(2πσ_i^2)) exp(-(z_i-μ_i)^2/(2σ_i^2))取对数后得到 -1/2 log(2πσ_i^2) - (z_i-μ_i)^2/(2σ_i^2)。因此 log q_φ(z|x) -1/2 ∑{i1}^d log(2πσ_i^2) - 1/2 ∑{i1}^d (z_i-μ_i)^2/σ_i^2。进一步将 log(2πσ_i^2) 拆分为 log(2π) log(σ_i^2)得到 log q_φ(z|x) -d/2 log(2π) - 1/2 ∑{i1}^d log(σ_i^2) - 1/2 ∑{i1}^d (z_i-μ_i)^2/σ_i^2。接下来我们求括号里第二项的表达式 log p(z)。p(z) 是满足多元标准正态分布的即 p(z) N(0, I)。其概率密度函数为 ∏{i1}^d (1/√(2π)) exp(-z_i^2/2)。取对数后log p(z) ∑{i1}^d [ -1/2 log(2π) - z_i^2/2 ] -d/2 log(2π) - 1/2 ∑_{i1}^d z_i^2。好了这时我们已经求得了KL散度括号里的两项他们的表达式如下我们带入来求最后的积分结果。我们把积分分为三个部分。首先我们来看第一部分把求和符号移除积分内部这个积分是对隐变量zi平方的期望。然后我们看一下方差的公式将后边的期望展开X的期望就是均值谬所以X的方差就等于X平方的期望减去均值的平方最终得到X平方的期望就等于方差加上均值的平方。所以上面的表达式zi平方的期望就等于方差和均值平方之和。接下来我们看第二部分的积分可以看作是对log累加项的期望。对log sigma iphone累加是个常数常数的期望还是这个常数所以得到这个表达式。最后我们看第三部分的积分累加的积分等于积分的累加。我们首先把累加移除积分符号然后内部是一个期望这里随机变量减去均值的平方的期望就是方差所以方差除以方差等于1最终表达式为这样最后我们可以把三个积分结果相加得到了KL散度的最终表达式。这里的d是隐空间的维度所以最终VE loss函数我们就有了具体的表达式它有重建loss和KL散度loss构成。重建loss是MSE loss KL散度的loss我们刚才已经计算出了它的表达式。这里的sigma和μ都是编码器网络的输出这里的D是隐空间Z的维度所以这里我们就得到了可以计算的VAE的loss函数。我们看一下模型的架构图。输入是RGB3通道图片然后经过几个卷积层下采样每一个卷积层都是通道数翻倍长宽减半。最后一个卷积层把所有的特征拉平经过两个线性层的映射得到均值和方差。均值和方差的维度都是隐空间的维度然后在隐空间里这个正态分布里采样得到一个隐变量这个隐变量经过一个线性层改变维度然后转化为特征图的形状这个形状和编码器最后一个卷积层输出的特征图的形状是一致的。然后再经过几个转置卷积进行上采样每一个都是特征图尺寸翻倍通道数减半最终得到RGB3通道的生成图片。

相关文章:

VAE变分自编码器VAE Loss基础数学知识

一、基础数学知识1.1凸函数的定义下面我们要讲到生成模型。首先我们复习一些要用到的数学知识。第一个是凸函数的定义,因为不同教材对于凸函数的定义不同,为了避免混淆,这里我们讨论的是下凸函数,也就是函数曲线向下突出。下凸函数…...

各子群独立进化

【有参考文献】基于并行分布式差分算法的含需求响应家庭微网能量管理 该程序是《Demand Response of Residential Houses Equipped with PV-Battery Systems: An Application Study Using Evolutionary Algorithms》完全复现主要做的是一个家庭微网能量管理系统,考虑…...

LangChain/LangGraph/OpenAI核心概念+实战指南

LangChain/LangGraph/OpenAI核心概念深度拆解(含库关联+完整用法) 一、核心认知重构:从「封装层级」看透所有概念 先建立四层封装模型(这是理解所有概念的核心框架),同时明确各层级与langchain、langgraph、openai、langchain-openai的核心关联: 封装层级 核心目标 代…...

腾讯对OpenClaw技能数据的抓取行为,究竟是符合开源精神的本地镜像还是侵害开发者权益的恶意抄袭?

关于腾讯抓取OpenClaw技能数据这件事,最近在开发者圈子里讨论得挺多。乍一看,这似乎又是一个大厂与小开发者之间的经典矛盾,但仔细琢磨,会发现里面有些细节值得掰开谈谈。 先说说开源精神这件事。开源社区的核心,其实是…...

关于Lambda表达式

以Arrays.sort(intervals, (a, b) -> Integer.compare(a[0], b[0]));为例子 Arrays.sort方法要求第二个参数是Comparator<int[]>&#xff0c;编译器通过(a, b)得知参数类型Comparator<int[]>&#xff0c;会去找这个接口&#xff0c;然后下面只有一个抽象方法com…...

重置root密码重置

root密码也叫做root密码破解重启虚拟机/启动虚拟机&#xff0c;看到如下界面&#xff0c;快速将鼠标点进虚拟机通过上下箭头&#xff0c;选择第二个选项&#xff0c;然后安装屏幕下方的提示按“e”键进入下一个页面&#xff0c;将光标通过向上向下箭头移动到quiet单词后面&…...

三十七选择

主频&#xff08;CPU时钟频率&#xff09;指CPU中门电路的工作频率&#xff0c;它决定着CPU芯片内部数据传输与操作速度快慢。一般而言&#xff0c;主频越高&#xff0c;执行一条指令需要的时间越短MP3是有损压缩的数字音频分组交换也称为包交换。数据包包括头部和有效载荷。一…...

VLANeXt: VLA终极配方,12个维度从零构建高性能VLA-- 2026.2.20 -- 开源

0. 前言 看过非常多的VLA&#xff0c;但是对于其包含的结构和模块并不清晰&#xff0c;其中到底哪个对VLA性能影响最大也有待研究&#xff0c;所以来看看这篇。 论文页 项目页 article{wu2026vlanext,title{VLANeXt: Recipes for Building Strong VLA Models}, author{Xiao-…...

AI智能获客工具哪家强?这3款让你业绩飙升!

在当今数字化时代&#xff0c;AI智能获客工具对于企业的发展至关重要。它能帮助企业高效地找到潜在客户&#xff0c;提升业绩。下面为大家介绍三款颇具实力的AI智能获客工具。多客智能——AI自运转百倍获客体系上海超客多多智能科技有限公司推出的AI自运转百倍获客体系&#xf…...

基于形状的模板匹配,多模板匹配,最大变形匹配,max_deformation,动态链接库,C+...

基于形状的模板匹配&#xff0c;多模板匹配&#xff0c;最大变形匹配&#xff0c;max_deformation&#xff0c;动态链接库&#xff0c;C/C#&#xff0c;32/64位"啪&#xff01;" 螺丝刀重重摔在操作台上&#xff0c;车间主任老张盯着屏幕里歪斜的零件图像直挠头。流水…...

文档检索软件self searcher绿色版下载

兼具本地文件名查找和文件内容查找&#xff0c;相当于everythinganytxt searcher: 通过百度网盘分享的文件&#xff1a;Self-Sea… 链接:https://pan.baidu.com/s/159OrBfTmGO5xO59Fia6Xlg?pwd6sx3 复制这段内容打开「百度网盘APP 即可获取」...

光储直流微电网Simulink仿真模型——独立光伏系统能量管理及最大功率点跟踪

光储直流微电网simulink仿真模型 双向变换器 &#xff0c;独立光伏系统能量管理&#xff0c;最大功率点跟踪mppt 在传统的独立光伏发电系统中&#xff0c;蓄电池直接与直流母线相连接&#xff0c;其充放电电流不能得到有效的控制&#xff0c;当负载突变时&#xff0c;可能导致蓄…...

iNaturalist开放海量自然数据与计算机视觉挑战

iNaturalist开放海量自然数据&#xff0c;推动计算机视觉研究 iNaturalist应用程序允许全球用户记录和识别野生动植物。如今&#xff0c;由某机构云服务支持的人工智能技术正越来越多地参与到对这些观察数据的分类工作中。该项目从一个硕士项目发展成为一个拥有150万科学家和自…...

维科技术2025年亏损收窄至1.02亿!钠电池爬坡期后的业绩拐点已现?

维科技术2025年亏损收窄至1.02亿&#xff01;钠电池爬坡期后的业绩拐点已现&#xff1f; 2025年&#xff0c;维科技术交出"减亏成绩单"&#xff0c;全年净亏损1.02亿元&#xff0c;较上年同期收窄64.5%&#xff0c;营收14.18亿元虽同比下滑7.2%&#xff0c;但第四季…...

技能提升路线程序,输入目标岗位,倒推所需技能,规划学习顺,少走弯路,快速进阶。

&#x1f680; 智能技能提升路线规划系统&#x1f4c1; 项目结构skill_roadmap/├── README.md # 项目说明文档├── main.py # 主程序入口├── config/│ └── skills_database.py # 技能数据库配置├── core/│ ├── skill_tree.py # 技能树构建模块│ ├── dec…...

2026年降AI率工具哪个好?亲测这3款真的有效

2026年降AI率工具哪个好&#xff1f;亲测这3款真的有效 上个月帮室友改论文&#xff0c;他用DeepSeek写了一篇8000字的文献综述&#xff0c;自信满满交上去&#xff0c;结果知网AIGC检测直接标红——AI率87.3%。导师让他一周内改到20%以下&#xff0c;否则不给开题。 这种情况今…...

YOLO26改进97:全网首发--c3k2模块添加GCConv模块:垂直多卷积与水平多路径结构进行训练

论文介绍 翻译结果 当前的实时语义分割模型(无论单分支还是多分支结构)均能实现较好的性能与速度表现,但其速度受限于多路径模块设计,部分模型还需依赖高性能教师模型进行训练。为解决这些问题,本文提出金箍棒网络(GCNet)。该网络通过垂直多卷积与水平多路径结构进行训…...

基于扩展卡尔曼滤波的车辆质量与道路坡度估计模型(Matlab Simulink 2019+)

基于拓展卡尔曼滤波的车辆质量与道路坡度估计 车辆坡度与质量识别模型&#xff0c;基于扩展卡尔曼滤波&#xff0c;估计曲线与实际误差合理。 先用递归最小二乘法&#xff08;RLS&#xff09;质量识别&#xff0c;最后利用扩展卡尔曼坡度识别&#xff08;EKF&#xff09;。 送纹…...

温升测试基础

具体可参考视频 AriZh详细解释了温升测试的重要性&#xff0c;​​强调热应力直接关系到器件的可靠性​​。他提到电解电容的极限温度是105度&#xff0c;但实测达到120度就不可靠&#xff0c;​​说明实际应用中存在超限风险​​。测试方法上&#xff0c;电压电流应力用双脉冲…...

专业提供角膜塑形镜的企业

直接回答无锡际马眼视光是一家专业提供角膜塑形镜的公司&#xff0c;致力于为用户提供高质量的眼科解决方案。角膜塑形镜是一种夜间佩戴的硬性透气隐形眼镜&#xff0c;通过改变角膜形态来暂时矫正视力。深度解析&#xff1a;角膜塑形镜深度解析&#xff1a;搞懂这些&#xff0…...

D3DCompiler_47.dll怎么解决?当运行某程序出现提示找不到此文件问题

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…...

算法设计与分析里面的渐进符号难以理解

算法设计中的渐进符号&#xff08;Asymptotic Notation&#xff09;之所以让人觉得抽象&#xff0c;是因为它跳出了具体代码的细节&#xff0c;转而去研究“当数据量变得无穷大时&#xff0c;算法耗时的增长趋势”。为了让你彻底理解这个概念&#xff0c;我们可以把它想象成一套…...

COMSOL 5.6运用PDE方程模拟蠕变与水作用对煤柱坝体渗透率演化过程探究

comsol5.6&#xff0c;采用pde方程&#xff0c;模拟蠕变-水作用下煤柱坝体渗透率演化煤柱坝体在长期水-力耦合作用下的渗透率演化是个挺有意思的课题。最近用COMSOL5.6折腾了个蠕变-渗流耦合模型&#xff0c;这里把关键操作和踩过的坑跟大家唠唠。直接上干货&#xff0c;先说怎…...

VMware Workstation 安装 CentOS 7 64位 完整教程

步骤 1&#xff1a;启动虚拟机创建向导 打开 VMware Workstation&#xff0c;点击主页「创建新的虚拟机」&#xff0c;选择「典型(推荐)」&#xff0c;点击「下一步」。步骤 2&#xff1a;选择操作系统安装方式 选择「安装程序光盘映像文件」&#xff0c;点击「下一步」&#x…...

分享一个【连续下跌企稳反弹】指标——在暴跌后的混沌期,精准识别那些即将走牛的黄金坑

分享一个【连续下跌企稳反弹】指标——在暴跌后的混沌期&#xff0c;精准识别那些即将走牛的黄金坑 股友们&#xff0c;抄底最怕什么&#xff1f;怕的是股票在半山腰&#xff0c;一买就套&#xff01; 今天给大家分享一个专门捕捉“连续下跌后企稳反弹”的实战指标&#xff0…...

捕获文件上传大小限制异常

1. 自定义全局异常 Slf4j RestControllerAdvice public class ExceptionControllerAdvice {//限制文件上传大小200MB 超出大小捕获异常ExceptionHandler(MaxUploadSizeExceededException.class)public ResponseEntity<String> handleMaxUploadSizeExceededException(MaxU…...

软件测试入门:从理论到实践(基础2)

软件测试基础理论 软件测试是通过执行程序或系统&#xff0c;评估其是否满足预期需求、发现缺陷并验证质量的过程。核心目的是确保软件的功能性、可靠性、性能和安全性与用户需求一致。 软件的生命周期 软件生命周期&#xff08;Software Development Life Cycle, SDLC&…...

计算机毕业设计springboot基于spark的旅游推荐系统 基于SpringBoot与Spark的智慧旅游个性化推荐平台 SpringBoot框架下融合Spark的景区智能推荐与信息管理系统

计算机毕业设计springboot基于spark的旅游推荐系统&#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。随着国内旅游业的蓬勃发展和移动互联网技术的深度渗透&#xff0c;旅游消费正从…...

2026毕业答辩PPT制作,高效出稿不踩雷

临近毕业答辩&#xff0c;不少毕业生都陷入PPT制作困境&#xff1a;熬夜排版耗时费力&#xff0c;内容逻辑混乱、格式不规范&#xff0c;担心视觉效果拉低答辩印象分&#xff0c;零基础设计更是无从下手&#xff0c;越赶稿越出错。这不仅耽误答辩准备时间&#xff0c;还会影响现…...

3.15二刷基础90、105、106、110

题目&#xff1a;对于一个字符串&#xff0c;编程找出其中的所有整数。例如&#xff0c;字符串“a12bc34d05”&#xff0c;其中有整数12、34、5。要点总结&#xff1a;用一个temp字符串保留中间的结果&#xff0c;如果扫到字母且temp有值&#xff0c;那么一个整数扫完了&#x…...