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

模式识别与机器学习-判别式分类器

模式识别与机器学习-判别式分类器

  • 生成式模型和判别式模型的区别
  • 线性判别函数
    • 多分类情况
      • 多分类情况1
      • 多分类情况2
      • 多分类情况3
    • 例题
  • 广义线性判别函数
    • 实例
  • 分段线性判别函数
  • Fisher线性判别
  • 感知机算法
    • 例:
    • 感知机多类别分类

谨以此博客作为学习期间的记录

生成式模型和判别式模型的区别

生成式模型关注如何生成整个数据的分布,而判别式模型则专注于学习如何根据给定输入预测输出标签或数值。在实践中多数判别式模型要优于生成式模型。

在这里插入图片描述

线性判别函数

对于一个两类问题来说,就是如何找到一条线(高维空间中是超平面)去将两类不同的样本分割开来。

若x是二维模式样本 x = [ x 1 x 2 ] T x = \begin{bmatrix} x_1 \\ x_2 \end{bmatrix}^T x=[x1x2]T,其中 x 1 x_1 x1 x 2 x_2 x2是其坐标分量。
在这里插入图片描述
d ( x ) = w 1 x 1 + w 2 x 2 + w 3 = 0 d(x) = w_1x_1 + w_2x_2 + w_3 = 0 d(x)=w1x1+w2x2+w3=0
其中, x 1 x_1 x1 x 2 x_2 x2为坐标变量, w 1 w_1 w1 w 2 w_2 w2 w 3 w_3 w3为参数方程。当一个未知类别的模式代入 d ( x ) d(x) d(x) 时:

  • d ( x ) > 0 d(x) > 0 d(x)>0,则 样本属于 w 1 w_1 w1
  • d ( x ) < 0 d(x) < 0 d(x)<0,则 样本属于 w 2 w_2 w2
    此时, d ( x ) = 0 d(x) = 0 d(x)=0 称为判别函数。

n维线性判别函数的一般形式可以表示为: d ( x ) = w T x + w 0 = 0 d(\mathbf{x}) = \mathbf{w}^T \mathbf{x} + w_0 = 0 d(x)=wTx+w0=0
其中, x = [ x 1 , x 2 , … , x n ] T \mathbf{x} = [x_1, x_2, \dots, x_n]^T x=[x1,x2,,xn]T 表示 n 维模式样本, w = [ w 1 , w 2 , … , w n ] T \mathbf{w} = [w_1, w_2, \dots, w_n]^T w=[w1,w2,,wn]T 是权重向量, w 0 w_0 w0 是偏置项或阈值。通过这个判别函数,可以将样本空间分割成不同的类别区域。

多分类情况

在二分类问题中,只需要根据判别函数 d ( x ) d(x) d(x)的正负即可将样本划分为不同的类别。但是在多分类问题中,情况较为复杂,有以下三种处理方式:

多分类情况1

用线性判别函数将属于 ω i ω_i ωi类的模式与不属于 ω i ω_i ωi类的模式分开,用多个判别函数来完成分类任务,每一个判别函数 d i ( x ) d_i(x) di(x)只有一个任务,那就是这个样本是否属于 w i w_i wi类。
判别情况通常可以表示为:

  • d i ( x ) > 0 d_i(x) > 0 di(x)>0,则样本 x x x 被判定为属于 ω i ω_i ωi 类。
  • d i ( x ) < 0 d_i(x) < 0 di(x)<0,则样本 x x x 被判定为不属于 ω i ω_i ωi 类。
    在这里插入图片描述

多分类情况2

用多个判别函数来完成分类任务,判别函数 d i j ( x ) d_{ij}(x) dij(x)会判断样本x属于 w i w_i wi还是 w j w_j wj.
对一个三类情况, d 12 ( x ) = 0 对一个三类情况,d_{12}(x)=0 对一个三类情况,d12(x)=0仅能分开 ω 1 ω_1 ω1 ω 2 ω_2 ω2类,不能分开 ω 1 ω_1 ω1 ω 3 ω_3 ω3类。

要分开 M M M类模式,共需 M ( M − 1 ) 2 \frac{M(M-1)}{2} 2M(M1)个判别函数。

不确定区域:若所有 d i j ( x ) d_{ij}(x) dij(x),找不到 d i j ( x ) > 0 d_{ij}(x)>0 dij(x)>0的情况。
在这里插入图片描述

多分类情况3

在这种情况下,判别函数可以分解 d i j ( x ) = d i ( x ) − d j ( x ) d_{ij}(x) = d_i(x) - d_j(x) dij(x)=di(x)dj(x),其实 d i ( x ) d_i(x) di(x)可以理解为样本x距离类别 w i w_i wi的相似度,哪个 d i ( x ) d_i(x) di(x)大,x就离哪个类别近。
在这里插入图片描述
在这里插入图片描述

例题

Q1:
一个 10 类的模式识别问题中,有 3 类单独满足多类情况 1,其余的类别满足多类情况 2。问该模式识别问题所需判别函数的最少数目是多少?

