约束优化技术:KKT条件的完整推导与应用

news2025/3/16 2:43:08

前言

本文隶属于专栏《机器学习数学通关指南》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!

本专栏目录结构和参考文献请见《机器学习数学通关指南》


ima 知识库

知识库广场搜索:

知识库创建人
机器学习@Shockang
机器学习数学基础@Shockang
深度学习@Shockang

正文

在这里插入图片描述

在约束优化的世界里,KKT条件就像是一把钥匙,为我们打开了复杂问题的解决之门 🔑

🔍 一、KKT条件概述

1.1 什么是KKT条件?

KKT条件(Karush-Kuhn-Tucker条件)是非线性约束优化问题的必要条件,尤其适用于含不等式约束的优化问题。它扩展了拉格朗日乘数法,成为现代优化理论和机器学习算法的基石。

1.2 问题形式化

考虑标准形式的约束优化问题:

min ⁡ x f ( x ) s.t. g i ( x ) ≤ 0 , i = 1 , 2 , … , m h j ( x ) = 0 , j = 1 , 2 , … , p \begin{aligned} \min_{\boldsymbol{x}} \quad & f(\boldsymbol{x}) \\ \text{s.t.} \quad & g_i(\boldsymbol{x}) \leq 0, \quad i=1,2,\ldots,m \\ & h_j(\boldsymbol{x}) = 0, \quad j=1,2,\ldots,p \end{aligned} xmins.t.f(x)gi(x)0,i=1,2,,mhj(x)=0,j=1,2,,p

其中 f ( x ) f(\boldsymbol{x}) f(x) 是目标函数, g i ( x ) g_i(\boldsymbol{x}) gi(x) 是不等式约束, h j ( x ) h_j(\boldsymbol{x}) hj(x) 是等式约束。

🧩 二、KKT条件的完整推导

2.1 构建拉格朗日函数 ⚙️

首先构造拉格朗日函数,将约束优化问题转换为无约束形式:

L ( x , μ , λ ) = f ( x ) + ∑ i = 1 m μ i g i ( x ) + ∑ j = 1 p λ j h j ( x ) \mathcal{L}(\boldsymbol{x}, \boldsymbol{\mu}, \boldsymbol{\lambda}) = f(\boldsymbol{x}) + \sum_{i=1}^m \mu_i g_i(\boldsymbol{x}) + \sum_{j=1}^p \lambda_j h_j(\boldsymbol{x}) L(x,μ,λ)=f(x)+i=1mμigi(x)+j=1pλjhj(x)

其中:

  • μ = ( μ 1 , μ 2 , . . . , μ m ) \boldsymbol{\mu} = (\mu_1, \mu_2, ..., \mu_m) μ=(μ1,μ2,...,μm) 是不等式约束的拉格朗日乘子
  • λ = ( λ 1 , λ 2 , . . . , λ p ) \boldsymbol{\lambda} = (\lambda_1, \lambda_2, ..., \lambda_p) λ=(λ1,λ2,...,λp) 是等式约束的拉格朗日乘子

2.2 KKT条件的四个要素 📋

假设 x ∗ \boldsymbol{x}^* x 是原问题的局部最优解,且满足约束规范条件(如LICQ),则存在唯一的拉格朗日乘子 μ ∗ \boldsymbol{\mu}^* μ λ ∗ \boldsymbol{\lambda}^* λ,使得以下KKT条件全部成立:

1️⃣ 稳定性条件(Stationarity)

拉格朗日函数对变量 x \boldsymbol{x} x 的梯度在最优点处为零:

∇ f ( x ∗ ) + ∑ i = 1 m μ i ∗ ∇ g i ( x ∗ ) + ∑ j = 1 p λ j ∗ ∇ h j ( x ∗ ) = 0 \nabla f(\boldsymbol{x}^*) + \sum_{i=1}^m \mu_i^* \nabla g_i(\boldsymbol{x}^*) + \sum_{j=1}^p \lambda_j^* \nabla h_j(\boldsymbol{x}^*) = \boldsymbol{0} f(x)+i=1mμigi(x)+j=1pλjhj(x)=0

