当前位置: 首页 > news >正文

【AI】机器学习——感知机

文章目录

    • 4.1 感知机基本概念
    • 4.2 策略
      • 4.2.1 数据集的线性可分性
      • 4.2.2 学习策略
        • 目标
        • 损失函数的构造
          • 关于距离的解释
    • 4.3 算法
      • 4.3.1 原始形式
        • 损失函数的梯度下降法
      • 4.3.2 PLA例题
      • 4.3.3 算法收敛性
    • 4.4 PLA对偶形式
      • 4.4.1 原始PLA分析
      • 4.4.2 PLA对偶形式
      • 4.4.3 优点

4.1 感知机基本概念

解决二分类问题,属于 线性分类模型——判别模型

目标:求出将训练数据进行线性划分的分离超平面

基本思想:导入五分类的损失函数,利用梯度下降法对损失i函数极小化,求得感知机模型

输入: x ∈ X ⊆ R n x\in \mathcal{X}\subseteq R^n xXRn 表示实例的特征向量, y ∈ Y = { + 1 , − 1 } y\in \mathcal{Y}=\{+1, -1\} yY={+1,1}

输出: ω ^ , b ^ \hat{\omega},\hat{b} ω^,b^

模型——决策函数
f ( x ) = s i g n ( ω T x + b ) = { + 1 , ω T x > 0 − 1 , ω T x < 0 f(x)=sign(\omega^Tx+b)=\begin{cases} +1&,\omega^Tx> 0\\ -1&,\omega^Tx<0 \end{cases} f(x)=sign(ωTx+b)={+11,ωTx>0,ωTx<0
假设空间:定义在特征空间中的所有线性分类模型
{ f ∣ f ( x ) = ω T x + b } \{f\vert f(x)=\omega^Tx+b\} {ff(x)=ωTx+b}
几何理解: ω T x + b = 0 \omega^Tx+b=0 ωTx+b=0 在空间中为一个超平面 S S S ω \omega ω 为法向量, b b b 为截距

在这里插入图片描述

  • 上图中超平面 S : ω 1 x ( 1 ) + ω 2 x ( 2 ) + b = 0 S:\omega_1x^{(1)}+\omega_2x^{(2)}+b=0 S:ω1x(1)+ω2x(2)+b=0 ,这个超平面将特征空间分为 + 1 , − 1 +1,-1 +1,1

4.2 策略

损失函数的定义,并将 J ( ω ) J(\omega) J(ω) 最小化

4.2.1 数据集的线性可分性

对于数据集
D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯ , ( x N , y N ) } x i ∈ X ⊆ R n , y i ∈ Y = { + 1 , − 1 } , i = 1 , 2 , ⋯ , N D=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\}\\ x_i\in \mathcal{X}\subseteq R^n,y_i\in\mathcal{Y}=\{+1,-1\},i=1,2,\cdots,N D={(x1,y1),(x2,y2),,(xN,yN)}xiXRn,yiY={+1,1},i=1,2,,N
若存在某个超平面 S S S ω T x + b = 0 \omega^Tx+b=0 ωTx+b=0 ,将数据正负两类完全划分到超平面两侧

  • 对于正例: y i = + 1 y_i=+1 yi=+1 ,有 ω T x + b > 0 \omega^Tx+b>0 ωTx+b>0
  • 对于负例: y i = − 1 y_i=-1 yi=1 ,有 ω T x + b < 0 \omega^Tx+b<0 ωTx+b<0

4.2.2 学习策略

目标

假设数据集D线性可分,找到将数据集D正负两例完全正确分开的超平面S,即确定参数 ω ^ , b ^ \hat{\omega},\hat{b} ω^,b^

损失函数的构造

可选择

  • 误分类点的总数,但不关于 ω , b \omega,b ω,b 可导,是离散的
  • 误分类点到超平面 S S S 的距离和

x i x_i xi 到平面 S S S 的总距离
ω T x i + b ∥ ω ∥ 2 \frac{\omega^Tx_i+b}{\Vert \omega\Vert_2} ω2ωTxi+b
对于误分类点有 y i ⋅ ( ω T x i + b ) < 0 ⟺ − y i ⋅ ( ω T x i + b ) > 0 y_i\cdot(\omega^Tx_i+b)<0\iff -y_i\cdot(\omega^Tx_i+b)>0 yi(ωTxi+b)<0yi(ωTxi+b)>0

对于误分类点,到超平面的几何距离为
− 1 ∥ ω ∥ 2 y i ⋅ ( ω T x i + b ) -\frac{1}{\Vert \omega\Vert_2}y_i\cdot(\omega^Tx_i+b) ω21yi(ωTxi+b)
若所有误分类点集合为 M M M ,则误分类点到 S S S 的距离和为
− 1 ∥ ω ∥ 2 ∑ x i ∈ M y i ⋅ ( ω T x i + b ) -\frac{1}{\Vert \omega\Vert_2}\sum\limits_{x_i\in M}y_i\cdot(\omega^Tx_i+b) ω21xiMyi(ωTxi+b)
故将感知机(损失函数)定义为经验风险函数
R e m p ( f ) = L ( ω , b ) = − ∑ x i ∈ M y i ⋅ ( ω T x i + b ) R_{emp}(f)=L(\omega,b)=-\sum\limits_{x_i\in M}y_i\cdot(\omega^Tx_i+b) Remp(f)=L(ω,b)=xiMyi(ωTxi+b)
策略为 在假设空间中选取使损失函数 L ( ω , b ) L(\omega,b) L(ω,b) 最小的模型参数 ω , b \omega,b ω,b

  • 损失函数非负
  • 误分类点数量越少越好
  • 误分类点离超平面越近越好
  • L ( ω , b ) L(\omega,b) L(ω,b) 是连续可导的
