机器学习/算法工程师面试题目与答案-数学基础部分

机器学习/算法工程师面试题目--数学基础部分

  • 一、数学基础
    • 1、微积分
      • SGD,Momentum,Adagard,Adam原理
      • L1不可导的时候该怎么办
      • sigmoid函数特性
    • 2、统计学,概率论
      • 求 Max(a, b) 期望
      • 拿更长的玫瑰花的最好策略
      • 最大化工作天数的员工数
      • 切比雪夫不等式
      • 随机截成三段组成三角形的概率
      • 最大似然估计和最大后验概率的区别
      • 什么是共轭先验分布
      • 概率和似然的区别
      • 频率学派和贝叶斯学派的区别
      • 从均匀分布变换到标准正态分布
      • Lasso的损失函数
      • Sfit特征提取和匹配的具体步骤
    • 3、线性代数
      • 求mk矩阵A和nk矩阵的欧几里得距离?
      • PCA中第一主成分是第一的原因?
      • 欧拉公式
      • 矩阵正定性的判断,Hessian矩阵正定性在梯度下降中的应用
      • 概率题:抽蓝球红球,蓝结束红放回继续,平均结束游戏抽取次数
      • 讲一下PCA
      • 拟牛顿法的原理
      • 编辑距离

请添加图片描述

一、数学基础

1、微积分

SGD,Momentum,Adagard,Adam原理

  • SGD
    -原理: SGD 是最简单的优化方法之一,它通过计算损失函数相对于参数的梯度来更新模型的参数。每次更新时,SGD 选择一个随机的样本或一小批样本来计算梯度,而不是整个数据集的梯度,这样可以显著减少计算成本。
    -更新规则: θ = θ − η ∇ θ J ( θ ; x ( i ) , y ( i ) ) \theta = \theta - \eta \nabla_{\theta} J(\theta; x^{(i)}, y^{(i)}) θ=θηθJ(θ;x(i),y(i)), 其中, η \eta η 是学习率

  • Momentum
    -Momentum 方法借鉴了物理中的动量概念,帮助SGD在相关方向上加速SGD并抑制震荡,通过引入“惯性”来更快地收敛。
    -更新规则:引入变量 𝑣 代表动量,更新规则为 v ← γ v + η ∇ θ J ( θ ) v \leftarrow \gamma v + \eta \nabla_{\theta} J(\theta) vγv+ηθJ(θ), 然后 θ ← θ − v \theta \leftarrow \theta - v θθv, 其中, η \eta η 是学习率, γ \gamma γ 是动量系数,通常设置为接近 1 的值(例如 0.9)以保持之前梯度的贡献。

  • Adagard
    -原理: Adagrad 自适应地调整每个参数的学习率,对于出现频率较低的特征给予更大的学习率,适合处理稀疏数据。
    -更新规则: θ = θ − η G t + ϵ ⊙ ∇ θ J ( θ ) \theta = \theta - \frac{\eta}{\sqrt{G_t + \epsilon}} \odot \nabla_{\theta} J(\theta) θ=θGt+ϵ ηθJ(θ), 其中, η \eta η 是初始学习率, ϵ \epsilon ϵ 是一个很小的数(例如 1 0 − 8 10^{-8} 108)以避免除以零, G t G_t Gt 是一个对角矩阵,其对角线元素等于参数的梯度平方的累积,即 G t = G t − 1 + ∇ θ J ( θ ; x ( i ) , y ( i ) ) ⊗ ∇ θ J ( θ ; x ( i ) , y ( i ) ) G_t = G_{t-1} + \nabla_{\theta} J(\theta; x^{(i)}, y^{(i)}) \otimes \nabla_{\theta} J(\theta; x^{(i)}, y^{(i)}) Gt=Gt1+θJ(θ;x(i),y(i))θJ(θ;x(i),y(i))

  • Adam
    -原理: Adam(Adaptive Moment Estimation)结合了Momentum和RMSprop(一种自适应学习率方法)的思想,不仅考虑了梯度的一阶矩估计(即均值,Momentum)也考虑了二阶矩估计(即未根号的方差,RMSprop)。
    -更新规则: Adam 更新规则复杂一些,包括偏差校正和自适应学习率。主要步骤为计算梯度的一阶矩和二阶矩的指数移动平均,然后对这些矩估计进行偏差校正,最后用校正后的值更新参数。即:
    First Moment Estimation: m t = β 1 m t − 1 + ( 1 − β 1 ) ∇ θ J ( θ ; x ( i ) , y ( i ) ) m_t = \beta_1 m_{t-1} + (1 - \beta_1) \nabla_{\theta} J(\theta; x^{(i)}, y^{(i)}) mt=β1mt1+(1β1)θJ(θ;x(i),y(i))
    Second Moment Estimation: v t = β 2 v t − 1 + ( 1 − β 2 ) ( ∇ θ J ( θ ; x ( i ) , y ( i ) ) ) 2 v_t = \beta_2 v_{t-1} + (1 - \beta_2) (\nabla_{\theta} J(\theta; x^{(i)}, y^{(i)}))^2 vt=β2vt1+(1β2)(θJ(θ;x(i),y(i)))2
    Bias Correction: m ^ t = m t 1 − β 1 t \hat{m}_t = \frac{m_t}{1 - \beta_1^t} m^t=1β1tmt, v ^ t = v t 1 − β 2 t \hat{v}_t = \frac{v_t}{1 - \beta_2^t} v^t=1β2tvt (由于 m t , v t m_t,v_t mt,vt是从初始化为0的向量开始的,它们会偏向于0,特别是在初始阶段。因此,需要进行偏差修正,以得到更准确的估计。)
    参数更新: θ = θ − η v ^ t + ϵ m ^ t \theta = \theta - \frac{\eta}{\sqrt{\hat{v}_t} + \epsilon} \hat{m}_t θ=θv^t +ϵηm^t
    其中, η \eta η 是学习率, β 1 \beta_1 β1 β 2 \beta_2 β2 是衰减率通常分别设为 0.9 和 0.999, ϵ \epsilon ϵ 是一个很小的数(例如 1 0 − 8 10^{-8} 108),以避免除以零的情况。

