机器学习——支持向量机(数学基础推导篇【未完】)

news2024/11/19 11:21:51

在一个周日下午,夏天的雨稀里哗啦地下着
我躺在床上,捧着ipad看支持向量机
睡了好几个觉…支持向量机太好睡了
拉格朗日乘数法太好睡了
几何函数太好睡了
在我看来,支持向量机是目前学下来,最难以理解的内容
希望日后不要太难…脑子不支持的

1. 支持向量机的分类原理

支持向量积的原理,网上已经有很多人解释了。
支持向量机(SVM)——原理篇
机器学习笔记(五):支持向量机(SVM)
支持向量机算法(SVM)详细讲解(含手推公式)
但即使看了原理篇,依然有绊倒自己的地方,或许是自己数学基础跟不上各大阿婆主,只好自己列出困惑的数学问题。

当数据集线性可分时,假设有一个线性函数能将数据集分类,这就是感知机模型该做的事:找到能让数据集线性划分的一个线性函数 y = ∑ w i x i + b y = ∑w_ix_i + b y=wixi+b

但实际上,不一定只有一个线性函数,能线性划分数据集,那么哪个线性函数的划分效果更好呢?这就是支持向量机进一步要做的事。

支持向量机是以感知机为基础,进一步要求线性函数划分距离更宽:也就是线性函数两侧的数据集,距离最远,即求出线性函数对称两侧的最大宽度距离2d
在这里插入图片描述

这挺好理解的,要想井水不犯河水,那就离得远远的。最好是一个天上,一个地下,互不打扰
比如深海里的鲨鱼,和高空上的雄鹰,这俩就不是一类…因为离得太远…好吧,这个比喻纯粹扯淡了
从逻辑上来说,空间距离越大,差异越大,这是公认事实。

但要怎么求出2d的最大值呢?

这就要涉及到我困惑很久的第一个问题:点到线(点到面或超平面)的距离计算公式

1.2 第一个数学困惑:点到线(面)的距离公式

d = ∣ W T X + b ∣ ∣ ∣ W ∣ ∣ 2 d = \frac{|W^TX+b|}{||W||_2} d=∣∣W2WTX+b

为什么是这个公式??这让我困惑很久…数学没学好

我试着从几何的角度,从一元线性函数、二元线性函数图像上去推导,但仅仅能推导到二元,一旦涉及到三元【三维空间】,我脑子就废了

后来,无意间看到一个博主的解释

在这里插入图片描述

恍然大悟,哦~~~~
但哦什么呢。。。。这个法向量n是怎么算的

如果超平面的函数为 A x 1 + B x 2 + C x 3 + D = 0 Ax_1+Bx_2+Cx_3+D = 0 Ax1+Bx2+Cx3+D=0
求点 x b x_b xb到超平面 A x 1 + B x 2 + C x 3 + D = 0 Ax_1+Bx_2+Cx_3+D = 0 Ax1+Bx2+Cx3+D=0的距离,(设点 x a x_a xa位于平面上)

那个博主说法向量设为 n → = ( A , B , C ) n^→=(A,B,C) n=(A,B,C)

则向量 x a x b → = ( x a 1 − x b 1 , x a 2 − x b 2 , x a 3 − x b 3 ) {x_ax_b}^→=(x_{a1}-x_{b1},x_{a2}-x_{b2},x_{a3}-x_{b3}) xaxb=(xa1xb1,xa2xb2,xa3xb3)

d = x a x b → ∗ n → ∣ n → ∣ = A ( x a 1 − x b 1 ) + B ( x a 2 − x b 2 ) + C ( x a 3 − x b 3 ) A 2 + B 2 + C 2 d = \frac{{x_ax_b}^→*n^→}{|n^→|}=\frac{A(x_{a1}-x_{b1})+B(x_{a2}-x_{b2})+C(x_{a3}-x_{b3})}{\sqrt{A^2+B^2+C^2}} d=nxaxbn=A2+B2+C2 A(xa1xb1)+B(xa2xb2)+C(xa3xb3)

由于点 x a x_a xa位于平面上,因此 A x a 1 + B x a 2 + C x a 3 + D = 0 Ax_{a1}+Bx_{a2}+Cx_{a3}+D = 0 Axa1+Bxa2+Cxa3+D=0
A x a 1 + B x a 2 + C x a 3 = − D Ax_{a1}+Bx_{a2}+Cx_{a3}= -D Axa1+Bxa2+Cxa3=D

则分子部分: A ( x a 1 − x b 1 ) + B ( x a 2 − x b 2 ) + C ( x a 3 − x b 3 ) A(x_{a1}-x_{b1})+B(x_{a2}-x_{b2})+C(x_{a3}-x_{b3}) A(xa1xb1)+B(xa2xb2)+C(xa3xb3)
= − ( A x b 1 + B x b 2 + C x b 3 + D ) =-(Ax_{b1}+Bx_{b2}+Cx_{b3}+D) =(Axb1+Bxb2+Cxb3+D)

