凸优化学习(四)——凸优化问题

2023-11-15

注意,本文内容来自于吴恩达老师cs229课堂笔记的中文翻译项目:https://github.com/Kivy-CN/Stanford-CS-229-CN 中的凸优化部分的内容进行翻译学习。

4 凸优化问题

利用凸函数和集合的定义,我们现在可以考虑凸优化问题。 正式的定义为:一个凸优化问题在一个最优化问题中的形式如下:

m i n i m i z e f ( x ) s u b j e c t t o x ∈ C minimize\quad f(x) \\ subject\quad to\quad x\in C minimizef(x)subjecttoxC

其中 f f f为凸函数, C C C为凸集, x x x为优化变量。然而,由于这样写可能有点不清楚,我们通常把它写成

m i n i m i z e f ( x ) s u b j e c t t o g i ( x ) ≤ 0 , i = 1 , ⋯   , m h i ( x ) = 0 , i = 1 , ⋯   , p \begin{aligned} minimize\quad &f(x) \\ subject\quad to\quad &g_i(x)\le 0,\quad i=1,\cdots,m \\ &h_i(x)=0,\quad i=1,\cdots,p \end{aligned} minimizesubjecttof(x)gi(x)0,i=1,,mhi(x)=0,i=1,,p

其中 f f f为凸函数, g i g_i gi为凸函数, h i h_i hi为仿射函数, x x x为优化变量。

注意这些不等式的方向很重要:凸函数 g i g_i gi必须小于零。这是因为 g i g_i gi 0 − s u b l e v e l 0-sublevel 0sublevel集是一个凸集,所以可行域,是许多凸集的交集,其也是凸集(回忆前面讲过的仿射子空间也是凸集)。如果我们要求某些凸函数 g i g_i gi的不等式为 g i ≥ 0 g_i\ge 0 gi0,那么可行域将不再是一个凸集,我们用来求解这些问题的算法也不再保证能找到全局最优解。还要注意,只有仿射函数才允许为等式约束。直觉上来说,你可以认为一个等式约束 h i = 0 h_i= 0 hi=0等价于两个不等式约束 h i ≤ 0 h_i\le 0 hi0 h i ≥ 0 h_i\ge 0 hi0。然而,当且仅当 h i h_i hi同时为凸函数和凹函数时,这两个约束条件才都是有效的,因此 h i h_i hi一定是仿射函数。

优化问题的最优值表示成 p ∗ p^* p(有时表示为 f ∗ f^* f),并且其等于目标函数在可行域 7 ^7 7内的最小可能值。

7 数学专业的学生可能会注意到,下面出现的最小值更应该用符号 i n f inf inf。这里我们不需要担心这些技术问题,为了简单起见,我们使用符号 m i n min min

p ∗ = m i n { f ( x ) : g i ( x ) ≤ 0 , i = 1 , … , m , h i ( x ) = 0 , i = 1 , … , p } p^* = min\{f(x):g_i(x)\le 0,i=1,\dots,m,h_i(x)=0,i=1,\dots,p\} p=min{f(x):gi(x)0,i=1,,m,hi(x)=0,i=1,,p}

当问题是不可行(即可行域是空的)时或无下界(即存在这样的可行点使得 f ( x ) → − ∞ f(x)\rightarrow -\infin f(x))时,我们允许 p ∗ p^* p取值为 + ∞ +\infin + − ∞ -\infin 。当 f ( x ∗ ) = p ∗ f(x^*)=p^* f(x)=p时,我们称 x ∗ x^* x是一个最优点(optimal point)。 注意,即使最优值是有限的,也可以有多个最优点。

4.1 凸问题的全局最优性

在说明凸问题中的全局最优性结果之前,让我们正式定义局部最优和全局最优的概念。直观地说,如果一个函数目标值附近没有令该函数值较低的可行点,则该可行点 (译者注:即该函数目标值的原像) 被称为局部最优。 类似地,如果一个函数的全局都没有比目标值更低的可行点,则该可行点称为全局最优。 为了更形式化一点,我们给出了以下两个定义。

定义 4.1 4.1 4.1 如果在可行域(即,满足优化问题的约束条件)内存在某些 R > 0 R > 0 R>0的数,使得所有可行点 z z z,当满足 ∥ x − z ∥ 2 ≤ R \parallel x-z\parallel_2\le R xz2R时,均可以得到 f ( x ) ≤ f ( z ) f(x)\le f(z) f(x)f(z),则我们称点 x x x是局部最优的。