L1不可导的时候该怎么办

L1 正则化由于在 θ = 0 \theta=0 θ=0 处不可导,常常在优化过程中带来问题。解决这个问题的常用方法是使用次梯度(subgradient)方法:

  • 次梯度: 在不可导点,L1正则化的次梯度可以定义为符号函数,即 sgn( θ \theta θ), 当 θ ≠ 0 \theta \neq 0 θ=0 时,有 sgn ⁡ ( θ ) = θ ∣ θ ∣ \operatorname{sgn}(\theta) = \frac{\theta}{|\theta|} sgn(θ)=θθ, 当 θ = 0 \theta = 0 θ=0 时,次梯度的取值范围为 [ − 1 , 1 ] [-1, 1] [1,1]

sigmoid函数特性

Sigmoid 函数定义为: σ ( x ) = 1 1 + e − x \sigma(x) = \frac{1}{1 + e^{-x}} σ(x)=1+ex1
该函数具有以下特性:

  • 输出范围:Sigmoid 函数的输出始终在 ( 0 , 1 ) (0, 1) (0,1) 之间,适用于将任意实数映射到概率区间,常用于二分类问题。

  • S 形曲线:Sigmoid 函数是一个 S 形的曲线,能够从 0 平滑过渡到 1

  • 非线性:作为一个非线性函数,Sigmoid 可用于神经网络中的激活函数,帮助网络学习复杂的模式。

  • 导数:Sigmoid 函数的导数可以用其自身表示: σ ′ ( x ) = σ ( x ) ( 1 − σ ( x ) ) \sigma'(x) = \sigma(x)(1 - \sigma(x)) σ(x)=σ(x)(1σ(x)),这一性质使得在梯度计算中非常方便。

  • 饱和性:当输入 x x x 非常大或非常小时,Sigmoid 函数的导数接近于 0,可能导致梯度消失问题,这会使得网络训练中的权重更新非常缓慢。

  • 虽然 Sigmoid 函数在早期的神经网络模型中被广泛使用,但由于易于饱和和梯度消失的问题,现代深度学习通常更倾向于使用 ReLU 及其变种作为激活函数。

2、统计学,概率论

求 Max(a, b) 期望

a,b~U[0,1],互相独立,求Max(a,b)期望
a , b a, b a,b 独立且均匀分布于 [ 0 , 1 ] [0, 1] [0,1]。设 Z = max ⁡ ( a , b ) Z = \max(a, b) Z=max(a,b)。概率 P ( Z ≤ z ) P(Z \leq z) P(Zz) 表示 a ≤ z a \leq z az b ≤ z b \leq z bz 的概率,因为 a a a b b b 独立,所以: P ( Z ≤ z ) = P ( a ≤ z ) P ( b ≤ z ) = z 2 P(Z \leq z) = P(a \leq z)P(b \leq z) = z^2 P(Zz)=P(az)P(bz)=z2
概率密度函数 f Z ( z ) f_Z(z) fZ(z) P ( Z ≤ z ) P(Z \leq z) P(Zz) 的导数: f Z ( z ) = 2 z f_Z(z) = 2z fZ(z)=2z
期望 E ( Z ) E(Z) E(Z) 为: E ( Z ) = ∫ 0 1 z ⋅ 2 z d z = 2 ∫ 0 1 z 2 d z = 2 ⋅ 1 3 = 2 3 E(Z) = \int_0^1 z \cdot 2z \, dz = 2 \int_0^1 z^2 \, dz = 2 \cdot \frac{1}{3} = \frac{2}{3} E(Z)=01z2zdz=201z2dz=231=32

