感知机(perceptron)是二类分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1和–1二值。感知机对应于输入空间(特征空间)中将实例划分为正负两类的分离超平面,属于判别模型。感知机学习旨在求出将训练数据进行线性划分的分离超平面,为此,导入基于误分类的损失函数,利用梯度下降法对损失函数进行极小化,求得感知机模型。感知机学习算法具有简单而易于实现的优点,分为原始形式和对偶形式。感知机预测是用学习得到的感知机模型对新的输入实例进行分类。感知机1957年由
Rosenblatt提出,是神经网络与支持向量机的基础。

模型

感知机定义:假设输入空间(特征空间)是 X⊆Rn\mathcal{X}\subseteq R^nX⊆Rn,输出空间是 YYY= {+1,-1}。输入x∈Xx\in\mathcal{X}x∈X表示实例的特征向量,对应于输入空间(特征空间)的点;输出 y⊆Yy\subseteq \mathcal{Y}y⊆Y 表示实例的类别。由输入空间到输出空间的如下函数:

f(x)=sign(w⋅x+b)\begin{aligned} & \large \mathbf{f(x) = sign(w\cdot x + b)} \end{aligned}​f(x)=sign(w⋅x+b)​

感知机属于线性分类模型,属于判别模型

学习策略

给定一个数据集 T=T =T={(x1,y1x_1,y_1x1​,y1​), (x2,y2x_2,y_2x2​,y2​)… (xn,ynx_n,y_nxn​,yn​)} 其中 xi∈X=Rn,yi∈Yx_i \in \mathcal{X} = R^n, y_i \in \mathcal{Y}xi​∈X=Rn,yi​∈Y = {+1, -1},i=1,2,...,Ni = 1,2,...,Ni=1,2,...,N,如果存在某个超平面S:w⋅x+bS: w \cdot x + bS:w⋅x+b 能够将数据集的正实例点和负实例点完全正确地划分到超平面的两侧,则称数据集TTT为线性可分数据集;否则,称数据集 TTT 为线性不可分

损失函数的一个自然选择是误分类点的总数。但是,这样的损失函数不是参数 w,b\mathbf{w,b}w,b 的连续可导函数,不易优化。损失函数的另一个选择是误分类点到超平面 S\mathbf{S}S 的总距离,这是感知机所采用的。为此,首先写出输入空间 Rn\mathbf{R_n}Rn​ 中任一点 x0\mathbf{x_0}x0​ 到超平面S\mathbf{S}S的距离:

1∥w∥∣w⋅x0+b∣\Large \frac{1}{\lVert w \rVert}|w \cdot x_0 + b|∥w∥1​∣w⋅x0​+b∣

假设超平面 SSS 的误分类点集合为 MMM,那么所有错误分类点到超平面 SSS 的总距离为:

−1∥w∥∑xi∈Myi∣w⋅x0+b∣\Large -\frac{1}{\lVert w \rVert}\sum_{x_i\in M}y_i|w \cdot x_0 + b|−∥w∥1​∑xi​∈M​yi​∣w⋅x0​+b∣

不考虑 1∥w∥\Large \frac{1}{\lVert w \rVert}∥w∥1​ 就得到感知机学习的损失函数:L(w,b)=−∑xi∈Myi(w⋅xi+b)\large \mathbf{L(w,b) = - \sum_{x_i\in M}y_i (w\cdot x_i +b)}L(w,b)=−∑xi​∈M​yi​(w⋅xi​+b),这个损失函数就是感知机学习的经验风险函数

学习算法

输入:训练数据集 T=T =T={(x1,y1x_1,y_1x1​,y1​), (x2,y2x_2,y_2x2​,y2​)… (xn,ynx_n,y_nxn​,yn​)},其中 xi∈X=Rn,yi∈Yx_i \in \mathcal{X} = R^n, y_i \in \mathcal{Y}xi​∈X=Rn,yi​∈Y = {+1, -1},i=1,2,...,Ni = 1,2,...,Ni=1,2,...,N,学习率 η(0<η≤1)\eta(0<\eta \leq 1)η(0<η≤1)

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

(1)选取初值w0,b0w_0,b_0w0​,b0​
(2)在训练集中选取数据(xi,yi)(x_i,y_i)(xi​,yi​)
(3)如果 yi(w⋅xi+b)≤0y_i(w\cdot x_i + b) \leq 0yi​(w⋅xi​+b)≤0:
w←w+ηyixib←b+ηyi\begin{aligned} & w \gets w + \eta y_ix_i \\ & b \gets b + \eta y_i & \end{aligned}​w←w+ηyi​xi​b←b+ηyi​​​
(4)转至(2),直到训练集中没有误分类点