定义 4.2 4.2 4.2 如果在可行域所有可行点 z z z,都满足 f ( x ) ≤ f ( z ) f(x)\le f(z) f(x)f(z),则我们称点 x x x是全局最优的。

现在我们来讨论凸优化问题的关键元素,它们的大部作用都来自于此。其核心思想是对于一个凸优化问题,所有局部最优点都是全局最优的。

让我们用反证法来快速证明这个性质。假设 x x x是局部最优点而不是全局最优点,即,存在这样一个可行点 y y y使得 f ( x ) &gt; f ( y ) f(x)&gt;f(y) f(x)>f(y)。根据局部最优性的定义,不存在 ∥ x − z ∥ 2 ≤ R \parallel x-z\parallel_2\le R xz2R f ( z ) &lt; f ( x ) f(z) &lt; f(x) f(z)<f(x)的可行点 z z z。现在假设我们选择这个点

z = θ y + ( 1 − θ ) x 有 θ = R 2 ∥ x − y ∥ 2 z = \theta y +(1-\theta)x\quad有\quad\theta=\frac{R}{2\parallel x-y\parallel_2} z=θy+(1θ)xθ=2xy2R

则:

∥ x − z ∥ 2 = ∥ x − ( R 2 ∥ x − y ∥ 2 y + ( 1 − R 2 ∥ x − y ∥ 2 ) x ) ∥ 2 = ∥ R 2 ∥ x − y ∥ 2 ( x − y ) ∥ 2 = R 2 ≤ R \begin{aligned} \parallel x-z\parallel_2 &amp;= \parallel x-(\frac{R}{2\parallel x-y\parallel_2}y+(1-\frac{R}{2\parallel x-y\parallel_2})x)\parallel_2 \\ &amp;= \parallel \frac{R}{2\parallel x-y\parallel_2}(x-y)\parallel_2 \\ &amp;= \frac R2\le R \end{aligned} xz2=x(2xy2Ry+(12xy2R)x)2=2xy2R(xy)2=2RR

另外,通过 f f f的凸性,我们可得:

f ( z ) = f ( θ y + ( 1 − θ ) x ) ≤ θ f ( y ) + ( 1 − θ ) f ( x ) &lt; f ( x ) f(z)=f(\theta y +(1-\theta)x)\le\theta f(y)+(1-\theta)f(x)&lt; f(x) f(z)=f(θy+(1θ)x)θf(y)+(1θ)f(x)<f(x)

此外,由于可行域的集合是凸集,同时 x x x y y y都是可行的,因此 z = θ y + ( 1 − θ ) z =\theta y +(1-\theta) z=θy+(1θ)也会是可行的。因此, z z z是一个可行点,满足 ∥ x − z ∥ 2 ≤ R \parallel x-z\parallel_2\le R xz2R以及 f ( z ) &lt; f ( x ) f(z) &lt; f(x) f(z)<f(x)。这与我们的假设相矛盾,表明 x x x不可能是局部最优的。

4.2 凸问题的特殊情况

由于各种原因,通常考虑一般凸规划公式的特殊情况比较方便。对于这些特殊情况,我们通常可以设计出非常高效的算法来解决非常大的问题,正因为如此,当人们使用凸优化技术时,你可能会看到这些特殊情况。

  • 线性规划。 如果目标函数 f f f和不等式约束 g i g_i gi都是仿射函数,那么凸优化问题就是一个线性规划(linear program,LP) 问题。换句话说,这些问题都有如下形式:

m i n i m i z e c T x + d s u b j e c t t o G x ⪯ h A x = b \begin{aligned} minimize\quad &amp;c^Tx+d \\ subject\quad to\quad &amp;Gx\preceq h \\ &amp;Ax=b \end{aligned} minimizesubjecttocTx+dGxhAx=b

其中, x ∈ R n x\in R^n xRn是优化变量, c ∈ R n , d ∈ R , G ∈ R m × n , h ∈ R m , A ∈ R p × n , b ∈ R p c\in R^n,d\in R,G\in R^{m\times n},h\in R^m,A\in R^{p\times n},b\in R^p cRn,dR,GRm×n,hRm,ARp×n,bRp这些变量根据具体问题具体定义,符号‘ ⪯ \preceq ’代表(多维向量中)各个元素不相等。

  • 二次规划。 如果不等式约束(跟线性规划)一样是仿射的,而目标函数 f f f是凸二次函数,则凸优化问题是一个二次规划(quadratic program,QP) 问题。换句话说,这些问题都有如下形式:

