机器学习笔记之最优化理论与方法(六)无约束优化问题——最优性条件

news/2024/7/7 13:56:08/文章来源:https://blog.csdn.net/qq_34758157/article/details/132667212

机器学习笔记之最优化理论与方法——无约束优化问题[最优性条件]

  • 引言
    • 无约束优化问题
      • 无约束优化问题最优解的定义
    • 无约束优化问题的最优性条件
      • 无约束优化问题的充要条件
      • 无约束优化问题的必要条件
      • 无约束优化问题的充分条件

引言

本节将介绍无约束优化问题,主要介绍无约束优化问题最优解的相关性质

本节是关于以优化算法——无约束算法概述为首,优化算法——线搜索方法(二~九)的理论补充。

无约束优化问题

无约束优化问题的数学符号表示如下:
仅需要对目标函数进行最小化,没有可行域的条件限制。
min ⁡ f ( x ) \min f(x) minf(x)
在实际问题中,很多问题可以被建模成无约束优化问题。例如:线性回归方法中的最小二乘估计问题。对应数学符号表示如下:
很明显,最小二乘函数 ∥ A x − b ∥ 2 2 \|\mathcal A x - b\|_2^2 Axb22明显是一个凸函数:其二次型系数矩阵 A T A \mathcal A^T\mathcal A ATA必然是半正定矩阵
f ( x ) = ∥ A x − b ∥ 2 2 = ( A x − b ) T ( A x − b ) = x T [ A T A ] x + b T A x − x T A T b + b T b \begin{aligned} f(x) & = \|\mathcal Ax - b\|_2^2 \\ & = (\mathcal Ax - b)^T(\mathcal Ax - b) \\ & = x^T [\mathcal A^T\mathcal A] x + b^T \mathcal A x - x^T \mathcal A^T b + b^Tb \end{aligned} f(x)=Axb22=(Axb)T(Axb)=xT[ATA]x+bTAxxTATb+bTb
因而该问题可以更精确地描述为无约束凸优化问题
min ⁡ ∥ A x − b ∥ 2 2 \min \|\mathcal A x - b\|_2^2 minAxb22

可以采用适当方法约束优化问题转换为无约束优化问题。例如最优化问题概述中提到的罚函数法。

