【简博士统计学习方法】第2章:3. 感知机——学习算法之原始形式:算法解说

3. 感知机------学习算法之原始形式:算法解说

3.1 学习问题

  • 给定训练数据集
    T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) ⋯   , ( x N , y N ) } T=\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right) \cdots,\left(x_{N}, y_{N}\right)\right\} T={(x1,y1),(x2,y2)⋯,(xN,yN)}
    其中 x i ∈ X ⊆ R n , Y I ∈ Y = { + 1 , − 1 } x_i\in\mathcal{X}\subseteq\mathbb{R}^n,Y_I\in\mathcal{Y}=\{+1,-1\} xi∈X⊆Rn,YI∈Y={+1,−1}, + 1 +1 +1代表的是正类点, − 1 -1 −1代表的是负类点, N N N为样本数。
  • 损失函数
    L ( w , b ) = − ∑ x i ∈ M y i ( w ⋅ x i + b ) L(w, b)=-\sum_{x_{i} \in M} y_{i}\left(w \cdot x_{i}+b\right) L(w,b)=−xi∈M∑yi(w⋅xi+b)
    其中, M M M代表所有误分类点的集合。其中 w ⋅ x i w\cdot x_i w⋅xi代表向量的内积运算。
  • 模型参数估计
    arg ⁡ min ⁡ w , b L ( w , b ) \underset{w, b}{\arg \min } L(w, b) w,bargminL(w,b)
    也就是寻找使损失函数 L L L最小的参数 w w w和 b b b.

【注】参数估计 是统计学中的一个重要概念,它指的是通过样本数据来推测总体(整个群体)中某些未知的特征值(比如平均值、方差等)的过程。简单来说,参数估计就是通过已有的数据来推测你关心的某些未知值。

3.2 原始形式:随机梯度下降法

3.2.1 随机梯度下降与批量梯度下降法

我们选取随机梯度下降法进行迭代计算。

  • 损失函数
    L ( w , b ) = − ∑ x i ∈ M y i ( w ⋅ x i + b ) L(w, b)=-\sum_{x_{i} \in M} y_{i}\left(w \cdot x_{i}+b\right) L(w,b)=−xi∈M∑yi(w⋅xi+b)
  • 梯度 (对 L L L求偏导):
    ∇ w L ( w , b ) = − ∑ x i ∈ M y i x i ; ∇ b L ( w , b ) = − ∑ x i ∈ M y i \nabla_{w} L(w, b)=-\sum_{x_{i} \in M} y_{i} x_{i} ; \quad \nabla_{b} L(w, b)=-\sum_{x_{i} \in M} y_{i} ∇wL(w,b)=−xi∈M∑yixi;∇bL(w,b)=−xi∈M∑yi
  • 参数更新
    • 批量梯度下降法 (Batch Gradient Descent):每次迭代时使用所有误分类点来进行参数更新。
      w ← w + η ∑ x i ∈ M y i x i ; b ← b + η ∑ x i ∈ M y i w \leftarrow w+\eta \sum_{x_{i} \in M} y_{i} x_{i} ; \quad b \leftarrow b+\eta \sum_{x_{i} \in M} y_{i} w←w+ηxi∈M∑yixi;b←b+ηxi∈M∑yi
      其中, η ( 0 < η ⩽ 1 ) \eta(0<\eta\leqslant1) η(0<η⩽1)代表步长
    • 随机梯度下降法 (Stochastic Gradient Descent):每次随机选取一个误分类点。
      w ← w + η y i x i ; b ← b + η y i w \leftarrow w+\eta y_{i} x_{i} ; \quad b \leftarrow b+\eta y_{i} w←w+ηyixi;b←b+ηyi
      相比较批量梯度下降法,它每一轮迭代的速度都会快一些。这是感知机算法用的选择参数更新的方法。

3.2.2 原始形式:算法

  • 输入 :训练集
    T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) ⋯   , ( x N , y N ) } T=\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right) \cdots,\left(x_{N}, y_{N}\right)\right\} T={(x1,y1),(x2,y2)⋯,(xN,yN)}
    其中, x i ∈ X ⊆ R n , Y I ∈ Y = { + 1 , − 1 } x_i\in\mathcal{X}\subseteq\mathbb{R}^n,Y_I\in\mathcal{Y}=\{+1,-1\} xi∈X⊆Rn,YI∈Y={+1,−1},步长 η ( 0 < η ⩽ 1 ) \eta(0<\eta\leqslant 1) η(0<η⩽1)
  • 输出 : w , b w,b w,b;感知机模型 f ( x ) = sign ( w ⋅ x + b ) f(x)=\text{sign}(w\cdot x+b) f(x)=sign(w⋅x+b)
  • 算法步骤
    (1)选取初始值 w 0 , b 0 w_0,b_0 w0,b0,即下图中蓝色的直线代表初始的分离超平面;
    (2)于训练集中随机选取数据 ( x i , y i ) (x_i,y_i) (xi,yi),图中没有分类到正确类的点都是误分类点,比如蓝色线为例,有一个点没有在蓝色直线上方,这就是误分类点;
    (3)若 y i ( w ⋅ x i + b ) ⩽ 0 y_i(w\cdot x_i+b)\leqslant 0 yi(w⋅xi+b)⩽0, w ← w + η y i x i ; b ← b + η y i w \leftarrow w+\eta y_{i} x_{i} ; \quad b \leftarrow b+\eta y_{i} w←w+ηyixi;b←b+ηyi;(正类点代入后是正的,负类点代入和,因为符合方程,所以也是正的,只有错误分类点代入后是负的)
    (4)转到(2),直到训练集中没有误分类点。

    最后得到一个橙色的线将所有的样本点随机分类。

