【论文解读】OpenMix+: Revisiting Data Augmentation for Open Set Recognition

1、摘要

开集识别要求模型识别训练集中学习到的已知类样本,同时拒绝未学习到的未知类。与封闭集问题的结构风险最小化理论相比,开放集任务中的结构风险研究较少。本文指出结构风险与开放空间风险的平衡是开集识别的关键,并将其转化为开集结构风险。这为闭集识别和开集识别之间的一般关系提供了一个新的视角,而不是一般的直觉,即一个好的闭集分类器总是有利于开集识别。
具体地说,我们从理论和实验上证明了最近的基于混合的数据增强方法是激进的闭集正则化方法,它以牺牲开放空间风险为代价降低了结构风险。此外,我们还发现,现有的用于降低开放空间风险的负数据扩充也忽略了结构风险和开放空间风险之间的权衡问题,从而限制了它们的性能。提出了一种高效的负数据扩充策略self-mix和相应的OpenMix方法。OpenMix通过混合样本本身生成高质量的阴性样本,可以同时处理这两种风险。将OpenMix与保守的闭集正则化方法相结合形成OpenMix+,可以实现较低的开集结构风险。大量实验验证了OpenMix和OpenMix+在有效性和通用性方面的优越性。

2、introduction

由于统计学习方法是在“独立同分布”(i.i.d.)假设前提下,大量文献表明,深度神经网络容易受到数据分布变化的影响。这些问题可以分为两类:对已知类别的样本进行错误分类[6],[7] ,[8],[18],[21],以及对未知类别的样本进行分类分为已知类别[9]、[10]、[11]、[12]。

开集识别不仅对已知类的样本进行分类,而且拒绝未知类的样本。通过假设来自同一类的样本位于像素空间中的连续流形上,图1说明了传统闭集和开集识别之间的主要区别。闭集识别旨在寻找区分不同类流形的决策边界,而开集识别旨在建立准确描述每个类流形的判决边界,为未知事物创造额外的开放空间。受无监督学习的启发,利用自监督方法能够挖掘更多信息,以精细地联合学习每个类的边界[22-27]. 具体而言,[27]提出使用指数幂分布作为已知类的先验。[13] 引入margin余弦损失以实现紧凑表示。通常,开集识别的优化目标函数由两个项组成:用于对已知类进行分类的结构风险,和用于拒绝未知的开放空间风险。在零样本学习领域也有与未知类识别相关的工作,该领域利用辅助信息来支持未知类的识别。[28]提供了一种新的方法来利用已知类的知识来实现更好的表示。[29]提出了一个球形嵌入空间作为相似性度量。

设计良好的闭集正则化可以通过最小化结构风险来显著提高闭集精度[31-39]。由于许多开集识别算法宣称它们可以保持高的闭集精度[22]、[23]、[40]、[41],人们可能会认为结构风险最小化与开放空间风险降低共存。特别是,最近的工作[42]直接指出,一个好的闭集分类器有利于未知类检测
并进行了一系列实验,证明了闭集识别与未知类检测之间的正相关。在第二节中,我们通过分析流行的闭集正则化方法来说明情况并非总是如此。此外,根据其对开放空间风险的影响,我们将闭集正则化方法分为保守方法和激进方法。我们表明,最近的基于混合的数据扩充方法[34]、[35]、[36]是一种激进的闭集正则化方法,以牺牲开放空间风险为代价,最大限度地减少结构风险。我们证明了基于混合的数据增强方法在开放空间中平滑了得分函数,从而模糊了决策边界,增加了开放空间的风险。我们得出结论,结构风险和开放空间风险之间的平衡对于开集识别至关重要,并将其重新形式化为开集结构风险。