A1:
将其余的类别满足多类情况 2的暂时先看为一类,这样的话需要4个判别函数就可以将 w 1 , w 2 , w 3 , { w 4 , w 5 , w 6 , w 7 , w 8 , w 9 , w 10 } w1,w2,w3,\{w4,w5,w6,w7,w8,w9,w10\} w1,w2,w3,{w4,w5,w6,w7,w8,w9,w10}划分开来,而要想将 w 4 , w 5 , w 6 , w 7 , w 8 , w 9 , w 10 w4,w5,w6,w7,w8,w9,w10 w4,w5,w6,w7,w8,w9,w10划分开,需要 7 ∗ ( 7 − 1 ) 2 = 21 \frac{7*(7-1)}{2} = 21 27(71)=21,因此一共需要21+4 = 25个判别函数。

Q2:
一个三类问题,其判别函数如下: d 1 ( x ) = − x 1 , d 2 ( x ) = x 1 + x 2 − 1 , d 3 ( x ) = x 1 − x 2 − 1 d_1(x) = -x_1,d_2(x) = x_1+x_2-1,d_3(x) = x_1-x_2-1 d1(x)=x1,d2(x)=x1+x21,d3(x)=x1x21

  1. 设这些函数是在多类情况 1 条件下确定的,绘出其判别界面和每一个模式类别的区域
    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  2. 设为多类情况 2,并使: d 12 ( x ) = d 1 ( x ) , d 13 ( x ) = d 2 ( x ) , d 23 ( x ) = d 3 ( x ) d_{12}(x)= d_1(x), d_{13}(x)= d_2(x), d_{23}(x)= d_3(x) d12(x)=d1(x),d13(x)=d2(x),d23(x)=d3(x)。绘出其判别界面和多类情况 2 的区域
    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  3. d 1 ( x ) , d 2 ( x ) 和 d 3 ( x ) d_1(x), d_2(x)和 d_3(x) d1(x),d2(x)d3(x)是在多类情况 3 的条件下确定的,绘出其判别界面和每类的区域。

如果属于类别 w 1 w_1 w1,那么 d 1 ( x ) d_1(x) d1(x)是三个判别函数中最大的,有 − x 1 > x 1 + x 2 − 1 − x 1 > x 1 − x 2 − 1 -x_1 > x_1+x_2 - 1\\ -x_1>x_1-x_2-1 x1>x1+x21x1>x1x21
化简之后有:
2 x 1 + x 2 − 1 < 0 2 x 1 − x 2 − 1 < 0 2x_1+x_2 - 1<0\\ 2x_1-x_2 - 1<0\\ 2x1+x21<02x1x21<0
同理:
如果属于类别 w 2 w_2 w2,那么 d 2 ( x ) d_2(x) d2(x)是三个判别函数中最大的,有 x 1 + x 2 − 1 > − x 1 x 1 + x 2 − 1 > x 1 − x 2 − 1 x_1+x_2 - 1>-x_1\\ x_1+x_2 - 1>x_1-x_2-1 x1+x21>x1x1+x21>x1x21
化简之后有:
2 x 1 + x 2 − 1 > 0 x 2 > 0 2x_1+x_2 - 1>0\\ x_2>0\\ 2x1+x21>0x2>0
同理:
如果属于类别 w 3 w_3 w3,那么 d 3 ( x ) d_3(x) d3(x)是三个判别函数中最大的,有 x 1 − x 2 − 1 > − x 1 x 1 − x 2 − 1 > x 1 + x 2 − 1 x_1-x_2 - 1>-x_1\\ x_1-x_2 - 1>x_1+x_2-1 x1x21>x1x1x21>x1+x21
化简之后有:
2 x 1 − x 2 − 1 > 0 x 2 < 0 2x_1-x_2 - 1>0\\ x_2<0\\ 2x1x21>0x2<0
在这里插入图片描述

广义线性判别函数

基本思想:可以在线性判别函数的基础上添加一些非线性特征,从而具有更好的表达能力。
若有一个训练用的模式集 { x } \{x\} {x},在模式空间 x x x 中线性不可分,但在模式空间 x ∗ x^* x 中线性可分。其中 x ∗ x^* x 的各个分量是 x x x 的单值实函数, x ∗ x^* x 的维数 k k k 高于 x x x 的维数 n n n,即若取
x ∗ = ( f 1 ( x ) , f 2 ( x ) , … , f k ( x ) ) , k > n x^* = (f_1(x), f_2(x), \dots, f_k(x)), \quad k > n x=(f1(x),f2(x),,fk(x)),k>n
则分类界面在 x ∗ x^* x 中是线性的,在 x x x 中是非线性的。此时只要将模式 x x x 进行非线性变换,使之变换后得到维数更高的模式 x ∗ x^* x,就可以用线性判别函数来进行分类。
此时广义线性判别函数可以表达为:
d ( x ) = w 1 f 1 ( x ) + w 2 f 2 ( x ) + . . . + w k f k ( x ) + w k + 1 d(x) = w_1f_1(x)+w_2f_2(x)+...+w_kf_k(x)+w_{k+1} d(x)=w1f1(x)+w2f2(x)+...+wkfk(x)+wk+1

实例

