• 第2章--感知机


    感知机(perceptron)是二类分类的线性分类模型。其输入为实例的特征(一个特征对应实数,多个特征对应向量);输出为实例的类别,取+1和-1二值。感知机对应于输入空间中将实例划分为正负两类的分离超平面。

    2.1 感知机模型

    假设输入空间是$X subseteq  R^{n} $,输出空间$mathcal{Y} = {+1, -1}$。输入$x in X$表示实例的特征,对应输入空间的一点。$y in mathcal{Y}$表示实例的类别。由输入空间到输出空间的如下函数:

    egin{align*}
    f(x) = sign(wcdot x + b)
    end{align*}

    称为感知机。其中,$w subseteq  R^{n} $叫做权重(weight),$b in R$叫做偏置(bias)。sign是符号函数。即:

    egin{align*}
    sign(x) = left{egin{matrix} +1, qquad x geq 0
    \-1, qquad x < 0
    end{matrix} ight.
    end{align*}

    我们需要通过训练集的训练,求得合适的$w$和$b$。

    线性方程$wcdot x + b = 0$对应输入空间$R^{n}$中的一个超平面$S$,其中w是超平面的发现,b是截距。该超平面将输入空间分为两部分,分别对应正样本和负样本。

    已二维空间为例,输入空间$R^{n}$是一个平面,$S$是一条线,如下图所示:

    2.2 损失函数及模型训练

    容易想到把误分类点的个数作为损失函数。但这样的函数不是模型参数$w$、$b$的连续可导函数,不易优化。感知机采用的损失函数是误分类点到超平面的总距离。

    首先写出$R^{n}$中的任一点$x_0$到超平面$wcdot x + b = 0$的距离公式:

    egin{align*}
    frac{1}{left | w ight |} left | w cdot x_0 + b ight |
    end{align*}

    其中,$left | w ight |$是$w$的$L_2$距离。

    另外,对于误分类样本$(x_i, y_i)$有:

    egin{align*}
    -y_i(wcdot x_i + b ) > 0
    end{align*}

    因此误分类点到超平面距离可写作:

    egin{align*}
    -frac{1}{left | w ight |} y_0(w cdot x_0 + b)
    end{align*}

    不考虑$frac{1}{left | w ight |}$,或者始终对$w$向量做正规化(normalize),得到感知机的损失函数:

    egin{align*}
    L(w, b) = -sum_{x_i in M} y_i(wcdot x_i + b)
    end{align*}

    其中,$M$是误分类样本点的集合。

    求得偏导数:

    egin{align*}
    & frac{partial L}{partial w} = -sum_{x_i in M} y_ix_i \
    & frac{partial L}{partial b} = -sum_{x_i in M} y_i \
    end{align*}

    其中,$x$、$w$的取值均可以是向量,$b$的取值是实数。

    然后就可通过梯度下降(或者随机梯度下降,可参考梯度下降求解线性回归)对该损失函数求解。

  • 相关阅读:
    JavaScript 总结
    Linux脚本shell字符串处理
    linux bash tutorial
    SVG 学习<八> SVG的路径——path(2)贝塞尔曲线命令、光滑贝塞尔曲线命令
    SVG 学习<七> SVG的路径——path(1)直线命令、弧线命令
    SVG 学习<六> SVG的transform
    SVG 学习<五> SVG动画
    SVG 学习<四> 基础API
    SVG 学习<三>渐变
    SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组
  • 原文地址:https://www.cnblogs.com/royhoo/p/8308906.html
Copyright © 2020-2023  润新知