拿更长的玫瑰花的最好策略

一个活动,n个女生手里拿着长短不一的玫瑰花,无序的排成一排,一个男生从头走到尾,试图拿更长的玫瑰花,一旦拿了一朵就不能再拿其他的,错过了就不能回头,问最好的策略?
最优策略通常是“分段选择法”。具体地,可以设定一个阈值,例如只在前 k k k 朵中观察而不选择,然后从第 k + 1 k+1 k+1 朵开始,选择第一朵比之前所有 k k k 朵都要长的玫瑰花。这里 k k k 的最优选择通常依赖于总数 n n n 的一个函数,如 k ≈ n / e k \approx n/e kn/e

最大化工作天数的员工数

问题:某大公司有这么一个规定:只要有一个员工过生日,当天所有员工全部放假一天。但在其余时候,所有员工都没有假期,必须正常上班。这个公司需要雇用多少员工,才能让公司一年内所有员工的总工作时间期望值最大?
这个问题可以转化为求解最大化非休息天数的期望值。每个员工生日独立,每天有员工过生日的概率是 1 − ( 364 / 365 ) n 1 - (364/365)^n 1(364/365)n。总工作天数的期望值是 365 × k × ( 364 / 365 ) n 365\times k \times (364/365)^n 365×k×(364/365)n。通过求导找到此函数的最大值即可,求导设为0,得求解得到答案为365。

切比雪夫不等式

切比雪夫不等式提供了任意随机变量 X X X 的概率上界,其数学形式是:
P ( ∣ X − μ ∣ ≥ k σ ) ≤ 1 k 2 P(|X - \mu| \geq k\sigma) \leq \frac{1}{k^2} P(Xμ)k21
其中 μ \mu μ X X X 的均值, σ \sigma σ 是标准差, k k k 是任意正数。

随机截成三段组成三角形的概率

一根绳子,随机截成3段,可以组成一个三角形的概率有多大
这个经典问题的答案是 1 4 \frac{1}{4} 41。简单解释是,只有当三段中的每一段都小于另外两段之和时,才能形成三角形。在均匀随机切割的情况下,这一条件的概率是 1 4 \frac{1}{4} 41

最大似然估计和最大后验概率的区别

最大似然估计和最大后验概率的区别?
最大似然估计(MLE):估计参数以最大化观测数据的似然函数。
最大后验概率(MAP):除了似然函数,还考虑了参数的先验分布,估计参数以最大化后验概率

什么是共轭先验分布

在贝叶斯分析中,如果后验分布和先验分布属于同一类分布族,则称这两个分布为共轭分布。共轭先验使得数学处理和分析变得更加简便。

概率和似然的区别

概率:描述了在给定参数的情况下观测到某数据的可能性。
似然:在给定观测数据的情况下,描述不同参数可能性的函数。

频率学派和贝叶斯学派的区别

频率学派:将概率理解为长期频率,假设参数是固定的未知量,重点在于通过数据推断。
贝叶斯学派:将概率理解为对不确定性的度量,参数是随机变量,使用先验分布和数据来更新对参数的信念。

从均匀分布变换到标准正态分布

0~1均匀分布的随机器如何变化成均值为0,方差为1的随机器
假设变量 U U U 服从均匀分布 U ∼ Uniform ( 0 , 1 ) U \sim \text{Uniform}(0,1) UUniform(0,1)。要将 U U U 变换为标准正态分布 Z ∼ N ( 0 , 1 ) Z \sim N(0,1) ZN(0,1),我们可以使用逆变换法。具体步骤如下:

  1. 定义变量:设 U U U 是在区间 ( 0 , 1 ) (0,1) (0,1) 上均匀分布的随机变量。
  2. 用逆变换:计算 Z = Φ − 1 ( U ) Z = \Phi^{-1}(U) Z=Φ1(U),其中 Φ − 1 \Phi^{-1} Φ1 是标准正态分布的逆累积分布函数。