f i ( x ) f_i(x) fi(x) r r r次多项式, x x x是n维的情况。
在这里插入图片描述
Q3:
两类模式,每类包括 5 个 3 维不同的模式向量,且良好分布。如果它们是线性可分的,问权向量至少需要几个系数分量?假如要建立二次的多项式判别函数,又至少需要几个系数分量?(设模式的良好分布不因模式变化而改变。)

系数分量的个数为: C n + r r C_{n+r}^{r} Cn+rr

如果线性可分: C 4 1 = 4 C_{4}^{1} = 4 C41=4

如果建立二次判别函数: C 3 + 2 2 = 10 C_{3+2}^{2} = 10 C3+22=10

分段线性判别函数

在有些非线性可分场景下,可以使用二次判别函数,另一种处理方式是使用分段线性函数去逼近这个二次函数。
在这里插入图片描述

Fisher线性判别

在低维空间里解析上或计算上行得通的方法,在高维空间里往往行不通。因此,降低维数有时就会成为处理实际问题的关键。
思想:根据实际情况找到一条最好的、最易于分类的投影线。将点投影到这条线上实现降维。
在这里插入图片描述
y n = W T x n y_n = W^Tx_n yn=WTxn这样就实现了从n维样本到一维的变换。关键在于如何确定W,从而使类内样本间隔尽可能小,类间样本间隔尽可能大。
在这里插入图片描述
最终求解得到的最优参数 w ∗ = S w − 1 ( m 1 − m 2 ) w*=S_w^{-1} (m_1-m_2) w=Sw1(m1m2)

感知机算法

感知器算法实质上是一种赏罚过程

  • 对正确分类的模式则“赏”,实际上是“不罚”,即权向量不变。
  • 对错误分类的模式则“罚”,使w(k)加上一个正比于 x k x_k xk的分量。
  • 当用全部模式样本训练过一轮以后,只要有一个模式是判别错误的,则需要进行下一轮迭代,即用全部模式样本再训练一次。
  • 如此不断反复直到全部模式样本进行训练都能得到正确的分类结果为止。

在这里插入图片描述

例:

  • 用感知器算法求下列模式分类的解向量 w w w :
    ω 1 : { ( 0 0 0 ) T , ( 1 0 0 ) T , ( 1 0 1 ) T , ( 1 1 0 ) T } ω 2 : { ( 0 0 1 ) T , ( 0 1 1 ) T , ( 0 1 0 ) T , ( 1 1 1 ) T } \begin{aligned} & \omega_1:\left\{\left(\begin{array}{lll} 0 & 0 & 0 \end{array}\right)^{\mathrm{T}},\left(\begin{array}{lll} 1 & 0 & 0 \end{array}\right)^{\mathrm{T}},\left(\begin{array}{lll} 1 & 0 & 1 \end{array}\right)^{\mathrm{T}},\left(\begin{array}{lll} 1 & 1 & 0 \end{array}\right)^{\mathrm{T}}\right\} \\ & \omega_2:\left\{\left(\begin{array}{lll} 0 & 0 & 1 \end{array}\right)^{\mathrm{T}},\left(\begin{array}{lll} 0 & 1 & 1 \end{array}\right)^{\mathrm{T}},\left(\begin{array}{lll} 0 & 1 & 0 \end{array}\right)^{\mathrm{T}},\left(\begin{array}{lll} 1 & 1 & 1 \end{array}\right)^{\mathrm{T}}\right\} \\ & \end{aligned} ω1:{(000)T,(100)T,(101)T,(110)T}ω2:{(001)T,(011)T,(010)T,(111)T}

先将样本点写为增广形式
w 1 : { ( 0 , 0 , 0 , 1 ) , ( 1 , 0 , 0 , 1 ) , ( 1 , 0 , 1 , 1 ) , ( 1 , 1 , 0 , 1 ) } w 2 : { ( 0 , 0 , 1 , 1 ) , ( 0 , 1 , 1 , 1 ) , ( 0 , 1 , 0 , 1 ) , ( 1 , 1 , 1 , 1 ) } w_1:\{(0,0,0,1),(1,0,0,1),(1,0,1,1),(1,1,0,1)\}\\ w_2:\{(0,0,1,1),(0,1,1,1),(0,1,0,1),(1,1,1,1)\} w1:{(0,0,0,1),(1,0,0,1),(1,0,1,1),(1,1,0,1)}w2:{(0,0,1,1),(0,1,1,1),(0,1,0,1),(1,1,1,1)}

将属于 w 2 w_2 w2的样本统一乘上-1,得到 w 2 : { ( 0 , 0 , − 1 , − 1 ) , ( 0 , − 1 , − 1 , − 1 ) , ( 0 , − 1 , 0 , − 1 ) , ( − 1 , − 1 − 1 , − 1 ) } w_2:\{(0,0,-1,-1),(0,-1,-1,-1),(0,-1,0,-1),(-1,-1-1,-1)\} w2:{(0,0,1,1),(0,1,1,1),(0,1,0,1),(1,11,1)}

初始化 w 0 = ( 0 , 0 , 0 , 0 ) , C = 1 w_0 = (0,0,0,0),C = 1 w0=(0,0,0,0),C=1