m i n i m i z e 1 2 x T P x + c T x + d s u b j e c t t o G x ⪯ h A x = b \begin{aligned} minimize\quad &amp;\frac 12x^TPx+c^Tx+d \\ subject\quad to\quad &amp;Gx\preceq h \\ &amp;Ax=b \end{aligned} minimizesubjectto21xTPx+cTx+dGxhAx=b

其中, x ∈ R n x\in R^n xRn是优化变量, c ∈ R n , d ∈ R , G ∈ R m × n , h ∈ R m , A ∈ R p × n , b ∈ R p c\in R^n,d\in R,G\in R^{m\times n},h\in R^m,A\in R^{p\times n},b\in R^p cRn,dR,GRm×n,hRm,ARp×n,bRp这些变量根据具体问题具体定义,但是这里我们还有一个对称半正定矩阵 P ∈ R + n P\in R^n_+ PR+n

  • 二次约束二次规划。 如果目标函数 f f f和不等式约束条件 g i g_i gi都是凸二次函数,那么凸优化问题就是一个**二次约束的二次规划(quadratically constrained quadratic program,QCQP)**问题,形式如下:

m i n i m i z e 1 2 x T P x + c T x + d s u b j e c t t o 1 2 x T Q i x + r i T x + s i ≤ 0 , i = 1 , … , m A x = b \begin{aligned} minimize\quad &amp;\frac 12x^TPx+c^Tx+d \\ subject\quad to\quad &amp;\frac 12x^TQ_ix+r_i^Tx+s_i\le 0,\quad i=1,\dots,m \\ &amp;Ax=b \end{aligned} minimizesubjectto21xTPx+cTx+d21xTQix+riTx+si0,i=1,,mAx=b

跟二次规划一样,其中的 x ∈ R n x\in R^n xRn是优化变量,并且有 c ∈ R n , d ∈ R , A ∈ R p × n , b ∈ R p , P ∈ R + n c\in R^n,d\in R,A\in R^{p\times n},b\in R^p,P\in R^n_+ cRn,dR,ARp×n,bRp,PR+n,与之不同的是这里还有 Q i ∈ S + n , r i ∈ R n , s i ∈ R Q_i\in S^n_+,r_i\in R^n,s_i\in R QiS+n,riRn,siR,其中 i = 1 , . . . , m i=1,...,m i=1,...,m

  • 半定规划。 最后一个示例比前面的示例更复杂,所以如果一开始不太理解也不要担心。但是,半定规划在机器学习许多领域的研究中正变得越来越流行,所以你可能在以后的某个时候会遇到这些问题,所以提前了解半定规划的内容还是比较好的。我们说一个凸优化问题是半定规划(SDP) 的,则其形式如下所示:

m i n i m i z e t r ( C X ) s u b j e c t t o t r ( A i X ) = b i , i = 1 , ⋯ &ThinSpace; , p X ⪰ 0 \begin{aligned} minimize\quad &amp;tr(CX) \\ subject\quad to\quad &amp;tr(A_iX)=b_i,\quad i=1,\cdots,p \\ &amp;X\succeq 0 \end{aligned} minimizesubjecttotr(CX)tr(AiX)=bi,i=1,,pX0

其中对称矩阵 X ∈ S n X\in S^n XSn是优化变量,对称矩阵 C , A 1 , ⋯ &ThinSpace; , A p ∈ S n C,A_1,\cdots,A_p\in S^n C,A1,,ApSn根据具体问题具体定义,限制条件 X ⪰ 0 X\succeq 0 X0意味着 X X X是一个半正定矩阵。以上这些看起来和我们之前看到的问题有点不同,因为优化变量现在是一个矩阵而不是向量。如果你好奇为什么这样的公式可能有用,你应该看看更高级的课程或关于凸优化的书。

从定义可以明显看出,二次规划比线性规划更具有一般性(因为线性规划只是 P = 0 P = 0 P=0时的二次规划的特殊情况),同样,二次约束二次规划比二次规划更具有一般性。然而,不明显的是,半定规划实际上比以前的所有类型都更一般,也就是说,任何二次约束二次规划(以及任何二次规划或线性规划)都可以表示为半定规划。在本文当中,我们不会进一步讨论这种关系,但是这个结论可能会让你对半定规划为何有用有一个小小的概念。