从开集结构风险的角度来看,我们还发现,最近为降低开放空间风险而设计的负数据增强方法[30]、[43]、[44]、[45]忽略了结构风险和开放空间风险之间的权衡问题,这限制了它们的性能。
为此,我们提出了一种新的负数据扩充方法OpenMix。OpenMix的原理是生成高质量的负样本,以支持类边界的学习。我们认为高质量的负样本应该表现出高相似性和低归属性。高相似性意味着生成的样本在视觉层面或特征层面上类似于已知类别的样本,从而确保有效降低开放空间风险。低归属度意味着生成的样本不属于任何已知的类,因此不会过度增加结构风险。然而,现有的负数据增强方法未能将这两个特性解耦。如图2所示,现有方法生成的负样本显示出相似性和归属性之间的正相关关系。因此,这些方法无法在结构风险和开放空间风险之间达到高度平衡。

OpenMix通过混合样本本身来克服这一困境,生成结合了低归属度和高相似性的样本。总之,OpenMix提供了以下优势:(1)在结构风险和开放空间风险之间达到更高的平衡。(2) 通过简单的自混合策略生成负样本,避免了生成对抗性网络(GAN)复杂的设计和训练阶段。(3) 展示了在有效性和普遍性方面的优势。此外,当将OpenMix与保守的闭集正则化方法相结合形成OpenMix+时,模型可以实现更低的开集结构风险,从而获得更强的开集性能。我们在几个基准数据集和模型来验证OpenMix和OpenMix+的有效性和通用性。

The main contributions of this paper are as follows:

1) 我们为开集识别开发了一个结构风险框架。这是第一项探索结构风险和开放空间风险之间关系的工作。我们指出,对于开集识别,同时考虑结构风险和开放空间风险是至关重要的。我们证明了最近的基于混合的数据增强方法(即Mixup[34],Cutmix[35]、Cutout[36])和现有的负数据扩充方法(即[30]、[43]、[44]、[45])不能很好地平衡结构风险和开放空间风险。

2) 我们提出了一种简单高效的负数据增强策略,称为自混合,并提出了相应的方法,称为OpenMix。OpenMix可以在结构风险和开放空间风险之间达成微妙的平衡。将OpenMix与保守正则化方法相结合以形成OpenMix+,使模型能够实现较低的开集结构风险。大量实验表明,在自然数据集上,OpenMix+在ROC中可以实现13.2%的提升,在宏观平均F1分数中可以实现22.9%的提升。

3、OPEN SET STRUCTURAL RISK

在本节中,我们首先对闭集识别和开集识别进行了初步的介绍。然后,我们分别研究了闭集正则化方法对开放空间风险的影响和开放空间正则化方法对于结构风险的影响。最后,我们得出以上结论
用开集结构风险的公式进行研究。在这项工作中,我们专注于视觉识别任务。在本节中,我们首先对闭集识别和开集识别进行了初步的介绍。然后,我们分别研究了闭集正则化方法对开放空间风险的影响和开放空间正则化方法对于结构风险的影响。最后,我们用开集结构风险的公式对上述研究进行了总结。在这项工作中,我们专注于视觉识别任务。

3.1 Preliminaries

1) 闭集识别:假设我们有一个闭空间C,有(X,Y)分布,其中X表示N个已知类的特征,Y表示相应的标签为Y={1,2,…,N}。给定训练集\left \{ x_{i}, y_{i} \right \}_{i=1}^{n}\sim \left ( X,Y \right ),闭集识别旨在从具有最低闭集预期误差\varepsilon_{C}的假设类H中找到向量值函数h:

H的选择至关重要。复杂度低的H可能导致欠拟合,而复杂度高的H可能会导致过拟合。在实践中,很难估计适合于目标数据分布的H的适当复杂度,特别是对于高维数据。一般的解决方案是选择具有高复杂性的H,并将其与结构风险最小化相结合:

闭集正则化方法通常分为两类:填充已知类的样本以减少H[33]、[34]、[35]、[36]方差的数据扩充方法,以及鼓励低复杂度H的基于优化的方法[31]。

