【论文导读】Stable Learning via Sparse Variable Independence

news2024/11/16 7:55:48

准备follow一下稳定学习的系列论文,从这篇开始吧。

AAAI2023上的,主要是根据前几年稳定学习组提出的SV特征分类、关注稳定的S特征的样本重加权的优化

针对问题和措施:

稳定学习算法采用的样本重加权有弊端:

1,在有限样本的情况下,很难达到保证完全独立的理想权重来摆脱不稳定的变量

2. 没有必要去除稳定变量的内部关联。稳定变量内部的相关性可能非常强,因此去掉它们可能会大大减少有效样本量,甚至会导致学习模型的方差膨胀

措施:

引入了稀疏性约束,以弥补以往方法中有限样本集下样本再加权的不完美性。

样本加权+稀疏性的变量选择,选择稳定特征集S的时候剔除得不那么快,多留一些

具体算法:

【核心定义】

 

在严格的正密度假设下,最小稳定变量集S是唯一的。在P tr(X)!=P te(X)的协变量转移的设定下,S和X\S之间的关系可以任意改变,导致Y和X\S之间的不稳定的关联性。显然,根据(Xu et al. 2022),S是测试分布P te下Y的最小和最优预测器,当且仅当它是P tr下的最小稳定变量集。因此,在本文中,我们打算捕捉共变数转移下稳定预测的最小稳定变量集S。在不含糊的情况下,我们把S称为稳定变量,V=X/S称为不稳定变量。 

【利用的现有方法】

降低非对角元的平方和,主要针对线性相关。

为了估计这种密度比,SRDO学习一个MLP分类器来区分一个样本是属于原始分布P tr还是属于相互独立的目标分布P˜。与DWR不同,这种方法不仅可以减少协变量之间的线性相关,而且可以削弱它们之间的非线性依赖

【理论证明】

通过引入稀疏性约束,我们可以在有限样本的情况下放松对样本重加权所实现的完全独立性的要求,减少对样本大小的要求。受(Zhao and Yu 2006)的启发,我们从理论上证明了这样做的好处。

 

假设S和V被归一化为零均值,具有有限的二阶矩,并且协变量和非线性项都是有界的,即几乎可以肯定||X||2≤B,g(S)≤δ。 如果存在一个正的常数向量η,使得

术语Cov(n) (V ,S)衡量稳定变量和不稳定变量之间的依赖性。因此,定理3.1意味着,如果S和V之间的相关性被削弱到一定程度,完美选择稳定变量S的概率会以指数速度接近1。这证实了在基于独立性的样本加权中加入稀疏性约束可能会放松对协变量之间依赖性的要求,即使数据生成是非线性的。
在定理3.1的启发下,我们提出了新的稀疏变量独立(SVI)方法。该算法主要由两个模块组成:前端用于样本重加权,后端用于重加权分布下的稀疏学习。然后我们以迭代的方式将这两个模块结合起来,如图1所示。详细情况如下

【SVI】

1.首先把原本需要的完美独立性弱化为只需要尽量小

 之后,将稀疏性指标纳入循环中,

 A_ij:X_i,X_j是稳定特征概率越大,被decorrelate的概率就越小

算法: 

实验:

合成数据集:

 

 真实数据集:两个实验比较简单 一个回归一个二分类

 

 5 结论

在本文中,我们将样本加权和稀疏性约束结合起来,弥补了基于独立性的样本加权在稳定变量和不稳定变量之间存在剩余依赖性时的不足,以及去除稳定变量内部的强关联性所导致的变量膨胀。在合成数据集和真实世界数据集上的实验证明了我们算法的有效性。

 

 

 

【全文部分翻译和标注】

【摘要】