整合起来的 d = ∣ x a x b → ∗ n → ∣ ∣ n → ∣ = ∣ A ( x a 1 − x b 1 ) + B ( x a 2 − x b 2 ) + C ( x a 3 − x b 3 ) ∣ A 2 + B 2 + C 2 = ∣ − ( A x b 1 + B x b 2 + C x b 3 + D ) ∣ A 2 + B 2 + C 2 d = \frac{|{x_ax_b}^→*n^→|}{|n^→|}=\frac{|A(x_{a1}-x_{b1})+B(x_{a2}-x_{b2})+C(x_{a3}-x_{b3})|}{\sqrt{A^2+B^2+C^2}}=\frac{|-(Ax_{b1}+Bx_{b2}+Cx_{b3}+D)|}{\sqrt{A^2+B^2+C^2}} d=nxaxbn=A2+B2+C2 A(xa1xb1)+B(xa2xb2)+C(xa3xb3)=A2+B2+C2 (Axb1+Bxb2+Cxb3+D)

这不就是 d = ∣ W T X + b ∣ ∣ ∣ W ∣ ∣ 2 d = \frac{|W^TX+b|}{||W||_2} d=∣∣W2WTX+b 的公式了嘛!!!

但要注意: d = ∣ W T X + b ∣ ∣ ∣ W ∣ ∣ 2 d = \frac{|W^TX+b|}{||W||_2} d=∣∣W2WTX+b公式,表示的是点到中间分类函数线的距离

不同的点,计算出的d值是不同的。

顿悟!!
但问题又来了

凭什么法向量可以设为 n → = ( A , B , C ) n^→=(A,B,C) n=(A,B,C)

这也是困惑很久的小问题,但也可以证明:首先知道法向量是垂直于平面的

求法向量 n → = ( x n 1 , x n 2 , x n 3 ) n^→=(x_{n1},x_{n2},x_{n3}) n=(xn1,xn2,xn3)

那么当平面上有两个不共线的向量 Q → = ( x q 1 , x q 2 , x q 3 ) Q^→=(x_{q1},x_{q2},x_{q3}) Q=(xq1,xq2,xq3), F → = ( x f 1 , x f 2 , x f 3 ) F^→=(x_{f1},x_{f2},x_{f3}) F=(xf1,xf2,xf3)

法向量与这两个向量的乘积均为0
n → ∗ Q = x n 1 x q 1 + x n 2 x q 2 + x n 3 x q 3 = 0 n^→*Q^=x_{n1}x_{q1}+x_{n2}x_{q2}+x_{n3}x_{q3} = 0 nQ=xn1xq1+xn2xq2+xn3xq3=0
n → ∗ F = x n 1 x f 1 + x n 2 x f 2 + x n 3 x f 3 = 0 n^→*F^=x_{n1}x_{f1}+x_{n2}x_{f2}+x_{n3}x_{f3} = 0 nF=xn1xf1+xn2xf2+xn3xf3=0
上述两个式子相减得到 x n 1 ( x f 1 − x q 1 ) + x n 2 ( x f 1 − x q 2 ) + x n 3 ( x f 1 − x q 3 ) = 0 x_{n1}(x_{f1}-x_{q1})+x_{n2}(x_{f1}-x_{q2})+x_{n3}(x_{f1}-x_{q3})=0 xn1(xf1xq1)+xn2(xf1xq2)+xn3(xf1xq3)=0

并且由于向量 Q → 和 F → Q^→和F^→ QF都在平面上,因此:
A x q 1 + B x q 2 + C x q 3 + D = 0 Ax_{q1}+Bx_{q2}+Cx_{q3}+D = 0 Axq1+Bxq2+Cxq3+D=0
A x f 1 + B x f 2 + C x f 3 + D = 0 Ax_{f1}+Bx_{f2}+Cx_{f3}+D = 0 Axf1+Bxf2+Cxf3+D=0
上述两个式子相减 A ( x f 1 − x q 1 ) + B ( x f 1 − x q 2 ) + C ( x f 1 − x q 3 ) = 0 A(x_{f1}-x_{q1})+B(x_{f1}-x_{q2})+C(x_{f1}-x_{q3}) = 0 A(xf1xq1)+B(xf1xq2)+C(xf1xq3)=0

综合可得:
x n 1 ( x f 1 − x q 1 ) + x n 2 ( x f 1 − x q 2 ) + x n 3 ( x f 1 − x q 3 ) = 0 x_{n1}(x_{f1}-x_{q1})+x_{n2}(x_{f1}-x_{q2})+x_{n3}(x_{f1}-x_{q3})=0 xn1(xf1xq1)+xn2(xf1xq2)+xn3(xf1xq3)=0
A ( x f 1 − x q 1 ) + B ( x f 1 − x q 2 ) + C ( x f 1 − x q 3 ) = 0 A(x_{f1}-x_{q1})+B(x_{f1}-x_{q2})+C(x_{f1}-x_{q3}) = 0 A(xf1xq1)+B(xf1xq2)+C(xf1xq3)=0