无约束优化问题最优解的定义

  • 局部最优解 :假设 x ˉ \bar{x} xˉ是关于目标函数 f ( ⋅ ) f(\cdot) f()无约束优化问题的局部最优解,对于 ∀ x ∈ N ϵ ( x ˉ ) \forall x \in \mathcal N_\epsilon(\bar{x}) xNϵ(xˉ),必然有:
    其中 N ϵ ( x ˉ ) \mathcal N_{\epsilon}(\bar{x}) Nϵ(xˉ)表示包含点 x ˉ \bar{x} xˉ,并且使用 ϵ \epsilon ϵ表示范围的邻域。例如: ( x ˉ − ϵ , x ˉ + ϵ ) (\bar{x} - \epsilon,\bar{x} + \epsilon) (xˉϵ,xˉ+ϵ)
    f ( x ) ≥ f ( x ˉ ) f(x) \geq f(\bar{x}) f(x)f(xˉ)
  • 全局最优解:相比于局部最优解,假设 x ∗ x^* x是关于目标函数 f ( ⋅ ) f(\cdot) f()无约束优化问题的全局最优解,对于 ∀ x ∈ R n \forall x \in \mathbb R^n xRn,必然有:
    f ( x ) ≥ f ( x ∗ ) f(x) \geq f(x^*) f(x)f(x)
  • 严格最优解:与凸函数:定义与基本性质中提到的严格凸函数类似,其核心是消除掉取等的情况。关于严格最优解,同样可以分为严格局部最优解严格全局最优解。对应数学符号表示如下:
    { ∀ x ∈ R n , x ≠ x ∗ ⇒ f ( x ) > f ( x ∗ ) ∀ x ∈ N ϵ ( x ˉ ) , x ≠ x ˉ ⇒ f ( x ) > f ( x ˉ ) \begin{cases} \forall x \in \mathbb R^n,x \neq x^* \Rightarrow f(x) > f(x^*) \\ \forall x \in \mathcal N_{\epsilon}(\bar{x}), x \neq \bar{x} \Rightarrow f(x) > f(\bar{x}) \end{cases} {xRn,x=xf(x)>f(x)xNϵ(xˉ),x=xˉf(x)>f(xˉ)
    对应图像表示如下:
    最优解与严格最优解
    根据凸函数的定义可以看出, f ( ⋅ ) , G ( ⋅ ) f(\cdot),\mathcal G(\cdot) f(),G()都是凸函数。其中 f ( ⋅ ) f(\cdot) f()中描述的红色点是严格最优解;而红色点 G ( x ∗ ) \mathcal G(x^*) G(x)是最优解的条件下, ∃ x ≠ x ∗ ⇒ f ( x ) = f ( x ∗ ) \exist x \neq x^* \Rightarrow f(x) = f(x^*) x=xf(x)=f(x)。那么该函数的最优解不是严格最优解

无约束优化问题的最优性条件

针对无约束优化问题 ⇒ min ⁡ f ( x ) \Rightarrow \min f(x) minf(x)

无约束优化问题的充要条件

如果目标函数 f ( x ) f(x) f(x)凸函数,则存在如下等价条件
关于无约束凸优化问题,详细解释见最优化理论与方法——凸优化问题(上),这里不再赘述。
x ∗ is Optimal  ⇔ ∇ f ( x ∗ ) = 0 x^* \text{ is Optimal } \Leftrightarrow \nabla f(x^*) = 0 x is Optimal f(x)=0

无约束优化问题的必要条件

如果目标函数 f ( x ) f(x) f(x)不是凸函数,只是一般函数,上述的充要条件不一定成立,但一定满足如下必要条件

  • 如果 x ∗ x^* x是最优解,那么它一定是平稳点
  • 如果 f ( ⋅ ) f(\cdot) f() x ∗ x^* x位置的 Hessian Matrix ⇒ ∇ 2 f ( x ∗ ) \text{Hessian Matrix} \Rightarrow \nabla^2 f(x^*) Hessian Matrix2f(x)存在,那么该矩阵至少是半正定矩阵如果将 f ( ⋅ ) f(\cdot) f()退化成一元函数,必然有: f ′ ′ ( x ∗ ) ≥ 0 f''(x^*) \geq 0 f′′(x)0
    x ∗ is Optimal  ⇒ { ∇ f ( x ∗ ) = 0 ∇ 2 f ( x ∗ ) ≽ 0 x^* \text{ is Optimal } \Rightarrow \begin{cases} \nabla f(x^*) = 0 \\ \nabla^2 f(x^*) \succcurlyeq 0 \end{cases} x is Optimal {f(x)=02f(x)0

证明

  • 已知 x ∗ x^* x最优解不妨设 ∇ f ( x ∗ ) ≠ 0 \nabla f(x^*) \neq 0 f(x)=0,必然存在负梯度方向: d = − ∇ f ( x ∗ ) d = - \nabla f(x^*) d=f(x)
    x ∗ x^* x起始点,沿着负梯度方向前进较小的一段距离: f ( x ∗ + λ ⋅ d ) f(x^* + \lambda \cdot d) f(x+λd),并将其进行泰勒展开
    思路:前进一小段距离后,必然会导致目标函数值下降;从而 x ∗ x^* x不是最优解了,产生矛盾。
    f ( x ∗ + λ ⋅ d ) = f ( x ∗ ) + 1 1 ! λ [ ∇ f ( x ∗ ) ] T d + O ( λ ∥ d ∥ ) λ ∈ ( 0 , 1 ) f(x^* + \lambda \cdot d) = f(x^*) + \frac{1}{1!} \lambda [\nabla f(x^*)]^Td + \mathcal O(\lambda \|d\|) \quad \lambda \in (0,1) f(x+λd)=f(x)+1!1λ[f(x)]Td+O(λd)λ(0,1)
    经过整理,有:
    关于 λ \lambda λ范围后面不再赘述。
    f ( x ∗ + λ ⋅ d ) − f ( x ∗ ) λ = [ ∇ f ( x ∗ ) ] T d + O ( λ ∥ d ∥ ) λ \frac{f(x^* + \lambda \cdot d) - f(x^*)}{\lambda} = [\nabla f(x^*)]^T d + \frac{\mathcal O(\lambda \|d\|)}{\lambda} λf(x+λd)f(x)=[f(x)]Td+λO(λd)
    d = − ∇ f ( x ∗ ) d = -\nabla f(x^*) d=f(x)代入,必然有:
    [ ∇ f ( x ∗ ) ] T d = − ∣ ∣ ∇ f ( x ∗ ) ∣ ∣ 2 < 0 [\nabla f(x^*)]^T d = - ||\nabla f(x^*)||^2 < 0 [f(x)]Td=∣∣∇f(x)2<0
    λ ⇒ 0 \lambda \Rightarrow 0 λ0时,有:
    lim ⁡ λ ⇒ 0 f ( x ∗ + λ ⋅ d ) − f ( x ∗ ) λ = lim ⁡ λ ⇒ 0 { [ ∇ f ( x ∗ ) ] T d ⏟ < 0 + O ( λ ⋅ ∥ d ∥ ) λ ⏟ = 0 } < 0 \mathop{\lim}\limits_{\lambda \Rightarrow 0} \frac{f(x^* + \lambda \cdot d) - f(x^*)}{\lambda} = \mathop{\lim}\limits_{\lambda \Rightarrow 0} \left\{\underbrace{[\nabla f(x^*)]^T d}_{< 0} + \underbrace{\frac{\mathcal O(\lambda \cdot \|d\|)}{\lambda}}_{=0}\right\} < 0 λ0limλf(x+λd)f(x)=λ0lim <0 [f(x)]Td+=0 λO(λd) <0
    从而:
    lim ⁡ λ ⇒ 0 f ( x ∗ + λ ⋅ d ) − f ( x ∗ ) λ < 0 ⇒ lim ⁡ λ ⇒ 0 f ( x ∗ + λ ⋅ d ) < f ( x ∗ ) \mathop{\lim}\limits_{\lambda \Rightarrow 0} \frac{f(x^* + \lambda \cdot d) - f(x^*)}{\lambda} < 0 \Rightarrow \mathop{\lim}\limits_{\lambda \Rightarrow 0} f(x^* + \lambda \cdot d) < f(x^*) λ0limλf(x+λd)f(x)<0λ0limf(x+λd)<f(x)
    此时,发现了存在比 f ( x ∗ ) f(x^*) f(x)还要小的函数值 f ( x ∗ + λ ⋅ d ) f(x^* + \lambda \cdot d) f(x+λd),这意味着: x ∗ x^* x不是最优解。与条件矛盾,得证。也将 ∇ f ( x ∗ ) = 0 \nabla f(x^*) = 0 f(x)=0称作一般函数 f ( ⋅ ) f(\cdot) f() x ∗ x^* x是最优解的一阶必要条件
  • 二阶必要条件证明:已知 x ∗ x^* x是最优解,必然有: ∇ f ( x ∗ ) = 0 \nabla f(x^*) = 0 f(x)=0。假设 x ∗ x^* x位置的 Hessian Matrix ⇒ ∇ 2 f ( x ∗ ) \text{Hessian Matrix} \Rightarrow \nabla^2 f(x^*) Hessian Matrix2f(x)低于半正定矩阵,必然有:
    ∃ d ≠ 0 ⇒ d T ∇ 2 f ( x ∗ ) d < 0 \exist d \neq 0 \Rightarrow d^T \nabla^2 f(x^*) d < 0 d=0dT2f(x)d<0
    x ∗ x^* x起始点 d d d下降方向前进较小的一段距离: f ( x ∗ + λ ⋅ d ) f(x^* + \lambda \cdot d) f(x+λd),并将其进行泰勒展开
    与平稳点的证明相似,只不过需要二阶泰勒展开~
    f ( x ∗ + λ ⋅ d ) = f ( x ∗ ) + 1 1 ! λ ⋅ [ ∇ f ( x ∗ ) ] T ⏟ = 0 d + 1 2 ! λ ⋅ d T ∇ 2 f ( x ∗ ) d + O ( λ 2 ⋅ ∥ d ∥ 2 ) = f ( x ∗ ) + 1 2 ! λ ⋅ d T ∇ 2 f ( x ∗ ) d + O ( λ 2 ⋅ ∥ d ∥ 2 ) \begin{aligned} f(x^* + \lambda \cdot d) & = f(x^*) + \frac{1}{1!} \lambda \cdot \underbrace{[\nabla f(x^*)]^T}_{=0}d + \frac{1}{2!} \lambda \cdot d^T \nabla^2 f(x^*) d + \mathcal O(\lambda^2 \cdot \|d\|^2) \\ & = f(x^*) + \frac{1}{2!} \lambda \cdot d^T \nabla^2 f(x^*) d + \mathcal O(\lambda^2 \cdot \|d\|^2) \end{aligned} f(x+λd)=f(x)+1!1λ=0 [f(x)]Td+2!1λdT2f(x)d+O(λ2d2)=f(x)+2!1λdT2f(x)d+O(λ2d2)
    经过整理,并令 λ ⇒ 0 \lambda \Rightarrow 0 λ0,有:
    lim ⁡ λ ⇒ 0 f ( x ∗ + λ ⋅ d ) − f ( x ∗ ) λ 2 = 1 2 d T ∇ 2 f ( x ∗ ) d ⏟ < 0 + O ( λ 2 ⋅ ∥ d ∥ 2 ) λ 2 ⏟ = 0 < 0 \mathop{\lim}\limits_{\lambda \Rightarrow 0} \frac{f(x^* + \lambda \cdot d) - f(x^*)}{\lambda^2} = \frac{1}{2}\underbrace{d^T \nabla^2 f(x^*) d}_{<0} + \underbrace{\frac{\mathcal O(\lambda^2 \cdot \|d\|^2)}{\lambda^2}}_{=0} < 0 λ0limλ2f(x+λd)f(x)=21<0 dT2f(x)d+=0 λ2O(λ2d2)<0
    从而 f ( x ∗ + λ ⋅ d ) < f ( x ∗ ) f(x^* + \lambda \cdot d) < f(x^*) f(x+λd)<f(x),从而与条件矛盾。因此:最优解 x ∗ x^* x对应的 ∇ 2 f ( x ∗ ) ≽ 0 \nabla^2 f(x^*) \succcurlyeq 0 2f(x)0恒成立。

相反,如果存在某点 x ∗ x^* x,使得: ∇ f ( x ∗ ) = 0 \nabla f(x^*) = 0 f(x)=0 ∇ 2 f ( x ∗ ) ≽ 0 \nabla^2 f(x^*) \succcurlyeq 0 2f(x)0,那么点 x ∗ x^* x是否为最优解 ? ? ?不一定。例如: f ( x ) = x 3 f(x) = x^3 f(x)=x3,其函数图像表示如下:
x立方函数图像
x = 0 x = 0 x=0处的梯度 ∇ f ( x ) ∣ x = 0 = 0 \nabla f(x)|_{x=0} = 0 f(x)x=0=0二阶梯度 ∇ 2 f ( x ) ∣ x = 0 = 0 \nabla^2 f(x) |_{x = 0} = 0 2f(x)x=0=0,均满足条件;但该点是一个鞍点,而不是最优解点。

无约束优化问题的充分条件

如果 f ( ⋅ ) f(\cdot) f()不是凸函数,只是一般函数,如果存在某点 x ∗ x^* x,满足: ∇ f ( x ∗ ) = 0 , ∇ 2 f ( x ∗ ) ≻ 0 \nabla f(x^*) =0,\nabla^2 f(x^*) \succ 0 f(x)=0,2f(x)0,那么 x ∗ x^* x严格最优解

  • 其中 ∇ 2 f ( x ∗ ) ≻ 0 \nabla^2 f(x^*) \succ 0 2f(x)0表示函数 f ( ⋅ ) f(\cdot) f() x ∗ x^* x点处的 Hessian Matrix \text{Hessian Matrix} Hessian Matrix正定矩阵
  • 需要注意的是,这里的严格最优解可能是严格局部最优解或者严格全局最优解

证明
要证上式,即证: ∀ x ∈ N ϵ ( x ∗ ) , f ( x ∗ ) < f ( x ) \forall x \in \mathcal N_{\epsilon}(x^*),f(x^*) < f(x) xNϵ(x),f(x)<f(x)

  • x ∗ x^* x起始点,朝着任意方向 d d d前进较小的距离,得到新的函数结果: f ( x ∗ + λ ⋅ d ) f(x^* + \lambda \cdot d) f(x+λd)。观察: f ( x ∗ + λ ⋅ d ) f(x^* + \lambda \cdot d) f(x+λd) f ( x ∗ ) f(x^*) f(x)之间的大小情况。使用泰勒公式展开
    为了简单起见,仅关注 d d d的方向,而令 d d d大小 ∥ d ∥ = 1 \|d\| = 1 d=1
    f ( x ∗ + λ ⋅ d ) = f ( x ∗ ) + 1 1 ! λ ⋅ [ ∇ f ( x ∗ ) ] T ⏟ = 0 d + 1 2 ! λ 2 d T ∇ 2 f ( x ∗ ) ⏟ ≻ 0 d + O ( λ 2 ) ∥ d ∥ 2 = 1 f(x^* + \lambda \cdot d) = f(x^*) + \frac{1}{1!} \lambda \cdot\underbrace{[\nabla f(x^*)]^T}_{=0} d + \frac{1}{2!} \lambda^2 d^T \underbrace{\nabla^2 f(x^*)}_{\succ 0}d + \mathcal O(\lambda^2) \quad \|d\|^2 = 1 f(x+λd)=f(x)+1!1λ=0 [f(x)]Td+2!1λ2dT0 2f(x)d+O(λ2)d2=1
    整理上式,观察 f ( x ∗ + λ ⋅ d ) − f ( x ∗ ) f(x^* + \lambda \cdot d) - f(x^*) f(x+λd)f(x)结果:
    lim ⁡ λ ⇒ 0 f ( x ∗ + λ ⋅ d ) − f ( x ∗ ) λ 2 = 1 2 d T ∇ 2 f ( x ∗ ) d > 0 \mathop{\lim}\limits_{\lambda \Rightarrow 0} \frac{f(x^* + \lambda \cdot d) - f(x^*)}{\lambda^2} = \frac{1}{2}d^T \nabla^2 f(x^*) d > 0 λ0limλ2f(x+λd)f(x)=21dT2f(x)d>0
    从而 f ( x ∗ + λ ⋅ d ) > f ( x ∗ ) f(x^* + \lambda \cdot d) > f(x^*) f(x+λd)>f(x)。这意味着: x ∗ x^* x范围的小的邻域内, f ( x ∗ ) f(x^*) f(x)是最小值,并且是严格最小值,得证。

Reference \text{Reference} Reference
最优化理论与方法-第五讲-无约束优化问题(一)

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

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

相关文章

Sumo中Traci.trafficlight详解(上)

Sumo中Traci.trafficlight详解&#xff08;上&#xff09; 记录慢慢学习traci的每一天&#xff0c;希望也能帮到你 文章目录 Sumo中Traci.trafficlight详解&#xff08;上&#xff09;Traci.trafficlight信号灯参数讲解1.getAllProgramLogics(self,tlsID)2.getBlockingVehicle…

如何快速搭建母婴行业的微信小程序?

如果你想为你的母婴行业打造一个独特的小程序&#xff0c;但没有任何编程经验&#xff0c;别担心&#xff01;现在有许多小程序制作平台提供了简单易用的工具&#xff0c;让你可以轻松地建立自己的小程序。接下来&#xff0c;我将为你详细介绍搭建母婴行业小程序的步骤。 首先&…

无需租用云服务器:使用Linux本地搭建web服务并实现内网穿透发布公网访问的详细教程

文章目录 前言1. 本地搭建web站点2. 测试局域网访问3. 公开本地web网站3.1 安装cpolar内网穿透3.2 创建http隧道&#xff0c;指向本地80端口3.3 配置后台服务 4. 配置固定二级子域名5. 测试使用固定二级子域名访问本地web站点 前言 在web项目中,部署的web站点需要被外部访问,则…

算法专栏——双指针

1.移动零 题目链接&#xff1a;移动 0_牛客题霸_牛客网 (nowcoder.com) 算法原理&#xff1a; 像这样子的将一整块数组划分很多部分可以称为数组划分&#xff0c;常用的解法可以是双指针。 说是双指针&#xff0c;但操作的对象是数组&#xff0c;因此下标就是指针。 双指针的…

【LeetCode】剑指 Offer <二刷>(6)

目录 题目&#xff1a;剑指 Offer 12. 矩阵中的路径 - 力扣&#xff08;LeetCode&#xff09; 题目的接口&#xff1a; 解题思路&#xff1a; 代码&#xff1a; 过啦&#xff01;&#xff01;&#xff01; 题目&#xff1a;剑指 Offer 13. 机器人的运动范围 - 力扣&#…

Linux的命令

Linux的命令分为四个类型&#xff1a;文件操作命令、系统操作命令、文本处理命令和网络操作命令。下面简单介绍一下常用的Linux命令&#xff1a; 文件操作命令 ls&#xff1a;列出目录下的所有文件和目录。 cd&#xff1a;切换当前目录。 mkdir&#xff1a;创建一个新目录。…

在公网上使用SSH远程连接安卓手机Termux:将Android手机变身为远程服务器

文章目录 前言1.安装ssh2.安装cpolar内网穿透3.远程ssh连接配置4.公网远程连接5.固定远程连接地址 前言 使用安卓机跑东西的时候&#xff0c;屏幕太小&#xff0c;有时候操作不习惯。不过我们可以开启ssh&#xff0c;使用电脑PC端SSH远程连接手机termux。 本次教程主要实现在…

zabbix监控平台部署

目录 前言 一、zabbix的基本概述 &#xff08;一&#xff09;、zabbix的工作流程 &#xff08;二&#xff09;、zabbix的构成 &#xff08;三&#xff09;、zabbix的监控对象 &#xff08;四&#xff09;、zabbix的常用术语 &#xff08;五&#xff09;、zabbix进程详解…

如何高效的解析Json?

Json介绍 Json是一种数据格式&#xff0c;广泛应用在需要数据交互的场景Json由键值对组成每一个键值对的key是字符串类型每一个键值对的value是值类型(boo1值数字值字符串值)Array类型object类型Json灵活性他可以不断嵌套&#xff0c;数组的每个元素还可以是数组或者键值对键值…

三维跨孔电磁波CT数据可视化框架搭建

三维跨孔电磁波CT数据可视化框架搭建 文章目录 三维跨孔电磁波CT数据可视化框架搭建1、三维CT可视化结果2、matlab代码2.1、CT数据格式整理并保存2.2、三维可视化 利用matlab实现对跨孔电磁波CT实测数据反演&#xff0c;并搭建了三维CT数据可视化框架&#xff0c;可装填实测CT反…

图解SQL查询之分组聚合技巧:如何使用GROUP BY对数据进行分组

在 SQL 中&#xff0c;分组聚合是一种按照指定的列对数据进行分组&#xff0c;并对每个分组应用聚合函数&#xff08;如COUNT、SUM、AVG等&#xff09;以获取汇总结果的操作。 以下是用到的表 例如&#xff0c;要求计算每个班级的总年龄。

什么是接口测试,如何做接口测试?

比起点点点的功能测试&#xff0c;“接口测试”显得专业又高大上&#xff0c;也因此让有些初级测试人员“望而生畏”。别担心&#xff0c;其实接口测试也是功能测试的一种&#xff0c;它是针对接口进行的功能测试。 写在前面&#xff1a;本文参考了茹炳晟老师的《测试工程师 全…

2023-9-4 欧拉函数

题目链接&#xff1a;欧拉函数 #include <iostream>using namespace std;int main() {int n;cin >> n;while(n --){int x;cin >> x;int res x;for(int i 2; i < x / i; i){if(x % i 0){res res / i * (i - 1); // 公式 N * (1 - 1 / p1) * (1 - 1/ p2…

wireshark抓包分析

题目一&#xff1a;Cephalopod(图片提取) 打开下载好的数据包&#xff1a;CtrlF 按照如图选择分组字节流&#xff0c;选择字符串&#xff0c;输入‘flag’筛选出数据包&#xff1b; 点击筛选出来的一条数据包&#xff0c;右键选择追踪tcp流&#xff1b; 然后可以看到png的字样…

基于QEMU的vexpress-a9开发调试环境搭建

准备工作 如果是window环境&#xff0c;则建议安装virtual box或vmware以便安装linux ubuntu。在ubuntu上安装必要工具&#xff1a; sudo adb install qemu-system-arm gdb-multiarch libnl-3-dev libncurses5-dev binutils-arm-linux-gnueabi gcc-arm-linux-gnueabi 编译ker…

云原生Kubernetes:Kubeadm部署K8S单Master架构

目录 一、理论 1.kubeadm 2.Kubeadm部署K8S单Master架构 3.环境部署 4.所有节点安装docker 5.所有节点安装kubeadm&#xff0c;kubelet和kubectl 6.部署K8S集群 7.安装dashboard 8.安装Harbor私有仓库 9.内核参数优化方案 二、实验 1.Kubeadm部署K8S单Master架构 …

基于sonar 的C#静态代码扫描使用总结

1.原理简介 C#语言接入Sonar代码静态扫描相较于Java、Python来说&#xff0c;相对麻烦一些。Sonar检测C#代码时需要预先编译&#xff0c;而且C#代码必须用MSbuid进行编译&#xff0c;如果需要使用SonarQube对C#进行代码质量分析&#xff0c;则需要Sonar-Scanner-MSBuild和MSBu…

入坑ThreadLocal,这一篇文章就够了

一、前言 很多 Java 开发一般都是做中台较多&#xff0c;并发编程使用的不多。因此&#xff0c;对 ThreadLocal 不太熟悉&#xff0c;所以笔者这里想让大家了解它&#xff0c;知道它是用来干什么的。 二、ThreadLocal 是用来干什么的 ThreadLocal 是 Java 中一种线程封闭技术…

睿趣科技:抖音小店多久可以做起来

随着社交媒体的迅猛发展&#xff0c;抖音成为了全球最受欢迎的短视频平台之一&#xff0c;吸引了数以亿计的用户。在抖音上&#xff0c;人们不仅可以分享自己的生活、才艺和创意&#xff0c;还可以创业经营抖音小店。但是&#xff0c;很多人都想知道&#xff0c;一个抖音小店到…

MySQL如何高效实现刷脏页,了解原理并学会配置

目录 一、什么是刷脏页 二、MySQL刷脏页的策略 三、MySQL刷脏页的实现原理 四、MySQL如何实现刷脏页 一、什么是刷脏页 在MySQL中&#xff0c;刷脏页是指将内存中已被修改的数据页&#xff08;也称为脏页&#xff09;写回到磁盘的过程。 当MySQL执行数据更新操作时&#…