美文网首页
统计机器学习-感知机

统计机器学习-感知机

作者: 又双叒叕苟了一天 | 来源:发表于2020-07-08 17:21 被阅读0次

感知机是二分类的线性分类模型,即通过一个超平面将数据集分割在两侧,同在一个侧的为同一个分类,一般上侧的为正例,下侧的为负例。

感知机的定义

假设输入空间(特征空间)是\mathcal X\subseteq\textbf R^n,输出空间是\mathcal Y= \{+1,-1\}。输入x\in\mathcal X表示实例的特征向量,对应于输入空间(特征空间)的点;输出y\in\mathcal Y表示实例的类别。由输入空间到输出空间的如下函数
f(x)=\mathrm{sign}(w\cdot x+b)
称为感知机。其中,wb为感知机模型参数,w\in\textbf R^n叫做权值或权值向量,b\in\textbf R叫做偏置,w\cdot x表示wx的内积。\mathrm{sign}是符号函数,即
\mathrm{sign}= \begin{cases} +1,&x\geq0\\ -1,&x\lt0 \end{cases}
并且假设数据是完全线性可分的,即可以通过一个超平面,将数据完全正确的分割在其两侧。当数据线性不可分时,感知机算法不收敛。

感知机的损失函数

假设M为误分类点的集合,则感知机的损失可以表示为
L(w,b)=-\frac1{||w||}\sum_{x_i\in M}y_i(w\cdot x_i+b)\tag1
||w||wL_2范数。最小化该损失的目的是,最小化误分类点到超平面的距离之和。因为点到平面的距离公式
\frac{|w\cdot x_i+b|}{||w||}
当误分类时,如果y_i=+1,模型给出的预测应该是w\cdot x+b\lt0,此时|w\cdot x_i+b|=-y_i(w\cdot x_i+b),反之同理,所以-\frac{y_i(w\cdot x_i+b)}{||w||}是误分类点到超平面的距离。由于对于某个超平面,\frac1{||w||}固定,所以不考虑这一项,公式(1)中的损失可以简化为
L(w,b)=-\sum_{x_i\in M}y_i(w\cdot x_i+b)\tag2

感知机的学习算法

感知机学习通常使用梯度下降算法,分为原始形式和对偶形式,对偶形式相比原始形式,提高了计算效率。

使用梯度下降,首先计算参数的梯度,然后向负梯度的方向更新参数:
\nabla_wL(w,b)=-\sum_{x_i\in M}y_ix_i

\nabla_bL(w,b)=-\sum_{x_i\in M}y_i

随机选取一个误分类点(x_i,y_i),对w,b进行更新:
w\leftarrow w+\eta y_ix_i\tag3

b\leftarrow b+\eta y_i\tag4

其中0\lt\eta\leq1是步长,又叫学习率。

感知机学习算法的原始形式

输入:训练数据集T= \{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\},其中x_i\in\mathcal X=\textbf R^ny_i\in\mathcal Y= \{+1,-1\}i=1,2,\cdots,N;学习率\eta(0\lt\eta\leq1)

输出:w,b;感知机模型f(x)=\mathrm{sign}(w\cdot x+b)

(1)选取初值w_0,b_0

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

(3)如果y_i(w\cdot x_i+b)\leq0,即误分类,此时更新参数
w\leftarrow w+\eta y_ix_i

b\leftarrow b+\eta y_i\tag4

(4)转至(2),直到训练集中没有误分类点。

感知机学习算法的对偶形式

由原始形式可以看出,当模型收敛时,假设参数w,b通过第i个样本(x_i,y_i)更新了n_i次,对于N个样本,参数的更新可以表示为:
w\leftarrow w_0+\sum_{i=1}^Nn_i\eta y_ix_i

b\leftarrow b_0+\sum_{i=1}^Nn_i\eta y_i

假设参数的初值都选取为0,并且令\alpha_i=n_i\eta,则参数可以表示为
w=\sum_{i=1}^N\alpha_iy_ix_i\tag5

b=\sum_{i=1}^N\alpha_iy_i\tag6

\alpha_i越大说明根据第i个样本更新的越多,这个样本就越难区分,对决定超平面影响也最大。此时感知机模型可以表示为:
f(x)=\mathrm{sign}\bigg(\sum_{j=1}^N\alpha_jy_jx_j\cdot x+b\bigg)
下面给出感知及学习算法的对偶形式:

感知机学习算法的对偶形式

输入:训练数据集T= \{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\},其中x_i\in\mathcal X=\textbf R^ny_i\in\mathcal Y= \{+1,-1\}i=1,2,\cdots,N;学习率\eta(0\lt\eta\leq1)

输出:\alpha,b;感知机模型f(x)=\mathrm{sign}\bigg(\sum_{j=1}^N\alpha_jy_jx_j\cdot x+b\bigg),其中\alpha=(\alpha_1,\alpha_2,\cdots,\alpha_N)^T

(1)\alpha\leftarrow0b\leftarrow0

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

(3)如果y_i\bigg(\sum_{j=1}^N\alpha_jy_jx_j\cdot x_i+b\bigg)\leq0,即误分类,此时更新参数
\alpha_i\leftarrow \alpha_i+\eta

b\leftarrow b+\eta y_i

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

这种方式相比原始形式判断误分类y_i(w\cdot x_i+b)\leq0的方式,y_i\bigg(\sum_{j=1}^N\alpha_jy_jx_j\cdot x_i+b\bigg)\leq0的方式可以把x_i\cdot x_j的结果预存在矩阵中,加快判断的速度。满足下面形式的矩阵叫做\mathrm{Gram}矩阵:
G=[x_i\cdot x_j]_{N\times N}

相关文章

  • 【统计机器学习】感知机

    开始记录机器学习中的传统算法。图片来自http://www.guokr.com/blog/793310/https...

  • 统计机器学习-感知机

    感知机是二分类的线性分类模型,即通过一个超平面将数据集分割在两侧,同在一个侧的为同一个分类,一般上侧的为正例,下侧...

  • 统计学习方法笔记(第二章个人笔记)

    统计学习方法笔记(第二章个人笔记) 标签: 机器学习深度学习 感知机(P25) 感知机是神经网络与支持向量机的基础...

  • 统计学--感知机

    参考李航的统计学习 感知机学习算法 Python实现感知机代码 Python代码实现对偶形式

  • 反馈神经网络

    1、Reference 多层感知机MLP(机器学习5)多层感知机原理详解 & Python与R实现深度学习笔记——...

  • 机器学习感知机(统计学习-李航)

    感知机 概述 感知机是二类分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1和-1二值。感知机学...

  • 机器学习 - 感知机

    1.感知机模型 1.1感知机定义 假设输入空间(特征空间)是,输出空间是,输入表示实例的特征向量,对应于输入空间特...

  • 机器学习_感知机

    近期,打算重温机器学习算法,之前看过之后就忘了,没有达到真正的消化,这次以思考总结和代码实践为主,发现一些不懂问题...

  • 机器学习-逻辑回归推导

    逻辑回归在机器学习中属于比较常见的模型,它由感知机模型发展而来。刚学习机器学习的时候,看到感知机这个名字好奇怪,为...

  • CH2 感知机|2.1感知机模型&2.2学习策略《统计学

    文章原创,最近更新:2018-06-21 1.感知机模型2.学习策略 参考链接:1、 机器学习十七:感知机 前言:...

网友评论

      本文标题:统计机器学习-感知机

      本文链接:https://www.haomeiwen.com/subject/ynnccktx.html