因此,可以设 x n 1 = A x_{n1}=A xn1=A, x n 2 = B x_{n2}=B xn2=B, x n 3 = C x_{n3}=C xn3=C
因此法向量可以设为函数的系数!!!!

又悟了!!!数学渣渣的困惑。。。终于悟了

1.3 第二个数学困惑:距离公式的分子用1来计算

教科书,包括很多up主,在求解最大宽度距离 2 d = 2 ∣ W T X + b ∣ ∣ ∣ W ∣ ∣ 2 2d= \frac{2|W^TX+b|}{||W||_2} 2d=∣∣W22∣WTX+b时,又转化为 求 2 ∣ ∣ W ∣ ∣ 2 \frac{2}{||W||_2} ∣∣W22的最大值

why??

其实我也悟了。。。但太困了。。。明天再搞吧

公式推导一下:

将划分数据集的分类函数为 A x 1 + B x 2 + C x 3 + D = 0 Ax_1+Bx_2+Cx_3+D = 0 Ax1+Bx2+Cx3+D=0

而两侧对称的边界函数分为设为:

  • A x 1 + B x 2 + C x 3 + D = Q Ax_1+Bx_2+Cx_3+D = Q Ax1+Bx2+Cx3+D=Q,移项得 A x 1 + B x 2 + C x 3 + D − Q = 0 Ax_1+Bx_2+Cx_3+D - Q=0 Ax1+Bx2+Cx3+DQ=0
  • A x 1 + B x 2 + C x 3 + D = − Q Ax_1+Bx_2+Cx_3+D = -Q Ax1+Bx2+Cx3+D=Q,移项得 A x 1 + B x 2 + C x 3 + D + Q = 0 Ax_1+Bx_2+Cx_3+D + Q=0 Ax1+Bx2+Cx3+D+Q=0

这两个函数之间的距离,并不是2Q,而是 2 Q ∣ ∣ W ∣ ∣ 2 \frac{2Q}{||W||_2} ∣∣W22Q

为什么是这样呢?

假设
x a x_a xa位于 A x 1 + B x 2 + C x 3 + D − Q = 0 Ax_1+Bx_2+Cx_3+D - Q=0 Ax1+Bx2+Cx3+DQ=0边界函数上
x b x_b xb位于 A x 1 + B x 2 + C x 3 + D + Q = 0 Ax_1+Bx_2+Cx_3+D + Q=0 Ax1+Bx2+Cx3+D+Q=0边界函数上
A x 1 + B x 2 + C x 3 + D − Q = 0 Ax_1+Bx_2+Cx_3+D - Q=0 Ax1+Bx2+Cx3+DQ=0 A x 1 + B x 2 + C x 3 + D + Q = 0 Ax_1+Bx_2+Cx_3+D + Q=0 Ax1+Bx2+Cx3+D+Q=0是平行的边界函数
设点 x a x_a xa和点 x b x_b xb的连线,垂直于这两条边界函数,则向量 x a x b → x_ax_b^→ xaxb则相当于这两个边界函数的法向量,同时模| x a x b → x_ax_b^→ xaxb|表示两个边界函数的距离。

现在要求的就是模| x a x b → x_ax_b^→ xaxb|,即两个边界函数的距离。

法向量设为 n → = ( A , B , C ) n^→=(A,B,C) n=(A,B,C)

则向量 x a x b → = ( x a 1 − x b 1 , x a 2 − x b 2 , x a 3 − x b 3 ) {x_ax_b}^→=(x_{a1}-x_{b1},x_{a2}-x_{b2},x_{a3}-x_{b3}) xaxb=(xa1xb1,xa2xb2,xa3xb3)

d 边界 = x a x b → ∗ n → ∣ n → ∣ = A ( x a 1 − x b 1 ) + B ( x a 2 − x b 2 ) + C ( x a 3 − x b 3 ) A 2 + B 2 + C 2 d_{边界} = \frac{{x_ax_b}^→*n^→}{|n^→|}=\frac{A(x_{a1}-x_{b1})+B(x_{a2}-x_{b2})+C(x_{a3}-x_{b3})}{\sqrt{A^2+B^2+C^2}} d边界=nxaxbn=A2+B2+C2 A(xa1xb1)+B(xa2xb2)+C(xa3xb3)