Covariate-shift泛化 的问题已经引起了密集的研究关注。以前的稳定学习算法在没有明确的训练数据领域信息时,采用样本重加权方案(sample reweighting schemes对协变量进行decorrelate。然而,在有限样本的情况下,很难达到保证完全独立的理想权重来摆脱不稳定的变量。此外,由于有效样本量的过度减少,稳定变量内部的去关联化可能会带来学习模型的高方差。这些算法需要巨大的样本量才能发挥作用。在本文中,通过理论上的论证,我们提出了针对协变量移位泛化问题的SVI(稀疏变量独立)。我们引入了稀疏性约束,以弥补以往方法中有限样本集下样本再加权的不完美性。此外,我们以迭代的方式将基于独立性的样本加权和基于稀疏性的变量选择有机地结合起来,以避免稳定变量内的decorrelating关系,增加有效样本量以缓解方差膨胀。在合成数据集和真实世界数据集上的实验证明了SVI带来的共变泛化性能的改善。

【引论】

目前大多数机器学习技术都依赖于IID假设,即测试和训练数据是独立和相同的分布,这在野外环境中是无法成立的(Koh等人,2021)。测试分布十有八九与训练分布不同,尤其是在收集训练数据时存在数据选择偏差的情况下(Heck人1979;Young等人2009)。协变量转移是一种常见的分布转移类型(Ioffe和Szegedy 2015;Tripuraneni、Adlam和Pennington 2021),它假设协变量的边际分布(即P(X))可能在训练和测试数据之间发生转移,而结果变量的生成机制(即P(Y |X))保持不变(Shen et al. 2021)。为了解决这个问题,有一些支流的工作(Santurkar等人,2018;Wilson和Cook,2020;Wang等人,2021)。当预先知道关于测试分布的一些信息时,(Peng等人,2019;Yang和Soatto,2020)提出了基于特征空间转换或分布匹配的领域适应方法(Ben-David等人,2010;Weiss, Khoshgoftaar和Wang,2016;Tzeng等人,2017;Ganin和Lempitsky,2015;Saito等人,2018)。如果训练数据存在明确的异质性,例如,它是由对应于不同源域的多个亚群组成的(Blanchard et al. 2021;Gideon, McInnis, and Provost 2021),就会提出领域泛化的方法来学习领域无关的模型或不变的表示(Muandet, Balduzzi, and Scholkopf 2013;Li et al. 2017;Ganin et al. 2016;Li et al. ¨ 2018;Sun and Saenko 2016;He, Shen, and Cui 2021; Zhang et al. 2022a, b)。然而,在许多实际应用中,既没有关于测试数据的知识,也没有训练数据中明确的领域信息。

最近,人们提出了稳定的学习算法(Shen等人,2018,2020a,b;Kuang等人,2018,2020;Zhang等人,2021;Liu等人,2021a,b)来解决一个更现实和具有挑战性的设置,即训练数据由潜在的异质性组成(没有明确的领域信息),目标是在不可知的协变量转移下实现一个具有良好概括能力的模型。他们通过将协变量分成S(即稳定的变量)和V(即不稳定的变量)来对协变量进行结构性假设,并假设P(Y |S)保持不变,而P(Y |V)在协变量转移下可能发生变化。他们的目的是学习一组样本权重,以消除观察数据中协变量之间的相关性,然后在加权分布中进行优化,以捕捉稳定变量。理论上证明,在无限样本的情况下,如果学习的样本权重能够严格保证所有协变量之间的相互独立性,这些模型只能利用稳定变量进行预测(即不稳定变量的系数将完全为零)(Xu等,2022)。然而,在有限的样本中,几乎不可能学习到满足完全独立的权重。因此,预测器不能总是摆脱不稳定的变量(即不稳定的变量可能有明显的非零系数)。此外,(Shen等人,2020a)指出,没有必要去除稳定变量的内部关联。稳定变量内部的相关性可能非常强,因此去掉它们可能会大大减少有效样本量,甚至会导致学习模型的方差膨胀。综合这两个因素,巨大的有效样本量的要求严重限制了这些算法的应用范围。

在这些算法的应用范围中,我们发现了一个新的问题。在本文中,我们提出了一种名为稀疏变量独立(SVI)的新算法,以帮助缓解对样本量的严格要求。我们将变量选择的稀疏性约束和变量独立性的样本再加权过程整合到一个线性/非线性预测模型。我们从理论上证明,即使数据生成是非线性的,如果稳定变量和不稳定变量之间的相关性在一定程度上是弱的,那么稳定变量肯定可以通过像ℓ1惩罚这样的稀疏性约束来选择。因此,我们并不要求协变量之间完全独立。为了进一步降低对样本量的要求,我们在稀疏变量的选择和样本的重新加权之间设计了一个迭代程序,以防止在稳定变量中试图进行装饰。在合成数据集和真实世界数据集上的实验清楚地表明了SVI带来的协变量转移泛化性能的改善。

本文的主要贡献列举如下。

- 我们引入了稀疏性约束,以获得一个更实用的基于独立性的样本重加权算法,该算法在有限训练样本的情况下提高了协方差移位的概括能力。我们从理论上证明了这样做的好处。

- 我们设计了一个迭代程序来避免稳定变量内的装饰关系,缓解了有效样本量过度减少的问题。

- 我们在各种合成和真实世界的数据集上进行了广泛的实验,以验证我们提出的方法的优势。

【问题定义】

在这项工作中,我们专注于协变量转移的问题。它是OOD文献中考虑的一种典型的和最常见的分布转移。

 

在严格的正密度假设下,最小稳定变量集S是唯一的。在P tr(X)!=P te(X)的协变量转移的设定下,S和X\S之间的关系可以任意改变,导致Y和X\S之间的不稳定的关联性。显然,根据(Xu et al. 2022),S是测试分布P te下Y的最小和最优预测器,当且仅当它是P tr下的最小稳定变量集。因此,在本文中,我们打算捕捉共变数转移下稳定预测的最小稳定变量集S。在不含糊的情况下,我们把S称为稳定变量,V=X/S称为不稳定变量。 

【方法】

3.1 基于独立的样本重权 

首先,我们定义加权函数和目标分布,我们希望训练分布被重新加权为目标分布。

 由于我们期望变量在加权分布中是去相关的,我们把W⊥表示为W的子集,其中X在加权分布P˜w中是相互独立的。

无限样本设置下,证明了如果使用W⊥中的加权函数进行加权最小二乘法,几乎可以肯定只有稳定变量上有非零系数,无论数据生成函数是线性还是非线性(Xu等人,2022)。然而,这一点成立的条件过于严格和理想。在有限样本设置下,我们很难学到与W⊥中加权函数相对应的样本权重

现在我们来看看两个具体的样本重权技术,它们将被纳入我们的算法中。

为了估计这种密度比,SRDO学习一个MLP分类器来区分一个样本是属于原始分布P tr还是属于相互独立的目标分布P˜。与DWR不同,这种方法不仅可以减少协变量之间的线性相关,而且可以削弱它们之间的非线性依赖

在有限样本条件下,对于DWR来说,如果样本规模不明显大于协变量维度的规模,方程3就很难优化到接近零。对于SRDO来说,P˜是通过粗略的再抽样过程产生的,进一步导致了密度比的不准确估计。此外,当稳定变量内部存在强关联时,这两种方法都存在有效样本量过度减少的问题,因为它们对变量进行了全局性的去关联。因此,它们都需要一个巨大的样本量才能发挥作用。 

3.2 稀疏性约束下的样本重加权 动机和总体思路

通过引入稀疏性约束,我们可以在有限样本的情况下放松对样本重加权所实现的完全独立性的要求,减少对样本大小的要求。受(Zhao and Yu 2006)的启发,我们从理论上证明了这样做的好处。

 

术语Cov(n) (V ,S)衡量稳定变量和不稳定变量之间的依赖性。因此,定理3.1意味着,如果S和V之间的相关性被削弱到一定程度,完美选择稳定变量S的概率会以指数速度接近1。这证实了在基于独立性的样本加权中加入稀疏性约束可能会放松对协变量之间依赖性的要求,即使数据生成是非线性的。
在定理3.1的启发下,我们提出了新的稀疏变量独立(SVI)方法。该算法主要由两个模块组成:前端用于样本重加权,后端用于重加权分布下的稀疏学习。然后我们以迭代的方式将这两个模块结合起来,如图1所示。详细情况如下.

前端实现 我们在不同的设置下采用不同的技术。对于数据生成受线性函数支配的情况,我们采用DWR,即公式3作为损失函数,使用梯度下降法进行优化。对于数据生成受非线性函数支配的情况,我们采用SRDO,即等式4来进行密度比估计,以便重新加权。
后端实现 对于后端稀疏学习模块,为了将非线性设置考虑在内,我们按照(Yamada等人,2020)实现了稀疏性约束,而不是Lasso。典型的变量选择,我们从ℓ0约束开始,这相当于将协变量X与硬掩码M = [m1, m2, ..., mp]^T相乘,其元素不是1就是0。我们使用剪切过的高斯随机变量对M中的元素进行近似,参数为μ = [μ1, µ2, ..., µp] ^T:
Md = max{0, min{1, µd + ϵd}}。(7) 
其中ϵd来自零平均高斯分布N(0,σ2)。
对于一个以θ为参数的一般函数f来说,标准的ℓ0约束可以写成

​​​​​​

在方程8中,在连续概率近似的帮助下,我们可以推导出掩码的ℓ0准则为。

其中Φ是标准高斯的累积分布函数。在学习了与wˆ(X)相对应的样本权重,并将其与稀疏性约束相结合,我们将方程8重写如下。

因此,方程9的优化输出了模型参数θ和软掩码μ,它们是范围为[0, 1]的连续变量。因此,µd可以被看作是选择Xd作为稳定变量的概率。我们可以设置一个阈值来进行变量选择,然后只用被选中的变量来重新训练模型,以获得更好的协变量转换泛化。

迭代程序 如前所述,每对协变量之间的全局性去相关可能过于激进,难以完成。在现实中,稳定变量内部的相关性可能很强。全局去相关可能会导致有效样本量的缩减,造成方差的膨胀。值得注意的是,后台模块的输出可以解释为P(Xd∈S),即每个变量属于稳定变量的概率。它们包含了共变体结构的信息。因此,当使用DWR作为前端时,我们提出一种方法,利用这种信息作为前端模块的反馈,以减轻有效样本量的减少。

我们首先表示A∈[0, 1]p×p为协方差矩阵掩码,其中Aij表示Xi和Xj的去相关性强度。显然,由于我们希望保留稳定变量S内部的相关性,当这对变量更有可能属于S时,它们应该更不可能有装饰性关联。因此,A中的元素可以计算为。Aij = 1 - P(Xi∈S)P(Xj∈S) = 1 - µiµj 。我们将这一条款纳入方程3中DWR的损失函数,将其修改为 

通过方程10,我们通过结合样本加权和稀疏学习以迭代方式实现SVI。该算法的细节在算法1中描述。我们还在图1中提出了一个图来说明它。

我们可以看到,当初始化时,前端模块Mreweight学习了一组与加权函数wˆ(X)相对应的样本权重。给定这样的样本权重,后端模块Msparse以重加权分布下的软变量选择方式进行稀疏学习,输出每个变量Xd在稳定变量集中的概率P(Xd∈S)。这种结构信息可以被Mreweight利用来学习更好的样本权重,因为稳定变量内部的一些相关性将被保留下来。因此,样本加权和稀疏学习模块通过这样一个迭代和反馈的循环相互受益。迭代过程及其收敛性很难从理论上进行分析,就像以前的工作一样(Liu等人,2021a;Zhou等人,2022),所以我们通过图3(c)和附录中的实证实验来说明它们。

 【实验】

4.1 基线 

我们将SVI与以下方法进行比较。我们通过网格搜索和对rtrain对应的环境数据进行验证来调整超参数。

- OLS(普通最小二乘法)。适用于线性设置。
- MLP(多层感知器)。适用于非线性设置。- STG(随机闸门)(Yamada等人,2020)。直接优化方程9,而不进行样本再加权。
- DWR(Kuang等人,2020)。优化方程3并进行加权最小二乘法(用于线性设置)。
- SRDO(Shen等人,2020b)。通过方程4进行密度比估计
- SVId:SVI的退化版本,只对烧蚀研究运行一次迭代,以证明线性设置下迭代程序的好处。

 

4.3 合成数据数据集的实验

我们从多变量高斯分布X∼N(0, Σ)生成X={S,V }。通过这种方式,我们可以通过控制协方差矩阵Σ来模拟X的不同相关结构。在我们的实验中,我们倾向于使稳定变量内部的关联性变强。

对于线性和非线性设置,我们采用不同的数据生成函数。值得注意的是,需要一定程度的模型错误指定,否则模型将能够简单地使用OLS或MLP直接学习真正的稳定变量。

对于线性设置,我们通过在支配的线性项上增加一个额外的多项式项来引入模型的错误规范化误差,之后用线性模型来拟合数据。生成函数如下。Y = f(S) + ϵ = [S,V ] - [βs , βv ] T + S-, 1S-, 2S-, 3 + ϵ (11) 

对于非线性设置,我们以完全非线性的方式生成数据。我们采用随机初始化MLP作为数据生成函数。Y = f(S) + ϵ = MLP(S) + ϵ (12) 后来我们用容量较小的MLP来拟合数据。更多的细节包括在附录中。

生成各种环境 为了模拟协变量转移的情况,不仅测试预测的准确性,而且测试预测的稳定性,我们生成一组环境,每个环境都有不同的分布。具体来说,按照(Shen et al. 2020a),我们在实验中通过改变P(V |S)产生不同的环境,进一步导致P(Y |V)的变化。在所有不稳定的变量V中,我们在一个子集V b∈V上模拟不稳定的相关P(V b|S)。我们通过不同强度的选择偏差来改变P(V b|S),偏差率r∈ [-3, -1] ∪(1, 3)。对于每个样本,我们用概率P r = ΠVi∈V b |r| -5Di,其中Di = |f(S) - sign(r)Vi |,sign de note sign函数。在我们的实验中,我们设定pvb = 0.1∗p

实验设置 我们在一个单一环境的数据上训练我们的模型,并在多个环境的数据上测试,偏差率rtest在[-3, -1]∪(1, 3)范围内。每个模型用来自相同偏差率rtrain的不同训练数据集独立训练10次。同样地,对于每个rtest,我们产生10个不同的测试数据集。我们报告的指标是这10次的平均结果。

结果 当改变样本量n和训练数据偏差率rtrain时,结果显示在表1和表2。图2(b)和2(c)说明了两个具体设置的详细结果。除了预测性能,我们还在图3(a)和3(b)中说明了我们的算法在削弱残余关联性和增加有效样本量方面的有效性。对结果的分析如下。

- 从表1和表2来看,对于几乎所有的设置,SVI在平均误差、标准误差和最大误差方面都持续优于其他基线,这表明其优越的共变泛化能力和稳定性。从图2(b)和2(c)来看,当rtest<-1时,即测试数据中V和Y之间的相关性与训练数据中的相关性相反时,其他基线明显失败,而SVI在这种挑战性的分布变化中保持稳定。

- 从图2(a)中,我们发现,随着样本量的减少,DWR和SRDO的预测误差急剧上升,证实了有效样本量过度减少的严重性。同时,SVI保持了很好的性能,总体上超过了SVId,证明了迭代程序的优越性,它避免了S内的激进的去重。

- 在图3(a)中,我们计算||βv||1来衡量不稳定变量V和结果Y之间的剩余相关性。DWR总是保留了不稳定变量上的重要非零系数,特别是当样本量变小时,而SVI有时会将残余相关的规模截断一到两个数量级。这有力地说明了SVI确实有助于缓解以前基于独立性的样本重权方法中变量去重的不完美性。

- 在图3(b)中,我们按照(Kish 2011)计算出nef f = ( Pn i=1 wi) 2 Pn i=1 w2 i作为有效样本大小。很明显,与DWR这样的全局去重方案相比,SVI大大提升了有效样本量,因为稳定变量内部有很强的关联性。当n比较小的时候,nef f与原始样本量n相比的缩减对DWR来说变得相当严重,甚至达到1/10。

- 在图3(c)中,我们绘制了||βv||1随着SVI迭代次数的增加而发生的变化。我们可以观察到,随着算法的发展,残余的相关度在下降。这证明了我们的迭代程序带来的好处。同时,这也证明了SVI的数值收敛性,因为不稳定变量V的系数随着迭代过程逐渐接近零。更多用于分析迭代和收敛性的实验放在附录里。

4.4 真实世界数据的实验 

房价预测 这是一个预测房价的回归任务,根据房子建成的时间段,将数据分成6个环境,1个用于训练,5个用于测试。1 在5个测试环境中的4个,SVI和SVId的表现优于其他基线,特别是在最后3个环境中。差距沿着时间轴明显增加,这代表测试数据和训练数据之间的时间跨度更长。这意味着更严重的分布转变可能体现了我们算法的优越性。从侧面看,总体上SVI的表现略好于SVId,进一步证明了迭代程序在真实世界数据上的好处。

人们的收入预测 这是一个收入预测的二元分类任务,其中10个环境是由种族和性别的组合产生的。我们在第一个环境(白人,女性)中训练模型,并在其他9个环境中进行测试,以模拟分布变化。

对于前4种环境,人们的性别与训练数据相同,即都是女性,这些方法对预测没有什么影响。然而,对于后5种环境,当性别类别为男性时,每种方法的性能都有不同程度的下降。我们可以看到,SVI方法是最稳定的方法,在分布转移的情况下,其性能的影响比其他基线小得多。此外,SVI仍然比SVId略胜一筹,这再次表明了迭代程序的实际用途。

5 结论

在本文中,我们将样本加权和稀疏性约束结合起来,弥补了基于独立性的样本加权在稳定变量和不稳定变量之间存在剩余依赖性时的不足,以及去除稳定变量内部的强关联性所导致的变量膨胀。在合成数据集和真实世界数据集上的实验证明了我们算法的有效性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/134350.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ESP8266 SDK开发之AiThinkerIDE_V1.5.2安装、配置以及编写一个程序

【本文发布于https://blog.csdn.net/Stack_/article/details/128509864&#xff0c;未经允许不得转载&#xff0c;转载须注明出处】 前言 乐鑫官方不搞IDE&#xff0c;安信可搞了IDE&#xff0c;但是各版本之间安装配置有差异&#xff0c;还没有文档说明。官方安装配置教程不完…

IEEE论文投稿流程

转载文章 这是篇节省你翻论坛、查资料的文章。 我将把每一步尽量写的清楚&#xff0c;能够让新手按照这篇文章进行完整的投稿。 即使你从未投过稿&#xff0c;完全不了解IEEE的投稿流程&#xff0c;希望按照这篇文章&#xff0c;能够帮助你流畅无误的投稿 这是针对本科生和低年…

springboot整合springcloud之nacos配置中心

整合配置中心nacos 应用场景&#xff0c;每次改配置要重新启动才能生效&#xff0c;而把配置放到nacos上&#xff0c;如有修改&#xff0c;那么发布后项目自动就生效了。 场景2&#xff1a;不同微服务单独设置一个命名空间。 一、项目操作 1.引入依赖 <!--使用spring-cloud…

JDBC---Maven之jdbc连接数据库

Maven之jdbc连接数据库 这里需提前将maven环境配置好 链接: Maven环境配置 文章目录Maven之jdbc连接数据库JDBC创建Maven工程JDBC访问数据库步骤1.Class.forName()加载驱动2.DriverManager获取Connection连接3.创建Statement执行SQL语句4.返回ResultSet查询结果()5.释放资源JD…

vsmoon靶场实战笔记

vsmoon靶场实战笔记 web打点 信息收集 nmap扫描端口 扫描结果 └─$ nmap -sV -A 192.168.1.106 -Pn Starting Nmap 7.92 ( https://nmap.org ) at 2023-01-01 12:51 CST Nmap scan report for 192.168.1.106 Host is up (0.00014s latency). Not shown: 986 closed tcp p…

YOLOv5更换骨干网络之 GhostNet

论文地址&#xff1a;https://arxiv.org/abs/1911.11907 代码地址&#xff1a;https://github.com/huawei-noah/ghostnet 由于内存和计算资源有限&#xff0c;在嵌入式设备上部署卷积神经网络&#xff08;CNN&#xff09;很困难。特征图中的冗余是那些成功的神经网络的重要特征…

年度征文 | 回顾2022,展望2023(我难忘的2022,我憧憬的2023)

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;也会涉及到服务端 &#x1f4c3;个人状态&#xff1a; 在校大学生一枚&#xff0c;已拿多个前端 offer&#xff08;秋招&#xff09; &#x1f680;未…

用javascript分类刷leetcode7.双指针(图文视频讲解)

双指针 普通指针&#xff1a;两指针同一方向或不同方向对撞指针&#xff1a;两指针互相靠拢快慢指针&#xff1a;一快一慢 141. 环形链表 (easy) 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再…

LeetCode字符串经典题目(四)

1. LeetCode344. 反转字符串 2. LeetCode541. 反转字符串 II 3. LeetCode剑指 Offer 05. 替换空格 4. LeetCode151. 反转字符串中的单词 5. LeetCode剑指 Offer 58 - II. 左旋转字符串 6. LeetCode28. 找出字符串中第一个匹配项的下标​ 7. LeetCode459. 重复的子字符串​…

Mac内存空间不足如何释放储存空间?深度清理Mac磁盘空间的方法教程

今日coco玛奇朵将分享一些能够释放大量Mac内存空间的方法&#xff0c;以便大家能够优化Mac的运行速度外还能规避由于Mac空间不足而导致安装Ventura时出现的一系列问题。 大家都知道更新Macos都需要预备非常大的内存空间才能进行&#xff0c;当更新完Macos之后都会留下大量的备…

台大应用深度学习笔记

deep learning end-to-end training 1. 神经元 1.1 为什么需要bias&#xff1f; 为了给对应位置一个prior&#xff0c;给它一个初始值&#xff0c;b越大&#xff0c;σ(z)11e−z\sigma(z) \frac{1}{1e^{-z}}σ(z)1e−z1​越大&#xff0c;越趋向于1. 多层神经网络&#xff…

安装Windows和Ubuntu双系统

制作Ubuntu安装盘在Windows上查看磁盘格式 不同的磁盘格式&#xff0c;需要跟BIOS里面不同的引导模式配合来启动操作系统&#xff0c;如下图&#xff1a; 我的电脑是GPT格式&#xff1a; 准备好给Ubuntu的磁盘空间 在Windows系统中&#xff0c;在一个200G的清空数据的磁盘上…

【Flask-Web】基于layui前端模板搭建简易管理系统

1. JavaScript 1.1. 函数 var cars ["Saab", "Volvo", "BMW"]; var txt "string"; var b2new Boolean(1); var x Math.PI; // 返回PI var y Math.sqrt(16); // 返回16的平方根 var num new Number(value); try {adddlert("…

aws eks 理解和使用terrafrom创建eks集群(离线安装provider和module)

参考 使用 Terraform 在 AWS 中国区域实现自动化部署指南系列1使用 Terraform 在 AWS 中国区域实现自动化部署指南系列2https://lonegunmanb.github.io/introduction-terraform/加速 Terraform init terraform 相关概念 terraform是对标aws cloud formation的iac工具&#x…

Redis集群系列十一 —— 故障转移一

故障发现 Redis 集群内节点通过 ping/pong 消息实现节点通信&#xff0c;消息不但可以传播节点槽信息&#xff0c;还可以传播其他状态。当集群中某个节点出现问题时&#xff0c;需要识别出节点是否发生了故障&#xff0c;因此故障发现是通过Gossip 协议来广播自己的状态以及自…

日志系统:WAL和二阶段提交

1. 前言 一条更新语句在执行过程中不仅仅要操作不仅仅是通过数据库的组件(分析器、优化器、执行器、存储引擎等&#xff09;操作表数据还涉及以下内容&#xff1a; 要操作日志系统的redo log、binlog和undo log&#xff0c; 更新操作也不是实时更新到磁盘的而是通过3.Write-A…

DDR3 数据传输 (五)

目录 引言 设计说明 参数说明 设计简图 IP配置说明 写FIFO IP

在linux上使用CMake构建和安装gtest

在linux上使用CMake构建和安装gtest一、准备工作二、构建并安装gtest的静态库三、构建并安装gtest的共享库一、准备工作 本机环境&#xff1a; 系统版本&#xff1a;RHEL 7.6GCC/G版本&#xff1a; 12.1.1googletest版本&#xff1a;1.12.1 注意&#xff0c;gtest的1.12.x分…

基于准则匹配的图像对准

一、概述 在图像处理相关的问题中&#xff0c;图像对准是一类典型的问题&#xff0c;也就是要将两幅图严丝合缝地对应起来。通常来讲&#xff0c;两幅图大小不一&#xff0c;一个是模板&#xff0c;一个是母图&#xff0c;也就是要在母图中搜寻定位到与模板图最为接近的区域。 …

QML教程(七) JavaScript

目录 一、对属性值使用 JavaScript 表达式 二、在 QML 中添加 JavaScript 函数 三、使用 JavaScript 文件 四、属性绑定中的 JavaScript 五、信号处理程序中的 JavaScript 六、将信号连接到 JavaScript 函数 七、启动执行 JavaScript QML 提供的 JavaScript 主机环境可以…