这里的 Φ − 1 \Phi^{-1} Φ1 通常无法用封闭形式表达,但可以通过数值方法如查表或特定的数学软件函数(如 MATLAB 的 norminv 或 Python 的 scipy.stats.norm.ppf)来实现。

标准正态分布的累积分布函数 Φ ( z ) \Phi(z) Φ(z) 定义为:
Φ ( z ) = 1 2 π ∫ − ∞ z e − t 2 2 d t \Phi(z) = \frac{1}{\sqrt{2\pi}} \int_{-\infty}^z e^{-\frac{t^2}{2}} \, dt Φ(z)=2π 1ze2t2dt,因此,逆变换 Φ − 1 ( u ) \Phi^{-1}(u) Φ1(u) 是求解 u = Φ ( z ) u = \Phi(z) u=Φ(z) z z z 的解。

Lasso的损失函数

Lasso回归的损失函数是线性回归损失与 L ( β ) L(\beta) L(β) 正则化项的组合:
L ( β ) = ∥ Y − X β ∥ 2 + λ ∥ β ∥ 1 L(\beta) = \lVert Y - X\beta \rVert^2 + \lambda \lVert \beta \rVert_1 L(β)=Y2+λβ1
其中:
- Y Y Y 是响应变量向量,
- X X X 是设计矩阵,
- β \beta β 是系数向量,
- λ \lambda λ 是正则化参数,用于控制系数的稀疏性。

Sfit特征提取和匹配的具体步骤

  1. 尺度空间极值检测
    构建尺度空间:这是通过对图像使用高斯模糊并逐步增加模糊程度来完成的,每个新图像都是在前一个图像的基础上进一步模糊得到的。
    查找尺度空间极值:在尺度空间中,每个像素都与它的邻居(同尺度的8个邻居和相邻尺度的18个邻居,共26个邻居)比较,以找到局部最大值和最小值,这些极值点是潜在的关键点。
  2. 精确定位关键点
    关键点定位:对尺度空间的极值点进行精确定位。这一步包括通过拟合三维二次函数来确定关键点的位置、尺度和比例。
    消除边缘响应:因为边缘的响应值比角点的大,所以需要消除稳定性差的边缘响应点。
  3. 关键点方向赋值
    方向赋值:每个关键点根据其局部图像性质赋予一个或多个方向,这使得 SIFT 描述符不受图像旋转的影响。
    计算梯度和方向:在关键点的邻域内计算图像梯度和方向,基于这些梯度分布,每个关键点被赋予主方向。
  4. 生成关键点描述符
    关键点描述:在每个关键点周围的区域内,根据关键点的尺度,选取相应的区域,然后在这个区域内创建描述符。描述符是通过计算图像梯度方向直方图来生成的,通常形成一个包含多个方向的直方图。
  5. 关键点匹配
    特征匹配:两幅图像中的 SIFT 特征通过比较它们的描述符来进行匹配。最常用的方法是寻找最近邻描述符,通常使用欧氏距离来度量。
    比例测试:为了提高匹配的可靠性,可以采用 Lowe 的比例测试,即保留那些比第二近邻距离小很多的匹配点(例如,最近邻距离是第二近邻距离的50%)。
    这些步骤概述了 SIFT 算法的核心过程,从特征提取到特征描述再到特征匹配。在计算机视觉应用中,这些步骤广泛用于图像识别、机器人导航、3D 建模等多种场景。

3、线性代数

求mk矩阵A和nk矩阵的欧几里得距离?

若要求两个矩阵 𝐴 和 𝐵 的欧几里得距离,首先需要注意的是,矩阵 𝐴 和 𝐵 必须具有相同的维度。假设矩阵 𝐴 是m×k 维度,矩阵 𝐵必须也是 m×k 维度。如果 𝐵是 n×k 维度,且 𝑛 ≠ 𝑚,那么直接求这两个矩阵的欧几里得距离是不合适的,因为它们的形状不一致。但如果确实有 m=n,则两个矩阵 𝐴 和 𝐵 的欧几里得距离可以通过以下方式计算:
dist ( A , B ) = ∑ i = 1 m ∑ j = 1 k ( A i j − B i j ) 2 \text{dist}(A, B) = \sqrt{\sum_{i=1}^{m} \sum_{j=1}^{k} (A_{ij} - B_{ij})^2} dist(A,B)=i=1mj=1k(AijBij)2
当 𝑛 ≠ 𝑚,替代方法有:

  • 填充
    如果可能,重新定义问题或调整数据,使两个矩阵具有相同的维度。例如,可以通过添加额外的零行或列来对较小的矩阵进行“填充”,使其尺寸与较大的矩阵匹配。
  • 使用不同的相似性/距离度量
    采用适用于不同维度数据的度量方式,例如:
    最大均值差异(Maximum Mean Discrepancy, MMD):这是一种衡量两个概率分布差异的方法,可以通过在两个矩阵的行上计算应用,尤其是在机器学习中用于比较样本分布。
    曼哈顿距离 或 余弦相似性:这些度量可以在某种程度上调整应用于不同维度的数据,特别是在处理文本或频率数据时。
  • 特征提取或降维
    对两个矩阵应用特征提取或降维技术(如主成分分析(PCA),自动编码器等),以生成具有相同维度的新表示,然后再计算这些新表示之间的欧几里得距离。
  • 核方法
    使用核技术将原始空间映射到一个更高维的特征空间,在这个新空间中可能更容易比较不同维度的数据。

