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

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

  • 生成式模型和判别式模型的区别
  • 线性判别函数
    • 多分类情况
      • 多分类情况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 = True
    for 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 += 1

print(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

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

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

相关文章

QT编译并部署QtMqtt相关环境+跑测demo【超详细教程】

文章目录 概要整体架构流程▷下载指定版本的QMqtt源码&#xff1a;▷编译后同步MQTT相关文件&#xff1a; 技术名词解释技术实现步骤详解一、编译源码1、编译报错2、解决思路3、编译通过 二、继续完善mqtt应用环境1、打开编译生成的shadow build文件夹2、同步lib3、同步bin4、同…

小程序中拖拽和缩放图片

需求&#xff1a;点击元素后选中&#xff0c;出现缩放按钮&#xff0c;拖动缩放按钮可实现元素的缩放&#xff1b;并且元素本身是可以拖动的。 html&#xff1a; <block wx:for"{{imageControls}}" wx:key"index"><view hidden"{{item.hidd…

vue中 ref 和 reactive 的区别与联系

官方原文&#xff1a;Vue3 建议使用 ref() 作为声明响应式状态的主要API。 ref 用于将基本类型的数据&#xff08;如字符串、数字&#xff0c;布尔值等&#xff09;和引用数据类型(对象) 转换为响应式数据。使用 ref 定义的数据可以通过 .value 属性访问和修改。reactive 用于…

因mathtype原因导致word中ctrl+V复制功能失效的解决办法

因MathType导致Word中ctrlV复制功能失效的解决办法如下&#xff1a; 我们先解决&#xff01; 打开“文件”&#xff0c;找到“选项”&#xff0c;“加载项”。找到MathType安装目录下&#xff08;C:\Program Files (x86)\Microsoft Office\root\Office16\STARTUP&#xff09;…

大创项目推荐 深度学习YOLOv5车辆颜色识别检测 - python opencv

文章目录 1 前言2 实现效果3 CNN卷积神经网络4 Yolov56 数据集处理及模型训练5 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; **基于深度学习YOLOv5车辆颜色识别检测 ** 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0…

SpringBoot的热部署

&#x1f648;作者简介&#xff1a;练习时长两年半的Java up主 &#x1f649;个人主页&#xff1a;程序员老茶 &#x1f64a; ps:点赞&#x1f44d;是免费的&#xff0c;却可以让写博客的作者开心好久好久&#x1f60e; &#x1f4da;系列专栏&#xff1a;Java全栈&#xff0c;…

超维空间S2无人机使用说明书——52、使用PID算法进行基于yolo的目标跟踪

引言&#xff1a;在实际工程项目中&#xff0c;为了提高系统的响应速度和稳定性&#xff0c;往往需要采用一定的控制算法进行目标跟踪。这里抛砖引玉&#xff0c;仅采用简单的PID算法进行目标的跟随控制&#xff0c;目标的识别依然采用yolo。对系统要求更高的&#xff0c;可以对…

【Redis】一文掌握Redis原理及常见问题

Redis是基于内存数据库&#xff0c;操作效率高&#xff0c;提供丰富的数据结构&#xff08;Redis底层对数据结构还做了优化&#xff09;&#xff0c;可用作数据库&#xff0c;缓存&#xff0c;消息中间件等。如今广泛用于互联网大厂&#xff0c;面试必考点之一&#xff0c;本文…

python3下载手机安卓版,python下载手机版最新

大家好&#xff0c;小编为大家解答python3下载手机安卓版的问题。很多人还不知道python下载手机版最新&#xff0c;现在让我们一起来看看吧&#xff01; 1、先去python官网下载python3的源码包&#xff0c;网址&#xff1a;https://www.python.org/ 1)进去之后点击导航栏的Down…

CentOS系统环境搭建(二十六)——使用nginx在无域名情况下使用免费证书设置https

centos系统环境搭建专栏&#x1f517;点击跳转 文章目录 使用nginx在无域名情况下使用免费证书设置https1.获取SSL证书1.1 生成SSL密钥1.2 生成SSL证书1.3 重命名密钥文件 2.nginx配置https2.1 放证书2.2 修改nginx.conf文件2.2.1 将80端口重定向到4432.2.2 端口443配置ssl证书…

【三维生成】稀疏重建、Image-to-3D方法(汇总)

系列文章目录 总结一下近5年的三维生成算法&#xff0c;持续更新 文章目录 系列文章目录一、LRM&#xff1a;单图像的大模型重建&#xff08;2023&#xff09;摘要1.前言2.Method3.实验 二、SSDNeRF&#xff1a;单阶段Diffusion NeRF的三维生成和重建&#xff08;ICCV 2023&am…

基于VUE3+Layui从头搭建通用后台管理系统(前端篇)十六:统计报表模块相关功能实现

一、本章内容 本章使用Echarts及DataV实现常用图表、特殊图表、地图及综合图表等图表展示功能。 1. 详细课程地址: https://edu.csdn.net/course/detail/38183 2. 源码下载地址: 点击下载 二、界面预览 三、开发视频 3.1 B站视频地址: 基于VUE3+Layui从

2023.12.25 关于 Redis 数据类型 Hash 常用命令、内部编码、应用场景

目录 Hash 数据类型 Hash 操作命令 HSET HGET HEXISTS HDEL HKEYS HVALS HGETALL HMGET HLEN HSETNX HINCRBY HINCRBYFLOAT HSTRLEN Hash 编码方式 理解什么是压缩 Hash 实际应用 Cache 缓存 Hash 数据类型 整体上来说 Redis 是键值对结构&#xff0c;其中 …

【C++高阶(九)】C++类型转换以及IO流

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:C从入门到精通⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习C   &#x1f51d;&#x1f51d; C高阶 1. 前言2. C语言类型转换的方式3. C的强制…

5G阅信在教研行业应用场景有哪些?

1、新生入学 新生录用通知、录用信息查看、注意事项&#xff08;入学指引&#xff09; 校园简介 资讯1 秒速达&#xff0c;让信息传达更高效便捷 2、校务服务 可作为校园微服务的新入口 提供学校各专业课表课程查看、校园卡办理、一卡通应…

怎样在win10命令行窗口跑起来mujava

MuJava简介 Java (muJava) 是 Java 程序的变异系统。 它自动生成用于传统突变测试和类级别突变测试的突变体。 Java 可以测试单个类和多个类的包。 用户以对封装在单独 JUnit 类的方法中的被测类的方法调用序列的形式提供测试。 官网地址&#xff1a;Java Home Page 需要下…

正则表达式与bs4选择器筛选论文数准确率之比较

一、正则爬取论文网首页论文标题的示例 import requests import re from bs4 import BeautifulSoupheaders {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36}def get_html(url):try:res…

C# 通过SharpCompress.Archives.Rar解压RaR文件

/// <summary>/// 解压一个Rar文件/// </summary>/// <param name"RarFile">需要解压的Rar文件&#xff08;绝对路径&#xff09;</param>/// <param name"TargetDirectory">解压到的目录</param>/// <param name&…

如何将图片(matlab、python)无损放入word论文

许多论文对插图有要求&#xff0c;直接插入png、jpg一般是不行的&#xff0c;这是一篇顶刊文章&#xff08;pdf&#xff09;的插图&#xff0c;放大2400%后依旧清晰&#xff0c;搜罗了网上的方法&#xff0c;总结了一下如何将图片无损放入论文中。 这里主要讨论的是数据生成的图…

渗透测试(Lab4.2)

配置WebDeveloper的时候遇到一个错误 导入失败&#xff0c;因为 E:…ovf 未通过 OVF 规范一致性或虚拟硬件合规性检查。 请单击“重试”放松 OVF 规范与虚拟硬件合规性检查&#xff0c;并重新尝试导入&#xff1b; 或单击“取消”以取消导入。如果重新尝试导入&#xff0c;可能…