w 0 ∗ ( 0 , 0 , 0 , 1 ) = 0 , w 1 = w 0 + C ∗ ( 0 , 0 , 0 , 1 ) = ( 0 , 0 , 0 , 1 ) w 1 ∗ ( 1 , 0 , 0 , 1 ) = 1 , w 2 = w 1 = ( 0 , 0 , 0 , 1 ) w 2 ∗ ( 1 , 0 , 1 , 1 ) = 1 , w 3 = w 2 = ( 0 , 0 , 0 , 1 ) w 3 ∗ ( 1 , 1 , 0 , 1 ) = 1 , w 4 = w 3 = ( 0 , 0 , 0 , 1 ) w 4 ∗ ( 0 , 0 , − 1 , − 1 ) = − 1 , w 5 = w 4 + C ∗ ( 0 , 0 , − 1 , − 1 ) = ( 0 , 0 , − 1 , 0 ) w 5 ∗ ( 0 , − 1 , − 1 , − 1 ) = 1 , w 6 = w 5 = ( 0 , 0 , − 1 , 0 ) w 6 ∗ ( 0 , − 1 , 0 , − 1 ) = 0 , w 7 = w 6 + C ∗ ( 0 , − 1 , 0 , − 1 ) = ( 0 , − 1 , − 1 , − 1 ) w 7 ∗ ( − 1 , − 1 , − 1 , − 1 ) = 3 , w 8 = w 7 = ( 0 , − 1 , − 1 , − 1 ) . . . w 39 = ( 2. , − 2. , − 2. , 1 ) d = 2 x 1 − 2 x 2 − 2 x 3 + x 4 w_0 * (0,0,0,1) = 0,\qquad w_1 = w_0 + C*(0,0,0,1) = (0,0,0,1)\\ w_1*(1,0,0,1) = 1,\qquad w_2 = w_1 = (0,0,0,1)\\ w_2*(1,0,1,1) = 1,\qquad w_3 = w_2 = (0,0,0,1)\\ w_3*(1,1,0,1) = 1,\qquad w_4 = w_3 = (0,0,0,1)\\ w_4*(0,0,-1,-1) = -1,\qquad w_5 = w_4 + C*(0,0,-1,-1) = (0,0,-1,0)\\ w_5*(0,-1,-1,-1) = 1,\qquad w_6 = w_5 = (0,0,-1,0)\\ w_6*(0,-1,0,-1) = 0,\qquad w_7 = w_6+C*(0,-1,0,-1) = (0,-1,-1,-1)\\ w_7*(-1,-1,-1,-1) = 3,\qquad w_8 = w_7 = (0,-1,-1,-1)\\ ...\\ w_{39} = (2., -2., -2., 1)\\ d = 2x_1-2x_2-2x_3+x_4 w0(0,0,0,1)=0,w1=w0+C(0,0,0,1)=(0,0,0,1)w1(1,0,0,1)=1,w2=w1=(0,0,0,1)w2(1,0,1,1)=1,w3=w2=(0,0,0,1)w3(1,1,0,1)=1,w4=w3=(0,0,0,1)w4(0,0,1,1)=1,w5=w4+C(0,0,1,1)=(0,0,1,0)w5(0,1,1,1)=1,w6=w5=(0,0,1,0)w6(0,1,0,1)=0,w7=w6+C(0,1,0,1)=(0,1,1,1)w7(1,1,1,1)=3,w8=w7=(0,1,1,1)...w39=(2.,2.,2.,1)d=2x12x22x3+x4

  • 编写求解上述问题的感知器算法程序 (选做)
import numpy as np# 定义样本集
w1_samples = np.array([[0, 0, 0, 1], [1, 0, 0, 1], [1, 0, 1, 1], [1, 1, 0, 1]])
w2_samples = np.array([[0, 0, -1, -1], [0, -1, -1, -1], [0, -1, 0, -1], [-1, -1, -1, -1]])# 合并样本并初始化增广形式
X = np.vstack((w1_samples, w2_samples))# 初始权重向量和参数设置
w = np.zeros(X.shape[1])  # 初始权重向量
C = 1  # 正则化参数
converged = False  # 收敛标志# 迭代更新权重向量
iteration = 0
while not converged:converged = Truefor i in range(X.shape[0]):if np.dot(w, X[i]) <= 0:  # 判断误分类点w = w + C * X[i]  # 更新权重向量converged = False  # 存在误分类点,未收敛print(f"Iteration {iteration + 1}: w = {w}")iteration += 1print(f"\nConverged at iteration {iteration}: Final w = {w}")

输出结果:

Iteration 1: w = [0. 0. 0. 1.]
Iteration 2: w = [0. 0. 0. 1.]
Iteration 3: w = [0. 0. 0. 1.]
Iteration 4: w = [0. 0. 0. 1.]
Iteration 5: w = [ 0.  0. -1.  0.]
Iteration 6: w = [ 0.  0. -1.  0.]
Iteration 7: w = [ 0. -1. -1. -1.]
Iteration 8: w = [ 0. -1. -1. -1.]
Iteration 9: w = [ 0. -1. -1.  0.]
Iteration 10: w = [ 1. -1. -1.  1.]
Iteration 11: w = [ 1. -1. -1.  1.]
Iteration 12: w = [ 1. -1. -1.  1.]
Iteration 13: w = [ 1. -1. -2.  0.]
Iteration 14: w = [ 1. -1. -2.  0.]
Iteration 15: w = [ 1. -1. -2.  0.]
Iteration 16: w = [ 1. -1. -2.  0.]
Iteration 17: w = [ 1. -1. -2.  1.]
Iteration 18: w = [ 1. -1. -2.  1.]
Iteration 19: w = [ 2. -1. -1.  2.]
Iteration 20: w = [ 2. -1. -1.  2.]
Iteration 21: w = [ 2. -1. -2.  1.]
Iteration 22: w = [ 2. -1. -2.  1.]
Iteration 23: w = [ 2. -2. -2.  0.]
Iteration 24: w = [ 2. -2. -2.  0.]
Iteration 25: w = [ 2. -2. -2.  1.]
Iteration 26: w = [ 2. -2. -2.  1.]
Iteration 27: w = [ 2. -2. -2.  1.]
Iteration 28: w = [ 2. -2. -2.  1.]
Iteration 29: w = [ 2. -2. -2.  1.]
Iteration 30: w = [ 2. -2. -2.  1.]
Iteration 31: w = [ 2. -2. -2.  1.]
Iteration 32: w = [ 2. -2. -2.  1.]
Iteration 33: w = [ 2. -2. -2.  1.]
Iteration 34: w = [ 2. -2. -2.  1.]
Iteration 35: w = [ 2. -2. -2.  1.]
Iteration 36: w = [ 2. -2. -2.  1.]
Iteration 37: w = [ 2. -2. -2.  1.]
Iteration 38: w = [ 2. -2. -2.  1.]
Iteration 39: w = [ 2. -2. -2.  1.]
Iteration 40: w = [ 2. -2. -2.  1.]Converged at iteration 40: Final w = [ 2. -2. -2.  1.]

感知机多类别分类

在这里插入图片描述
用多类感知器算法求下列模式的判别函数:
ω 1 : ( − 1 , − 1 ) T , ω 2 : ( 0 , 0 ) T , ω 3 : ( 1 , 1 ) T ω_1: (-1, -1)^T, ω_2: (0, 0)^T, ω_3: (1, 1)^T ω1:(1,1)Tω2:(0,0)Tω3:(1,1)T

将样本写为增广形式 ω 1 : ( − 1 , − 1 , 1 ) T , ω 2 : ( 0 , 0 , 1 ) T , ω 3 : ( 1 , 1 , 1 ) T ω_1: (-1, -1,1)^T, ω_2: (0, 0,1)^T, ω_3: (1, 1,1)^T ω1:(1,1,1)Tω2:(0,0,1)Tω3:(1,1,1)T

初始化 d 1 ( x ) = ( 0 , 0 , 0 ) , d 2 ( x ) = ( 0 , 0 , 0 ) , d 3 ( x ) = ( 0 , 0 , 0 ) d_1(x) = (0,0,0),d_2(x) = (0,0,0),d_3(x) = (0,0,0) d1(x)=(0,0,0),d2(x)=(0,0,0),d3(x)=(0,0,0)