4.3 实例

到目前为止,我们已经讨论了凸优化背后大量枯燥的数学以及形式化的定义。接下来,我们终于可以进入有趣的部分:使用这些技术来解决实际问题。我们在课堂上已经遇到过一些这样的优化问题,而且几乎在每个领域,都有很多情况需要人们应用凸优化来解决一些问题。

  • 支持向量机(SVM)。 支持向量机分类器是凸优化方法在机器学习中最常见的应用之一。如课堂上所讨论的,寻找支持向量分类器(在松弛变量的情况下)可以表示为如下所示的优化问题:

m i n i m i z e 1 2 ∥ w ∥ 2 2 + C ∑ i = 1 m ξ i s u b j e c t t o y ( i ) ( w T x ( i ) + b ) ≥ 1 − ξ i , i = 1 , . . . , m ξ i ≥ 0 , i = 1 , . . . , m \begin{aligned} minimize \quad &amp; \frac 12 \parallel w\parallel_2 ^2+C\sum^m_{i=1}\xi_i \\ subject\quad to \quad&amp; y^{(i)}(w^Tx^{(i)}+b) \geq1-\xi_i,\quad &amp;i=1,...,m\\ &amp; \xi_i \geq 0, &amp;i=1,...,m \end{aligned} minimizesubjectto21w22+Ci=1mξiy(i)(wTx(i)+b)1ξi,ξi0,i=1,...,mi=1,...,m

其中 w ∈ R n , ξ ∈ R m , b ∈ R w\in R^n,\xi\in R^m,b\in R wRn,ξRm,bR是优化变量, C ∈ R , x ( i ) , y ( i ) , i = 1 , ⋯ &ThinSpace; , m C\in R,x^{(i)},y^{(i)},i=1,\cdots,m CR,x(i),y(i),i=1,,m根据具体问题具体定义。这是一个二次规划的例子,我们下面通过将问题转换成上一节中描述的形式来展示它。特别的,当我们定义 k = m + n + 1 k=m+n+1 k=m+n+1时,则优化变量为:

x ∈ R k = [ w ξ b ] x\in R^k=\left[ \begin{matrix} w \\ \xi \\ b \end{matrix} \right] xRk=wξb

然后定义矩阵:

P ∈ R k × k = [ I 0 0 0 0 0 0 0 0 ] , c ∈ R k = [ 0 C ⋅ 1 0 ] , G ∈ R 2 m × k = [ − d i a g ( y ) X − I − y 0 − I 0 ] , h ∈ R 2 m = [ − 1 0 ] P\in R^{k\times k}=\left[ \begin{matrix} I&amp;0&amp;0 \\ 0&amp;0&amp;0 \\ 0&amp;0&amp;0 \end{matrix} \right],\quad c\in R^k=\left[ \begin{matrix} 0 \\ C\cdot 1 \\ 0 \end{matrix} \right], \\ G\in R^{2m\times k}=\left[ \begin{matrix} -diag(y)X&amp;-I&amp;-y \\ 0&amp;-I&amp;0 \end{matrix} \right],\quad h\in R^{2m}=\left[ \begin{matrix} -1 \\ 0 \end{matrix} \right] PRk×k=I00000000,cRk=0C10,GR2m×k=[diag(y)X0IIy0],hR2m=[10]

其中 I I I是单位矩阵, 1 1 1是所有元素都是 1 1 1的向量, X X X y y y跟课程中定义的一样:

X ∈ R m × n = [ x ( 1 ) T x ( 2 ) T ⋮ x ( m ) T ] , y ∈ R m = [ y ( 1 ) y ( 2 ) ⋮ y ( m ) ] X\in R^{m\times n}=\left[ \begin{matrix} x^{(1)T} \\ x^{(2)T} \\ \vdots \\ x^{(m)T} \end{matrix} \right],\quad y\in R^m=\left[ \begin{matrix} y^{(1)} \\ y^{(2)} \\ \vdots \\ y^{(m)} \end{matrix} \right] XRm×n=x(1)Tx(2)Tx(m)T,yRm=y(1)y(2)y(m)

