人工智能福利站,初识人工智能,机器学习,第四课

在这里插入图片描述

🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。
🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。
🎉欢迎 👍点赞✍评论⭐收藏

🔎 人工智能领域知识 🔎

链接专栏
人工智能专业知识学习一机器学习专栏
人工智能专业知识学习二机器学习专栏
人工智能专业知识学习三机器学习专栏
人工智能专业知识学习四机器学习专栏

文章目录

  • 🏆 初识人工智能(机器学习)
    • 🔎 一、 机器学习(4)
      • 🍁 31. 什么是聚类算法中的层次聚类?
      • 🍁 32. 什么是神经网络的权重初始化策略?
      • 🍁 33. 什么是优化器(Optimizer)?
      • 🍁 34. 什么是深度学习中的正则化方法?
      • 🍁 35. 什么是数据增强?
      • 🍁 36. 什么是迁移学习?
      • 🍁 37. 什么是循环神经网络(RNN)?
      • 🍁 38. 什么是自动编码器(Autoencoder)?
      • 🍁 39. 解释一下批归一化(Batch Normalization)。
      • 🍁 40. 解释一下卷积操作。

🏆 初识人工智能(机器学习)


🔎 一、 机器学习(4)

在这里插入图片描述


🍁 31. 什么是聚类算法中的层次聚类?

层次聚类是一种无监督聚类算法,通过在数据点之间构建层次化的聚类结构来进行数据分类和群组化。 层次聚类不需要预先指定聚类数量,而是根据数据之间的相似性来自动划分为不同的簇。

层次聚类算法有两种主要的方法:凝聚聚类(Agglomerative Clustering)和分裂聚类(Divisive Clustering)。

  1. 凝聚聚类(自底向上):凝聚聚类从每个数据点作为一个簇开始,然后迭代地将最相似的簇合并成一个新的簇,直到最终形成一个包含所有数据点的簇。该算法通过计算簇与簇之间的相似性(如距离或相似性度量)来决定合并的顺序和方式。

  2. 分裂聚类(自顶向下):分裂聚类从所有数据点作为一个簇开始,然后迭代地将某个簇分裂成更小的簇,直到每个簇仅包含一个数据点。该算法通过计算簇内部数据点的异质性来确定分裂的位置和方式。

层次聚类的优点是可以提供多个层次的聚类结果,以不同的细粒度观察数据的结构。它还可以帮助识别任意大小和形状的簇,并且不需要预先指定聚类数量。然而,层次聚类的计算复杂度相对较高,尤其是对于大型数据集。

在层次聚类中,聚类结果可以用树状结构(称为聚类树或树状图)表示,其中每个节点表示一个簇,节点之间的连接表示簇的合并或分裂过程。根据应用的需求,可以通过剪枝树状图来选择合适的聚类结果,或者根据特定的相似性水平来划分簇。


🍁 32. 什么是神经网络的权重初始化策略?

神经网络的权重初始化策略是指在神经网络模型中初始化权重参数的方法和策略。初始化权重是神经网络模型训练的重要步骤之一,它可以对模型的收敛速度、性能和稳定性产生影响。

以下是一些常用的权重初始化策略:

  1. 常数初始化(Constant Initialization):将所有权重初始化为相同的常数值。例如,可以将所有权重初始化为0或者一个小的随机值。这种初始化策略一般适用于浅层网络或者某些特定的网络层(如全连接层)。

  2. 随机初始化(Random Initialization):将权重初始化为随机值。常见的做法是从均匀分布或者高斯分布中随机采样来初始化权重。这种初始化策略的好处是能够打破对称性,使得模型能够更好地学习。

  3. Xavier初始化(Xavier Initialization):也称为Glorot初始化。这种初始化策略是根据前一层和后一层的单元数来设置权重的初始范围,以保持信号传播的稳定性。通过 Xavier 初始化,可以有效地避免梯度消失或梯度爆炸问题。

  4. He初始化(He Initialization):也称为He-et-al初始化。这种初始化策略是根据前一层的单元数来设置权重的初始范围。与 Xavier 初始化类似,He 初始化主要用于激活函数为 ReLU(Rectified Linear Unit)或其变种的神经网络层。

  5. 预训练初始化(Pretrained Initialization):如果已经有一个在类似任务上训练得到的模型,可以使用其权重作为初始值。这种初始化策略称为预训练初始化,适用于迁移学习或继续训练的场景。