2) 开集识别:开集识别的目的是识别已知类的样本,同时拒绝未知类的样本。我们用S表示整个数据空间,它由封闭空间C和开放空间O=S−C组成。我们将O中的未知样本标记为N+1,并表示它们为\left ( X^{u},N+1 \right )。给定训练集\left \{ x_{i}, y_{i} \right \}_{i=1}^{n}\sim \left ( X,Y \right ),开集识别旨在从假设类{H}'中找到具有最低开集预期误差\varepsilon_{S}的向量值函数{h}'

当最大得分ma x_{i} z_{i} \left ( i \in 1,2,\cdots ,N \right )超过阈值\delta时(公式7是不是有问题?),预测对应于最大得分的类。否则,输出N+1以指示x是未知类。解决开集识别的一个自然直觉是将闭集正则化方法和开放空间正则化方法相结合。然而,我们在以下小节中展示了广泛的组合可能导致性能下降。

3.2. Study on Closed Set Regularization Methods

我们研究闭集正则化方法。根据它们对开放空间风险的不同影响(见(6)),我们将闭集正则化方法分为保守正则化方法和攻击正则化方法。
定义1(保守闭集正则化方法):
一类闭集正则化方法,可以降低结构风险,有利于开放空间风险。
定义2(激进闭集正则化方法):
一类以牺牲开放空间风险为代价降低结构风险的闭集正则化方法。

首先,我们研究了两种经典且广泛使用的闭集正则化方法:权重衰减[31]和不变数据扩充[33]。权重衰减是通过在参数上添加范数惩罚项来实例化,将不必要的参数减少到零。不变数据增强方法,如翻转、裁剪和旋转,在视觉识别任务中得到了广泛的应用。

表一从开集识别的角度展示了这两种正则化方法的性能。我们注意到,它们不仅提高了闭集的精度,而且显著提高了未知类的检测,因此我们将其归类为保守闭集正则化方法。这种类型的闭集正则化方法将决策边界限制为一个公平的“形状”,该形状可以包括已知类的整个流形,并有利于未知检测。因此,我们为Softmax配备了权重衰减和不变数据扩充,以形成Softmax+,这是一个优越的基线。

Mixup[34]、Cutmix[35]和Cutout[36]是最近提出的易于实现且广泛有效的数据增强方法。Mixup线性插值来自不同类别的两个样本之间的数据:

λ是服从均匀分布U(0,1)的随机变量。Cutmix随机裁剪图像,并将生成的孔替换为同一位置其他类的图像内容,并根据裁剪区域相应地调整其标签。Cutout裁剪图像的一小部分(类似于Cutmix,但没有替换)并保留标签。Cutmix和Cutout可以被视为基于曼哈顿距离的Mixup版本。这三种方法通过在类之间填充平滑样本来降低开放空间中的模型复杂性。

表II验证了这些基于混合的方法在提高闭集精度方面的有效性。然而,我们观察到未知检测存在性能衰减。为了解释这种不寻常的现象,我们证明了Mixup是如何作为基于混合的数据增强的代表
方法,增加开放空间的风险。

命题1:Minup 增加了模型{h}'的开放空间风险\varepsilon_{O}\left ( {h}' \right ) 。