这种学习算法直观上有如下解释:当一个实例点被误分类,即位于分离超平面的错误一侧时,则调整w,b\mathbf{w,b}w,b 的值,使分离超平面向该误分类点的一侧移动,以减少该误分类点与超平面间的距离,直至超平面越过该误分类点使其被正确分类。

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

误分类点通过
w←w+ηyixib←b+ηyi\begin{aligned} & w \gets w + \eta y_ix_i \\ & b \gets b + \eta y_i & \end{aligned}​w←w+ηyi​xi​b←b+ηyi​​​

逐步修改 w,bw, bw,b,设修改 nnn 次,则 w,bw,bw,b 关于(xi,yi)(x_i,y_i)(xi​,yi​)的增量分别是 αiyixi\alpha_iy_ix_iαi​yi​xi​ 和 αiyi\alpha_iy_iαi​yi​,这里αi=niη\alpha_i = n_i\etaαi​=ni​η,这样从学习过程不难看出,最后学习到的w,b可以分别表示为

w=∑i=1Nαiyixib=∑i=1Nαiyi\begin{aligned} &\large w = \sum_{i=1}^N \alpha_iy_ix_i\\ & \large b = \sum_{i=1}^N \alpha_iy_i& \end{aligned}​w=i=1∑N​αi​yi​xi​b=i=1∑N​αi​yi​​​
然后我们就可以愉快的导出感知学习算法的对偶形式

输入:训练数据集 T=T =T={(x1,y1x_1,y_1x1​,y1​), (x2,y2x_2,y_2x2​,y2​)… (xn,ynx_n,y_nxn​,yn​)},其中 xi∈X=Rn,yi∈Yx_i \in \mathcal{X} = R^n, y_i \in \mathcal{Y}xi​∈X=Rn,yi​∈Y = {+1, -1},i=1,2,...,Ni = 1,2,...,Ni=1,2,...,N,学习率 η(0<η≤1)\eta(0<\eta \leq 1)η(0<η≤1)

输出:α,b\alpha,bα,b,感知机模型 f(x)=sign(∑j=1Nαjyjxj⋅x+b)f(x) = sign(\sum_{j=1}^N\alpha_jy_jx_j \cdot x + b)f(x)=sign(∑j=1N​αj​yj​xj​⋅x+b),其中 α=(α1,α2,...,αN)T\alpha = (\alpha_1, \alpha_2, ...,\alpha_N)^Tα=(α1​,α2​,...,αN​)T

(1)a←0,b←0a \gets 0, b \gets 0a←0,b←0
(2)在训练集中选取数据(xi,yi)(x_i,y_i)(xi​,yi​)
(3)如果 yi(∑j=1Nαjyjxj⋅x+b)≤0\large y_i(\sum_{j=1}^N\alpha_jy_jx_j \cdot x + b) \leq 0yi​(∑j=1N​αj​yj​xj​⋅x+b)≤0, 则:
αi←αi+ηb←b+ηyi\begin{aligned} & {\alpha_i \gets \alpha_i + \eta} \\ & b \gets b + \eta y_i & \end{aligned}​αi​←αi​+ηb←b+ηyi​​​

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

对偶形式中训练实例仅以内积的形式出现,为了方便,可以预先将训练集中实例间的内积计算出来并以矩阵的形式存储,这个矩阵就是所谓的Gram矩阵,G=[xi⋅xj]N×N\mathbf{G} = [x_i \cdot x_j]_{N \times N}G=[xi​⋅xj​]N×N​

最后,当训练数据线性可分时,感知机学习算法是收敛的,误分类次数kkk满足不等式:
k≤(Rγ)2\begin{aligned} \large k \leq (\frac{R}{\gamma})^2 \end{aligned}k≤(γR​)2​