选择合适的权重初始化策略取决于具体的神经网络结构、问题类型和激活函数等因素。合理的权重初始化可以帮助加速模型的收敛,避免梯度问题,提高模型的性能和泛化能力。


🍁 33. 什么是优化器(Optimizer)?

优化器(Optimizer)是深度学习中一种用于调整神经网络模型权重和参数的算法。在神经网络的训练过程中,目标是通过最小化损失函数来优化模型,优化器的作用就是根据损失函数的梯度信息来更新模型的参数,以便逐步优化模型的性能。

优化器通过使用不同的更新规则和算法来更新网络中的权重和偏差,以便实现最小化损失的目标。常见的优化算法有:

  1. 随机梯度下降(Stochastic Gradient Descent,SGD):SGD 是最基本的优化器算法,每次迭代时,它通过计算损失函数对参数的梯度,并进行参数的小幅度更新。

  2. 动量优化器(Momentum Optimizer):动量优化器在 SGD 的基础上引入了动量概念,利用一个动量项来累积之前迭代步骤的梯度,并加速收敛速度。它可以帮助跳出局部最小值,并且在参数更新过程中减少震荡。

  3. 自适应学习率优化器(Adaptive Learning Rate Optimizer):自适应学习率优化器可以根据参数的梯度自动调整学习率的大小。常见的自适应学习率优化器有 AdaGrad、RMSprop 和 Adam 等。

  4. 学习率衰减(Learning Rate Decay):学习率衰减是指在训练过程中逐渐降低学习率的方法。这可以帮助优化器在训练后期更加精细地调整参数,以便更好地收敛。

除了以上列举的算法之外,还有其他更高级的优化器,如 AdaDelta、Nesterov Accelerated Gradient(NAG)等。每种优化器都有其独特的优缺点,选择适合的优化器取决于具体的任务和模型性质。


🍁 34. 什么是深度学习中的正则化方法?

在深度学习中,正则化方法是一种用于减少模型过拟合(Overfitting)的技术。正则化通过对模型的损失函数添加额外的惩罚项,来限制模型参数的增长和复杂度,从而促使模型学习到更一般化的特征和规律。

下面介绍几种常见的深度学习中的正则化方法:

  1. L1 正则化(L1 Regularization):L1 正则化通过在损失函数中增加所有参数的绝对值之和乘以一个正则化参数 λ,来惩罚大部分参数为零的情况。这使得模型趋向于产生稀疏的权重,即将某些特征的权重设置为0,从而实现特征选择和降维的效果。

  2. L2 正则化(L2 Regularization):L2 正则化通过在损失函数中增加所有权重的平方和乘以一个正则化参数 λ,来惩罚权重的大小。这使得模型的权重更加平滑,并降低特征权重之间的差异,从而防止过拟合。

  3. Dropout:Dropout 是一种正则化技术,通过在每次训练迭代中以一定的概率(通常是0.5)随机地丢弃一部分神经元的输出,使得模型不会过度依赖某些特定的神经元,从而减少神经元之间的耦合和过拟合。

  4. Batch Normalization:批标准化是通过对神经网络的每一层在训练过程中进行归一化处理,使得输入数据在每层都具有相似的均值和方差。这有助于加速网络的训练,减少内部协变量偏移,并且可以作为一种正则化的效果。

正则化方法能够帮助模型在训练过程中更好地约束参数,降低过拟合风险,提高模型的泛化能力。在选择正则化方法时,需要根据具体的问题和数据集特点进行合理的调参和选择。


🍁 35. 什么是数据增强?

数据增强(Data Augmentation)是一种在深度学习中常用的预处理技术,通过对训练数据进行一系列随机变换和扩充,来增加样本量并改变样本的外观、姿态或其他方面的特征。这样做的目的是增加数据的多样性,提高模型的鲁棒性和泛化能力。

数据增强的常见操作包括:

  1. 随机翻转(Random Flipping):将图像水平或垂直随机翻转,使得模型对于物体在图像中的位置变化更具鲁棒性。

  2. 随机旋转(Random Rotation):对图像进行随机旋转,可以模拟物体角度的变化,增加模型对于不同角度目标的识别能力。

  3. 随机缩放和裁剪(Random Scaling and Cropping):对图像进行随机的缩放和裁剪操作,改变图像的尺寸和视角,从而增加模型对于不同大小和视野的目标的感知能力。

  4. 随机亮度、对比度和色彩变换(Random Brightness, Contrast, and Color Transformations):对图像进行随机的调整,如改变亮度、对比度和色彩等,增加模型对于不同光照和环境条件的鲁棒性。

  5. 加入噪声(Adding Noise):向图像中添加随机的噪声,如高斯噪声或椒盐噪声,能够模拟真实世界的不完美情况,使得模型更加鲁棒。