你有理由相信在使用上述定义的矩阵时,上一节描述的二次规划与SVM优化问题是等价的。事实上,这里很容易看到支持向量机优化问题的二次优化目标项以及线性约束项,所以我们通常不需要把它化为标准形式“证明”它是一个二次规划(QP)问题,只有在遇到的现成解决方案中要求输入必须为标准形式时,我们才会这样做。

  • 约束最小二乘法。 在课堂上,我们也遇到了最小二乘问题,在这个问题中,我们想要在已知某些矩阵 A ∈ R m × n A\in R^{m\times n} ARm×n以及 b ∈ R m b\in R^m bRm时最小化 ∥ A x = b ∥ 2 2 \parallel Ax=b\parallel_2^2 Ax=b22。正如我们所看到的,这个特殊的问题可以通过正规方程得到解析解。但是,假设我们还希望将解决方案中的 x x x限制在一些预定义的范围内。换句话说,假设我们要解最优化如下的问题:

m i n i m i z e 1 2 ∥ A x − b ∥ 2 2 s u b j e c t t o l ⪯ x ⪯ μ \begin{aligned} minimize\quad&amp;\frac 12\parallel Ax-b\parallel_2^2 \\ subject\quad to\quad &amp;l\preceq x\preceq\mu \end{aligned} minimizesubjectto21Axb22lxμ

x x x是优化变量, A ∈ R m × n , b ∈ R m , l ∈ R n A\in R^{m\times n},b\in R^m,l\in R^n ARm×n,bRm,lRn根据具体问题具体定义。这看起来像是一个简单的附加约束,但事实证明,这个问题将不再存在一个解析解。但是,你应该相信这个优化问题是一个二次规划问题,它的矩阵由如下式子定义:

P ∈ R n × n = 1 2 A T A , c ∈ R n = − b T A , d ∈ R = 1 2 b T b , G ∈ R 2 n × 2 n = [ − I 0 0 I ] , h ∈ R 2 n = [ − l u ] P\in R^{n\times n}=\frac 12A^TA,\quad c\in R^n=-b^TA,\quad d\in R=\frac 12b^Tb, \\ G\in R^{2n\times 2n}=\left[ \begin{matrix} -I&amp;0 \\ 0&amp;I \end{matrix} \right],\quad h\in R^{2n}=\left[ \begin{matrix} -l \\ u \end{matrix} \right] PRn×n=21ATA,cRn=bTA,dR=21bTb,GR2n×2n=[I00I],hR2n=[lu]

  • 最大似然逻辑回归。 作业一要求你需要证明逻辑回归模型中数据的对数似然函数是凹的。逻辑回归的对数似然函数如下:

l ( θ ) = ∑ i = 1 n { y ( i ) l n g ( θ T x ( i ) ) + ( 1 − y ( i ) ) l n ( 1 − g ( θ T x ( i ) ) ) } l(\theta)=\sum_{i=1}^n \{y^{(i)}lng(\theta^Tx^{(i)})+(1-y^{(i)})ln(1-g(\theta^Tx^{(i)}))\} l(θ)=i=1n{y(i)lng(θTx(i))+(1y(i))ln(1g(θTx(i)))}

其中 g ( z ) g(z) g(z)表示逻辑回归函数 g ( z ) = 1 / ( 1 + e − z ) g(z) = 1/(1 + e^{-z}) g(z)=1/(1+ez),求出最大似然估计是使对数似然最大化的任务(或者等价的最小化负对数似然函数,其是一个凸函数),即:

m i n i m i z e − l ( θ ) minimize\quad -l(\theta) minimizel(θ)

优化变量为 θ ∈ R n \theta\in R^n θRn,并且没有约束。

与前两个示例不同,将这个问题转化为标准形式优化问题并不容易。尽管如此,你们在作业中已经看到这是一个凹函数,这意味着你们可以非常有效地使用一些算法,如:牛顿法来找到全局最优解。

4.4 实现:使用CVX实现线性SVM

利用CVX、Sedumi、CPLEX、MOSEK等现有软件包可以解决许多凸优化问题。因此,在许多情况下,一旦你确定了凸优化问题,就不必担心如何实现算法来解决它,而这一点这对于快速原型开发特别有用。 8 ^8 8

8 然而,根据优化问题的不同,这些现成的凸优化求解器会比最佳实现慢得多;因此,有时你可能不得不使用更定制的解决方案或实现自己的解决方案。