证明:假设每个已知类的样本都位于一个预定义的闭空间C上。如果阈值δ0∈[0.5,1)(见(7)),当λ∈(0,1-δ0]U[δ0,1)时,我们将Mixup填充的数据空间表示为C′(见(8))。当x∈C′时,用Mixup训练的模型{h}'倾向于将x识别为一个已知类(见(6))。 然而,当x∈C′−C(C′−C /= ∅)时,x属于应该标记为N+1的开放空间O。因此,开放空间风险\varepsilon_{O}\left ( {h}' \right )增加(见(6))。如果阈值δ0∈(0,0.5),则随机变量λ的任何采样都将导致开放空间风险\varepsilon_{O}\left ( {h}' \right )由于类似的原因而增加。

基于Min的数据扩充方法平滑了不同类流形之间的得分函数,导致决策边界膨胀和模糊,增加了开放空间的风险。我们将它们归类为激进性闭集正则化方法。

3.3. Study on Open Space Regularization Methods

我们研究了开放空间正则化方法。同样,根据它们对结构风险的不同影响(见(3)),我们将开放空间正则化方法分为保守开放空间正则性方法和激进开放空间规则化方法。

定义3(保守开放空间正则化方法):一类开放空间正则方法,在不过度增加结构风险的情况下降低开放空间风险。
定义4(激进开放空间正则化方法):一类开放空间正则方法,以过度增加结构风险为代价,降低开放空间风险。

我们专注于负数据扩充方法,该方法生成负样本以表示无限负空间[30],[43-46]。通常,有一个超参数控制生成样本的分布(见图2)。当超参数设置为低值时(图2的左部分),负数据扩充方法成为激进的开放空间正则化方法,因为它生成属于已知类的负样本,从而过度增加结构风险。我们观察到闭集分类精度(ACC)显著下降。当超参数设置为高值时(图2的中间部分),负数据扩充方法成为保守的开放空间正则化方法,因为它生成的负样本属于开放空间,因此正则化开放空间而不会过度增加结构风险。还可以观察到,如果超参数过高(右侧
图的一部分2),开放空间风险也增加了,因为它产生了与已知类别不同的负样本,因此导致了负偏差。

3.4 Open Set Structural Risk

我们从上述研究中得出结论,结构风险和开放空间风险之间存在平衡。激进的正则化方法往往以牺牲另一种风险为代价来降低一种风险,这对于开集识别来说是非预期的,而保守的正则化法通常可以同时二者受益。为了说明正则化方法对开集识别的一般目标,我们将开集结构风险重新形式化为:

其中前两项表示公式(3)中定义的结构风险,第三项表示在公式(6)中定义的开放空间风险。

由于在未知信息不可用的情况下难以估计适当的复杂性来解决未知检测问题,因此直接最小化开放集结构风险是困难的。我们可以采用“分而治之”的平衡版本:对于结构风险最小化,我们选择保守的闭集正则化方法。在这里,我们推荐闭集正则化,它不在开放空间中进行正则化;对于开放空间风险最小化,我们也应该选择保守的开放空间正则化方法。我们可以通过闭集验证集来识别它们。

4、PROPOSED METHOD

4.1 Motivation

现有的负数据扩充方法存在两个局限性(见图2):(1)应谨慎选择超参数,防止其过低而成为激进的正则化方法,防止其过高而引入负偏差。由于开集验证集的不可用性,后一种方法更为困难。(2) 由于开放空间风险降低方向和结构风险降低方向是相对的w.r.t超参数,现有方法未能在结构风险和开放空间风险之间达到高度平衡。

对于负数据增强,结构风险降低与负样本的低归属度有关,这意味着生成的负样本不属于任何已知类别;开放空间降低风险涉及负样本的高相似性,这意味着生成的负样本在视觉水平或特征水平上类似于已知类的样本。因此,我们认为理想的负数据增强算法应该解耦归属性和相似性的特征,使高质量的负样本能够同时表现出高相似性和低归属性。

4.2 Self-Mix Strategy

一般的想法是使用局部变换而不是全局变换,扭曲一些关键特征以打破归属性,保留其他特征以保持相似性。受最近基于混合的方法的启发,我们引入了一种遵循以下规则的自混合策略:

1) 自混合的对象应该来自同一个样本。
2) 自混合后,对类识别至关重要的部分特征应该失真,而其他特征则保留。
3) 应避免走捷径。

项(1)保证生成的样本尽可能与原始样本相似。项(2)打破归属性,使生成的样本位于开放空间。项(3)对于防止潜在的负面偏见是必要的,因为深度神经网络擅长通过捷径进行拟合。自混合策略制定为:

我们给出了所提出的自混合策略的三个实现:OpenMixup、OpenCutmix和OpenCutout。

4.2.1 OpenMixup

其中T_{random-rot}表示随机旋转的仿射变换。旋转改变内容的相对排列,这是图像的一个关键特征。当将旋转后的图像与原始图像混合时,得到的图像既体现了原始排列,也体现了失真排列,生成了不属于原始类别但与之相似的样本。旋转角度符合均匀分布U(0◦, 360◦) 以增强生成样本的多样性。

4.2.2 OpenCutout

其中Maskbg表示背景掩码,其中“1”表示背景像素,“0”表示前景像素。⊙表示按元素相乘。公式(12) 可以被视为与空白空间混合,这是公式(10)的特殊情况。OpenCutout去除图像的前景以打破归属感,并保留图像的背景以保持相似性。OpenCutout和Cutout之间的主要区别在于,Cutout对小面积的图像进行随机擦除,以增强识别的稳健性,而OpenCutout删除图像的目标对象以生成负样本。可以使用前景/背景分割算法来生成Maskbg。只要语义区域通常被破坏,OpenCutout对分割掩码的质量是鲁棒的。
可以选择经典的前景/背景分割算法,如Watershed[47]、Grabcut[48]等。这里,我们使用Grabcut[48]作为默认的分割算法。此外,为了防止模型通过不连续的边缘识别OpenCutout图像,OpenCutout还通过随机剪切出原始图像的一小部分背景并保留其原始标签来生成辅助正样本。

4.2.3 OpenCutmix

其中Maskfg表示前景蒙版,T_{fill-fg}表示水平和垂直平移,可以填充Maskbg⊙xi产生的孔。OpenCutmix删除图像的前景以打破归属感,并用原始图像的背景替换空洞。OpenCutmix和Cutmix之间的主要区别在于,Cutmix将两个类的样本混合以生成平滑样本,而OpenCutmix将图像的前景元素替换为原始图像的背景元素以生成负样本。类似地,我们将Grabcut[48]设置为默认分割算法。此外,为了防止模型通过其不连续的边缘来识别OpenCutmix图像,OpenCutmix还通过用原始图像的另一区域背景随机替换原始图像的一小区域背景来生成辅助正样本。OpenCutmix在某种程度上类似于OpenCutout,但在不同方向上产生接近类流形的负样本。

4.3 . OpenMix and OpenMix+

OpenMixup、OpenCutout和OpenCutmix生成从不同方向接近类流形的负样本,因此以各自的方式支持类边界学习。值得一提的是,OpenMixup对圆对称的前景很敏感,而OpenCutout和OpenCutmix对相同的背景很敏感。这三种方法的三种实现的组合引入了OpenMix,它对不同风格的图像更健壮。OpenMix可以生成高质量的负样本,以更平衡的方式规范开放空间风险。为了给任何模型配备OpenMix,除了为分类器再分配一个节点进行负样本训练外,不需要额外的努力。算法1显示了OpenMix的训练细节。在测试阶段,我们使用已知类的激活值(Softmax层之前的logits)作为分数来进行未知检测,以考虑批评的Softmax值[49-51]。δ的阈值取决于正灵敏度的实际要求。

我们将OpenMix与保守闭集正则化方法相结合,形成了OpenMix+。在这项工作中,我们选择权重衰减和不变数据扩充作为保守的闭集正则化方法。总之,Openmix是一种保守的开放空间正则化方法,生成同时具有低归属性和高相似性的高质量负样本,与现有的负数据扩充方法相比,它可以在结构风险和开放空间风险之间实现更好的平衡。保守闭集正则化方法也是同时兼顾两种风险的正则化方法。因此,OpenMix+可以实现更低的开放集结构风险。OpenMix+也是一个即插即用模块,可以在最近提出的开放集模型上轻松实现。

