【简博士统计学习方法】第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

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

相关推荐
一条数据库6 小时前
猫狗识别数据集:34,441张高质量标注图像,深度学习二分类任务训练数据集,计算机视觉算法研发,CNN模型训练,图像识别分类,机器学习实践项目完整数据资
深度学习·算法·机器学习
ZEERO~7 小时前
夏普比率和最大回撤公式推导及代码实现
大数据·人工智能·机器学习·金融
高工智能汽车7 小时前
“融资热潮”来临!商用车自动驾驶拐点已至?
人工智能·机器学习·自动驾驶
syker8 小时前
NEWBASIC 2.06.7 API 帮助与用户使用手册
开发语言·人工智能·机器学习·自动化
CAE32010 小时前
基于机器学习的智能垃圾短信检测超强系统
人工智能·python·机器学习·自然语言处理·垃圾短信拦截
深圳佛手20 小时前
AI 编程工具Claude Code 介绍
人工智能·python·机器学习·langchain
koo36421 小时前
李宏毅机器学习笔记43
人工智能·笔记·机器学习
程序猿追1 天前
轻量级云原生体验:在OpenEuler 25.09上快速部署单节点K3s
人工智能·科技·机器学习·unity·游戏引擎
程序猿追1 天前
异腾910B NPU实战:vLLM模型深度测评与部署指南
运维·服务器·人工智能·机器学习·架构
antonytyler1 天前
机器学习实践项目(二)- 房价预测增强篇 - 模型训练与评估:从多模型对比到小网格微调
人工智能·机器学习