3.3 例题分析

  • 输入 :训练集:
    T = { ( x 1 , + 1 ) , ( x 2 , + 1 ) , ( x 3 , − 1 ) } T=\left\{\left(x_{1},+1\right),\left(x_{2},+1\right),\left(x_{3},-1\right)\right\} T={(x1,+1),(x2,+1),(x3,−1)}
    其中, x 1 = { 3 , 3 } T , x 2 = ( 4 , 3 ) T , x 3 = ( 1 , 1 ) T x_1=\{3,3\}^{T},x_2=(4,3)^{T},x_3=(1,1)^{T} x1={3,3}T,x2=(4,3)T,x3=(1,1)T,假设 η = 1 \eta=1 η=1,也就是训练集中有三个样本,其中 x 1 , x 2 x_1,x_2 x1,x2是正类点样本, x 3 x_3 x3是负类点样本。
  • 输出 : w , b w,b w,b;感知机模型 f ( x ) = sign ( w ⋅ x + b ) f(x)=\text{sign}(w\cdot x+b) f(x)=sign(w⋅x+b)
  • 学习问题 :通过使下面的损失函数来求得相应的参数 w , b w,b w,b.
    arg ⁡ min ⁡ w , b L ( w , b ) = arg ⁡ min ⁡ w , b [ − ∑ x i ∈ M y i ( w ⋅ x i + b ) ] \underset{w, b}{\arg \min } L(w, b)=\underset{w, b}{\arg \min }\left[-\sum_{x_{i} \in M} y_{i}\left(w \cdot x_{i}+b\right)\right] w,bargminL(w,b)=w,bargmin[−xi∈M∑yi(w⋅xi+b)]

(1)选取初始值 w 0 = ( 0 , 0 ) T , b 0 = 0 w_0=(0,0)^{T},b_0=0 w0=(0,0)T,b0=0;

(2)对于点 x 1 x_1 x1,有:
y 1 ( w 0 ⋅ x 1 + b 0 ) = ± 1 × ( ( 0 , 0 ) T ⋅ ( 3 , 3 ) T + 0 ) = 0 y_1(w_0\cdot x_1+b_0)=\pm 1\times((0,0)^{T}\cdot (3,3)^{T}+0)=0 y1(w0⋅x1+b0)=±1×((0,0)T⋅(3,3)T+0)=0

  • 更新参数
    w 1 = w 0 + η y 1 x 1 = ( 3 , 3 ) T , b 1 = b 0 + η y 1 = 1 w_{1}=w_{0}+\eta y_{1} x_{1}=(3,3)^{T}, \quad b_{1}=b_{0}+\eta y_{1}=1 w1=w0+ηy1x1=(3,3)T,b1=b0+ηy1=1

  • 模型
    w 1 ⋅ x + b = 3 x ( 1 ) + 3 x ( 2 ) + 1 w_{1} \cdot x+b=3 x^{(1)}+3 x^{(2)}+1 w1⋅x+b=3x(1)+3x(2)+1

(3)对于点 x 1 x_1 x1,有
y 1 ( w 1 ⋅ x 1 + b 1 ) = + 1 × ( 3 x 1 ( 1 ) + 3 x 1 ( 2 ) + 1 ) = 19 > 0 y_{1}\left(w_{1} \cdot x_{1}+b_{1}\right)=+1 \times\left(3 x_{1}^{(1)}+3 x_{1}^{(2)}+1\right)=19>0 y1(w1⋅x1+b1)=+1×(3x1(1)+3x1(2)+1)=19>0

所以 x 1 x_1 x1分类正确。

对于点 x 2 x_2 x2,有
y 2 ( w 1 ⋅ x 2 + b 1 ) = + 1 × ( 3 x 2 ( 1 ) + 3 x 2 ( 2 ) + 1 ) = 22 > 0 y_{2}\left(w_{1} \cdot x_{2}+b_{1}\right)=+1 \times\left(3 x_{2}^{(1)}+3 x_{2}^{(2)}+1\right)=22>0 y2(w1⋅x2+b1)=+1×(3x2(1)+3x2(2)+1)=22>0