2️⃣ 原始可行性(Primal Feasibility)

最优解必须满足所有原始约束:

g i ( x ∗ ) ≤ 0 , i = 1 , 2 , … , m g_i(\boldsymbol{x}^*) \leq 0, \quad i=1,2,\ldots,m gi(x)0,i=1,2,,m
h j ( x ∗ ) = 0 , j = 1 , 2 , … , p h_j(\boldsymbol{x}^*) = 0, \quad j=1,2,\ldots,p hj(x)=0,j=1,2,,p

3️⃣ 对偶可行性(Dual Feasibility)

不等式约束的拉格朗日乘子必须非负:

μ i ∗ ≥ 0 , i = 1 , 2 , … , m \mu_i^* \geq 0, \quad i=1,2,\ldots,m μi0,i=1,2,,m

4️⃣ 互补松弛性(Complementary Slackness) 🔄

每个不等式约束与其对应的拉格朗日乘子的乘积必须为零:

μ i ∗ ⋅ g i ( x ∗ ) = 0 , i = 1 , 2 , … , m \mu_i^* \cdot g_i(\boldsymbol{x}^*) = 0, \quad i=1,2,\ldots,m μigi(x)=0,i=1,2,,m

2.3 互补松弛条件的几何解释 🌈

互补松弛条件表明:

  • g i ( x ∗ ) < 0 g_i(\boldsymbol{x}^*) < 0 gi(x)<0(约束不活跃),则 μ i ∗ = 0 \mu_i^* = 0 μi=0
  • μ i ∗ > 0 \mu_i^* > 0 μi>0(约束"有价值"),则 g i ( x ∗ ) = 0 g_i(\boldsymbol{x}^*) = 0 gi(x)=0(约束边界)

这实际上意味着:只有活跃约束(达到边界的约束)才会对最优解产生影响

🔬 三、KKT条件在机器学习中的应用

3.1 支持向量机(SVM)中的KKT条件 🤖

问题建模

线性硬间隔SVM的优化问题:

min ⁡ w , b 1 2 ∥ w ∥ 2 s.t. y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , … , n \begin{aligned} \min_{\boldsymbol{w},b} \quad & \frac{1}{2}\|\boldsymbol{w}\|^2 \\ \text{s.t.} \quad & y_i(\boldsymbol{w}^T \boldsymbol{x}_i + b) \geq 1, \quad i=1,2,\ldots,n \end{aligned} w,bmins.t.21w2yi(wTxi+b)1,i=1,2,,n

KKT条件分析

构造拉格朗日函数:

L ( w , b , α ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 n α i [ y i ( w T x i + b ) − 1 ] \mathcal{L}(\boldsymbol{w}, b, \boldsymbol{\alpha}) = \frac{1}{2}\|\boldsymbol{w}\|^2 - \sum_{i=1}^n \alpha_i[y_i(\boldsymbol{w}^T\boldsymbol{x}_i + b) - 1] L(w,b,α)=21w2i=1nαi[yi(wTxi+b)1]

应用KKT条件:

  1. 稳定性条件:
    ∂ L ∂ w = w − ∑ i = 1 n α i y i x i = 0 ⇒ w = ∑ i = 1 n α i y i x i \frac{\partial \mathcal{L}}{\partial \boldsymbol{w}} = \boldsymbol{w} - \sum_{i=1}^n \alpha_i y_i \boldsymbol{x}_i = \boldsymbol{0} \Rightarrow \boldsymbol{w} = \sum_{i=1}^n \alpha_i y_i \boldsymbol{x}_i wL=wi=1nαiyixi=0w=i=1nαiyixi
    ∂ L ∂ b = − ∑ i = 1 n α i y i = 0 \frac{\partial \mathcal{L}}{\partial b} = -\sum_{i=1}^n \alpha_i y_i = 0 bL=i=1nαiyi=0

  2. 互补松弛条件:
    α i [ y i ( w T x i + b ) − 1 ] = 0 , i = 1 , 2 , … , n \alpha_i [y_i(\boldsymbol{w}^T\boldsymbol{x}_i + b) - 1] = 0, \quad i=1,2,\ldots,n αi[yi(wTxi+b)1]=0,i=1,2,,n

支持向量的选择 ✨

互补松弛条件揭示了SVM的核心特性:

  • 只有当样本点位于间隔边界上( y i ( w T x i + b ) = 1 y_i(\boldsymbol{w}^T\boldsymbol{x}_i + b) = 1 yi(wTxi+b)=1)时,才有 α i > 0 \alpha_i > 0 αi>0
  • 这些点就是支持向量,仅占训练样本的一小部分
  • 非支持向量的 α i = 0 \alpha_i = 0 αi=0,不影响决策函数
对偶形式

通过KKT条件,SVM优化转化为对偶问题:

max ⁡ α ∑ i = 1 n α i − 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j x i T x j s.t. ∑ i = 1 n α i y i = 0 α i ≥ 0 , i = 1 , 2 , … , n \begin{aligned} \max_{\boldsymbol{\alpha}} \quad & \sum_{i=1}^n \alpha_i - \frac{1}{2}\sum_{i=1}^n\sum_{j=1}^n \alpha_i \alpha_j y_i y_j \boldsymbol{x}_i^T \boldsymbol{x}_j \\ \text{s.t.} \quad & \sum_{i=1}^n \alpha_i y_i = 0 \\ & \alpha_i \geq 0, \quad i=1,2,\ldots,n \end{aligned} αmaxs.t.i=1nαi21i=1nj=1nαiαjyiyjxiTxji=1nαiyi=0αi0,i=1,2,,n

决策函数为:
f ( x ) = ∑ i = 1 n α i y i x i T x + b f(\boldsymbol{x}) = \sum_{i=1}^n \alpha_i y_i \boldsymbol{x}_i^T \boldsymbol{x} + b f(x)=i=1nαiyixiTx+b

3.2 软间隔SVM与正则化 🔄

引入松弛变量 ξ i \xi_i ξi 后的优化问题:

min ⁡ w , b , ξ 1 2 ∥ w ∥ 2 + C ∑ i = 1 n ξ i s.t. y i ( w T x i + b ) ≥ 1 − ξ i , i = 1 , 2 , … , n ξ i ≥ 0 , i = 1 , 2 , … , n \begin{aligned} \min_{\boldsymbol{w},b,\boldsymbol{\xi}} \quad & \frac{1}{2}\|\boldsymbol{w}\|^2 + C\sum_{i=1}^n \xi_i \\ \text{s.t.} \quad & y_i(\boldsymbol{w}^T \boldsymbol{x}_i + b) \geq 1 - \xi_i, \quad i=1,2,\ldots,n \\ & \xi_i \geq 0, \quad i=1,2,\ldots,n \end{aligned} w,b,ξmins.t.21w2+Ci=1nξiyi(wTxi+b)1ξi,i=1,2,,nξi0,i=1,2,,n

KKT条件扩展:

  • 互补松弛条件: α i [ y i ( w T x i + b ) − 1 + ξ i ] = 0 \alpha_i [y_i(\boldsymbol{w}^T\boldsymbol{x}_i + b) - 1 + \xi_i] = 0 αi[yi(wTxi+b)1+ξi]=0
  • 附加条件: ( C − α i ) ξ i = 0 (C - \alpha_i)\xi_i = 0 (Cαi)ξi=0

该条件将样本分为三类:

  1. α i = 0 \alpha_i = 0 αi=0:非支持向量(远离间隔边界)
  2. 0 < α i < C 0 < \alpha_i < C 0<αi<C:支持向量,恰好在间隔边界上( ξ i = 0 \xi_i = 0 ξi=0
  3. α i = C \alpha_i = C αi=C:支持向量,位于间隔内部或错误一侧( ξ i > 0 \xi_i > 0 ξi>0

3.3 实现:SMO算法与KKT条件 🛠️

序列最小优化(SMO)算法是求解SVM的经典方法,其核心思想就是利用KKT条件:

  1. 选择变量对:寻找最违反KKT条件的两个样本作为工作集
  2. 优化步骤:固定其他变量,只优化选中的两个变量
  3. KKT违反度检查
    • 对于边界支持向量( 0 < α i < C 0 < \alpha_i < C 0<αi<C),应满足 y i f ( x i ) = 1 y_i f(\boldsymbol{x}_i) = 1 yif(xi)=1
    • 对于非支持向量( α i = 0 \alpha_i = 0 αi=0),应满足 y i f ( x i ) > 1 y_i f(\boldsymbol{x}_i) > 1 yif(xi)>1
    • 对于边界外支持向量( α i = C \alpha_i = C αi=C),应满足 y i f ( x i ) < 1 y_i f(\boldsymbol{x}_i) < 1 yif(xi)<1
# SMO算法中KKT条件检查的简化代码示例
def check_kkt_violation(alpha, y, C, kernel_matrix, b):
    f_pred = np.dot(kernel_matrix, alpha * y) + b
    y_pred = y * f_pred
    
    # 检查KKT违反情况
    kkt_violation = np.zeros(len(alpha))
    
    # 情况1: 0 < alpha < C,应该在间隔边界上
    idx1 = np.where((alpha > 0) & (alpha < C))[0]
    kkt_violation[idx1] = np.abs(y_pred[idx1] - 1)
    
    # 情况2: alpha = 0,应该满足y*f >= 1
    idx2 = np.where(alpha == 0)[0]
    # 只有违反约束才计入违反度
    violation2 = 1 - y_pred[idx2]
    kkt_violation[idx2] = np.maximum(0, violation2)
    
    # 情况3: alpha = C,应该满足y*f <= 1
    idx3 = np.where(alpha == C)[0]
    violation3 = y_pred[idx3] - 1
    kkt_violation[idx3] = np.maximum(0, violation3)
    
    return kkt_violation

3.4 支持向量回归(SVR)中的KKT条件 📈

SVR优化问题形式:

min ⁡ w , b , ξ , ξ ∗ 1 2 ∥ w ∥ 2 + C ∑ i = 1 n ( ξ i + ξ i ∗ ) s.t. y i − ( w T x i + b ) ≤ ε + ξ i ( w T x i + b ) − y i ≤ ε + ξ i ∗ ξ i , ξ i ∗ ≥ 0 \begin{aligned} \min_{\boldsymbol{w},b,\boldsymbol{\xi},\boldsymbol{\xi}^*} \quad & \frac{1}{2}\|\boldsymbol{w}\|^2 + C\sum_{i=1}^n (\xi_i + \xi_i^*) \\ \text{s.t.} \quad & y_i - (\boldsymbol{w}^T \boldsymbol{x}_i + b) \leq \varepsilon + \xi_i \\ & (\boldsymbol{w}^T \boldsymbol{x}_i + b) - y_i \leq \varepsilon + \xi_i^* \\ & \xi_i, \xi_i^* \geq 0 \end{aligned} w,b,ξ,ξmins.t.21w2+Ci=1n(ξi+ξi)yi(wTxi+b)ε+ξi(wTxi+b)yiε+ξiξi,ξi0

关键KKT条件:

  • 互补松弛: α i ( ε + ξ i − y i + w T x i + b ) = 0 \alpha_i(\varepsilon + \xi_i - y_i + \boldsymbol{w}^T \boldsymbol{x}_i + b) = 0 αi(ε+ξiyi+wTxi+b)=0
  • 互补松弛: α i ∗ ( ε + ξ i ∗ + y i − w T x i − b ) = 0 \alpha_i^*(\varepsilon + \xi_i^* + y_i - \boldsymbol{w}^T \boldsymbol{x}_i - b) = 0 αi(ε+ξi+yiwTxib)=0
  • 附加条件: ( C − α i ) ξ i = 0 (C - \alpha_i)\xi_i = 0 (Cαi)ξi=0 ( C − α i ∗ ) ξ i ∗ = 0 (C - \alpha_i^*)\xi_i^* = 0 (Cαi)ξi=0

SVR中的支持向量是那些不在ε-管道内部的样本点( α i > 0 \alpha_i > 0 αi>0 α i ∗ > 0 \alpha_i^* > 0 αi>0)。

🔮 四、深入理解:KKT条件的扩展与高级应用

4.1 KKT条件与凸优化的关系 🧠

对于凸优化问题(目标函数凸,不等式约束函数凸,等式约束线性),在满足Slater条件的情况下,KKT条件不仅是最优解的必要条件,还是充分条件。

Slater条件说明:存在至少一个严格可行点,即所有不等式约束都严格满足( g i ( x ) < 0 g_i(\boldsymbol{x}) < 0 gi(x)<0)。

4.2 内点法与障碍函数 🚧

现代凸优化求解器(如IPM)通过转换KKT条件实现高效求解:

  • 引入对数障碍函数处理不等式约束: − μ ∑ i = 1 m log ⁡ ( − g i ( x ) ) -\mu \sum_{i=1}^m \log(-g_i(\boldsymbol{x})) μi=1mlog(gi(x))
  • 求解一系列参数为 μ \mu μ 的近似KKT系统,逐渐减小 μ \mu μ 接近真实解
  • 中心路径概念:不同 μ \mu μ 值下KKT点的轨迹

4.3 非凸问题中的KKT条件 ⚠️

非凸优化中,KKT条件仅是局部最优的必要条件,可能存在多个满足KKT条件的点:

  • 局部最小值:满足二阶充分条件的KKT点
  • 局部最大值:满足对应的二阶条件的KKT点
  • 鞍点:既不是局部最小也不是局部最大的KKT点

深度学习优化:梯度下降类算法本质上是寻找满足KKT条件的点(梯度为零)。

🧪 五、实践应用与技巧

5.1 检验KKT条件的数值方法 🔍

在实际优化过程中,检验KKT条件的满足程度是评估算法收敛性的重要指标:

def check_kkt_conditions(x, grad_f, constraints_g, constraints_h, 
                         grad_g, grad_h, mu, lambda_):
    """检查KKT条件的满足程度"""
    # 1. 梯度条件
    grad_lagrangian = grad_f(x)
    for i in range(len(mu)):
        grad_lagrangian += mu[i] * grad_g[i](x)
    for j in range(len(lambda_)):
        grad_lagrangian += lambda_[j] * grad_h[j](x)
    
    stationarity_residual = np.linalg.norm(grad_lagrangian)
    
    # 2. 原始可行性
    primal_residual_g = np.maximum(0, constraints_g(x))
    primal_residual_h = np.abs(constraints_h(x))
    
    # 3. 对偶可行性
    dual_residual = np.minimum(0, mu)
    
    # 4. 互补松弛性
    comp_slack_residual = np.abs(mu * constraints_g(x))
    
    return {
        "stationarity": stationarity_residual,
        "primal_g": np.linalg.norm(primal_residual_g),
        "primal_h": np.linalg.norm(primal_residual_h),
        "dual": np.linalg.norm(dual_residual),
        "comp_slack": np.linalg.norm(comp_slack_residual)
    }

5.2 KKT条件在特征选择中的应用:LASSO 📊

L1正则化(LASSO)优化问题:

min ⁡ w 1 2 ∥ X w − y ∥ 2 2 + λ ∥ w ∥ 1 \min_{\boldsymbol{w}} \frac{1}{2}\|\boldsymbol{X}\boldsymbol{w} - \boldsymbol{y}\|_2^2 + \lambda\|\boldsymbol{w}\|_1 minw21Xwy22+λw1

可以转化为带约束的形式:

min ⁡ w , u , v 1 2 ∥ X w − y ∥ 2 2 + λ ∑ j = 1 p ( u j + v j ) s.t. w j = u j − v j , j = 1 , 2 , … , p u j , v j ≥ 0 , j = 1 , 2 , … , p \begin{aligned} \min_{\boldsymbol{w},\boldsymbol{u},\boldsymbol{v}} \quad & \frac{1}{2}\|\boldsymbol{X}\boldsymbol{w} - \boldsymbol{y}\|_2^2 + \lambda\sum_{j=1}^p (u_j + v_j) \\ \text{s.t.} \quad & w_j = u_j - v_j, \quad j=1,2,\ldots,p \\ & u_j, v_j \geq 0, \quad j=1,2,\ldots,p \end{aligned} w,u,vmins.t.21Xwy22+λj=1p(uj+vj)wj=ujvj,j=1,2,,puj,vj0,j=1,2,,p

KKT条件显示:

  • ∣ X j T ( X w − y ) ∣ < λ |X_j^T(Xw - y)| < \lambda XjT(Xwy)<λ 时, w j = 0 w_j = 0 wj=0
  • X j T ( X w − y ) = − λ X_j^T(Xw - y) = -\lambda XjT(Xwy)=λ 时, w j > 0 w_j > 0 wj>0
  • X j T ( X w − y ) = λ X_j^T(Xw - y) = \lambda XjT(Xwy)=λ 时, w j < 0 w_j < 0 wj<0

这解释了LASSO如何自动执行特征选择,使权重稀疏化。

🏆 六、总结与拓展

6.1 KKT条件的核心意义 💡

  • 理论工具:为约束优化问题提供了必要(在凸情况下也是充分)的最优性条件
  • 算法设计:指导了诸如SMO等高效优化算法的设计
  • 模型解释:解释了SVM、LASSO等模型的稀疏性特征
  • 数值评估:提供了优化算法收敛性的判断标准

6.2 进阶学习方向 🚀

  • 强对偶性与鞍点定理:更深入理解KKT条件的理论基础
  • 非光滑优化:处理带L1正则化等非光滑问题的次梯度KKT条件
  • 分布式优化:KKT条件在大规模分布式算法中的应用
  • 近似KKT条件:实际计算中的近似判定策略

📘 学习建议:理解KKT条件不仅需要掌握数学推导,更要通过实际优化问题的求解来体会其应用。尝试手动推导简单问题的KKT条件,并验证结果。

🔗 延伸阅读:《Convex Optimization》by Boyd and Vandenberghe,这是理解KKT条件与凸优化关系的经典教材。


KKT条件作为约束优化中的关键工具,为我们提供了解决机器学习中众多复杂优化问题的理论框架和实用方法。深入理解KKT条件,不仅能帮助我们更好地掌握现有算法的工作原理,也能启发我们设计出更高效的优化方法。

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

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

相关文章

对比文章相似度的余弦相似度算法的原理

近期不是项目遇到对比代码的相似度&#xff0c;来判断代码是否存在抄袭嘛。通过研究采用了余弦相似度来对比。既然接触的一个新的东西&#xff0c;怎么也得研究下吧。 一、什么是余弦相似度 利用余弦相似度对比文章相似度的原理&#xff0c;主要基于向量空间模型&#xff0c;通…

DeepSeek结合Mermaid绘图(流程图、时序图、类图、状态图、甘特图、饼图)转载

思维速览&#xff1a; 本文将详细介绍如何利用DeepSeek结合Mermaid语法绘制各类专业图表&#xff0c;帮助你提高工作效率和文档质量。 ▍DeepSeek入门使用请看&#xff1a;deepseek保姆级入门教程&#xff08;网页端使用 本地客户端部署 使用技巧&#xff09; DeepSeek官网…

玩转云服务器——阿里云操作系统控制台体验测评

在云服务器日益普及的背景下&#xff0c;运维人员对操作系统管理工具的要求不断提高。我们需要一款既能直观展示系统状态&#xff0c;又能智能诊断问题&#xff0c;提供专业指导的控制台。阿里云操作系统管理平台正是基于API、SDK、CLI等多种管理方式&#xff0c;致力于提升操作…

Linux 安装 Oh My Zsh

1. 简介 Zsh&#xff08;Z Shell&#xff09;是一款功能强大的 Shell&#xff0c;相比 Bash 提供了更强的 自动补全、命令高亮、插件支持 等功能。而 Oh My Zsh 是一个 Zsh 的增强管理工具&#xff0c;让你可以轻松安装插件和主题&#xff0c;极大提高开发效率。 本教程将详细…

方差,协方差及协方差矩阵的计算

1.方差 方差是用来衡量一组数据的离散程度&#xff0c;数序表达式如下: σ 2 1 N ∑ i 1 N ( x i − μ ) 2 \sigma^2\frac1N\sum_{i1}^N(x_i-\mu)^2 σ2N1​i1∑N​(xi​−μ)2 σ 2 σ^2 σ2表示样本的总体方差&#xff0c; N N N 表示样本总数&#xff0c; x i x _i xi​…

DeepSeek-R1思路训练多模态大模型-Vision-R1开源及实现方法思路

刚开始琢磨使用DeepSeek-R1风格训练多模态R1模型&#xff0c;就看到这个工作&#xff0c;本文一起看看&#xff0c;供参考。 先提出问题&#xff0c;仅靠 RL 是否足以激励 MLLM 的推理能力&#xff1f; 结论&#xff1a;不能&#xff0c;因为如果 RL 能有效激励推理能力&#…

Unity 创建签名证书、获取签名证书信息,证书指纹

目录 一&#xff1a;创建签名证书 二&#xff1a;自动填写密码 ​编辑 三&#xff1a;获取签名证书的信息 后言 &#x1f451;&#x1f451;&#x1f451; 一&#xff1a;创建签名证书 首先确保Unity是安卓打包&#xff0c;然后按图操作 会打开下图页面 选择你要创建到的…

在AIStudio飞桨星河社区一键部署DeepSeek-r1:70b模型

随着DeepSeek的火热&#xff0c;市面上出现大量的第三方的API服务区&#xff0c;但是对于对安全、隐私、控制有一定需求的用户&#xff0c;还是会希望能够自主部署DeepSeek 。 实践下来&#xff0c;用自己的机器部署是一条解决之道&#xff0c;但是推理起来&#xff0c;cpu和内…

机器学习算法分类及应用场景全解析

在机器学习的学习过程中&#xff0c;具备归类思想至关重要。机器学习涉及众多算法、数据类型及应用场景&#xff0c;归类能让我们清晰梳理知识体系。比如将算法按学习方式分为有监督、无监督等&#xff0c;按任务分类分为分类任务、回归任务和生成任务。通过归类&#xff0c;能…

GNU Nano编辑器中,怎样保存并退出

当出现git commit的提交内容需要修改时&#xff0c;使用git commit --amend进行解决。 但是在修改提交的内容时&#xff0c;弹出了GNU Nano的编辑器 修改完毕后&#xff0c;使用ctrlxd的组合键退出 输入Y后&#xff0c;将退出编辑器&#xff0c;操作完成

个人居家 Web移动端 局域网 远程控制电脑 工具 PC遥控器拿去玩吧

想远程电脑 换个电影&#xff0c;切个歌&#xff0c;随有无线键鼠&#xff0c;但解决不了离屏幕较远 看不清鼠标指针和键入内容。 看似简单的事情&#xff0c;但对周末躺下沙发的码农来说&#xff0c;就再也起不了身了。 远程工具 TeamViewer、向日葵、Autodesk以及开源的RustD…

cursor中使用prettier-code formatter插件方法

cursor的"扩展"中搜索"prettier-code formatter"&#xff0c;然后安装 点击cursor编辑器右上角“更多操作”&#xff0c;然后打开“配置编辑器” 按照图片进行操作&#xff0c;进入到editor在editor中&#xff0c;找“格式化“&#xff0c;把Format On Sav…

SpaceSync智能排班:重构未来办公空间的神经中枢

文心智能体平台可免费使用DeepSeek 满血版啦&#xff0c;使用DeepSeek模型创建并提交智能体&#xff0c;即有机会瓜分万元奖金&#xff01;有这等好事还不快冲&#xff01; 文心智能体官网&#xff1a;文心智能体平台AgentBuilder | 想象即现实 本片文章为作者参加文心智能体平…

ToB公司找客户专用|大数据获客系统

对于ToB公司而言&#xff0c;找到并吸引合适的潜在客户并非易事。传统的获客手段如参加行业展会、电话推销以及直接拜访等&#xff0c;虽然在过去取得了一定成效&#xff0c;但如今却暴露出诸多问题。首先&#xff0c;这些方法往往成本高昂&#xff0c;无论是时间还是金钱上的投…

Linux 文件权限类

目录 文件属性 从左到右的10个字符表示 rwx作用文件和目录的不同解释 图标&#xff1a; 案例实操 chmod 改变权限 基本语法 经验技巧 案例实操 拓展&#xff1a;可以通过一个命令查看用户列表 chown改变所有者 基本语法 选项说明 案例实操 chgrp 改变所属组 基…

在线Doc/Docx转换为PDF格式 超快速转换的一款办公软件 文档快速转换 在线转换免费转换办公软件

小白工具https://www.xiaobaitool.net/files/word-pdf/提供了一项非常实用的在线服务——将Doc或Docx格式的文档快速转换为PDF格式。这项服务不仅操作简单&#xff0c;而且转换效率高&#xff0c;非常适合需要频繁处理文档转换的用户。 服务特点&#xff1a; 批量转换&#x…

网络安全——SpringBoot配置文件明文加密

XTHS&#xff1a;第一步、XTHS&#xff1a;第二步、XTHS&#xff1a;第三步、XTHS&#xff1a;第四步 &#xff01;就可以实现了。&#xff08;但是前提&#xff0c;你要先对你的文本进行加密&#xff0c;然后按照ENC(加密文本)&#xff0c;放到配置文件中&#xff09; 一、前言…

Docker安装Kafka(内含zookeeper)

因为kafka是基于zookeeper做的&#xff0c;所以必须要有zookeeper 一、Zookeeper 1.拉取镜像 docker pull zookeeper:3.7.02.运行 docker run --restartalways \--log-driver json-file \--log-opt max-size100m \--log-opt max-file2 \--name zookeeper -p 2181:2181 \-v…

Netty启动源码NioEventLoop剖析accept剖析read剖析write剖析

学习链接 NIO&Netty - 专栏 Netty核心技术十–Netty 核心源码剖析Netty核心技术九–TCP 粘包和拆包及解决方案Netty核心技术七–Google ProtobufNetty核心技术六–Netty核心模块组件Netty核心技术五–Netty高性能架构设计 聊聊Netty那些事儿 - 专栏 一文搞懂Netty发送数…

【HarmonyOS Next之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(七) -> JS动画(二)

目录 1 -> 动画动效 1.1 -> 创建动画对象 1.2 -> 添加动画事件和调用接口 2 -> 动画帧 2.1 -> 请求动画帧 2.2 -> 取消动画帧 1 -> 动画动效 通过设置插值器来实现动画效果。 说明 从API Version 6 开始支持。 1.1 -> 创建动画对象 通过cre…