PCA中第一主成分是第一的原因?

在PCA中,每个主成分都是正交的(互相垂直),并且每个新的主成分都捕获了剩余数据中最大的方差。因此,第一主成分是最重要的,因为它单独包含了最大的信息量。
PCA 目标: max ⁡ ∥ v ∥ = 1 { v T Σ v } \quad \max_{\|v\| = 1} \{ v^T \Sigma v \} maxv=1{vTΣv}
第一主成分: PC1 = X v 1 \quad \text{PC1} = X v_1 PC1=Xv1

欧拉公式

e i x = cos ⁡ ( x ) + i sin ⁡ ( x ) e^{ix} = \cos(x) + i\sin(x) eix=cos(x)+isin(x)
其中 e 是自然对数的底数(大约等于 2.71828), i i i 是虚数单位(满足 i 2 = − 1 i^2=-1 i2=1).
欧拉公式提供了一个强大的连接,将指数函数(通常在实数域中定义)扩展到复数域。这个公式可以用于将复指数函数表示为正弦和余弦函数的和,这在分析振动或波动现象时非常有用。
特殊情况:欧拉恒等式
x = π x=π x=π 时,欧拉公式变为著名的欧拉恒等式:
e i π + 1 = 0 e^{i\pi} + 1 = 0 e+1=0
这个恒等式被称为“数学中最漂亮的公式”,因为它简洁地联系了五个基本数学常数.

矩阵正定性的判断,Hessian矩阵正定性在梯度下降中的应用

  • 矩阵正定性的判断
    一个实对称矩阵 ( A ) 被称为正定的,如果对所有非零向量 ( x ),都有 ( x^T A x > 0 )。判断一个矩阵是否正定可以通过以下方法:
    -特征值:一个实对称矩阵是正定的当且仅当它的所有特征值都是正的。
    -主子式:矩阵的所有主子式(从左上角开始的子矩阵的行列式)必须为正。
    -Cholesky 分解:如果一个矩阵可以进行 Cholesky 分解(即 ( A = LL^T ) 其中 ( L ) 是下三角矩阵),那么这个矩阵是正定的。
  • Hessian 矩阵正定性在梯度下降中的应用
    在优化问题中,Hessian 矩阵是目标函数的二阶导数矩阵。它描述了目标函数的局部曲率,对算法的收敛速度和稳定性有重要影响。
    -正定性的意义
    正定 Hessian 矩阵:如果在某点的 Hessian 矩阵是正定的,那么该点是局部最小点。在这种情况下,梯度下降或牛顿方法等优化算法可以有效地收敛到最小点。
    负定或非正定:如果 Hessian 矩阵在某点非正定(包括负定或有零特征值),那么该点可能是局部最大点或鞍点,梯度下降法在这些点可能会遇到问题,如收敛缓慢或根本不收敛。
    -牛顿方法中的应用
    在牛顿方法中,更新规则为: x k + 1 = x k − H − 1 ∇ f ( x k ) x_{k+1} = x_k - H^{-1} \nabla f(x_k) xk+1=xkH1f(xk)
    其中, H H H 是在 x k x_k xk 处计算的 Hessian 矩阵, ∇ f ( x k ) \nabla f(x_k) f(xk) 是梯度。如果 H H H 是正定的,那么 H − 1 H^{-1} H1 也是正定的,这保证了搜索方向是下降方向,有助于快速收敛。
    -实际应用中的挑战
    在实际应用中,Hessian 矩阵可能非常大且计算成本高,同时其正定性也不总是保证的。因此,实际算法中常用的是梯度下降法的变体(如Adam、RMSprop等),或者在牛顿法中使用对Hessian矩阵的近似(如拟牛顿法)来提高效率和稳定性。

