模式识别与机器学习-判别式分类器
模式识别与机器学习-判别式分类器
- 生成式模型和判别式模型的区别
- 线性判别函数
- 多分类情况
- 多分类情况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(M−1)个判别函数。
不确定区域:若所有 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∗(7−1)=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+x2−1,d3(x)=x1−x2−1
-
设这些函数是在多类情况 1 条件下确定的,绘出其判别界面和每一个模式类别的区域

-
设为多类情况 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 的区域

-
设 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+x2−1−x1>x1−x2−1
化简之后有:
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+x2−1<02x1−x2−1<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+x2−1>−x1x1+x2−1>x1−x2−1
化简之后有:
2 x 1 + x 2 − 1 > 0 x 2 > 0 2x_1+x_2 - 1>0\\ x_2>0\\ 2x1+x2−1>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 x1−x2−1>−x1x1−x2−1>x1+x2−1
化简之后有:
2 x 1 − x 2 − 1 > 0 x 2 < 0 2x_1-x_2 - 1>0\\ x_2<0\\ 2x1−x2−1>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∗=Sw−1(m1−m2)
感知机算法
感知器算法实质上是一种赏罚过程
- 对正确分类的模式则“赏”,实际上是“不罚”,即权向量不变。
- 对错误分类的模式则“罚”,使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,−1−1,−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=2x1−2x2−2x3+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)\\ d1∗w1=0,d2∗w1=0,d3∗w1=0,d1=d1+w1=(−1,−1,1),d2=d2−w1=(1,1,−1),d3=d3−w1=(1,1,−1)d1∗w2=1,d2∗w2=−1,d3∗w3=−1,d1=d1−w2=(−1,−1,0),d2=d2+w2=(1,1,0),d3=d3−w2=(1,1,−2)d1∗w3=−2,d2∗w3=2,d3∗w3=0,d1=(−1,−1,0),d2=d2−w3=(0,0,−1),d3=d3+w3=(2,2,−1)d1∗w1=2,d2∗w1=−1,d3∗w1=−5,d1=(−1,−1,0),d2=(0,0,−1),d3=(2,2,−1)d1∗w2=0,d2∗w2=−1,d3∗w2=−1,d1=d1−w2=(−1,−1,−1),d2=d2+w2=(0,0,0),d3=d3−w2=(2,2,−2)d1∗w3=−3,d2∗w3=0,d3∗w3=2,d1=(−1,−1,−1),d2=(0,0,0),d3=(2,2,−2)d1∗w1=1,d2∗w1=0,d3∗w1=−6,d1=(−1,−1,−1),d2=(0,0,0),d3=(2,2,−2)d1∗w2=−1,d2∗w2=0,d3∗w2=−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=−x1−x2−1d2=0d3=2x1+2x2−2
相关文章:
模式识别与机器学习-判别式分类器
模式识别与机器学习-判别式分类器 生成式模型和判别式模型的区别线性判别函数多分类情况多分类情况1多分类情况2多分类情况3 例题 广义线性判别函数实例 分段线性判别函数Fisher线性判别感知机算法例:感知机多类别分类 谨以此博客作为学习期间的记录 生成式模型和判…...
c++11 标准模板(STL)(std::pair)(七)访问 pair 的一个元素
定义于头文件 <utility> std::pair 是一个结构体模板,其可于一个单元存储两个相异对象。 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注释和批注
本文由葡萄城技术团队原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 前言 注释及批注是 Excel 中比较常用的功能,注释往往针对单元格,起到解释说明的作用&a…...
AUTOSAR从入门到精通-车载以太网(三)
目录 前言 原理 车载以太网总体架构 物理层 数据链路层 以太网帧格式<...
【自然语言处理】用Python从文本中删除个人信息-第二部分
自我介绍 做一个简单介绍,酒架年近48 ,有20多年IT工作经历,目前在一家500强做企业架构.因为工作需要,另外也因为兴趣涉猎比较广,为了自己学习建立了三个博客,分别是【全球IT瞭望】,【…...
设计模式之-中介者模式,快速掌握中介者模式,通俗易懂的讲解中介者模式以及它的使用场景
系列文章目录 设计模式之-6大设计原则简单易懂的理解以及它们的适用场景和代码示列 设计模式之-单列设计模式,5种单例设计模式使用场景以及它们的优缺点 设计模式之-3种常见的工厂模式简单工厂模式、工厂方法模式和抽象工厂模式,每一种模式的概念、使用…...
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的几种安装方式总结(排错踩坑呕心沥血的经历)
包安装 添加国内源:mysql | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 注意:5.7安装之后有一个临时密码,进行登录并修改新密码后才可以对mysql进行操作。 可以yun list看看各个系统光盘自带的都是什么版本&…...
zookeeper基本使用
目录 环境搭建 单机版搭建 集群版搭建 基本语法使用 可视化客户端 数据结构 节点分类 1. 持久节点 2. 临时节点 3. 有序节点 4. 容器节点 5. TTL节点 节点状态 监听机制 watch监听 永久性watch 应用场景 1. 实现分布式锁 2. 乐观锁更新数据 应用场景总结 选…...
【华为机试】2023年真题B卷(python)-分月饼
一、题目 题目描述: 中秋节公司分月饼,m个员工,买了n个月饼,m<n,每个员工至少分1个月饼,但可以分多个,单人份到最多月饼的个数为Max1,单人分到第二多月饼的个数是Max2,…...
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实时读取串口数据并实时画图方法 ** 按照数据串口协议如:$KT2,1.80,88.18,39.54,42.86,LO[0.72,-1.04,0.35],举例。 s serialport("COM12",115200,"Timeout",5); poszeros(100000,3); j1; data1 read(s,1,"uint8&…...
智能优化算法应用:基于向量加权平均算法3D无线传感器网络(WSN)覆盖优化 - 附代码
智能优化算法应用:基于向量加权平均算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于向量加权平均算法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函数式组件具有以下特点: 简洁:使用函数的方式定义组件,语法简单直观。无状态:函数式组件没有内部状态(state),只依赖于传入的props。可复用:函数式组…...
智能优化算法应用:基于浣熊算法3D无线传感器网络(WSN)覆盖优化 - 附代码
智能优化算法应用:基于浣熊算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于浣熊算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.浣熊算法4.实验参数设定5.算法结果6.参考文献7.MA…...
c++ qt QtWidgetsApplication 项目 使用外部ui
1 包含生成的UI头文件: 例如,如果你的Qt Designer的.ui文件名为test.ui,那么生成的头文件通常为ui_test.h。 #include "ui_test.h"2 实例化UI类:.h文件中实例化ui 在你的主要类的头文件中,你通常会声明一个U…...
HarnessGate:专为AI Agent设计的纯消息网关,实现多平台无缝桥接
1. 项目概述:一个纯粹的AI Agent消息网关如果你正在构建一个需要对接多个聊天平台(比如Telegram、Discord、Slack)的AI助手或客服机器人,你很可能已经踩过这样的坑:市面上主流的机器人框架,比如Botpress、L…...
STM32实战:用HAL库搞定RS485 Modbus液压传感器数据采集(附自动收发电路避坑)
STM32实战:HAL库驱动RS485 Modbus液压传感器全流程解析 液压系统压力监测的稳定性往往取决于传感器数据采集的可靠性。在工业现场,RS485总线搭配Modbus RTU协议已成为液压传感器数据传输的黄金标准。本文将深入探讨基于STM32 HAL库的完整解决方案&#x…...
2026年项目管理工具测评:10款主流软件对比与企业选型建议
本文测评 ONES、Tower、Jira、Asana、monday、ClickUp、Notion、Trello、Microsoft Project、Smartsheet 十款项目管理工具,帮助选型人员从组织规模、项目复杂度、协作方式与治理需求出发,判断哪类项目管理工具更适合自身团队。一、10款项目管理工具速览…...
C# 实时查看硬件使用率(CPU 内存 硬盘 网络)
一、整体架构 ┌─────────────────────────────────────────────────────────────┐ │ 硬件资源监控系统 │ ├────────────────────────…...
AXI协议深度解析:从握手到低功耗,一次搞懂芯片内部数据流的那些“潜规则”
AXI协议深度解析:从握手到低功耗,一次搞懂芯片内部数据流的那些“潜规则” 在当今高性能计算和复杂SoC设计中,AXI协议已成为连接处理器、存储器和外设的黄金标准。但真正理解AXI的精髓,远不止于掌握基础操作——那些隐藏在规范字里…...
英特尔转型芯片代工:从IDM巨头到服务商的六大挑战与机遇
1. 英特尔代工之路:从IDM巨头到服务提供商的六大挑战在半导体行业,英特尔这个名字几乎就是高性能微处理器的代名词。这家公司凭借其垂直整合制造模式,在过去几十年里构筑了难以撼动的技术护城河。然而,当行业的目光从单纯的制程竞…...
3分钟掌握Windows安装APK:告别复杂模拟器的终极方案
3分钟掌握Windows安装APK:告别复杂模拟器的终极方案 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾经遇到过这样的场景?同事发来一个实…...
Mega:基于上下文工程的Brainbase平台AI开发效率革命
1. 项目概述:Mega,你的Brainbase平台AI工程专家如果你正在使用Claude Code、Cursor或者任何能读取文件的AI编程工具来构建基于Brainbase平台的对话式AI应用,那么你很可能遇到过这样的困境:你需要花费大量时间向AI解释Brainbase的架…...
打造高效命令行天气查询工具:基于KMI/IRM的比利时天气CLI实践
1. 项目概述:一个为终端而生的比利时天气查询工具 如果你和我一样,是个重度命令行用户,同时又对窗外天气是晴是雨有点在意,那你肯定也烦透了为了看个天气预报还得打开浏览器、点开某个天气网站或者解锁手机。这种打断工作流的感觉…...
BUUCTF:[网鼎杯 2018]Fakebook 漏洞链深度剖析:从SQL注入到SSRF的实战利用
1. 初探Fakebook:信息收集与源码泄露 打开题目链接后,我习惯性地在URL后添加/robots.txt进行探测。这个文件就像网站的"藏宝图",经常能发现开发者不想被公开的路径。果然,在这里发现了/user.php.bak这个备份文件。下载后…...