通过数据增强,可以有效增加训练数据的多样性,减轻模型的过拟合现象,提高深度学习模型的泛化能力。同时,数据增强也降低了对于大量标注数据的依赖,减少了数据采集和标注的成本。然而,需要注意的是,对于每个应用场景和数据集,适当的数据增强操作需要经过实验验证,以保证扩充后的数据仍然保持正确的标注和可解释性。


🍁 36. 什么是迁移学习?

迁移学习(Transfer Learning)是一种机器学习方法,通过将已经在一个任务上学习到的知识和模型参数转移到另一个相关的任务上,从而加快新任务的学习过程,提高模型性能。

传统的机器学习方法通常在每个任务上都需要从头开始学习和构建模型,这样会消耗大量的计算资源和标注数据。而迁移学习则可以通过在源任务上学习到的知识和模型参数,提供给目标任务来减少学习成本。迁移学习适用于源任务和目标任务之间存在一定相关性的情况下。

迁移学习的具体应用方法有以下几种:

  1. 特征提取(Feature Extraction):将在源任务上预训练好的深度神经网络模型的前几层(也称为特征提取层)冻结,并保留其已学到的权重。然后将目标任务的数据传入模型,仅训练后续层(全连接层等),以学习适应目标任务的特征表示。

  2. 神经网络微调(Fine-tuning):将在源任务上预训练好的深度网络模型的权重作为初始权重,然后在目标任务上继续使用反向传播算法微调模型参数。此方法适用于目标任务与源任务差异较大的情况,可以更充分地调整网络权重以适应目标任务的特征。

  3. 多任务学习(Multi-task Learning):使用共享的底层网络层来同时学习多个相关的任务。通过训练网络在多个任务上共享特征提取层,可以提高模型的泛化能力和学习效率。

通过迁移学习,可以克服数据稀缺、计算资源有限、标注成本高昂等问题,更好地应对实际的问题场景。同时,迁移学习还可以使得模型更具普适性,能够从一个任务中学到通用的知识,并将其应用于其他任务中。然而,需要注意的是,迁移学习的成功与否取决于源任务和目标任务之间的相似性和相关性,适当的选择源任务和设计迁移学习策略非常重要。


🍁 37. 什么是循环神经网络(RNN)?

循环神经网络(Recurrent Neural Network,RNN)是一种在序列数据上处理和学习的神经网络模型。与传统的前馈神经网络不同,RNN在处理序列数据时引入了时间依赖关系。

RNN的主要特点是它有一个循环结构,可以将前一个时间步的输出作为当前时间步的输入,这样独特的结构使得RNN可以对序列数据进行记忆和建模,能够捕捉序列中的时间依赖关系。

RNN的一个重要组成部分是隐藏状态(Hidden State),它可以看作是网络的记忆单元。在每个时间步中,RNN会根据当前输入和前一个时间步的隐藏状态来计算当前时间步的隐藏状态。这种记忆机制使得网络能够记住之前的信息,从而更好地理解和预测序列中的下一个元素。

RNN的基本形式是简单循环神经网络(Simple RNN),它使用全连接层将当前时间步的输入和前一个时间步的隐藏状态进行计算。然而,简单RNN存在梯度消失和梯度爆炸的问题,导致难以处理长期依赖关系。为了解决这个问题,出现了一些改进的RNN变体,如长短期记忆网络(Long Short-Term Memory,LSTM)和门控循环单元(Gated Recurrent Unit,GRU)等。这些变体通过引入门控机制来控制信息的传递和遗忘,更有效地捕捉和利用序列中的长期依赖关系。

RNN在自然语言处理(NLP)、语音识别、机器翻译、时间序列预测等领域取得了很好的应用效果。它能够处理可变长度的输入序列,并对序列中的每个元素进行建模,具有较强的记忆能力和灵活性。然而,RNN也存在着训练困难、计算效率低等问题。随着深度学习的发展,一些基于RNN的变体,如双向RNN、注意力机制等被提出来进一步提升性能。