关于距离的解释

− 1 ∥ ω ∥ 2 y i ⋅ ( ω T x i + b ) -\frac{1}{\Vert \omega\Vert_2}y_i\cdot(\omega^Tx_i+b) ω21yi(ωTxi+b) 为几何距离

− y i ⋅ ( ω T x i + b ) -y_i\cdot(\omega^Tx_i+b) yi(ωTxi+b) 为函数距离

几何距离的系数 1 ∥ ω ∥ 2 \frac{1}{\Vert \omega\Vert_2} ω21 可以抵消系数同时放大的影响,如 a X + b Y + c = 0 aX+bY+c=0 aX+bY+c=0 2 a X + 2 b Y + 2 c = 0 2aX+2bY+2c=0 2aX+2bY+2c=0

  • 但会增加梯度下降法计算的复杂度

PLA的目标是使误分类点个数最小, 1 ∥ ω ∥ 2 \frac{1}{\Vert \omega\Vert_2} ω21 对分类结果无影响

选取不同的初始 ω , b \omega,b ω,b ,最终会迭代出不同的超平面

在这里插入图片描述

4.3 算法

用随机梯度下降法,求解损失函数最优化问题

4.3.1 原始形式

输入:训练数据集
D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯ , ( x N , y N ) } , x i ∈ X ⊆ R n , y i ∈ Y = { + 1 , − 1 } , i = 1 , 2 , ⋯ , N D=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\},\\ x_i\in \mathcal{X}\subseteq R^n,y_i\in \mathcal{Y}=\{+1,-1\},i=1,2,\cdots,N D={(x1,y1),(x2,y2),,(xN,yN)}xiXRn,yiY={+1,1},i=1,2,,N
输出 ω ^ , b ^ \hat{\omega},\hat{b} ω^,b^