d 1 ∗ w 1 = 0 , d 2 ∗ w 1 = 0 , d 3 ∗ w 1 = 0 , d 1 = d 1 + w 1 = ( − 1 , − 1 , 1 ) , d 2 = d 2 − w 1 = ( 1 , 1 , − 1 ) , d 3 = d 3 − w 1 = ( 1 , 1 , − 1 ) d 1 ∗ w 2 = 1 , d 2 ∗ w 2 = − 1 , d 3 ∗ w 3 = − 1 , d 1 = d 1 − w 2 = ( − 1 , − 1 , 0 ) , d 2 = d 2 + w 2 = ( 1 , 1 , 0 ) , d 3 = d 3 − w 2 = ( 1 , 1 , − 2 ) d 1 ∗ w 3 = − 2 , d 2 ∗ w 3 = 2 , d 3 ∗ w 3 = 0 , d 1 = ( − 1 , − 1 , 0 ) , d 2 = d 2 − w 3 = ( 0 , 0 , − 1 ) , d 3 = d 3 + w 3 = ( 2 , 2 , − 1 ) d 1 ∗ w 1 = 2 , d 2 ∗ w 1 = − 1 , d 3 ∗ w 1 = − 5 , d 1 = ( − 1 , − 1 , 0 ) , d 2 = ( 0 , 0 , − 1 ) , d 3 = ( 2 , 2 , − 1 ) d 1 ∗ w 2 = 0 , d 2 ∗ w 2 = − 1 , d 3 ∗ w 2 = − 1 , d 1 = d 1 − w 2 = ( − 1 , − 1 , − 1 ) , d 2 = d 2 + w 2 = ( 0 , 0 , 0 ) , d 3 = d 3 − w 2 = ( 2 , 2 , − 2 ) d 1 ∗ w 3 = − 3 , d 2 ∗ w 3 = 0 , d 3 ∗ w 3 = 2 , d 1 = ( − 1 , − 1 , − 1 ) , d 2 = ( 0 , 0 , 0 ) , d 3 = ( 2 , 2 , − 2 ) d 1 ∗ w 1 = 1 , d 2 ∗ w 1 = 0 , d 3 ∗ w 1 = − 6 , d 1 = ( − 1 , − 1 , − 1 ) , d 2 = ( 0 , 0 , 0 ) , d 3 = ( 2 , 2 , − 2 ) d 1 ∗ w 2 = − 1 , d 2 ∗ w 2 = 0 , d 3 ∗ w 2 = − 2 , d 1 = ( − 1 , − 1 , − 1 ) , d 2 = ( 0 , 0 , 0 ) , d 3 = ( 2 , 2 , − 2 ) d_1*w_1 = 0,\quad d_2*w_1 = 0,\quad d_3*w_1 = 0,\quad d_1 = d_1 + w_1 = (-1,-1,1),\quad d_2 = d_2 - w_1 = (1,1,-1),\quad d_3 = d_3 - w_1 = (1,1,-1)\\ d_1*w_2 = 1,\quad d_2*w_2 = -1,\quad d_3*w_3 = -1,\quad d_1 = d_1 - w_2 = (-1,-1,0),\quad d_2 = d_2 + w_2 = (1,1,0),\quad d_3 = d_3 - w_2 = (1,1,-2)\\ d_1*w_3 = -2,\quad d_2*w_3 = 2,\quad d_3*w_3 = 0,\quad d_1 = (-1,-1,0),\quad d_2 = d_2 - w_3 = (0,0,-1),\quad d_3 = d_3 + w_3 = (2,2,-1)\\ d_1*w_1 = 2,\quad d_2*w_1 = -1,\quad d_3*w_1 = -5,\quad d_1 = (-1,-1,0),\quad d_2 = (0,0,-1),\quad d_3 = (2,2,-1)\\ d_1*w_2 = 0,\quad d_2*w_2 = -1,\quad d_3*w_2 = -1,\quad d_1 =d_1 - w_2 = (-1,-1,-1),\quad d_2 = d_2 + w_2 = (0,0,0),\quad d_3 =d_3 -w_2 = (2,2,-2)\\ d_1*w_3 = -3,\quad d_2*w_3 = 0,\quad d_3*w_3 = 2,\quad d_1 = (-1,-1,-1),\quad d_2 = (0,0,0),\quad d_3 = (2,2,-2)\\ d_1*w_1= 1,\quad d_2*w_1= 0,\quad d_3*w_1 = -6,\quad d_1 = (-1,-1,-1),\quad d_2 = (0,0,0),\quad d_3 = (2,2,-2)\\ d_1*w_2= -1,\quad d_2*w_2= 0,\quad d_3*w_2 = -2,\quad d_1 = (-1,-1,-1),\quad d_2 = (0,0,0),\quad d_3 = (2,2,-2)\\ d1w1=0,d2w1=0,d3w1=0,d1=d1+w1=(1,1,1),d2=d2w1=(1,1,1),d3=d3w1=(1,1,1)d1w2=1,d2w2=1,d3w3=1,d1=d1w2=(1,1,0),d2=d2+w2=(1,1,0),d3=d3w2=(1,1,2)d1w3=2,d2w3=2,d3w3=0,d1=(1,1,0),d2=d2w3=(0,0,1),d3=d3+w3=(2,2,1)d1w1=2,d2w1=1,d3w1=5,d1=(1,1,0),d2=(0,0,1),d3=(2,2,1)d1w2=0,d2w2=1,d3w2=1,d1=d1w2=(1,1,1),d2=d2+w2=(0,0,0),d3=d3w2=(2,2,2)d1w3=3,d2w3=0,d3w3=2,d1=(1,1,1),d2=(0,0,0),d3=(2,2,2)d1w1=1,d2w1=0,d3w1=6,d1=(1,1,1),d2=(0,0,0),d3=(2,2,2)d1w2=1,d2w2=0,d3w2=2,d1=(1,1,1),d2=(0,0,0),d3=(2,2,2)
因此最终
d 1 = − x 1 − x 2 − 1 d 2 = 0 d 3 = 2 x 1 + 2 x 2 − 2 d_1 = -x_1 - x_2 - 1\\ d_2 = 0\\ d_3 = 2x_1+2x_2-2 d1=x1x21d2=0d3=2x1+2x22

相关文章:

模式识别与机器学习-判别式分类器

模式识别与机器学习-判别式分类器 生成式模型和判别式模型的区别线性判别函数多分类情况多分类情况1多分类情况2多分类情况3 例题 广义线性判别函数实例 分段线性判别函数Fisher线性判别感知机算法例&#xff1a;感知机多类别分类 谨以此博客作为学习期间的记录 生成式模型和判…...

c++11 标准模板(STL)(std::pair)(七)访问 pair 的一个元素

定义于头文件 <utility> std::pair 是一个结构体模板&#xff0c;其可于一个单元存储两个相异对象。 pair 是 std::tuple 的拥有两个元素的特殊情况。 访问 pair 的一个元素 std::get(std::pair) template< size_t I, class T1, class T2 > typename std::tuple…...

IP 地址归属地查询

IP 地址归属地查询 1. IP 地址归属地查询2. IP 地址归属地查询References 1. IP 地址归属地查询 https://tool.lu/ip/index.html 2. IP 地址归属地查询 https://www.ip.cn/ip/.html References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/...