由于点 x a x_a xa A x a 1 + B x a 2 + C x a 3 + D − Q = 0 Ax_{a1}+Bx_{a2}+Cx_{a3}+D -Q= 0 Axa1+Bxa2+Cxa3+DQ=0
x b x_b xb A x b 1 + B x b 2 + C x b 3 + D + Q = 0 Ax_{b1}+Bx_{b2}+Cx_{b3}+D +Q= 0 Axb1+Bxb2+Cxb3+D+Q=0
则上述两式相减可得: A ( x a 1 − x b 1 ) + B ( x a 2 − x b 2 ) + C ( x a 3 − x b 3 ) − 2 Q = 0 A(x_{a1}-x_{b1})+B(x_{a2}-x_{b2})+C(x_{a3}-x_{b3})-2Q=0 A(xa1xb1)+B(xa2xb2)+C(xa3xb3)2Q=0

d 边界 = ∣ x a x b → ∗ n → ∣ ∣ n → ∣ = ∣ A ( x a 1 − x b 1 ) + B ( x a 2 − x b 2 ) + C ( x a 3 − x b 3 ) ∣ A 2 + B 2 + C 2 = 2 Q A 2 + B 2 + C 2 d_{边界} = \frac{|{x_ax_b}^→*n^→|}{|n^→|}=\frac{|A(x_{a1}-x_{b1})+B(x_{a2}-x_{b2})+C(x_{a3}-x_{b3})|}{\sqrt{A^2+B^2+C^2}}=\frac{2Q}{\sqrt{A^2+B^2+C^2}} d边界=nxaxbn=A2+B2+C2 A(xa1xb1)+B(xa2xb2)+C(xa3xb3)=A2+B2+C2 2Q

因此,两个边界函数的公式可对应为

  • W T X + b = Q W^TX+b = Q WTX+b=Q
  • W T X + b = − Q W^TX+b = -Q WTX+b=Q
    且两个边界函数的距离为 2 Q ∣ ∣ W ∣ ∣ 2 \frac{2Q}{||W||_2} ∣∣W22Q

而实际边界函数的W、b系数同比例增大或减小,对函数是毫无影响的

就比如2x + 4 = 0 与 x+2 = 0 本质都是相同的函数。

因此可对两个边界函数的W和b参数进行同比例的缩放

  • W T X + b = Q W^TX+b = Q WTX+b=Q,变为 W Q T X + b Q = 1 \frac{W}{Q}^TX+\frac{b}{Q} = 1 QWTX+Qb=1
  • W T X + b = − Q W^TX+b = -Q WTX+b=Q,变为 W Q T X + b Q = − 1 \frac{W}{Q}^TX+\frac{b}{Q} = -1 QWTX+Qb=1

此时,系数更新为 W = W Q W = \frac{W}{Q} W=QW b = b Q b=\frac{b}{Q} b=Qb
因此两个边界函数最终变为了

  • W T X + b = 1 W^TX+b = 1 WTX+b=1
  • W T X + b = − 1 W^TX+b = -1 WTX+b=1

并且两个边界函数的距离为 d 边界 = 2 ∣ ∣ W ∣ ∣ 2 d_{边界} = \frac{2}{||W||_2} d边界=∣∣W22

至此,证成!!!
妈呀…应该是对的吧!!!

但其实我有个困惑,最初证明的点到线(面)的距离公式,以及两个边界函数的距离公式,分别有什么意义呢?

支持向量机,到底是要求距离中间分类线最近的点到线(面)的距离最大,还是要求两个边界函数的距离最大呢?

本质上看,这两个要求其实都是同一个要求,但实际上这两个要求所进行的计算方式是不同的。

如果是要求距离中间分类线最近的点,到中间分类函数的距离最大,那就必须先能求出中间分类函数——但实际我们没有边界函数,是没办法求出中间分类函数的。

- 因此,应该是要求两个边界函数的距离最大,因为两个边界函数的距离,实际是可以根据某个分类函数来求的。

听起来很绕口,但实际就是我们可以根据感知机模型,求出一个分类函数,但这个分类函数并不一定是能将数据集平均分的函数

但这个不怎么完美的函数,却是一个有着明确参数W的函数,那么假设两个边界函数分别在这个分类函数的两侧【注:两个边界函数未必对称分布在分类函数的两边】

我们无需计算出具体的参数b,只要根据参数W,就可以求出两个边界函数的距离

  • d 边界 = 2 ∣ ∣ W ∣ ∣ 2 d_{边界} = \frac{2}{||W||_2} d边界=∣∣W22
    但要注意,边界函数是要能够将数据集分类的,因此边界函数的还要满足以下两个条件
  • W T X + b ≥ 1 W^TX+b ≥ 1 WTX+b1时, y = 1 y=1 y=1,要求分类正确,即 y ∗ ( W T X + b ) ≥ 1 y*(W^TX+b)≥1 y(WTX+b)1
  • W T X + b ≤ − 1 W^TX+b ≤ -1 WTX+b1时, y = − 1 y=-1 y=1,要求分类正确,即 y ∗ ( W T X + b ) ≥ 1 y*(W^TX+b)≥1 y(WTX+b)1
  • 整合起来就是两条边界函数均满足: y ∗ ( W T X + b ) ≥ 1 y*(W^TX+b)≥1 y(WTX+b)1

