zoukankan      html  css  js  c++  java
  • 《统计学习方法》:感知机

    感知机

    感知机是二分类的线性分类模型,对应输出为 -1 和 +1。

    1. 感知机模型

    输入空间 $x subseteq R^n $,输出空间 $ y = {-1, +1} $

    输入空间到输出空间的映射函数:

    [f(x) = sign(omega cdot x + b) \ sign(x) = left{ egin{array} +1 & extrm{x $geq$ 0}\ -1 & extrm{x < 0} end{array} ight. ]

    其中 $omega in R^n$ 叫做权值,$b in R$ 叫做偏置

    2. 感知机学习策略

    1. 数据集的线性可分性

      若存在某个超平面S,$omega cdot x + b = 0$,能够将数据集完全正确地划分到超平面地两侧,则称该数据集线性可分。

    2. 感知机学习策略

      损失函数:1. 被误分类的点数; 2. 误分类的点到超平面的总距离

      由于 损失函数1 不是 $omega$ 和 $x$ 的连续可导函数,不易优化。

      对于被误分类的点$x_i$,有$-y_i cdot (omega cdot x_i + d) > 0$ ,故该点到超平面的距离为$- frac{1}{||w||}y_i(wx_i + b)$,不考虑$frac{1}{||w||}$则得到损失函数$L(w,b) = - sum_{x_i in M}y_i(wx_i + b)$,$M$为误分类点集合,显然该函数非负。

    3. 感知机学习算法

    1. 原始形式

      梯度:$ abla {w}L(w,b) = - sum{x_i in M} y_ix_i abla _{b}L(w,b) = - sum _{x_i in w}y_i$

      随机选取一个误分类点进行参数更新:$w leftarrow w + ny_ix_i b leftarrow b + ny_i$

      算法流程:

      (1) 选取初始值$w_0$,$b_0$

      (2) 在训练集中选取数据$(x_i,y_i)$

      (3) 若$y_i(w cdot x_i + b) leq 0$,更新参数

      (4) 转至 (2) ,知道训练集中没有误分类点

    2. 算法的收敛性:

      记$hat{w} = (w_T,b)^T$,$hat{x} = (x^T, 1)^T$

      证1:设存在超平面$||hat{w} {opt}|| = 1$,$hat{w}{opt} cdot hat{x} = w_{opt} cdot x + b_{opt} = 0$ 将训练数据集完全正确分开,则有 $gamma > 0$ 对所有 $i = 1,2,3...N$ 使得 $y_i(hat{w}_{opt} cdot hat{x}_i) geq gamma$

      证2: 令 $R = max_{1 leq i leq N}||hat{x}_i||$,感知机在训练集上的误分类次数 $k$ 满足:$k leq (frac{R}{gamma})^2$

    3. 感知机的对偶形式

      感知机输出:$f(x) = sign( sum_{j = 1}^N alpha_j y_j x_j cdot x + b)$

      (1) $alpha leftarrow 0$,$b leftarrow 0$

      (2) 从训练集中选取数据 ($x_i$,$y_i$)

      (3) 若 $y_i ( sum_{j = 1}^N alpha_j y_j x_j cdot x_i + b) leq 0$:

      ​ $alpha_i leftarrow alpha_i + n b leftarrow b + n y_i$

      (4) 转至 (2) 直到没有误分类数据。

    4.代码实现

    https://github.com/a74731248/statistical_learning_method/tree/master/perceptron

  • 相关阅读:
    Java--Filter(过滤器)
    TP5.1验证Token和Electron-vue头部携带Token
    TP5.1让验证码在另外的项目(Electron-vue)里面使用
    Electron-vue请求携带cookie跨域问题
    Electron-vue在发送请求时携带cookie
    TP5.1解决跨域
    Electron-vue解决跨域
    Electron-vue运行之后出现了文件浏览器
    Electron-vue取消代码检查Eslint
    使用Composer安装TP5.1出现zsh: no matches found: 5.1.*
  • 原文地址:https://www.cnblogs.com/joe-w/p/12565960.html
Copyright © 2011-2022 走看看