总结而言,Hessian 矩阵的正定性在优化问题中非常关键,特别是在使用基于二阶导数的方法时,如牛顿法。理解并计算 Hessian 矩阵的正定性可以显著影响算法选择和优化过程的效率。

概率题:抽蓝球红球,蓝结束红放回继续,平均结束游戏抽取次数

设有蓝球和红球,蓝球数量为 ( b ),红球数量为 ( r )。游戏规则如下:每次随机抽取一个球,如果抽到蓝球,则游戏结束;如果抽到红球,则将红球放回后继续抽取。我们的目标是计算游戏结束的平均抽取次数。
设 ( E(b, r) ) 表示当有 ( b ) 个蓝球和 ( r ) 个红球时,游戏结束的平均抽取次数。可以建立以下递归关系:
E ( b , r ) = 1 × b b + r + ( 1 + E ( b , r ) ) × r b + r E(b, r) = 1 \times \frac{b}{b+r} + (1 + E(b, r)) \times \frac{r}{b+r} E(b,r)=1×b+rb+(1+E(b,r))×b+rr
这个方程表明,如果第一次抽到蓝球(概率为 b b + r \frac{b}{b+r} b+rb),游戏立即结束;如果抽到红球(概率为 r b + r \frac{r}{b+r} b+rr)则继续游戏,此时期望抽取次数增加 E(b, r)。
化简上述方程得到:
E ( b , r ) = 1 + r b + r E ( b , r ) E(b, r) = 1 + \frac{r}{b+r} E(b, r) E(b,r)=1+b+rrE(b,r)
E ( b , r ) ( 1 − r b + r ) = 1 E(b, r) \left(1 - \frac{r}{b+r}\right) = 1 E(b,r)(1b+rr)=1
E ( b , r ) b b + r = 1 E(b, r) \frac{b}{b+r} = 1 E(b,r)b+rb=1
E ( b , r ) = b + r b E(b, r) = \frac{b+r}{b} E(b,r)=bb+r
因此,当有 ( b ) 个蓝球和 ( r ) 个红球时,游戏结束的平均抽取次数 E(b, r) 为 b + r b \frac{b+r}{b} bb+r。这表明平均抽取次数与蓝球的数量成反比,与总球数成正比。

讲一下PCA

PCA是一种常用的数据降维技术,它通过线性变换将原始数据转化为一组各维度线性无关的表示,称为主成分。PCA 主要用于提取数据中的重要特征,通过这些特征可以捕捉大部分数据集的方差。
工作原理:
标准化数据:使得每个特征均值为0,方差为1。
构建协方差矩阵:反映特征间的相关性。
特征分解:计算协方差矩阵的特征值和特征向量。
选择主成分:基于特征值大小,选取最重要的特征向量。
数据投影:将原数据映射到选定的特征向量上,实现降维。
优缺点:
优点:有效去除数据冗余和噪声,提升解释性。
缺点:仅适用于线性关系,对异常值敏感,需要数据标准化。

拟牛顿法的原理

拟牛顿法是一种用于寻找多变量函数的局部最小值的优化算法,属于无约束优化问题的求解方法。这类方法是牛顿法的改进版本,旨在通过近似牛顿法中的Hessian矩阵(二阶导数矩阵)或其逆矩阵来减少计算量和提高算法的稳定性。
核心原理
拟牛顿法使用一个矩阵 B k B_k Bk 来近似Hessian矩阵的逆。通过更新 B k B_k Bk,算法在迭代中逐步逼近函数的最小值。更新公式通常基于以下条件:
B k + 1 ( x k + 1 − x k ) = ∇ f ( x k + 1 ) − ∇ f ( x k ) B_{k+1} (x_{k+1} - x_k) = \nabla f(x_{k+1}) - \nabla f(x_k) Bk+1(xk+1xk)=f(xk+1)f(xk)
这称为拟牛顿条件,确保 B k B_k Bk 的更新能保持对梯度变化的有效逼近。

常用算法
DFP(Davidon-Fletcher-Powell)算法
BFGS(Broyden-Fletcher-Goldfarb-Shanno)算法
这两种算法通过不同的方式更新矩阵 B k B_k Bk,以保持或提高优化的效率和稳定性。

优点
不需要计算Hessian矩阵,减少了计算量。
特别适合于大规模优化问题。
拟牛顿法通过近似二阶导数信息,提供了一种在不牺牲太多精确度的情况下加速收敛的方法。它在机器学习和深度学习等领域的参数优化中非常有用。

编辑距离