因此,我们只需求出 d 边界 d_{边界} d边界的最大值,并且满足条件 y ∗ ( W T X + b ) ≥ 1 y*(W^TX+b)≥1 y(WTX+b)1,即可得到模型的最优解。

那么究竟要怎么在有条件限制的情况下,求出极值呢?
这就涉及到拉格朗日乘数法了
这痛苦的让人哭泣的拉格朗日
明天继续吧!!

  • d 边界 m a x = 2 ∣ ∣ W ∣ ∣ 2 d_{边界max} = \frac{2}{||W||_2} d边界max=∣∣W22,实际相当于求 W 2 2 \frac{W^2}{2} 2W2的最小值

要是换以前,求最小值,要么用求导法或是用梯度下降法,就可以实现。
但现在不行了,因为求最小值时,是有条件约束的。

如何求条件约束下的极小值呢?

1.4 第三个数学困惑:拉格朗日乘数法的数理推导

这就要用到号称“条件极值杀手”的【拉格朗日乘数法】了。

死脑筋用拉格朗日乘数法,其实会比较简单,
但真的要理解拉格朗日乘数法,真的是头疼

首先,当要求的原函数为f(x,y),条件约束为等式约束g(x,y)=0时,求条件约束下的原函数极小值。

  • 原函数: f ( x , y ) f(x,y) f(x,y)
  • 等式约束条件: g ( x , y ) = 0 g(x,y)=0 g(x,y)=0
  • m i n ( f ( x , y ) ) min(f(x,y)) min(f(x,y))

拉格朗日乘数法的计算过程为求 L ( x , y ) = f ( x , y ) + λ g ( x , y ) L(x,y) = f(x,y)+λg(x,y) L(x,y)=f(x,y)+λg(x,y)的极值

  • L x ′ = f x ′ + λ g x ′ L'_x= f'_x+λg'_x Lx=fx+λgx
  • L y ′ = f x ′ + λ g x ′ L'_y= f'_x+λg'_x Ly=fx+λgx
  • L λ ′ = g ( x , y ) L'_λ= g(x,y) Lλ=g(x,y)
  • 并解出x,y,λ的值,其中 x,y就是可能的符合约束条件下的极小值

看到这的时候,我直觉是合理的,但不知道是如何得出这样的计算过程,并产生了几个问题:

  • 为什么有λ?
  • 为什么可以构成拉格朗日函数?
  • 为什么求出拉格朗日函数极值,就可以求出符合约束条件的极小值???

所以自己又翻阅了很多知乎阿婆主的各种解释
终于功夫不负爱搜索的人

很多人的解释是:用等高线来绘制原函数f(x,y)时,会呈现层层嵌套的圈圈,然后绘制g(x,y)时,很多人却又不是用等高线来绘制g(x,y),然后很多人的解析就直接说g(x,y)取到极值的时候(与f(x,y)相切),就取到了符合约束条件的最小值。

说实话,几何法我还是不太理解

找到有个up主的数理推导:
通过g(x,y)=0,说明这个g(x,y)是隐函数,然后我们可设为显函数y = φ(x)

然后代入f原函数: z = f ( x , φ ( x ) ) z=f(x,φ(x)) z=f(x,φ(x)),用z表示代入后的函数表达,使得z与原函数f区分开

z x ′ = ə f ə x + ə f ə y d φ ( x ) d x = f x ′ + f y ′ ∗ φ x ′ z'_x= \frac{əf}{əx}+\frac{əf}{əy}\frac{dφ(x)}{dx}=f'_x+f'_y*φ'_x zx=əxəf+əyəfdxdφ(x)=fx+fyφx