🍁 38. 什么是自动编码器(Autoencoder)?

自动编码器(Autoencoder)是一种无监督学习的神经网络模型,用于学习数据的低维表示或压缩表示。它由一个编码器和一个解码器组成,可以将输入数据编码为低维的隐藏特征表示,再通过解码器进行逆转换重建输入数据。

自动编码器的目标是最小化输入数据与重建数据之间的重构误差,通过这个过程,自动编码器学习到的低维隐藏表示可以提取数据的重要特征,并且保留足够的信息以便能够还原输入数据。

自动编码器的基本结构包括:

  1. 编码器(Encoder):将输入数据映射到低维的隐藏表示。编码器通常由多个全连接层组成,其中最后一层的输出就是隐藏表示。

  2. 解码器(Decoder):将隐藏表示映射回原始空间,并生成与输入数据尽可能接近的重建数据。解码器的结构与编码器相似,但是在输出层使用的激活函数可能会不同。

自动编码器的训练过程包括两个阶段:

  1. 编码阶段:输入数据通过编码器,经过降维处理得到隐藏表示。这一过程可以看作是特征提取。

  2. 解码阶段:由隐藏表示通过解码器进行逆转换,重建输入数据。这一过程可以看作是特征重建。

通过这样的训练过程,自动编码器可以学习到一种紧凑而有表达力的数据表示,它能够去除噪声、冗余和不重要的特征,具有一定的去噪和降维能力。

自动编码器有广泛的应用,包括特征学习、数据压缩、图像去噪、生成模型、生成对抗网络(GANs)等。它可以通过无监督学习的方式来发现数据中的结构和模式,并在一些特定任务中提供有用的特征表示。


🍁 39. 解释一下批归一化(Batch Normalization)。

批归一化(Batch Normalization)是一种常用的深度学习技术,用于加速神经网络的训练过程并提高模型的稳定性。它通过对每个小批量输入进行归一化处理,使得每层输入的分布被规范化,从而减少了内部协变量偏移(Internal Covariate Shift)。

内部协变量偏移是指在深度神经网络中,由于每一层的参数发生变化,前一层输出的分布会发生变化,导致训练过程中每一层需要不断地适应前一层输出分布的变化。这会使得网络的收敛过程变得缓慢,并且对参数初始化和学习率的选择非常敏感。

批归一化通过将每一层的输入进行归一化处理,使得其均值接近0,标准差接近1。归一化的计算公式如下:

z = (x - μ) / σ

其中,x是输入数据,μ是批次中的均值,σ是批次中的标准差。归一化后的数据z通过缩放和平移操作,将其映射到一个新的均值为β,方差为γ^2的分布上,最终得到归一化后的输出。

批归一化的好处包括:

  1. 加速收敛:通过将每层的输入归一化,使得激活函数的输入保持在较小的范围内,有助于避免梯度消失或爆炸的问题,从而加快模型的收敛速度。

  2. 提高泛化能力:批归一化可以一定程度上减少对参数初始化的依赖,使网络更具鲁棒性,提高模型的泛化能力。

  3. 抑制过拟合:批归一化具有正则化的效果,通过在每个小批量上进行规范化,可以一定程度上抑制网络的过拟合。

  4. 具有规范化的效果:由于每层输入的归一化处理,批归一化可以一定程度上减少网络对输入数据分布的依赖,从而使网络对于某些变换、平移、旋转等数据的扰动具有鲁棒性。

批归一化已经广泛应用于各种深度神经网络结构中,包括卷积神经网络(CNN)、完全连接神经网络(FCN)等。它是一种简单而有效的技术,能够显著提高神经网络的性能和训练效果。


🍁 40. 解释一下卷积操作。

卷积操作是一种在深度学习中常用的数学运算,用于处理二维或多维数据,特别是在图像处理和计算机视觉任务中广泛应用。卷积操作通过滑动一个卷积核(也称为过滤器)在输入数据上进行计算,以提取特征信息。

在二维情况下,卷积操作可以理解为一个滑动窗口在输入图像上移动,对于窗口内的图像区域,通过乘以对应的权重矩阵进行加权求和的操作。这个滑动窗口的大小和步长(即滑动的间隔)由卷积核的大小和步长来确定。同样,对于三维或更高维的数据,卷积操作的原理类似。