5. EXPERIMENTS AND ANALYSIS

进行了三种类型的实验:(1)消融实验验证了OpenMix的每种设计。(2) 在基准数据集上与最近的负数据增强方法进行的比较实验验证了OpenMix和OpenMix+的高效性。(3) 对最近提出的几个模型进行的扩展实验验证了OpenMix和OpenMix+的通用性。

1) 度量指标:known class classification is measured using closed set accuracy (ACC);Unknown class detection is measured by the area under the receiver operating characteristic
curve (ROC);we choose the macro-averaged F1-scores to measure the average accuracy of open set recognition。

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

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

相关文章

12.可视化实现

时间过的很快,不知不觉已到第十二章。经过前面教程的讲解和实践,数据接入服务的功能已初步完成。 此章节将通过可视化的实现,对设备接入进行监控,实时监听设备的接入情况及设备的在线时长。 并且可以通过订阅按钮、取消订阅按钮、查看数据按钮,对上报数据进行实时的跟踪…

旧手机翻身成为办公利器——PalmDock的介绍也使用

旧手机有吧!!! 破电脑有吧!!! 那恭喜你,这篇文章可能对你有点用了。 介绍 这是一个旧手机废物利用变成工作利器的软件。可以在 Android 手机上快捷打开 windows 上的文件夹、文件、程序、命…

4月平板电脑行业线上销售数据分析

由于全球科技发展趋势,如AI技术的应用,以及厂商新品发布计划;同时,平板电脑作为个人电脑的延伸产品,其便携性和生产力相较于手机具有明显优势,这也为行业的进一步发展提供了动力。 据鲸参谋数据统计&#…

美团拼好饭小程序mtgsig1.2分析(补环境分析)

声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!wx a15018601872 本文章未…

【高频】redis快的原因

相关问题: 1.为什么Redis能够如此快速地进行数据存储和检索? 2.Redis作为内存数据库,其内存存储有什么优势吗? 3.Redis的网络模型有何特点,如何帮助提升性能? 一、问题回答 Redis使用了内存数据结构,例如字符串、哈希表、列表、集合、有…

python+pytest+pytest-html+allure集成测试案例

pythonpytestpytest-htmlallure集成测试案例 下面是pythonpytestpytest-htmlallure四个组件同时集成使用的简单案例。 1. 项目结构 project/ │ ├── src/ │ ├── __init__.py │ ├── main.py │ ├── tests/ │ ├── __init__.py │ ├── conftest.p…

【Linux】centos7编写C语言程序,补充:使用yum安装软件包组

确保已安装gcc编译器 C语言程序,一般使用gcc进行编译,需确保已安装gcc。 若没有,可以使用yum安装gcc(版本4.8.5),也可以使用SCL源安装gcc(例如:版本9.3)。 安装gcc&am…

2024.05.29学习记录

1、css面经复习 2、代码随想录二刷 3、rosebush upload组件初步完成

Linux网络编程: udp,tcp协议原理

Linux网络编程: udp,tcp协议原理 一.udp和tcp的介绍1.udp介绍1.udp的特点2.udp的适用场景3.udp效率分析 2.tcp介绍1.tcp的特点2.tcp的适用场景 二.udp协议原理1.udp协议段格式2.udp的缓冲区和全双工通信 三.tcp协议段1.tcp协议段格式2.发送接收缓冲区3.确认应答ACK机制,窗口大小…

C语言---文件操作

【C语言详解】——文件操作&#xff08;建议收藏&#xff09;_c语言 写文件原理-CSDN博客 一、文件的读取 # define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<errno.h> #include<string.h>int main() {FILE * pffopen("C:\\Users\\zhw\\De…

Java设计模式 _行为型模式_观察者模式

一、观察者模式 1、观察者模式 观察者模式 ( Observer Pattern )是一种行为型模式。 常用于对象间存在一对多关系时&#xff0c;比如&#xff0c;当一个对象被修改时&#xff0c;需要自动通知它的依赖对象。 2、实现思路 &#xff08;1&#xff09;、定义被观察者的行为&…

