MicDZ's Blog

感知机模型学习笔记

感知机模型学习笔记

,

2023年3月15日


感知机模型和其相关算法笔记。

感知机

  • 输入空间: XRn\mathcal X\subseteq R^n ;输入:x=(x1,x2,...,xn)TXx=(x^1, x^2, ..., x^n)^T\in\mathcal X
  • 输出空间: Y={+1,1}\mathcal Y=\{+1, -1\} ;输出 yYy\in\mathcal Y
  • 感知机:

f(x)=sign(wx+b)={+1, wx+b01, wx+b<0f(x)=\mathbb{sign}(w\cdot x+b)= \begin{cases} +1,\ w\cdot x+b\ge0\\ -1,\ w\cdot x+b<0 \end{cases}

其中, ww 称为权值(Weight), bb 称为偏置(Bias), wxw\cdot x 表示内积。

  • 假设空间: F={ff(x)=wx+b}\mathcal F=\{f|f(x)=w\cdot x+b\}

线性方程:

wx+b=0w\cdot x+b=0

法向量: ww,截距: bb

区分正负的是特征空间 Rn\mathrm R^n 中的一个超平面 S\mathrm S 。这个超平面是 n1n-1 维的。

例如:当n=3时,可以利用2维的平面将三维空间划分为两个部分。我们可以感性地理解更高维的情况。

image-20230101111006069

学习策略

要求:数据集线性可分

对于给定的数据集 T={(x1,y1),(x2,y2),...,(xN,yn)}T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_n)\}

若存在某个超平面 SS

wx+b=0w\cdot x+b=0

能够将数据集的正负实例点完全正确的划分到超平面两侧,即