数学上,卷积操作可以表示为两个函数的加权求和。假设有两个函数f和g,它们的卷积操作可表示为:

(f * g)(t) = ∫f(a)g(t-a)da

其中,*表示卷积操作,t是时间(或空间)上的变量,a是积分变量。对于离散情况,卷积操作可以表示为:

(f * g)(t) = ∑f(a)g(t-a)

在深度学习中,卷积操作常用于卷积神经网络(Convolutional Neural Networks, CNNs)中。CNNs通过使用多个卷积核,逐层地进行卷积,从而提取输入数据的不同特征。卷积操作可以捕获图像的局部关系和特征,并通过堆叠多个卷积层实现对更加复杂的特征的学习。

卷积操作具有以下几个特点:

  1. 共享参数:在卷积操作中,卷积核的权重是共享的,因此可以减少模型的参数量,提高模型的泛化能力。

  2. 局部感知:卷积操作只关注输入数据的局部区域,而不会受到整体位置的影响,这使得卷积操作在处理图像和其他空间数据时能够有效地保留空间特征。

  3. 参数共享:由于卷积核的权重是共享的,CNNs可以对不同位置上的特征使用相同的权重,实现对平移不变性的建模。

卷积操作是深度学习中的关键操作之一,它在图像处理、自然语言处理和其他许多领域都取得了很好的效果。通过卷积操作,可以提取输入数据的特征表示,帮助神经网络学习到更加复杂和抽象的特征,并在许多计算机视觉和模式识别任务中取得出色的性能。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

重写Sylar基于协程的服务器(3、协程模块的设计)