Python Selenium 详解:实现高效的UI自动化测试

落日余辉&#xff0c;深情不及久伴。大家好&#xff0c;在当今软件开发的世界中&#xff0c;自动化测试已经成为保障软件质量和快速迭代的重要环节。而在自动化测试的领域中&#xff0c;UI自动化测试是不可或缺的一部分&#xff0c;它可以帮助测试团队快速验证用户界面的正确性…

Django学习

1.pycharm社区版创建django PyCharm社区版如何创建Django项目并运行_pycharm社区版打开django-CSDN博客 2.Django TemplateDoesNotExist: rest_framework 当我们使用djangorestframework框架时&#xff0c;首先下载pip install djangorestframework 参考博文Django Templat…

MATLAB分类与判别模型算法: 快速近邻法(FastNN)分类程序【含Matlab源码 MX_005期】

算法思路介绍&#xff1a; 1. 数据准备阶段&#xff1a; 生成一个合成数据集 X&#xff0c;其中包含三个簇&#xff0c;每个簇分布在不同的区域。 定义聚类层数 L 和每个层次的子集数量 l。 2. 聚类阶段&#xff1a; 使用K均值聚类算法将初始数据集 X 分成 l 个簇。…

Marin说PCB之如何在主板上补偿链路中的走线的等长误差?

一场雨把我困在这里&#xff0c;你冷漠地看我没有穿雨衣淋成落汤鸡。今天刚刚出门时候看天气预报没有雨&#xff0c;于是我就没有带雨衣骑电动车去公司了&#xff0c;谁知道回来的路上被淋成狗了。天气预报就像是女人的脾气那样&#xff0c;不能完全相信的。 好了&#xff0c;我…

编译安装MySQL服务(LAMP2)

目录 1.初始化设置&#xff0c;将安装mysql 所需软件包传到/opt目录下 &#xff08;1&#xff09;关闭防火墙 &#xff08;2&#xff09;上传软件包到/opt目录 2.安装环境依赖包 3.配置软件模块 4.编译及安装 5.创建mysql用户 6.修改mysql 配置文件 7.更改mysql安装目…

JavaScript-JavaWeb

目录 什么是JavaScript? js引入方式 js基础语法 书写语法 变量 数据据类型 运算符 类型转换 流程语句 js函数 js对象 1.Array 2.String 3.JSON js事件监听 什么是JavaScript? ● JavaScript(简称:JS)是一门跨平台、面向对象的脚本语言。是用来控制网页行为的,它能…

2024了,还有人在问为甚死锁?

大家好&#xff0c;我是javapub。 接上篇提到了锁&#xff0c;《InnoDB有哪些锁类型》。这么多的锁&#xff0c;你有遇到过死锁吗&#xff1f; 死锁是在事务数据库中会发生的一种特殊现象&#xff0c;多个事务在执行过程中&#xff0c;相互等待对方持有的资源&#xff0c;导致…

Docker-一文详解容器通信的基础网络模式及衍生的自定义网络模式

启动容器时&#xff0c;通过-p 宿主机端口:容器端口&#xff0c;就可以通过访问宿主机端口访问到容器&#xff0c;这种原理机制是啥&#xff0c;有没有其它方式可以让宿主机和容器通信&#xff0c;以及容器与容器之间如何通信。带着这几个问题开始学习Docker的网络知识。 文章…

【Linux】初识Linux和Linux环境配置

1.什么是Linux操作系统 说到电脑系统 我想有大多数人会脱口而出&#xff1a;windows、mac 是的&#xff0c;这也是如今市场上主流的两种操作系统。 但是对于IT相关的人士来说&#xff0c;还有一种系统也是必须有姓名 那就是Linux Linux&#xff0c;Linux Is Not UniX 的…