在这些软件包中,我们以CVX[2]注:参考资料[2]见文章最下方为例。CVX是一种自由的基于matlab的求解一般凸优化问题的软件包;它可以解决多种凸优化问题,如LP、QP、QCQP、SDP等。作为一个例子,我们通过使用习题集1中的数据为二分类问题实现一个线性SVM分类器来结束本节。对于使用其他非线性内核的一般设置,也可以使用CVX求解对偶公式。

% load data
load q1x.dat
load q1y.dat
% define variables
X = q1x;
y = 2*(q1y-0.5);
C = 1;
m = size(q1x,1);
n = size(q1x,2);
% train svm using cvx
cvx_begin
variables w(n) b xi(m)
minimize 1/2*sum(w.*w) + C*sum(xi)
y.*(X*w + b) >= 1 - xi;
xi >= 0;
cvx_end
% visualize
xp = linspace(min(X(:,1)), max(X(:,1)), 100);
yp = - (w(1)*xp + b)/w(2);
yp1 = - (w(1)*xp + b - 1)/w(2); % margin boundary for support vectors for y=1
yp0 = - (w(1)*xp + b + 1)/w(2); % margin boundary for support vectors for y=0
idx0 = find(q1y==0);
idx1 = find(q1y==1);
plot(q1x(idx0, 1), q1x(idx0, 2), ’rx’); hold on

plot(q1x(idx1, 1), q1x(idx1, 2), ’go’);
plot(xp, yp, ’-b’, xp, yp1, ’--g’, xp, yp0, ’--r’);
hold off
title(sprintf(’decision boundary for a linear SVM classifier with C=%g’, C));
参考资料
[1] Stephen Boyd and Lieven Vandenberghe. Convex Optimization. Cambridge UP, 2004. Online: http://www.stanford.edu/~boyd/cvxbook/
[2] M. Grant and S. Boyd. CVX: Matlab software for disciplined convex programming (web page and software). http://cvxr.com/, September 2008.

下一篇:凸优化学习(五)——拉格朗日对偶

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

凸优化学习(四)——凸优化问题 的相关文章

  • delphi测试服务器响应时间,TIdHttp.Post响应时间太长

    我正在使用Delphi XE6 我已阅读以下所有内容 我知道相关时间和性能因素包括 1 HTTPOptions 2 TIdHttp Request选项 内容类型 编码 尤其是连接超时设置 3 iCsslIOHandler SSLOption
  • 多层感知器介绍

    一 概览 现实世界中很多真实的问题都不是线性可分的 即无法使用一条直线 平面或者超平面分割不同的类别 其中典型的例子是异或问题 Exclusive OR XOR 即假设输入为x1和x2 如果它们相同 即当x1 0 x2 0或x1 1 x2