模型
f ( x ) = s i g n ( ω T x + b ) = { + 1 , ω T x + b > 0 − 1 , ω T x + b < 0 f(x)=sign(\omega^Tx+b)=\begin{cases} +1&,\omega^Tx+b>0\\ -1&,\omega^Tx+b<0\\ \end{cases} f(x)=sign(ωTx+b)={+11,ωTx+b>0,ωTx+b<0
策略
a r g min ⁡ ω , b L ( ω , b ) = − ∑ x i ∈ M y i ⋅ ( ω T x i + b ) arg\min\limits_{\omega,b}L(\omega,b)=-\sum\limits_{x_i\in M}y_i\cdot(\omega^Tx_i+b) argω,bminL(ω,b)=xiMyi(ωTxi+b)
步骤

  1. 选取随机的 ω 0 , b 0 \omega_0,b_0 ω0,b0

  2. 在训练集中选数据 ( x i , y i ) (x_i,y_i) (xi,yi) ,将误分类点作为训练数据,即满足 ω T x i + b < 0 \omega^Tx_i+b<0 ωTxi+b<0 的条件的点
    ω [ t + 1 ] ← ω [ t ] − η ∂ L ∂ ω = ω [ t ] + η y i x i b [ t + 1 ] ← b [ t ] − η ∂ L ∂ b = b [ t ] + η y i \omega^{[t+1]}\leftarrow\omega^{[t]}-\eta\frac{\partial L}{\partial \omega}=\omega^{[t]}+\eta y_ix_i\\ b^{[t+1]}\leftarrow b^{[t]}-\eta\frac{\partial L}{\partial b}=b^{[t]}+\eta y_i ω[t+1]ω[t]ηωL=ω[t]+ηyixib[t+1]b[t]ηbL=b[t]+ηyi

  3. 转至 2 2 2 步,直至 D D D 中无误分类点

损失函数的梯度下降法

{ ▽ ω L ( ω , b ) = − ∑ x i ∈ M y i x i ▽ b L ( ω , b ) = − ∑ x i ∈ M y i \begin{cases} \bigtriangledown_{\omega}L(\omega,b)=-\sum\limits_{x_i\in M}y_ix_i\\ \bigtriangledown_{b}L(\omega,b)=-\sum\limits_{x_i\in M}y_i\\ \end{cases} ωL(ω,b)=xiMyixibL(ω,b)=xiMyi

前提是误分类点集合是固定的 ,才可进行梯度下降法最优化
{ ω ← ω − η ▽ ω L b ← b − η ▽ b L \begin{cases} \omega\leftarrow \omega-\eta\bigtriangledown_{\omega}L\\ b\leftarrow b-\eta\bigtriangledown_{b}L \end{cases} {ωωηωLbbηbL
这种做法:

  • 计算量大
  • 且调整参数 ω , b \omega,b ω,b 后,误分类点集可能会发生变化,故用随机梯度下降法

直观理解

当一个样本点被误分类时,调整 ω , b \omega,b ω,b 的值,使超平面 S S S 向该误分类点的一侧移动,减少该误分类点与 S S S 的距离,直至超平面越过此点(分类正确)

4.3.2 PLA例题

x 1 = ( 3 , 3 ) T , y 1 = + 1 x 2 = ( 4 , 3 ) T , y 2 = + 1 x 3 = ( 1 , 1 ) T , y 3 = − 1 x_1=(3,3)^T,y_1=+1\\ x_2=(4,3)^T,y_2=+1\\ x_3=(1,1)^T,y_3=-1\\ x1=(3,3)T,y1=+1x2=(4,3)T,y2=+1x3=(1,1)T,y3=1

模型:
f ( x ) = s i g n ( ω T x + b ) = { + 1 , ω T x + b > 0 − 1 , ω T x + b < 0 ω = ( ω 1 ω 2 ) f(x)=sign(\omega^Tx+b)=\begin{cases} +1&,\omega^Tx+b>0\\ -1&,\omega^Tx+b<0 \end{cases}\\ \omega=\left( \begin{aligned} \omega_1\\ \omega_2 \end{aligned} \right) f(x)=sign(ωTx+b)={+11,ωTx+b>0,ωTx+b<0ω=(ω1ω2)
PLA策略为
min ⁡ ω , b L ( ω , b ) = − ∑ x i ∈ M y i ( ω T ⋅ x + b ) \min\limits_{\omega,b}L(\omega,b)=-\sum\limits_{x_i\in M}y_i(\omega^T\cdot x+b) ω,bminL(ω,b)=xiMyi(ωTx+b)
算法:

  1. 取初值, ω 0 = ( 0 0 ) \omega_0=\left(\begin{aligned}0\\0\end{aligned}\right) ω0=(00) b 0 = 0 b_0=0 b0=0 η = 1 \eta=1 η=1

  2. x 1 = ( 3 , 3 ) T x_1=(3,3)^T x1=(3,3)T ,有 y 1 ( ω 1 [ 0 ] x 1 ( 1 ) + ω 2 [ 0 ] x 1 ( 2 ) + b [ 0 ] ) = 0 y_1(\omega_1^{[0]}x_1^{(1)}+\omega_2^{[0]}x_1^{(2)}+b^{[0]})=0 y1(ω1[0]x1(1)+ω2[0]x1(2)+b[0])=0

    未分类正确,故更新
    { ω [ 1 ] ← ω [ 0 ] − η ∂ L ∂ ω = ω [ 0 ] + η y i x i = ( 0 0 ) + ( 3 3 ) = ( 3 3 ) b [ 1 ] ← b [ 0 ] − η ∂ L ∂ b = b [ 0 ] + η y i = 0 + 1 ⋅ 1 = 1 \begin{cases} \omega^{[1]}\leftarrow\omega^{[0]}-\eta\frac{\partial L}{\partial \omega}=\omega^{[0]}+\eta y_ix_i= \left( \begin{aligned} 0\\0 \end{aligned} \right)+\left( \begin{aligned} 3\\3 \end{aligned} \right)=\left( \begin{aligned} 3\\3 \end{aligned} \right)\\ b^{[1]}\leftarrow b^{[0]}-\eta\frac{\partial L}{\partial b}=b^{[0]}+\eta y_i=0+1\cdot 1=1 \end{cases} ω[1]ω[0]ηωL=ω[0]+ηyixi=(00)+(33)=(33)b[1]b[0]ηbL=b[0]+ηyi=0+11=1
    故有线性模型
    ω 1 T ⋅ x + b 1 = 3 x ( 1 ) + 3 x ( 2 ) + 1 \omega_1^{T}\cdot x+b_1=3x^{(1)}+3x^{(2)}+1 ω1Tx+b1=3x(1)+3x(2)+1

  3. x 2 = ( 4 , 3 ) T , ( ω 1 [ 1 ] x 2 + ω 2 [ 1 ] x 2 + b [ 1 ] ) y 2 > 0 x_2=(4,3)^T,(\omega_1^{[1]}x_2+\omega_2^{[1]}x_2+b^{[1]})y_2>0 x2=(4,3)T,(ω1[1]x2+ω2[1]x2+b[1])y2>0 ,正确分类

    x 3 = ( 1 , 1 ) T , ( ω 1 [ 1 ] x 3 + ω 2 [ 1 ] x 3 + b [ 1 ] ) y 3 < 0 x_3=(1,1)^T,(\omega_1^{[1]}x_3+\omega_2^{[1]}x_3+b^{[1]})y_3<0 x3=(1,1)T,(ω1[1]x3+ω2[1]x3+b[1])y3<0 ,误分类。用 ( x 3 , y 3 ) (x_3,y_3) (x3,y3) 更新模型参数
    { ω [ 2 ] ← ω [ 1 ] − η ∂ L ∂ ω = ω [ 1 ] + η y 3 x 3 = ( 3 3 ) + ( − 1 ) ( 1 1 ) = ( 2 2 ) b [ 1 ] ← b [ 0 ] − η ∂ L ∂ b = b [ 0 ] + η y 3 = 1 + 1 ⋅ ( − 1 ) = 0 \begin{cases} \omega^{[2]}\leftarrow\omega^{[1]}-\eta\frac{\partial L}{\partial \omega}=\omega^{[1]}+\eta y_3x_3= \left( \begin{aligned} 3\\3 \end{aligned} \right)+(-1)\left( \begin{aligned} 1\\1 \end{aligned} \right)=\left( \begin{aligned} 2\\2 \end{aligned} \right)\\ b^{[1]}\leftarrow b^{[0]}-\eta\frac{\partial L}{\partial b}=b^{[0]}+\eta y_3=1+1\cdot (-1)=0 \end{cases} ω[2]ω[1]ηωL=ω[1]+ηy3x3=(33)+(1)(11)=(22)b[1]b[0]ηbL=b[0]+ηy3=1+1(1)=0
    有线性模型
    ω 1 [ 2 ] x 1 + ω 2 [ 2 ] x 2 = 0 ⟺ 2 x 1 + 2 x 2 = 0 ⟺ x 1 + x 2 = 0 \omega^{[2]}_1x_1+\omega^{[2]}_2x_2=0\iff 2x_1+2x_2=0\iff x_1+x_2=0 ω1[2]x1+ω2[2]x2=02x1+2x2=0x1+x2=0

  4. ( x 1 , y 1 ) , ( x 2 , y 2 ) , ( x 3 , y 3 ) (x_1,y_1),(x_2,y_2),(x_3,y_3) (x1,y1),(x2,y2),(x3,y3) 代入线性模型,反复迭代

直至无误分类样本点,有
ω [ 7 ] = ( 1 1 ) , b [ 7 ] = − 3 \omega^{[7]}=\left( \begin{aligned} 1\\1 \end{aligned} \right),b^{[7]}=-3 ω[7]=(11),b[7]=3
超平面为 x ( 1 ) + x ( 2 ) − 3 = 0 x^{(1)}+x^{(2)}-3=0 x(1)+x(2)3=0

4.3.3 算法收敛性

对于线性可分的训练数据集,经过有限次迭代(PLA可以在有限步终止) ,可以得到一个将训练数据集完全正确划分的超平面 S S S

定理

训练集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯ , ( x N , y N ) } D=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\} D={(x1,y1),(x2,y2),,(xN,yN)} ,对于二分类模型, x i ∈ X ⊆ R n x_i\in \mathcal{X}\subseteq R^n xiXRn y i ∈ Y = { + 1 , − 1 } y_i\in \mathcal{Y}=\{+1,-1\} yiY={+1,1} , i = 1 , 2 , ⋯ , N ,i=1,2,\cdots,N ,i=1,2,,N

  1. 一定存在 ∥ ω ^ ∗ ∥ = 1 \Vert \hat{\omega}_*\Vert=1 ω^=1 的超平面 ω ^ ∗ x T = 0 \hat{\omega}_*x^T=0 ω^xT=0 ,将数据完全正确划分,且存在 γ > 0 \gamma >0 γ>0 ,使
    y i ( ω ^ ∗ x T ) ≥ γ ω ^ = ( ω ∗ b ∗ ) , x = ( x 1 ) y_i(\hat{\omega}_*x^T)\ge \gamma\\ \hat{\omega}=\left(\begin{aligned} \omega_*\\ b_* \end{aligned} \right),x=\left( \begin{aligned} x\\1 \end{aligned} \right) yi(ω^xT)γω^=(ωb),x=(x1)
    证:由于线性可分,则可找到一个超平面 S : ω ^ ∗ x T = 0 S:\hat{\omega}_*x^T=0 S:ω^xT=0 ,使所有数据 y i ( ω ^ ∗ x T ) > 0 y_i(\hat{\omega}_*x^T)>0 yi(ω^xT)>0 分类正确

    可取 γ = min ⁡ i { y i ( ω ^ ∗ x T ) } \gamma=\min\limits_{i}\{y_i(\hat{\omega}_*x^T)\} γ=imin{yi(ω^xT)} ,距离超平面最近的点

  2. R = max ⁡ 1 ≤ i ≤ N ∥ x i ∥ 2 R=\max\limits_{1\le i\le N}\Vert x_i\Vert_2 R=1iNmaxxi2 ,样本特征值最大的二范数 ,则PLA在训练数据集上误分类次数 k k k 满足 K ≤ ( R γ ) 2 K\le \left(\frac{R}{\gamma}\right)^2 K(γR)2

    即离超平面越近的点越难分

感知机存在许多解,依赖于初值的选择

  • 即误分类点的选择次序会影响最终的结果

4.4 PLA对偶形式

4.4.1 原始PLA分析

在原始 PLA 算法中, ω 0 , b 0 = 0 \omega_0,b_0=0 ω0,b0=0 L ( ω , b ) = − ∑ x i ∈ M y i ( ω T ⋅ x + b ) L(\omega,b)=-\sum\limits_{x_i\in M}y_i(\omega^T\cdot x+b) L(ω,b)=xiMyi(ωTx+b) ,采用随机梯度下降算法,取一个误分类点 ( x i , y i ) (x_i,y_i) (xi,yi) 作为学习数据, η ∈ ( 0 , 1 ] \eta\in(0,1] η(0,1] 为学习率
{ ω [ t + 1 ] ← ω [ t ] − η ∂ L ∂ ω = ω [ t ] + η y i x i b [ t + 1 ] ← b [ t ] − η ∂ L ∂ b = b [ t ] + η y i \begin{cases} \omega^{[t+1]}\leftarrow\omega^{[t]}-\eta\frac{\partial L}{\partial \omega}=\omega^{[t]}+\eta y_ix_i\\ b^{[t+1]}\leftarrow b^{[t]}-\eta\frac{\partial L}{\partial b}=b^{[t]}+\eta y_i \end{cases} {ω[t+1]ω[t]ηωL=ω[t]+ηyixib[t+1]b[t]ηbL=b[t]+ηyi
可见

  • ω \omega ω 更新至于误分类点有关

    某个点使用次数越多,距超平面越近,越难正确分类

  • 假设 ( x i , y i ) (x_i,y_i) (xi,yi) 被误分类 n i n_i ni 次,则 ω \omega ω ( x i , y i ) (x_i,y_i) (xi,yi) 上的累积量为
    { ω i ← n i η y i x i = α i y i x i b i ← n i η y i = α i y i \begin{cases} \omega_i\leftarrow n_i\eta y_ix_i=\alpha_iy_ix_i\\ b_i\leftarrow n_i\eta y_i=\alpha_iy_i \end{cases} {ωiniηyixi=αiyixibiniηyi=αiyi
    且对于正确分类的点 n i = 0 n_i=0 ni=0 ,故原始PLA参数可表示为
    { ω ← ∑ j = 1 N n j η y j ⋅ x j b ← ∑ j = 1 N n j η y j \begin{cases} \omega\leftarrow \sum\limits_{j=1}^Nn_j\eta y_j\cdot x_j\\ b\leftarrow \sum\limits_{j=1}^N n_j\eta y_j \end{cases} ωj=1Nnjηyjxjbj=1Nnjηyj

4.4.2 PLA对偶形式

输入 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯ , ( x N , y N ) } , x i ∈ X ⊆ R n , y i ∈ Y = { + 1 , − 1 } , i = 1 , 2 , ⋯ , N D=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\},x_i\in \mathcal{X}\subseteq R^n,y_i\in \mathcal{Y}=\{+1,-1\},i=1,2,\cdots,N D={(x1,y1),(x2,y2),,(xN,yN)},xiXRn,yiY={+1,1},i=1,2,,N

η ∈ ( 0 , 1 ] \eta\in (0,1] η(0,1]

模型
f ( x ) = s i g n [ ( ∑ j = 1 N n j η y j ⋅ x j ) T ⋅ x + ∑ j = 1 N n j η y j ] = s i g n [ ∑ j = 1 N α j y j ( x j ⋅ x ) T + b ] \begin{aligned} f(x)&=sign[(\sum\limits_{j=1}^Nn_j\eta y_j\cdot x_j)^T\cdot x+\sum\limits_{j=1}^N n_j\eta y_j]\\ &=sign[\sum\limits_{j=1}^N\alpha_j y_j(x_j\cdot x)^T+b] \end{aligned} f(x)=sign[(j=1Nnjηyjxj)Tx+j=1Nnjηyj]=sign[j=1Nαjyj(xjx)T+b]
输出 α , b \alpha,b α,b α = ( α 1 α 2 ⋮ α N ) \alpha=\left(\begin{aligned}\alpha_1\\\alpha_2\\\vdots\\\alpha_N\end{aligned}\right) α= α1α2αN α i = n i η \alpha_i=n_i\eta αi=niη n i n_i ni ( x i , y i ) (x_i,y_i) (xi,yi) 被误分类的次数

步骤

  1. ∀ n i = 0 \forall n_i=0 ni=0 ,即 α = 0 , b = 0 \alpha=0,b=0 α=0,b=0

  2. 选取 ( x i , y i ) (x_i,y_i) (xi,yi) ,若 y i [ ∑ j = 1 N n j η y j ( x j T ⋅ x ) + ∑ j = 1 N n j η y j ] ≤ 0 y_i[\sum\limits_{j=1}^Nn_j\eta y_j(x_j^T\cdot x)+\sum\limits_{j=1}^N n_j\eta y_j]\le 0 yi[j=1Nnjηyj(xjTx)+j=1Nnjηyj]0 ,则令
    n [ t + 1 ] ← n [ t ] + 1 α [ t + 1 ] ← α [ t ] + η b [ t + 1 ] ← b [ t ] + η y i n^{[t+1]}\leftarrow n^{[t]}+1\\ \alpha^{[t+1]}\leftarrow \alpha^{[t]}+\eta\\ b^{[t+1]}\leftarrow b^{[t]}+\eta y_i n[t+1]n[t]+1α[t+1]α[t]+ηb[t+1]b[t]+ηyi

  3. 转至 2. 2. 2. 直至没有误分类点

由于样本点只以内积形式出现,可计算 Gram矩阵
G = [ x i ⋅ x j ] N × N = [ ( x 1 , x 1 ) ( x 1 , x 2 ) ⋯ ( x 1 , x N ) ( x 2 , x 1 ) ( x 2 , x 2 ) ⋯ ( x 2 , x N ) ⋮ ⋮ ⋱ ⋮ ( x N , x 1 ) ( x N , x 2 ) ⋯ ( x N , x N ) ] G=[x_i\cdot x_j]_{N\times N}=\left[\begin{matrix} (x_1,x_1)&(x_1,x_2)&\cdots&(x_1,x_N)\\ (x_2,x_1)&(x_2,x_2)&\cdots&(x_2,x_N)\\ \vdots&\vdots&\ddots&\vdots\\ (x_N,x_1)&(x_N,x_2)&\cdots&(x_N,x_N) \end{matrix} \right] G=[xixj]N×N= (x1,x1)(x2,x1)(xN,x1)(x1,x2)(x2,x2)(xN,x2)(x1,xN)(x2,xN)(xN,xN)

4.4.3 优点

可预先计算存储 Gram 矩阵,提高计算速度

可通过 Gram 矩阵引入核函数,有 K ( x , z ) = ϕ ( x ) ⋅ ϕ ( z ) K(x,z)=\phi(x)\cdot \phi(z) K(x,z)=ϕ(x)ϕ(z) ,可解决非线性分类问题

相关文章:

【AI】机器学习——感知机

文章目录 4.1 感知机基本概念4.2 策略4.2.1 数据集的线性可分性4.2.2 学习策略目标损失函数的构造关于距离的解释 4.3 算法4.3.1 原始形式损失函数的梯度下降法 4.3.2 PLA例题4.3.3 算法收敛性 4.4 PLA对偶形式4.4.1 原始PLA分析4.4.2 PLA对偶形式4.4.3 优点 4.1 感知机基本概念…...

蓝牙遥控器在T2-U上的应用

文章目录 简介优势使用流程示例代码遥控器命令表遥控器代码实现开启遥控器配对功能运行 简介 Tuya beacon 协议是基于 BLE 广播通信技术&#xff0c;完善配对解绑、组包拆包、群组管理、加密解密、安全策略&#xff0c;形成的一种轻量、安全的可接入涂鸦云的蓝牙协议。 蓝牙 …...

数据驱动的数字营销与消费者运营

引言&#xff1a;基于海洋馆文旅企业在推广宣传中&#xff0c;如何通过指标体系量化分析广告收益对业务带来的收益价值的思考&#xff1f; 第一部分:前链路引流投放的策略与实战 1.1 动态广告的实现: 偶然与必然 动态广告是一种基于实时数据和用户行为的广告形式&#xff0c;它…...

Qt点亮I.MX6U开发板的一个LED

本篇开始将会介绍与开发版相关的Qt项目&#xff0c;首先从点亮一个LED开始。I.MX6U和STM32MP157的相关信息都会用到&#xff0c;但是后期还是将I.MX6U的学习作为重点。当然其他开发版的开发也可以参考本博文。 文章目录 1. Qt是如何操控开发板上的一个LED2. 出厂内核设备树中注…...

网络摄像头-流媒体服务器-视频流客户端

取电脑的视频流 当涉及交通事件检测算法和摄像头视频数据处理时&#xff0c;涉及的代码案例可能会非常复杂&#xff0c;因为这涉及到多个组件和技术。以下是一个简单的Python代码示例&#xff0c;演示如何使用OpenCV库捕获摄像头视频流并进行实时车辆检测&#xff0c;这是一个…...

Django05_反向解析

Django05_反向解析 5.1 反向解析概述 随着功能的不断扩展&#xff0c;路由层的 url 发生变化&#xff0c;就需要去更改对应的视图层和模板层的 url&#xff0c;非常麻烦&#xff0c;不便维护。这个时候我们可以通过反向解析&#xff0c;将 url解析成对应的 试图函数 通过 path…...

基于HTML、CSS和JavaScript制作一个中秋节倒计时网页

&#x1f482; 个人网站:【工具大全】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 这个项目使用HTML、CSS和…...

富斯I6刷10通道固件

使用USB转串口模块刷写10通道固件 一、下载固件 1. 十通道英文固件 下载地址: https://github.com/benb0jangles/FlySky-i6-Mod-/tree/master 选择 FlySky-i6-Mod–master \ 10ch Mod i6 Updater \ 10ch_MOD_i6_Programmer_V1 路径下的文件,亲测可用。 2. 原版六通道中…...

vector的模拟实现 总结

vector的模拟实现 总结 vector.hTest.cpp vector.h 1、迭代器的实现 #pragma oncenamespace JPC {template<class T>class vector{public://对于存储空间是连续的结构而言&#xff0c;可以用原身指针来 模拟实现 迭代器。typedef T* iterator;typedef const T* const_i…...

k8s中的有状态,无状态,pv、pvc等

数据库是一个典型的有状态服务&#xff0c;他的部署和无状态服务是不一样的。 PostgresSQL----基于Kubernetes部署PostgresSQL-CSDN博客 一、创建SC、PV和PVC存储对象 二、部署PostgresSQL Volume Kubernetes 中文指南——云原生应用架构实战手册 有状态应用&#xff1a; …...

springboot+jxls复杂excel模板导出

JXLS 是基于 Jakarta POI API 的 Excel 报表生成工具&#xff0c;可以生成精美的 Excel 格式报表。它采用标签的方式&#xff0c;类似 JSP 标签&#xff0c;写一个 Excel 模板&#xff0c;然后生成报表&#xff0c;非常灵活&#xff0c;简单&#xff01; Java 有一些用于创建 …...

用selenium webdriver获取网站cookie后,实现免登录上网站

以csdn为例&#xff0c;代码分为两部分。 一、csdn_get_cookies.py为半手动登录网站后获取cookies 二、csdn_use_cookies.py为使用获取到的cookies免登录上网站 #获取登录cookiesfrom selenium import webdriver import jsoncsdn_driver webdriver.Chrome() url "htt…...

如何使用Java进行安全测试?

要使用Java进行安全测试&#xff0c;可以按照以下步骤进行&#xff1a; 确定测试目标&#xff1a;首先&#xff0c;明确要测试的应用程序或系统的安全目标和需求。确定要测试的安全方面&#xff0c;如身份验证、授权、输入验证、安全配置等。 了解安全测试知识&#xff1a;熟悉…...

Linux之Socket函数(详细篇)

本篇是基于Linux man手册的一些总结 socket作用&#xff1a; create an endpoint for communication 函数结构 c #include <sys/types.h> /* See NOTES */ #include <sys/socket.h> int socket(int domain, int type, int protocol); 描述 socket() …...

Dajngo06_Template模板

Dajngo06_Template模板 6.1 Template模板概述 模板引擎是一种可以让开发者把服务端数据填充到html网页中完成渲染效果的技术 静态网页&#xff1a;页面上的数据都是写死的&#xff0c;万年不变 动态网页&#xff1a;页面上的数据是从后端动态获取的&#xff08;后端获取数据库…...

快速幂 c++

一般大家写都是 int ans 1; for (int i 1; i < a; i )ans * x;时间复杂度 但是这对于我们还不够&#xff0c;我们要 首先我们得知道一个数学知识 那么求 就有以下递归式 a 能被2整除 a 不能被2整除 (这里a/2是整除) 所以每次都调用 不就是么 最后补充一个东西…...

分享一个基于微信小程序的医院口腔助手小程序 牙科诊所预约小程序 源码 lw 调试

&#x1f495;&#x1f495;作者&#xff1a;计算机源码社 &#x1f495;&#x1f495;个人简介&#xff1a;本人七年开发经验&#xff0c;擅长Java、Python、PHP、.NET、微信小程序、爬虫、大数据等&#xff0c;大家有这一块的问题可以一起交流&#xff01; &#x1f495;&…...

Si3262 一款低功耗刷卡+触摸+mcu 三合一SOC芯片

Si3262是-款高度集成的低功耗soC芯片&#xff0c;其集成了基于RISC-V 核的低功耗MCU和工作在13.56MHz的非接触式读写器模块。 该芯片ACD模式下刷卡距离可达4-5cm&#xff08;天线决定&#xff09;&#xff0c;适用于智能门锁&#xff0c;电子锁&#xff0c;柜锁&#xff0c;桑拿…...

[H5动画制作系列] 奔跑的豹子的四种Demo演化

资源: bg.jpg: leopard.png: 背景透明 peopard2.png 背景不透明 参考代码1: leopard.js: (function(window) {ma function() {this.initialize();}ma._SpriteSheet new createjs.SpriteSheet({images: ["leopard.png"], frames: [[0,0,484,207],[486,0,484,207]…...

如何实现让一个函数能返回多个值的效果

在C语言中&#xff0c;一个函数通常只能返回一个值。但是可以通过指针参数或结构体来模拟返回多个值的效果。 使用指针参数&#xff1a;你可以将需要返回的值作为函数的参数&#xff0c;通过指针的形式传入&#xff0c;让函数将结果写入指针所指向的内存位置。 void multiple…...

End-to-end 3D Human Pose Estimation with Transformer

基于Transformer的端到端三维人体姿态估计 摘要 基于Transformer的架构已经成为自然语言处理中的常见选择&#xff0c;并且现在正在计算机视觉任务中实现SOTA性能&#xff0c;例如图像分类&#xff0c;对象检测。然而&#xff0c;卷积方法在3D人体姿态估计的许多方法中仍然保…...

状态管理Pinia

Vue3 状态管理 - Pinia 1. 什么是Pinia Pinia 是 Vue 的专属的最新状态管理库 &#xff0c;是 Vuex 状态管理工具的替代品 2. 手动添加Pinia到Vue项目 后面在实际开发项目的时候&#xff0c;Pinia可以在项目创建时自动添加&#xff0c;现在我们初次学习&#xff0c;从零开始…...

maven运行报错解决

在IDEA上运行较大项目时&#xff0c;编译量很大&#xff0c;可能会报出 Error:java: java.lang.OutOfMemoryError: Java heap space 的错误&#xff0c;解决方法如下&#xff1a; java.lang.OutOfMemoryError是内存不足导致的&#xff0c;因此需要修改Idea运行项目的内存大小。…...

在线会计软件推荐:高效实用的选择解析

如果您始终在密切关注Zoho&#xff0c;您一定知道&#xff0c;我们的软件在一个接一个的增加&#xff0c;为的是构建出一套可以全面在线协作、提升业务生产力的应用系统&#xff0c;我们始终致力于为各类企业构建完整的业务应用&#xff0c;以便他们在Zoho上运行整个业务系统。…...

vue监听Enter键

目录 keydown.enter 方法1: 使用keydown.enter指令 方法2: 在keydown事件处理函数中检查按下的键 keyup.enter.native keydown.enter与keyup.enter.native区别 1. 触发时机&#xff1a; 2. 事件类型&#xff1a; 3. 事件冒泡&#xff1a; keydown.enter 在Vue中监听En…...

ADS中带通滤波器模型参数含义学习笔记

ADS中带通滤波器模型参数含义 1、 Fcenter 中心频率 2、 BWpass 通带带宽 3、 Apass 衰减量时的通带带宽 这两个是对应的&#xff0c;比如说是80MHz&#xff0c;3dB&#xff0c;那么就是3dB时的带宽为80MHz&#xff0c;如果改为0.1dB&#xff0c;那么带宽就是0.1dB时的带宽为80…...

【Blender】Blender入门学习

目录 0 参考视频教程0.1 Blender理论知识0.2 Blender上手实践0.3 FBX模型导入Unity 1 Blender的窗口介绍1.1 主界面1.2 模型编辑窗口 2 Blender的基本操作2.1 3D视图的平移2.2 3D视图的旋转2.3 3D视图的缩放2.4 修改快捷键2.5 使物体围绕选择的物体旋转2.6 四视图的查看2.7 局部…...

Redis 三种特殊的数据类型 - Geospatial地理位置 - Hyperloglog基数统计的算法 - Bitmaps位图(位存储)

目录 Redis 三种特殊的数据类型&#xff1a; Geospatial&#xff1a;地理位置 Geospatial类型常用的命令&#xff1a; GEOADD&#xff1a;添加地理位置 GEOPOS&#xff1a;获取地理位置 GEODIST&#xff1a;返回两个给定位置之间的距离 GEORADIUS&#xff1a;以给定的经纬…...

Python web 框架web.py「简约美」

web.py is a web framework for Python that is as simple as it is powerful. web.py is in the public domain, you can use it for whatever purpose with absolutely no restrictions. web.py 是一个简单而强大的 Python Web 框架。web.py 属于公共领域&#xff0c;您可以…...

Bootstrap 重新数据查询时页码为当前页问题

记录一下使用前端组件Bootstrap遇到的一个小问题&#xff1a; 问题描述 第一次查询数据为5页&#xff0c;翻页到第5页后&#xff0c;选中条件再次查询数据时&#xff0c;传到后端页码仍旧为5&#xff0c;而此时数据量小于5页&#xff0c;这时候页码没有重置成第一页&#xff…...

wordpress系统付费/软文代写平台

Unity 3D 是目前主流的游戏开发引擎&#xff0c;有数据显示&#xff0c;全球最赚钱的 1000 款手机游戏中&#xff0c;有 30% 是使用 Unity 3D 开发出来的。尤其在 VR 设备中&#xff0c;Unity 3D 游戏开发引擎具有统治地位。 Unity 3D 能够创建实时、可视化的 2D 和 3D 动画、…...

南宁网站建设专家/免费站推广网站2022

jQuery on()方法是官方推荐的绑定事件的一个方法。使用 on() 方法可以给将来动态创建的动态元素绑定指定的事件&#xff0c;通过本文给大家介绍jQuery on()绑定动态元素出现的问题小结&#xff0c;需要的朋友参考下jQuery on()方法是官方推荐的绑定事件的一个方法。使用 on() 方…...

如何为wordpress添加音乐播放器/大连网络推广

上周听了tt大神作分享&#xff0c;获益良多。之前一直不知道Windows的域是怎么回事&#xff0c;有点被点拨开悟了一些。趁现在还有记忆&#xff0c;把当时的记录回忆一下。活动目录&#xff0c;即Active Directory&#xff0c;是Windows服务器环境的一个核心服务&#xff0c;对…...

网易做相册旅游网站/买链接网

文/金金 首发于一周进步每到期末&#xff0c;都是大作业和报告的高发季&#xff0c;一个“死线”刚过&#xff0c;另一堆“死线”接踵而至。作为一名在报告的海洋里中挣扎&#xff0c;妄图顺利存活的同学&#xff0c;我自然是使用链接到样式的多级列表&#xff0c;Word自动化排…...

wordpress网站做成app/营销案例最新

2020年湖北高考结束后&#xff0c;考生最关注的事情就是高考成绩什么时候公布呢&#xff0c;在预告自己的成绩后最期待的就是自己今年到底考了多少分&#xff0c;根据往年的高考成绩公布时间安排&#xff0c;湖北高考成绩公布时间都在高考完大概15天左右的时间公布&#xff0c;…...

兰州 网站/小网站搜什么关键词好

创建与合并分支 在版本回退里&#xff0c;每次提交&#xff0c;Git都把它们串成一条时间线&#xff0c;这条时间线就是一个分支。Git里&#xff0c;这个分支叫主分支&#xff0c;即master分支。HEAD严格来说不是指向提交&#xff0c;而是指向master&#xff0c;master才是指向…...