所以 x 2 x_2 x2分类正确。

对于点 x 3 x_3 x3,有
y 3 ( w 1 ⋅ x 3 + b 1 ) = − 1 × ( 3 x 3 ( 1 ) + 3 x 3 ( 2 ) + 1 ) = − 7 < 0 y_{3}\left(w_{1} \cdot x_{3}+b_{1}\right)=-1 \times\left(3 x_{3}^{(1)}+3 x_{3}^{(2)}+1\right)=-7<0 y3(w1⋅x3+b1)=−1×(3x3(1)+3x3(2)+1)=−7<0

所以 x 3 x_3 x3是误分类点。

  • 更新参数 ,利用误分类点 x 3 x_3 x3进行参数更新。
    w 2 = w 1 + η y 3 x 3 = ( 2 , 2 ) T , b 2 = b 1 + η y 3 = 0 w_{2}=w_{1}+\eta y_{3} x_{3}=(2,2)^{T}, \quad b_{2}=b_{1}+\eta y_{3}=0 w2=w1+ηy3x3=(2,2)T,b2=b1+ηy3=0

  • 模型
    w 2 ⋅ x + b 2 = 2 x ( 1 ) + 2 x ( 2 ) w_{2} \cdot x+b_{2}=2 x^{(1)}+2 x^{(2)} w2⋅x+b2=2x(1)+2x(2)

(4)重复以上步骤,直到没有误分类点:

迭代到第7次之后就没有误分类点了。

  • 得到参数
    w 7 = ( 1 , 1 ) T , b 7 = − 3 w_{7}=(1,1)^{T}, \quad b_{7}=-3 w7=(1,1)T,b7=−3

  • 模型
    w 7 ⋅ x + b 7 = x ( 1 ) + x ( 2 ) − 3 w_{7} \cdot x+b_{7}=x^{(1)}+x^{(2)}-3 w7⋅x+b7=x(1)+x(2)−3

  • 结果

    • 分离超平面:
      x ( 1 ) + x ( 2 ) − 3 = 0 x^{(1)}+x^{(2)}-3=0 x(1)+x(2)−3=0
    • 感知机模型:
      f ( x ) = sign ⁡ ( x ( 1 ) + x ( 2 ) − 3 ) f(x)=\operatorname{sign}\left(x^{(1)}+x^{(2)}-3\right) f(x)=sign(x(1)+x(2)−3)
    • 若误分类点依次取 x 1 , x 3 , x 3 , x 3 , x 1 , x 3 , x 3 x_1,x_3,x_3,x_3,x_1,x_3,x_3 x1,x3,x3,x3,x1,x3,x3,可以得到分离超平面。
      x ( 1 ) + x ( 2 ) − 3 = 0 x^{(1)}+x^{(2)}-3=0 x(1)+x(2)−3=0
    • 若误分类点依次取 x 1 , x 3 , x 3 , x 3 , x 2 , x 3 , x 3 , x 3 , x 1 , x 3 , x 3 x_{1}, x_{3}, x_{3}, x_{3}, x_{2}, x_{3}, x_{3}, x_{3}, x_{1}, x_{3}, x_{3} x1,x3,x3,x3,x2,x3,x3,x3,x1,x3,x3,可以得到分离超平面:
      2 x ( 1 ) + x ( 2 ) − 5 = 0 2 x^{(1)}+x^{(2)}-5=0 2x(1)+x(2)−5=0

【注】采用不同的误分类点顺序,所得到的解是不同的,随机选取的误分类点导致结果也具有一定的随机性。

相关推荐
gs801401 小时前
Megatron:深度学习中的高性能模型架构
人工智能·机器学习
courniche4 小时前
神经网络中的“池化”是什么意思?
人工智能·神经网络·机器学习
倒霉蛋小马4 小时前
【YOLOv5】源码(train.py)
深度学习·yolo·目标检测·机器学习
云边有个稻草人6 小时前
【机器学习】时序数据与序列建模:理论与实践的全面指南
人工智能·笔记·机器学习
努力进修6 小时前
【机器学习】零售行业的智慧升级:机器学习驱动的精准营销与库存管理
人工智能·机器学习·零售
KeyPan6 小时前
【机器学习:七、分类问题】
人工智能·数码相机·算法·机器学习·计算机视觉·分类·数据挖掘
今天吃饺子12 小时前
小创新模型!6种2024算法优化BiTCN-SVM单变量输入单步预测,MATLAB机器学习预测全家桶再更新...
人工智能·算法·机器学习·支持向量机·matlab
Odaily_14 小时前
SVM赛道概览:MoveVM落地,SVM能走多远
人工智能·算法·机器学习·支持向量机·数据挖掘
liruiqiang0514 小时前
如何理解机器学习中的非线性模型 ?
人工智能·机器学习