根据隐函数求导法则: d y d x = − F x ′ F y ′ \frac{dy}{dx}= - \frac{F'_x}{F'_y} dxdy=FyFx为什么隐函数求导法则是这样的,后续再证明
则知道 d y d x = φ x ′ = − g x ′ g y ′ \frac{dy}{dx}=φ'_x=-\frac{g'_x}{g'_y} dxdy=φx=gygx

因此 z x ′ = f x ′ + f y ′ ∗ φ x ′ = f x ′ − f y ′ ∗ g x ′ g y ′ = f x ′ − f y ′ g y ′ ∗ g x ′ z'_x = f'_x+f'_y*φ'_x= f'_x-f'_y*\frac{g'_x}{g'_y}= f'_x-\frac{f'_y}{g'_y}*g'_x zx=fx+fyφx=fxfygygx=fxgyfygx

λ = − f y ′ g y ′ ,则有 f x ′ ( x , y ) = f x ′ − f y ′ g y ′ ∗ g x ′ = f x ′ + λ ∗ g x ′ λ =- \frac{f'_y}{g'_y},则有f'_x(x,y) = f'_x-\frac{f'_y}{g'_y}*g'_x= f'_x+λ*g'_x λ=gyfy,则有fx(x,y)=fxgyfygx=fx+λgx

而此时,y的偏导数为 z y ′ = f y ′ + λ ∗ g y ′ = f y ′ − f y ′ g y ′ ∗ g y ′ = 0 z'_y = f'_y+λ*g'_y=f'_y-\frac{f'_y}{g'_y}*g'_y=0 zy=fy+λgy=fygyfygy=0

融入了约束条件的函数f求得极值点,需要令x,y的偏导数均为0

  • 要使 z x ′ = f x ′ + λ ∗ g x ′ = 0 ,则要求 λ = − f x ′ g x ′ 要使z'_x = f'_x+λ*g'_x=0,则要求 λ = -\frac{f'_x}{g'_x} 要使zx=fx+λgx=0,则要求λ=gxfx

此时,要求的λ既要等于 λ = − f y ′ g y ′ λ =- \frac{f'_y}{g'_y} λ=gyfy,又要求 λ = − f x ′ g x ′ λ = -\frac{f'_x}{g'_x} λ=gxfx

那么就需要 λ = − f y ′ g y ′ = − f x ′ g x ′ λ =- \frac{f'_y}{g'_y}= -\frac{f'_x}{g'_x} λ=gyfy=gxfx因此可推出: f x ′ f y ′ = g x ′ g y ′ \frac{f'_x}{f'_y}= \frac{g'_x}{g'_y} fyfx=gygx
em。。。这式子很整齐,但这是个什么式子呢????
根据隐函数的求导法则可知 f y ′ f x ′ = − d y d x \frac{f'_y}{f'_x}=-\frac{dy}{dx} fxfy=dxdy, g y ′ g x ′ = − d y d x \frac{g'_y}{g'_x}=-\frac{dy}{dx} gxgy=dxdy
所以, f x ′ f y ′ = g x ′ g y ′ \frac{f'_x}{f'_y}= \frac{g'_x}{g'_y} fyfx=gygx可以表示f(x,y)和g(x,y)的切线斜率相等
哇!!!这不就出来了吗!!!这不就是很多人用几何作图来表示的,为什么f(x,y)和g(x,y)在两函数的切线处取到极值吗!!!!用数学推导应该是这样证明的吧!!!!

总之,当 λ = − f y ′ g y ′ = − f x ′ g x ′ λ =- \frac{f'_y}{g'_y}= -\frac{f'_x}{g'_x} λ=gyfy=gxfx,且 f y ′ f x ′ = g y ′ g x ′ \frac{f'_y}{f'_x}= \frac{g'_y}{g'_x} fxfy=gxgy时,得到两个方程:

  • z x ′ = f x ′ + λ ∗ g x ′ = 0 z'_x = f'_x+λ*g'_x=0 zx=fx+λgx=0
  • z y ′ = f y ′ + λ ∗ g y ′ = 0 z'_y = f'_y+λ*g'_y=0 zy=fy+λgy=0
    对这两个式子左右两边分别乘以dx和dy,得到:
  • z x ′ d x = f x ′ d x + λ ∗ g x ′ d x = ə f ə x d x + λ ∗ ə g ə x d x = 0 z'_x dx = f'_xdx+λ*g'_xdx=\frac{əf}{əx}dx+λ*\frac{əg}{əx}dx=0 zxdx=fxdx+λgxdx=əxəfdx+λəxəgdx=0
  • z y ′ d y = f y ′ d y + λ ∗ g y ′ d y = ə f ə y d y + λ ∗ ə g ə y d y = 0 z'_ydy = f'_ydy+λ*g'_ydy=\frac{əf}{əy}dy+λ*\frac{əg}{əy}dy=0 zydy=fydy+λgydy=əyəfdy+λəyəgdy=0
    对上述两个式子左右两边相加,得到:
  • z x ′ d x + z y ′ d y = ə f ə x d x + ə f ə y d y + λ ∗ ə g ə x d x + λ ∗ ə g ə y d y = 0 z'_xdx +z'_ydy =\frac{əf}{əx}dx+\frac{əf}{əy}dy+λ*\frac{əg}{əx}dx+λ*\frac{əg}{əy}dy=0 zxdx+zydy=əxəfdx+əyəfdy+λəxəgdx+λəyəgdy=0
    对上述式子左右两边进行积分
  • z ( x , y ) = f ( x , y ) + λ g ( x , y ) z(x,y)=f(x,y)+λg(x,y) z(x,y)=f(x,y)+λg(x,y)

而这个z函数,正是我们最后的拉格朗日函数 L ( x , y ) = f ( x , y ) + λ g ( x , y ) L(x,y)=f(x,y)+λg(x,y) L(x,y)=f(x,y)+λg(x,y)

将g(x,y)=0约束条件转变为显示函数y = φ(x),并融入原函数f(x,y)后,原函数f(x,y)不再是那个自由自在的纯粹的原函数了,它有了条件约束就称为拉格朗日函数 L ( x , y ) = f ( x , φ ( x ) ) L(x,y)=f(x,φ(x)) L(x,y)=f(x,φ(x))

并且当 λ = − f y ′ g y ′ = − f x ′ g x ′ λ =- \frac{f'_y}{g'_y}= -\frac{f'_x}{g'_x} λ=gyfy=gxfx时,且 f y ′ f x ′ = g y ′ g x ′ \frac{f'_y}{f'_x}= \frac{g'_y}{g'_x} fxfy=gxgy,即原函数f(x,y)与约束条件g(x,y)函数相切时,下列式子成立,即可根据下列式子,求出x,y,λ后,求出拉格朗日函数的极值

  • L x ′ = f x ′ + λ ∗ g x ′ = 0 L'_x = f'_x+λ*g'_x=0 Lx=fx+λgx=0
  • L y ′ = f y ′ + λ ∗ g y ′ = 0 L'_y = f'_y+λ*g'_y=0 Ly=fy+λgy=0
  • L λ ′ = g ( x , y ) = 0 L'_λ = g(x,y)=0 Lλ=g(x,y)=0

我天呐!!!!我感觉完成了一大壮举!!!虽然我觉得偏导数、导数符号可能稍微有点儿问题
但没关系啊。。。至少,在我目前的认知层面来说。。。能圆过去

主要参照了两篇文章,并结合理解(其实这两篇文章中间都有我不理解的地方,但这么一相互融合理解,忽然就懂了呀!)
拉格朗日乘数法推导
拉格朗日乘数法理解

但问题尚未结束,因为之前引用了隐函数求导法则,但还不知道隐函数求导法则究竟是怎么推导出来的

1.4 第四个数学困惑:隐函数求导法则的公式推导

拉格朗日乘数法

2.支持向量机的数学推导

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

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

相关文章

[计算机入门] Windows对话框

2.4 对话框 在图形用户界面中,对话框是一种特殊的窗口, 用来在用户界面中向用户显示信息,或者在需要的时候获得用户的输入响应。之所以称之为对话框是因为它们使计算机和用户之间构成了一个对话——或者是通知用户一些信息,或者是请求用户的…

C. Russian Roulette(构造)

传送门 题意 俄罗斯转盘,长度为n的环,有k个子弹,然后挨着对着脑袋打。 你是第一个人,你希望你死的概率最小,问你怎么去设置这个子弹的位置。 第二个人会一开始随机砖圈,使得每一个位置开始都是可能的。…

电脑技巧:怎么轻松地搞定Win11系统备份任务

目录 1、选择免费备份软件来自动备份系统 2、如何逐步配置定时系统备份任务? “我是一个电脑小白,不是很懂电脑的一些操作。我刚买了一台新电脑,它装的是Win11系统,我害怕它出现什么问题,听朋友说可以通过备份的方…

Kotlin~责任链模式

概念 允许多个对象按顺序处理请求或任务。 角色介绍 Handler: 处理器接口,提供设置后继者&#xff08;可选&#xff09;ConcreteHandler&#xff1a;具体处理器&#xff0c;处理请求 UML 代码实现 比如ATM机吐钱就可以使用责任链实现。 class PartialFunction<in P1, o…

【环境配置】Conda ERROR:Failed building wheel for lap

问题 note: This error originates from a subprocess, and is likely not a problem with pip.ERROR: Failed building wheel for lapRunning setup.py clean for lap Failed to build lap ERROR: Could not build wheels for lap, which is required to install pyproject.to…

JDK8安装

在官网进行下载Java Downloads | Oracle 点击进行安装即可。 之后是配置环境变量 点击我的电脑 – 属性 – 高级系统设置 – 环境变量 添加JAVA_8_HOME环境变量&#xff0c;指向jdk的安装目录。 之后编辑path环境变量&#xff0c;增加%JAVA_8_HOME%\bin win R 输入javac 测…

在线支付安全-业务安全测试实操(35)

目前网络在线消费和支付,已遍布人们生活的衣食住行等冬个方面,比如网上商城在线购物、水电燃气在线缴费、手机话费在线充值等。由于在线消费和支付过程中涉及真金白银,一旦存在漏洞,将会带来重大的经济损失。 某快餐连锁店官网订单金额篡改 篡改订单金额的流程如图 所示 步…

Spark(14):SparkSQL之概述

目录 0. 相关文章链接 1. SparkSQL是什么 2. Hive and SparkSQL 3. SparkSQL 特点 3.1. 易整合 3.2. 统一的数据访问 3.3. 兼容Hive 3.4. 标准数据连接 4. DataFrame 是什么 5. DataSet 是什么 6. SparkSQL的运行环境 0. 相关文章链接 Spark文章汇总 1. SparkSQL是…

java pdf加水印

本文将Base64编码形式的pdf文件加水印&#xff0c;并输出完成后的pdf的Base64编码&#xff0c;也可以根据情况自行改动&#xff0c;输出其他形式的内容。 首先引入两个包 <!-- PDF文件依赖包 --><dependency><groupId>com.itextpdf</groupId><arti…

计算机体系结构基础知识介绍之缓存性能的十大进阶优化之编译器优化和硬件预取(六)

优化七&#xff1a;编译器优化&#xff0c;降低miss率 处理器和主内存之间不断扩大的性能差距促使编译器编写者仔细检查内存层次结构&#xff0c;看看编译时优化是否可以提高性能。再次&#xff0c;研究分为指令缺失的改进和数据缺失的改进。接下来介绍的优化可以在许多现代编…

步入JAVA——环境搭建与项目通览

前言 在这篇文章中&#xff0c;荔枝会介绍如何配置Java后端开发环境并借助一个Java web项目简单介绍一下Java的后端开发逻辑。与python的后端开发逻辑是类似的&#xff0c;Java的后端开发其实也是通过一个个类来实现的。对于像荔枝这种小白白来说&#xff0c;入门的第一个练手J…

java项目之高校四六级报名管理系统(ssm+jsp+mysql)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的高校四六级报名管理系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 &#x1f495;&#x1f495;作者&#xff1a;风歌…

mysql执行顺序以及为什么别名不能用在 where 后

1、mysql执行顺序 如下&#xff1a; 1. from 阶段 2. where 阶段 3. group by 阶段 4. having 阶段 5. select 阶段 6. order by 阶段 7. limit 阶段 2、为什么别名不能用在 where 后

微信小程序反编译之后运行报错“_typeof3 is not a function”

微信小程序解包之后&#xff0c;在微信开发者工具当中点开调试器&#xff0c;选择Console选项卡&#xff0c;发现左侧的预览界面是空白的&#xff0c;虽然真机调试可以有显示&#xff0c;但是真机预览也是跟左边的界面一样都是空白。之后发现Console里面显示 解决方法&#x…

7.5~7.6学习成果总结

关于封装&#xff0c;满足几个原则&#xff0c;一般的成员变量用privat修饰&#xff0c;仅暴露少量方法获取&#xff0c;如果是内部的操作方法也用private&#xff0c;除非是希望被全局使用&#xff0c;的才考虑用public&#xff0c;如果是进希望被子类用的话可以考虑用protect…

ICG NH2,1686147-55-6,吲哚菁绿氨基,安全性更好,并具有更好的光稳定性

ICG NH2&#xff0c;ICG-Amine&#xff0c;吲哚菁绿氨基|&#xff08;文章编辑来源于&#xff1a;西安凯新生物科技有限公司小编WMJ&#xff09;产品结构式&#xff1a; 对于ICG NH2&#xff08;1686147-55-6&#xff09;我们需要知道这些&#xff1a; CAS号为1686147-55-6&am…

专项练习21

目录 一、选择题 1、下列逻辑表达式的结果为false的是&#xff08;&#xff09; 2、请问以下JS代码输出的结果是什么&#xff1f; 3、以下哪些对象是Javascript内置的可迭代对象&#xff1f; 二、编程题 1、找到数组参数中的最大值并返回。注意&#xff1a;数组中只包含数字 …

16 直线识别拟合角平分线(matlab程序)

1.简述 直线检测是数字图像处理的重要内容,在道路识别,建筑物识别,医学图像分析等领域都有十分重要的应用。通过对已经获得的图像进行边缘检测,然后用Hough变换对边缘检测进行直线检测。该方法简单,受直线中的间隙和噪声影响较小。在Matlab环境下对该方法进行了仿真实验,并对图…

【LLM】Windows本地CPU部署民间版中文羊驼模型(Chinese-LLaMA-Alpaca)踩坑记录

目录 前言 准备工作 Git Python3.9 Cmake 下载模型 合并模型 部署模型 前言 想必有小伙伴也想跟我一样体验下部署大语言模型, 但碍于经济实力, 不过民间上出现了大量的量化模型, 我们平民也能体验体验啦~, 该模型可以在笔记本电脑上部署, 确保你电脑至少有16G运行…

1.4 计算机网络性能

1.4 计算机网络性能 速率带宽延迟/时延(delay或latency)四种分组延迟排队延迟 时延带宽积分组丢失&#xff08;丢包&#xff09;吞吐量/率&#xff08;Throughput&#xff09; 速率 速率即数据率(data rate)或称数据传输速率或比特率(bit rate) 单位时间&#xff08;秒&#x…