重写Sylar基于协程的服务器(3、协程模块的设计) 重写Sylar基于协程的服务器系列: 重写Sylar基于协程的服务器(0、搭建开发环境以及项目框架 || 下载编译简化版Sylar) 重写Sylar基于协程的服务器(1、日志模…

一站式在线协作开源办公软件ONLYOFFICE,协作更安全更便捷

1、ONLYOFFICE是什么? ONLYOFFICE是一款功能强大的在线协作办公软件,可以创建编辑Word文档、Excel电子表格,PowerPoint(PPT)演示文稿、Forms表单等多种文件。ONLYOFFICE支持多个平台,无论使用的是 Windows、…

深入了解c语言字符串 2

深入了解c语言字符串 2 一 使用 scanf进行字符串的输入:1.1输入单词(不包含空格):1.2 输入带空格的整行文本:1.3 处理输入缓冲区:1.4 注意安全性: 二 使用 printf 字符串的输出:三 输…

2024美赛C题全网最早思路 网球运动(持续更新)

2024美赛已经于今天早上6点准时公布题目。本次美赛将全程跟大家一起战斗冲刺O奖!思路持续更新。 2024 MCM Problem C: Momentum in Tennis (网球运动的势头) 注:在网球运动中,"势头"通常指的是比赛中因一系…

Jmeter学习系列之五:线程组(Thread Group)

前言 线程组是一系列线程的集合,每一个线程代表着一个正在使用应用程序的用户。在 jmeter 中,每个线程意味着模拟一个真实用户向服务器发起请求。 在 jmeter 中,线程组组件运行用户设置线程数量、初始化方式等等配置。 例如,如果你设置线程数为 100,那么 jmeter 将创建…

2024美赛数学建模C题思路分析 - 网球的动量

1 赛题 问题C:网球的动量 在2023年温布尔登绅士队的决赛中,20岁的西班牙新星卡洛斯阿尔卡拉兹击败了36岁的诺瓦克德约科维奇。这是德约科维奇自2013年以来首次在温布尔登公开赛失利,并结束了他在大满贯赛事中历史上最伟大的球员之一的非凡表…

双非本科准备秋招(13.1)—— 力扣 栈、队列与堆

1、103. 二叉树的锯齿形层序遍历 昨天做的二叉树的层序遍历,把代码直接拿过来。 这个题要求的是一个Z型遍历,如下图。 用一个变量f记录正反顺序,然后使用LinkedList记录答案,下图可以看到LinkedList继承了Deque,所以…

k8s二进制及负载均衡集群部署详解

目录 常见部署方式 二进制部署流程 环境准备 操作系统初始化配置 关闭防火墙 配置SELinux 关闭SWAP 根据规划设置主机名 在master添加hosts,便于主机名解析 调整内核参数 配置时间同步 部署docker引擎 在所有node节点部署docker引擎 部署etcd集群 签发…

【文本到上下文 #8】NLP中的变形金刚:解码游戏规则改变者

一、说明 欢迎来到我们对不断发展的自然语言处理 (NLP) 领域的探索的第 8 章。在本期中,我们将重点介绍一项重塑 NLP 格局的突破性创新:Transformers。在我们之前对 seq2seq 模型、编码器-解码器框架和注意力机制的讨论之后&#…

flutter如何实现省市区选择器

前言 当我们需要用户填写地址时,稳妥的做法是让用户通过“滚轮”来滑动选择省份,市,区,此文采用flutter的第三方库来实现这一功能,比调用高德地图api简单一些。 流程 选择库 这里我选择了一个最近更新且支持中国的…

ABAP Range Table:RANGES的使用

目录 Range TableRANGERANGES RANGE的四个参数SIGNOPTIONLOWHIGH示例程序 Range Table 1、Range Table 概述 RANGE TABLE为 SAP R/3系统标准内表的一种,结构与 Selection Table 一致, 由 SIGN, OPTION, LOW 和 HIGH字段组成; 可以通过 TYPE…

面试宝典之深谈JVM

面试宝典之深谈JVM 1.为什么需要JVM,不要JVM可以吗? 1.JVM可以帮助我们屏蔽底层的操作系统 一次编译,到处运行 2.JVM可以运行Class文件 2.JDK,JRE以及JVM的关系 3.我们的编译器到底干了什么事? 仅仅是将我们的 .ja…

【动态规划】【C++算法】1340. 跳跃游戏 V

作者推荐 【动态规划】【字符串】【表达式】2019. 解出数学表达式的学生分数 本文涉及知识点 动态规划汇总 LeetCode1340跳跃游戏 V 给你一个整数数组 arr 和一个整数 d 。每一步你可以从下标 i 跳到&#xff1a; i x &#xff0c;其中 i x < arr.length 且 0 < x…

用户界面(UI)、用户体验(UE)和用户体验(UX)的差异

对一个应用程序而言&#xff0c;UX/UE (user experience) 设计和 UI (user interface) 设计非常重要。UX设计包括可视化布局、信息结构、可用性、图形、互动等多个方面。UI设计也属于UX范畴。正是因为三者在一定程度上具有重叠的工作内容&#xff0c;很多从业多年的设计师都分不…

2024年美国大学生数学建模A题思路分析 - 资源可用性和性别比例

# 1 赛题 问题A&#xff1a;资源可用性和性别比例 虽然一些动物物种存在于通常的雄性或雌性性别之外&#xff0c;但大多数物种实质上是雄性或雌性。虽然许多物种在出生时的性别比例为1&#xff1a;1&#xff0c;但其他物种的性别比例并不均匀。这被称为适应性性别比例的变化。…

STM32CubeIDE 使用标准库来编写程序

这些天我想找一个软件来实现软件的替代。就找到了st 的生态。可是现在st 生态都在极力的推荐HAL 库,但是习惯了标准库的朋友们,还不是很习惯。 先上总结一下,为了好记忆: 一、 在编译栏做如下设置 1、头文件设置 2、源文件设置 二、指定具体的预定义宏 1、USE_STDPERIPH_D…

angular 表单FormGroup笔记

一、校验 1、校验提示 <nz-form-item><nz-form-label>手机号码</nz-form-label><nz-form-control [nzErrorTip]"mobileTemplate"><input nz-input formControlName"mobile" placeholder"请输入" /><ng-templ…

【Java并发】聊聊Disruptor背后高性能的原理

为什么需要Disruptor 对于单机生产者消费者来说&#xff0c;JUC本身提供了阻塞队列&#xff0c;ArrayBlockingQueue、LinkedBlockingQueue 等&#xff0c;但是为了保证数据安全&#xff0c;使用了reentrantLock进行加锁操作会影响性能&#xff0c;另一方面&#xff0c;本身如果…

正点原子--STM32中断系统学习笔记(1)

1、什么是中断&#xff1f; 原子哥给出的概念是这样的&#xff1a;打断CPU正常执行的程序&#xff0c;转而处理紧急程序&#xff0c;然后返回原暂停的程序继续运行&#xff0c;就叫中断。 当发生中断时&#xff0c;当前执行的程序会被暂时中止&#xff0c;进而进入中断处理函…