{yi=+1wxi+b>0yi=1wxi+b<0\begin{cases} y_i=+1& w\cdot x_i+b>0\\ yi=-1& w\cdot x_i+b<0 \end{cases}

那么称数据集线性可分,否则不可分。

定义感知机的损失函数

定义 x0Rn\forall x_0\in\mathrm R^nS\mathrm S 的距离:

1wwx0+b\frac{1}{||w||}|w\cdot x_0+b|

x0x_0 是正确分类点:

1wwx0+b={wx0+bwy0=+1wx0+bwy0=1\frac{1}{||w||}|w\cdot x_0+b|= \begin{cases} \frac{w\cdot x_0+b}{||w||} & y_0=+1\\ -\frac{w\cdot x_0+b}{||w||} & y_0=-1 \end{cases}

x0x_0 是错误分类点:

1wwx0+b={wx0+bwy0=+1wx0+bwy0=1=y0wwx0+b\frac{1}{||w||}|w\cdot x_0+b|= \begin{cases} -\frac{w\cdot x_0+b}{||w||} & y_0=+1\\ \frac{w\cdot x_0+b}{||w||} & y_0=-1 \end{cases}=\frac{-y_0}{||w||}|w\cdot x_0+b|

误分类点 xix_iS\mathrm S 的距离:

yiwwxi+b-\frac{-y_i}{||w||}|w\cdot x_i+b|

所有误分类点到 S\mathrm S 的距离:

1wyiwxi+b-\frac{1}{||w||}\sum y_i|w\cdot x_i+b|

系数 1w-\frac{1}{||w||} 不影响算法。终止点是 S=0\mathrm S=0

梯度下降法

求解无约束最优化问题。

梯度:指某一函数在该点处最大的方向导数,沿着该方向可以取得最大的变化率。

=f(θ)θ\nabla=\frac{\partial f(\theta)}{\partial\theta}

f(θ)f(\theta) 为凸函数,则可以通过梯度下降法进行优化取得最小值:

θ(k+1)=θ(k)ηf(θ(k))\theta^{(k+1)}=\theta^{(k)}-\eta\nabla f(\theta^{(k)})

其中 η\eta 指步长。

算法

输入:目标函数 f(θ)f(\theta) ,步长 η\eta ,精度 ϵ\epsilon

输出: f(θ)f(\theta) 的极小值点

  1. 选取初始值 θ(0)Rn\theta^{(0)}\in\mathrm R^n ,置 k=0k=0
  2. 计算 f(θ(k)f(\theta^{(k)}
  3. 计算梯度 f(θ(k))\nabla f(\theta^{(k)})
  4. θ(k+1)=θ(k)ηf(θ(k))\theta^{(k+1)}=\theta^{(k)}-\eta\nabla f(\theta^{(k)}) ,计算 f(x(k+1))f(x^{(k+1)}) ,当 f(θ(k+1)f(θ(k)))<ϵ||f(\theta^{(k+1)}-f(\theta^{(k)}))||<\epsilon 或者 θ(k+1)θ(k)<ϵ||\theta^{(k+1)}-\theta^{(k)}||<\epsilon 时停止迭代 θ=θ(k+1)\theta^*=\theta^{(k+1)}
  5. 否则 k=k+1k=k+1 ,继续第3步

计算梯度:

  • 单变量

    f(x)f(x) 那么 x=fx=dfdx\nabla_x=\frac{\partial f}{\partial x}=\frac{\mathrm df}{\mathrm dx}

  • 多变量

    F(Θ)=5θ12+2θ2+θ34,Θ=(θ1,θ2,θ3)TF(\Theta)=5\theta_1^2+2\theta_2+\theta_3^4, \Theta=(\theta_1,\theta_2,\theta_3)^T

    分别对三个变量求偏导。

    θ1=F(Θ)θ1=10θ1θ2=F(Θ)θ2=2θ3=F(Θ)θ3=4θ3\nabla_{\theta_1}=\frac{\partial F(\Theta)}{\partial\theta_1}=10\theta_1\\ \nabla_{\theta_2}=\frac{\partial F(\Theta)}{\partial\theta_2}=2\\ \nabla_{\theta_3}=\frac{\partial F(\Theta)}{\partial\theta_3}=4\theta^3

    得出

    Θ=(10θ1,2,4θ33)T\nabla_\Theta=(10\theta_1,2,4\theta_3^3)^T

一个例子:
image-20230101114811607

原始形式算法

训练数据集: T={(x1,y1),(x2,y2),...,(xN,yn)}T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_n)\} 其中,xiXRn,yi{+1,1}x_i\in\mathcal X\subseteq\mathrm R^n,y_i\in\{+1,-1\}

损失函数: L(w,b)=xiMyi(wxi+b)L(w,b)=-\sum_{x_i\in M}y_i(w\cdot x_i+b) ,其中, MM 表示所有误分类点的集合。

模型参数估计:

argw,bminL(w,b)\mathop{arg}_{w,b}\min L(w,b)

image-20230101210204369

批量梯度下降需要大量计算。随机梯度下降计算更简便。

算法的收敛性

w^=(wT,b)t\hat w=(w^T,b)^tx^=(xT,1)T\hat x=(x^T,1)^T ,则分离超平面可以写为 w^x^=0\hat w\cdot \hat x=0

image-20230101211834029

  • 收敛性:对于线性可分的 TT ,经过有限次的搜索,可得到将 TT 完全分离开的超平面。
  • 依赖性:分离超平面的结果依赖于不同的初值选择,或者迭代过程中不同的误分类点的选择顺序。
  • 对于线性不可分的 TT ,迭代结果会发生震荡,无法收敛。
  • 为得到唯一的分离超平面,需增加约束条件。

对偶形式的学习算法

在原始形式中,若 (xi,yi)(x_i,y_i) 为误分类点,可如下更新参数:

ww+ηyixibb+ηyiw\leftarrow w+\eta y_ix_i\\ b\leftarrow b+\eta y_i

假设初始值 w0=0b0=0w_0=\mathbf0,b_0=0 ,对误分类点 (xi,yi)(x_i,y_i) 通过上述的公式更新参数,修改 nin_i 次后, w,bw,b 的增量分别是 αiyixi\alpha_iy_ix_iαiyi\alpha_iy_i ,其中 αi=niηi\alpha_i=n_i\eta_i

最后学习到的参数为:

w=i=1Nαiyixib=i=1Nαiyiw=\sum_{i=1}^{N}\alpha_iy_ix_i\\ b=\sum_{i=1}^N\alpha_iy_i

image-20230101215409607

, — 2023年3月15日