编辑距离(Edit Distance),又称莱文斯坦距离(Levenshtein Distance),是一种衡量两个字符串之间差异的度量。它定义为将一个字符串转换成另一个字符串所需的最少单字符编辑操作的数量。常用的编辑操作包括插入(insertion)、删除(deletion)和替换(substitution)。
计算两个字符串之间的编辑距离的常用算法是动态规划。设有两个字符串 A 和 B ,其长度分别为 m 和 n 。创建一个大小为 ( m + 1 ) × ( n + 1 ) (m+1) \times (n+1) (m+1)×(n+1) 的矩阵D,其中 D [ i ] [ j ] D[i][j] D[i][j] 表示字符串 A 的前 i 个字符与字符串 B 的前 j 个字符之间的编辑距离。
初始化
D [ i ] [ 0 ] = i D[i][0] = i D[i][0]=i ( i 从 0 到 m )
D [ 0 ] [ j ] = j D[0][j] = j D[0][j]=j( j 从 0 到 n)

填充矩阵
对于每个 i(从 1 到 m )和每个 j(从 1 到 n ):
D [ i ] [ j ] = min ⁡ ( D [ i − 1 ] [ j ] + 1 , // 删除操作 D [ i ] [ j − 1 ] + 1 , // 插入操作 D [ i − 1 ] [ j − 1 ] + cost // 替换操作 ) D[i][j] = \min \left( \begin{array}{l} D[i-1][j] + 1, \text{ // 删除操作} \\ D[i][j-1] + 1, \text{ // 插入操作} \\ D[i-1][j-1] + \text{cost} \text{ // 替换操作} \end{array} \right) D[i][j]=min D[i1][j]+1, // 删除操作D[i][j1]+1, // 插入操作D[i1][j1]+cost // 替换操作
其中,如果 A [ i ] = B [ j ] A[i] = B[j] A[i]=B[j] 则 cost = 0,否则 cost = 1。

结果
最终的编辑距离是矩阵 D 中 D [ m ] [ n ] D[m][n] D[m][n] 的值。

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

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

相关文章

[tkinter实现]汉字笔顺小软件

软件简介 本软件旨在帮助小学生通过互动式学习掌握汉字的基本笔画和笔顺。软件采用Tkinter库构建,提供了一个用户友好的图形界面,适合小学生使用。 主要功能: 汉字展示:软件能够展示单个汉字,并以动画形式演示其标准…

SWOT分析法:知彼知己的战略规划工具

文章目录 一、什么是SWOT分析法二、SWOT分析法如何产生的三、SWOT分析法适合哪些人四、SWOT分析法的应用场景五、SWOT分析法的优缺点六、SWOT分析实例 一、什么是SWOT分析法 SWOT分析法是一种用于评估组织、项目、个人或任何其他事物的战略规划工具。SWOT是Strengths&#xff…

每日OJ题_BFS解决拓扑排序③_力扣LCR 114. 火星词典

目录 力扣LCR 114. 火星词典 解析代码 力扣LCR 114. 火星词典 LCR 114. 火星词典 难度 困难 现有一种使用英语字母的外星文语言,这门语言的字母顺序与英语顺序不同。 给定一个字符串列表 words ,作为这门语言的词典,words 中的字符串已…

光伏储能控制系统的功能策略

一、控制策略 1、功率控制策略 光伏阵列的输出功率受光照和温度影响,最大功率点是转换太阳能为电能的最高效点。MPPT控制器根据实时参数调整光伏阵列工作点,确保其始终处于最大功率输出状态,提高能量转换效率,增加发电量&#x…

基于51单片机智能鱼缸仿真LCD1602显示( proteus仿真+程序+设计报告+讲解视频)

基于51单片机智能鱼缸仿真LCD显示 1. 主要功能:2. 讲解视频:3. 仿真4. 程序代码5. 设计报告6. 设计资料内容清单&&下载链接资料下载链接: 基于51单片机智能鱼缸仿真LCD显示( proteus仿真程序设计报告讲解视频) 仿真图prot…

免费开源!手机上有这一款软件就够了!

今天这款软件解决了你们最近常问我的资源问题,甚至解决的不是一种,而是好多种,所以这款软件我一定要分享给你,也建议需要这方面软件的小伙伴都去体验一下,说不定就爱上了呢。 01 - 简阅免费小说(安卓&#…

低代码信创开发核心技术(四)动态元数据系统设计

一、概述 在当今快速发展的信息技术领域,动态元数据系统扮演着至关重要的角色。它不仅能够提供数据的描述信息,还能动态地适应业务需求的变化,从而提高系统的灵活性和可扩展性。构建一个动态元数据系统意味着我们可以在不重启系统的情况下&a…

CUDA的应用场景

CUDA的应用场景随着技术的发展不断扩展,其核心优势在于能够显著提高并行计算任务的处理速度,这对于任何需要处理大量数据和执行复杂计算的领域都是极其有价值的。CUDA开发的应用场景非常广泛,主要得益于其强大的并行计算能力,以下…

上网行为管理软件有哪些?三款常用上网行为管理软件评测

互联网的普及,企业和个人对于网络安全和信息保护的需求越来越高。为了确保网络环境的安全和稳定,上网行为管理软件应运而生。本文将对三款常用的上网行为管理软件进行评测,分别是域智盾、Splunk Enterprise Security和安企神。 1、域智盾 域…

冯喜运:4.24 周三黄金原油市场分析报告及操作策略

黄金消息面解析:周三(4月24日)黄金反弹后微幅回跌,金价在2325美元附近喘息。尽管美国国债收益率下降,美元走弱,金价未能维持涨势。标普全球PMI弱于预期,引发了对美联储可能降息的猜测。中东地缘紧张局势有所缓解&#…

dist包在windows的nginx下部署运行

nginx 附带下载包 我用夸克网盘分享了「nginx-1.18.0.zip」 链接:https://pan.quark.cn/s/e87bbf87a742 将dist放到html文件目录下 3.找到nginx的配置文件,conf 下,用编辑器打开 nginx.conf 编辑。 location ^~/api {rewrite ^/api/(.*)…

kubernetes中DaemonSet控制器

一、概念 使用DaemonSet控制器,相当于在节点上启动了一个守护进程。通过DaemonSet控制器可以确保在每个节点上运行Pod的一个副本。如果有心的node节点加入集群,则DaemonSet控制器会自动给新加入的节点增加一个Pod的副本;反之,当有…

企业工商信息查询API接口如何对接

企业工商信息查询API接口指的是输入公司名全称/注册号/社会统一信用代码的任意一种,获得企业工商注册登记中包含的各类重要信息,主要信息包括:注册号,注册资金,登记机关,注册地址,核准时间&…

Maven基础篇6

Idea环境中资源上传与下载 具体问题本地仓库如何与私服打交道; 本地仓库向私服上传文件,上传的文件位置在哪里? 访问私服配置相关信息:用户名密码; 下载东西,需要的各种信息,需要的仓库组的…

JavaEE 初阶篇-深入了解网络通信相关的基本概念(三次握手建立连接、四次挥手断开连接)

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 网络通信概述 1.1 基本的通信架构 2.0 网络通信三要素 3.0 网络通信三要素 - IP 地址 3.1 查询 IP 地址 3.2 IP 地址由谁供应? 3.3 IP 域名 3.4 IP 分…

H800算力低至5.99元/卡时!抢鲜体验LLaMA3最佳实践就在潞晨云

由Meta发布的LLaMA3 8B和LLaMA3 70B的,将开源AI大模型推向新的高度。在多个基准测试上的表现均大幅超过已有竞品,成为AI应用的最新优选。 潞晨云现已上架 LLaMA3 8B和LLaMA3 70B从推理到微调和预训练的实践教程。 提供免费测试代金券,限时特…

树莓派学习之入门必会操作

树莓派学习之入门指南 一、软件准备二、镜像烧录三、远程登录 一、软件准备 ①raspberry pi image(官方烧录工具,将操作系统烧录到SD卡,SD卡插入树莓派) ②putty(远程登录软件,输入ip,以及username/password就可以远程登录树莓派不带图形化的…

【SMART目标法】项目管理必会的思维分析工具 06

SMART分析方法,是让管理者的工作变被动为主动的一个很好的手段。实施目标管理不但是有利于员工更加明确高效地工作,更是为未来的绩效考核制定了目标和考核标准,使考核更加科学化、规范化,更能保证考核的公开、公平与公正。 “sma…

嵌入式MCU和SOC的区别?

你大概率并不知晓嵌入式 MCU 与 SOC 之间的区别吧?从表面上来看,MCU 指代的是嵌入式微控制器,而 SOC 则代表着片上系统,这仿佛仅仅是嵌入式系统的不同称谓罢了。然而,在实际的研发以及产品设计过程中,你将会…

【算法刷题 | 贪心算法02】4.24(摆动序列)

文章目录 3.摆动序列3.1题目3.2解法:贪心3.2.1贪心思路3.2.2代码实现 3.摆动序列 3.1题目 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列 。 第一个差(如果存在的话)可能是正数或负数。仅有一个元素…