实战经验分享:在Java中灵活应用Excel注释和批注

本文由葡萄城技术团队原创并首发。转载请注明出处&#xff1a;葡萄城官网&#xff0c;葡萄城为开发者提供专业的开发工具、解决方案和服务&#xff0c;赋能开发者。 前言 注释及批注是 Excel 中比较常用的功能&#xff0c;注释往往针对单元格&#xff0c;起到解释说明的作用&a…...

AUTOSAR从入门到精通-车载以太网(三)

目录 前言 原理 车载以太网总体架构 物理层 数据链路层 以太网帧格式<...

【自然语言处理】用Python从文本中删除个人信息-第二部分

自我介绍 做一个简单介绍&#xff0c;酒架年近48 &#xff0c;有20多年IT工作经历&#xff0c;目前在一家500强做企业架构&#xff0e;因为工作需要&#xff0c;另外也因为兴趣涉猎比较广&#xff0c;为了自己学习建立了三个博客&#xff0c;分别是【全球IT瞭望】&#xff0c;【…...

设计模式之-中介者模式,快速掌握中介者模式,通俗易懂的讲解中介者模式以及它的使用场景

系列文章目录 设计模式之-6大设计原则简单易懂的理解以及它们的适用场景和代码示列 设计模式之-单列设计模式&#xff0c;5种单例设计模式使用场景以及它们的优缺点 设计模式之-3种常见的工厂模式简单工厂模式、工厂方法模式和抽象工厂模式&#xff0c;每一种模式的概念、使用…...

12.25

led.c #include "led.h" void all_led_init() {RCC_GPIO | (0X3<<4);//时钟使能GPIOE_MODER &(~(0X3<<20));//设置PE10输出GPIOE_MODER | (0X1<<20);//设置PE10为推挽输出GPIOE_OTYPER &(~(0x1<<10));//PE10为低速输出GPIOE_OSPEED…...

MySQL5.7的几种安装方式总结(排错踩坑呕心沥血的经历)

包安装 添加国内源&#xff1a;mysql | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 注意&#xff1a;5.7安装之后有一个临时密码&#xff0c;进行登录并修改新密码后才可以对mysql进行操作。 可以yun list看看各个系统光盘自带的都是什么版本&…...

zookeeper基本使用

目录 环境搭建 单机版搭建 集群版搭建 基本语法使用 可视化客户端 数据结构 节点分类 1. 持久节点 2. 临时节点 3. 有序节点 4. 容器节点 5. TTL节点 节点状态 监听机制 watch监听 永久性watch 应用场景 1. 实现分布式锁 2. 乐观锁更新数据 应用场景总结 选…...

【华为机试】2023年真题B卷(python)-分月饼

一、题目 题目描述&#xff1a; 中秋节公司分月饼&#xff0c;m个员工&#xff0c;买了n个月饼&#xff0c;m<n&#xff0c;每个员工至少分1个月饼&#xff0c;但可以分多个&#xff0c;单人份到最多月饼的个数为Max1&#xff0c;单人分到第二多月饼的个数是Max2&#xff0c…...

EtherCAT主站SOEM -- 11 -- EtherCAT从站 XML 文件解析

EtherCAT主站SOEM -- 11 -- EtherCAT从站 XML 文件解析 1 EtherCAT 从站信息规范1.1 XML 文件说明1.1.1 XML 数据类型1.1.2 EtherCATInfo1.1.3 Groups1.1.4 Devices1.1.5 Modules1.1.6 Types1.1.6.1 AccessType 的组成1.1.6.2 ArraylnfoType 的组成1.1.6.3 DeviceType 的组成1.…...

YOLOv5算法改进(23)— 更换主干网络GhostNet + 添加CA注意力机制 + 引入GhostConv

前言:Hello大家好,我是小哥谈。本节课就让我们结合论文来对YOLOv5进行组合改进(更换主干网络GhostNet + 添加CA注意力机制 + 引入GhostConv),希望同学们学完本节课可以有所启迪,并且后期可以自行进行YOLOv5算法的改进!🌈 前期回顾: YOLOv5算法改进(1)— 如何去…...

centos系统部署rancher1.6版本并部署服务

1. centos上部署docker. 请参考 博客 2. 用docker安装rancher1.6 sudo docker run -d -v /mnt/rancher/db:/var/lib/mysql --restartunless-stopped -p 8080:8080 rancher/server3.浏览器登录做设置 3.1 浏览器打开 1.117.92.32:8080 #直接就登录了 3.2 第一次进入&am…...

Matlab实时读取串口数据并实时画图方法

** Matlab实时读取串口数据并实时画图方法 ** 按照数据串口协议如&#xff1a;$KT2,1.80,88.18,39.54,42.86,LO[0.72,-1.04,0.35]&#xff0c;举例。 s serialport("COM12",115200,"Timeout",5); poszeros(100000,3); j1; data1 read(s,1,"uint8&…...

智能优化算法应用:基于向量加权平均算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于向量加权平均算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于向量加权平均算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.向量加权平均算法4.实验参数设定…...

SpringBoot - Maven 打包合并一个胖 JAR 以及主项目 JAR 依赖 JAR 分离打包解决方案