Raki的统计学习方法笔记0x2章:感知机相关推荐

  1. 统计学习方法笔记第二章-感知机

    统计学习方法笔记第二章-感知机 2.1 感知机模型 2.2感知机学习策略 2.2.1数据集的线性可分型 2.2.2感知机学习策略 2.3感知机学习算法 2.3.1感知机算法的原始形式 2.3.2算法的 ...

  2. 李航 统计学习方法 第2章 感知机

    第2章 感知机 介绍感知机模型, 叙述感知机的学习策略, 特别是损失函数; 最后介绍感知机学习算法,包括原始形式和对偶形式, 证明算法的收敛性. 感知机模型 f ( x ) = s i g n ( w ...

  3. 李航统计学习方法笔记第一章

    1. 统计学习及监督学习概论 1.什么是统计学习 统计学习是关于计算机基于数据构建的统计模型并运用模型进行预测分析的一门学科 2.什么是学习 如果一个系统能够通过执行某个过程来改进它的性能,这就是学习 ...

  4. 统计学习方法——第1章(个人笔记)

    统计学习方法--第1章 统计学习及监督学习概论 <统计学习方法>(第二版)李航,学习笔记 1.1 统计学习 1.特点 (1)以计算机及网络为平台,是建立在计算机及网络上的: (2)以数据为 ...

  5. 统计学习笔记—手撕“感知机”

    统计学习方法笔记(1)-感知机 引言 感知机模型 模型简述 感知机算法思想 感知机算法性质 算例实现 导入数据 使用前两类莺尾花数据 利用感知机进行线性分类 小结 参考 轻松一刻 引言 下午拜读了李航 ...

  6. 李航《统计学习方法》第二章课后答案链接

    李航<统计学习方法>第二章课后答案链接 李航 统计学习方法 第二章 课后 习题 答案 http://blog.csdn.net/cracker180/article/details/787 ...

  7. 李航《统计学习方法》第一章课后答案链接

    李航<统计学习方法>第一章课后答案链接 李航 统计学习方法 第一章 课后 习题 答案 http://blog.csdn.net/familyshizhouna/article/detail ...

  8. 【统计学习方法笔记】——第二章 感知机

    目录 前言 一.感知机模型 1.1 定义 1.2 几何解释 二. 感知机学习策略 2.1 数据集的线性可分 2.2 感知机学习策略 三.感知机学习算法 3.1 感知机学习算法的原始形式 3.2 算法的 ...

  9. 一篇详解带你再次重现《统计学习方法》——第二章、感知机模型

    个性签名:整个建筑最重要的是地基,地基不稳,地动山摇. 而学技术更要扎稳基础,关注我,带你稳扎每一板块邻域的基础. 博客主页:七归的博客 专栏:<统计学习方法>第二版--个人笔记 创作不易 ...

  10. 统计学习方法笔记(李航)———第六章(逻辑斯谛回归)

    前言: <统计学习方法>虽然分别对两者作了介绍,但没有深入讨论它们之间的联系.本文准备从最大熵模型出发,推导出逻辑斯谛回归模型,并解释两者的联系与区别. 本文主要从以下几个方面进行描述: ...

最新文章

  1. 马斯克近日表示:Neuralink脑机接口有望明年用于人类
  2. 查看Linux硬件信息命令的使用
  3. QT使用之 手指滑动 | 物理惯性继续滑动动画的实现,根据不同速度实现不同动画效果
  4. 使用清华开源镜像安装tensorflow
  5. 开启tomcat的apr模式,并利用redis做tomcat7的session的共享。
  6. 类型转换出现在赋值运算符左边的情况
  7. 如何使用QuickConnect远程访问Synology NAS
  8. java util map,我应该如何命名java.util.Map?
  9. 使用Spring Security的多租户应用程序的无状态会话
  10. C语言常量类型及名称,菜鸟带你入门C语言|基本数据类型之常量
  11. document.referrer已经可以用于统计搜索来源
  12. Python 实现进程间通信(网络编程)
  13. 企业知识管理与协同软件Confluence搭建与配置
  14. 2019最新 Java商城秒杀系统的设计与实战视频教程(SpringBoot版)_2-1微服务项目的搭建-SpringBoot搭建多模块项目一...
  15. 2.自编码器(去噪自编码器,DAE)
  16. 容器技术Docker K8s 27 容器服务ACK基础与进阶-监控管理
  17. 软件系统设计-13-质量属性
  18. 分布式mysql cobar_Mysql分布式中间件:Cobar server
  19. 厦门92坐标参数讨论
  20. 如何创建CGColorRef在view.layer.borderColor上使用

热门文章

  1. springboot + mybatis 学英语网、背单词网站
  2. Java中如何使某个类的对象唯一性,只能创建一个对象
  3. ThinkPHP自定义404页面
  4. STC学习:红外通信1(收发单个字节)
  5. delphi memo 查找字符 下行插入_VBA实践+用编程代码为PDF文档插入书签
  6. 在java创建线程结果_Java创建线程的三种方式
  7. def __init__(self)是什么意思_一文搞懂什么是Python的metaclass
  8. echarts使用_做数据可视化,为什么我们不再直接使用D3.js、Echarts
  9. ERROR 1010 (HY000): Error dropping database (can't rmdir './myapp', errno: 39)
  10. 【HDU1251+POJ2001+POJ3630】单词前缀问题整理