随机推荐

  • Oracle19c数据库服务

    本节整理了Oracle在Windows下运行所安装的服务 桌面点击 我的电脑 管理 服务和应用程序 服务 进入下图界面 然后找到以Ora字段开头的服务就是Oracle的服务 如下图 1 OracleJobSchedulerORCL 描述 O
  • centos7下 k8s的安装 2023年8月6日

    一 基本信息介绍 kubernetes 1 27 4 系统 centos7 etcd 3 5 7 containerd 1 6 20 runc 1 1 5 建议内核升级到5 10 本次安装就只有一个master和两个个node节点 192
  • 空间配置器

    空间配置器 一 空间配置器概述 STL的操作对象都放在容器内 而容器需要一定的配置空间来存放数据资料 而空间配置器就负责给容器分配空间 SGI STL分配的空间是内存 其实基本都是内存吧 二 空间配置器的标准接口 1 必要接口 根据容器的需
  • centos解决mysql-bin.000*占用超大空间的问题

    本站 也就是安全者 网站数据库挂了一下午 也没时间处理 晚上回来后尝试restart mysql 发现一直提示shutting down 关闭不了 也stop不了 服务器重启也不行 可以确信肯定是mysql出问题了 进入mysql的data
  • HTTPS的加密过程

    HTTPS HTTPS即加密的HTTP HTTPS并不是一个新协议 而是HTTP SSL TLS 原本HTTP先和TCP 假定传输层是TCP协议 直接通信 而加了SSL后 就变成HTTP先和SSL通信 再由SSL和TCP通信 相当于SSL被
  • 【数据结构与算法——TypeScript】数组、栈、队列、链表

    数据结构与算法 TypeScript 算法 Algorithm 的认识 解决问题的过程中 不仅仅 数据的存储方式会影响效率 算法的优劣也会影响效率 什么是算法 定义 一个有限指令集 每条指令的描述不依赖于言语 编写指令 java c ts
  • (十八)Mybatis的XML文件中不允许出现“>“

    mybatis XML文件中不允许出现 gt lt 之类的符号 需要转义 是可以正常 关于elasticsearch中 gt gte lt lte缩写的含义
  • 反序列化漏洞原理/防御

    序列化就是将对象转换成字节流 可以更方便的将数据保存到本地文件 反序列化就是将字节流还原成对象 Java中提供了两个接口来支持序列化 ObjectIutputStream 和ObjectOutputStream 序列化相对安全 问题出在反序
  • html烟花特效,发射粒子特效,爱心特效,动态祝福、节日祝福网页,时间罗盘,黑客帝国代码雨、文字闪烁、表白爱心网页等等(附下载链接)

    粒子炫酷特效网页 html css js 大家都觉得程序员的工作很枯燥乏味 今天我就带大家看看程序员开发的那些漂亮的网页效果 点我下载源码 1 烟花特效 粒子特效 节日祝福 表白爱心网页 动态泡泡网页 动态蝴蝶网页 七叶草动态飘落网页 时间
  • Linux学习-Linux系统及编程基础笔记

    useradd zhangsan passwd zhangsan visudo往 etc sudoers文件中添加zhangsan visudo 找到如下的行 root ALL ALL ALL 往该行下面添加zhangsan zhangsa
  • 深度学习与机器学习的思考

    需要一些传统图像处理知识为佳 end to end 端到端 说的是 输入的是原始数据 始端 然后输出的直接就是最终目标 末端 中间过程不可知 因此也难以知 就此 有人批评深度学习就是一个黑箱 Black Box 系统 其性能很好 却不知道为
  • PostgreSQL 计算逾期率

    描述 计算下ylhx4 cxh xinyanfeature表 小鲨中部分用新颜的数据 中的1999个用户 首次借款第一期 第二期的d0和d15的逾期率 还款信息在transformdata xsfinrak表 小鲨用户 中 psperdno
  • 中点分割裁剪算法

    中点分割裁剪算法 python 实验目的 采用中点分割方法找到距离线段顶点最近的可见点 找到后 进行绘制 即可实现直线段在裁剪窗口的裁剪显示 算法思想 设要裁剪的线段是P1P2 中点分割算法可分成两个平行的过程进行 即从P1点出发找出离P1
  • Git基础操作:本地分支和远程分支改名

    相信聪明的你 直接看代码就能看懂 本地分支改名 git branch m feature add header2 feature add header 删除远程分支 git push origin feature add header2 本
  • FlashAttention

    一 论文题目 发表处 时间 FlashAttention Fast and Memory Efficient Exact Attention with IO Awareness 二 主要方向 新型注意力机制 三 细化任务 一种具有 IO 感
  • 2022深圳杯C题思路解析

    题目描述 继续更新 再更问题三 继续更新第一问 第四问 1 2 问题重述 在制定电动车调度方案时 必须考虑充 换电池的时间成本 从而提出了新 的车辆运输选址及调度问题 1 已知自动驾驶电动物料车在取料点 P 和卸货点 D 之间往复运送物料
  • Qt 对象树

    作者 billy 版权声明 著作权归作者所有 商业转载请联系作者获得授权 非商业转载请注明出处 Object Tree Model 先来看一下 QObject 的构造函数 通过帮助文档我们可以看到 QObject 的构造函数中会传入一个 P
  • Linux ./configure --prefix 命令是什么意思?

    Linux configure prefix 命令是什么意思 源码的安装一般由3个步骤组成 配置 configure 编译 make 安装 makeinstall Configure是一个可执行脚本 它有很多选项 在待安装的源码路径下使用命
  • D - Meeting Bahosain Gym - 102263D

    Essa wanted to meet the most powerful number theorist of all time Bahosain but Bahosain does not waste his precious time
  • 凸优化学习(四)——凸优化问题

    注意 本文内容来自于吴恩达老师cs229课堂笔记的中文翻译项目 https github com Kivy CN Stanford CS 229 CN 中的凸优化部分的内容进行翻译学习 4 凸优化问题 利用凸函数和集合的定义 我们现在可以考