问题描述 <plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.1.18.RELEASE</version><configuration><!--<classifier>exec</classifier>--…...

react 18 Hooks扩展函数式组件的状态管理

React函数式组件 特点 React函数式组件具有以下特点&#xff1a; 简洁&#xff1a;使用函数的方式定义组件&#xff0c;语法简单直观。无状态&#xff1a;函数式组件没有内部状态&#xff08;state&#xff09;&#xff0c;只依赖于传入的props。可复用&#xff1a;函数式组…...

智能优化算法应用:基于浣熊算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于浣熊算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于浣熊算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.浣熊算法4.实验参数设定5.算法结果6.参考文献7.MA…...

c++ qt QtWidgetsApplication 项目 使用外部ui

1 包含生成的UI头文件&#xff1a; 例如&#xff0c;如果你的Qt Designer的.ui文件名为test.ui&#xff0c;那么生成的头文件通常为ui_test.h。 #include "ui_test.h"2 实例化UI类&#xff1a;.h文件中实例化ui 在你的主要类的头文件中&#xff0c;你通常会声明一个U…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见&#xff0c;必须要保持数据不可变&#xff0c;管理员都无法修改和留痕的要求。比如医疗的电子病历中&#xff0c;影像检查检验结果不可篡改行的&#xff0c;药品追溯过程中数据只可插入无法删除的特性需求&#xff1b;登录日志、修改日志…...

抽象类和接口(全)

一、抽象类 1.概念&#xff1a;如果⼀个类中没有包含⾜够的信息来描绘⼀个具体的对象&#xff0c;这样的类就是抽象类。 像是没有实际⼯作的⽅法,我们可以把它设计成⼀个抽象⽅法&#xff0c;包含抽象⽅法的类我们称为抽象类。 2.语法 在Java中&#xff0c;⼀个类如果被 abs…...

Python 高效图像帧提取与视频编码:实战指南

Python 高效图像帧提取与视频编码:实战指南 在音视频处理领域,图像帧提取与视频编码是基础但极具挑战性的任务。Python 结合强大的第三方库(如 OpenCV、FFmpeg、PyAV),可以高效处理视频流,实现快速帧提取、压缩编码等关键功能。本文将深入介绍如何优化这些流程,提高处理…...

Spring Boot + MyBatis 集成支付宝支付流程

Spring Boot MyBatis 集成支付宝支付流程 核心流程 商户系统生成订单调用支付宝创建预支付订单用户跳转支付宝完成支付支付宝异步通知支付结果商户处理支付结果更新订单状态支付宝同步跳转回商户页面 代码实现示例&#xff08;电脑网站支付&#xff09; 1. 添加依赖 <!…...

uni-app学习笔记三十五--扩展组件的安装和使用

由于内置组件不能满足日常开发需要&#xff0c;uniapp官方也提供了众多的扩展组件供我们使用。由于不是内置组件&#xff0c;需要安装才能使用。 一、安装扩展插件 安装方法&#xff1a; 1.访问uniapp官方文档组件部分&#xff1a;组件使用的入门教程 | uni-app官网 点击左侧…...

起重机起升机构的安全装置有哪些?

起重机起升机构的安全装置是保障吊装作业安全的关键部件&#xff0c;主要用于防止超载、失控、断绳等危险情况。以下是常见的安全装置及其功能和原理&#xff1a; 一、超载保护装置&#xff08;核心安全装置&#xff09; 1. 起重量限制器 功能&#xff1a;实时监测起升载荷&a…...

P10909 [蓝桥杯 2024 国 B] 立定跳远

# P10909 [蓝桥杯 2024 国 B] 立定跳远 ## 题目描述 在运动会上&#xff0c;小明从数轴的原点开始向正方向立定跳远。项目设置了 $n$ 个检查点 $a_1, a_2, \cdots , a_n$ 且 $a_i \ge a_{i−1} > 0$。小明必须先后跳跃到每个检查点上且只能跳跃到检查点上。同时&#xff0…...

SpringCloud优势

目录 完善的微服务支持 高可用性和容错性 灵活的配置管理 强大的服务网关 分布式追踪能力 丰富的社区生态 易于与其他技术栈集成 完善的微服务支持 Spring Cloud 提供了一整套工具和组件来支持微服务架构的开发,包括服务注册与发现、负载均衡、断路器、配置管理等功能…...

Spring Boot 与 Kafka 的深度集成实践(二)

3. 生产者实现 3.1 生产者配置 在 Spring Boot 项目中&#xff0c;配置 Kafka 生产者主要是配置生产者工厂&#xff08;ProducerFactory&#xff09;和 KafkaTemplate 。生产者工厂负责创建 Kafka 生产者实例&#xff0c;而 KafkaTemplate 则是用于发送消息的核心组件&#x…...

ABB馈线保护 REJ601 BD446NN1XG

配电网基本量程数字继电器 REJ601是一种专用馈线保护继电器&#xff0c;用于保护一次和二次配电网络中的公用事业和工业电力系统。该继电器在一个单元中提供了保护和监控功能的优化组合&#xff0c;具有同类产品中最佳的性能和可用性。 REJ601是一种专用馈线保护继电器&#xf…...