文章目录

  • 感知机模型
  • 感知机损失函数
  • 感知机参数学习
    • 学习算法的原始形式
    • 学习算法的对偶形式

感知机是用于二分类的线性模型,输入是实例的特征,输出是类别。感知机模型目标是找到将数据线性划分的分离超平面。

感知机模型

假设输入空间为:X⊆Rn\mathcal X\sube \bf R^nX⊆Rn,输出空间为:Y={+1,−1}\mathcal Y=\{+1,-1\}Y={+1,−1},且有x∈X,y∈Yx \in \mathcal X, y \in \mathcal Yx∈X,y∈Y。感知机的模型如下:
f(x)=sign(w⋅x+b)f(x)=sign (w\cdot x+b) f(x)=sign(w⋅x+b)
其中sign是指示函数:
sign(x)={0,x≥01,x<0sign(x) = \begin{cases} 0,\qquad x \geq 0 \\1, \qquad x < 0\end{cases} sign(x)={0,x≥01,x<0​
训练完成后的感知机模型为下面的线性方程:
w⋅x+b=0w\cdot x+b=0 w⋅x+b=0
上面的公式表示一个划分超平面:

w是超平面的法向量,b是超平面的截距。感知机的目标就是找到合适的参数w和b,使得划分超平面可以区分正负两个类别。

感知机损失函数

假定有数据集如下:
T={(x1,y1),(x2,y2),…,(xN,yN)}xi∈X=Rn,yi∈Y={−1,+1},i=1,2,…,N;0<η⩽1T=\{(x_1,y_1),(x_2,y_2),\dots,(x_N,y_N)\}\\ x_i\in \mathcal X=\mathbf R^n, y_i\in \mathcal Y\it =\{-1,+1\}, i=1,2,\dots,N; \ \ 0<\eta\leqslant 1 T={(x1​,y1​),(x2​,y2​),…,(xN​,yN​)}xi​∈X=Rn,yi​∈Y={−1,+1},i=1,2,…,N;  0<η⩽1
若训练集线性可分,损失函数可以用所有误分类点到超平面S的总距离表示。对某个样本而言,到超平面的距离为:
1∣∣w∣∣∣w⋅x0+b∣\frac{1}{||w||}|w\cdot x_0 + b| ∣∣w∣∣1​∣w⋅x0​+b∣
对于误分类点,总有 w⋅x0+bw\cdot x_0 + bw⋅x0​+b 与 yiy_iyi​ 符号相反,故有:
−yi(w⋅x0+b)>0-y_i(w\cdot x_0 + b)>0 −yi​(w⋅x0​+b)>0
进而可以得到误分类点到超平面的距离:
−1∣∣w∣∣yi(w⋅x0+b)-\frac{1}{||w||} y_i(w\cdot x_0 + b) −∣∣w∣∣1​yi​(w⋅x0​+b)
假设误分类点构成集合M,则误分类点到超平面的距离之和为:
−1∣∣w∣∣∑xi∈Myi(w⋅xi+b)-\frac{1}{||w||}\sum_{x_i\in M}y_i(w\cdot x_i+b) −∣∣w∣∣1​xi​∈M∑​yi​(w⋅xi​+b)
令∣∣w∣∣=1||w||=1∣∣w∣∣=1,得到损失函数:
L(w,b)=−∑xi∈Myi(w⋅xi+b)L(w,b)=-\sum_{x_i\in M}y_i(w\cdot x_i+b) L(w,b)=−xi​∈M∑​yi​(w⋅xi​+b)

感知机参数学习

学习算法的原始形式

目标是找到最佳的参数w,b,使得损失函数最小化:
min⁡w,bL(w,b)=−∑xi∈Myi(w⋅xi+b)\min\limits_{w,b} L(w,b)=-\sum_{x_i\in M}y_i(w\cdot x_i+b) w,bmin​L(w,b)=−xi​∈M∑​yi​(w⋅xi​+b)
可以采用随机梯度下降法来优化参数,首先需要求w和b的偏导数:
∂L(w,b)∂w=−∑xi∈Mxiyi∂L(w,b)∂b=−∑xi∈Myi\frac{\partial L(w,b)}{\partial w} = -\sum_{x_i \in M} x_i y_i\\ \frac{\partial L(w,b)}{\partial b} = -\sum_{x_i \in M} y_i ∂w∂L(w,b)​=−xi​∈M∑​xi​yi​∂b∂L(w,b)​=−xi​∈M∑​yi​
然后更新参数,其中η\etaη为学习率:
w←w+ηyixib←b+ηyiw\leftarrow w+\eta y_ix_i \\ b\leftarrow b+\eta y_i w←w+ηyi​xi​b←b+ηyi​
算法流程如下:

输入:T={(x1,y1),(x2,y2),…,(xN,yN)}xi∈X=Rn,yi∈Y={−1,+1},i=1,2,…,N;0<η⩽1T=\{(x_1,y_1),(x_2,y_2),\dots,(x_N,y_N)\}\\ x_i\in \mathcal X=\mathbf R^n , y_i\in \mathcal Y\it =\{-1,+1\}, i=1,2,\dots,N; \ \ 0<\eta\leqslant 1T={(x1​,y1​),(x2​,y2​),…,(xN​,yN​)}xi​∈X=Rn,yi​∈Y={−1,+1},i=1,2,…,N;  0<η⩽1

输出:w,b;f(x)=sign(w⋅x+b)w,b;f(x)=sign(w\cdot x+b)w,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)\leqslant 0yi​(w⋅xi​+b)⩽0,则更新参数:
w←w+ηyixib←b+ηyiw\leftarrow w+\eta y_ix_i \\ b\leftarrow b+\eta y_i w←w+ηyi​xi​b←b+ηyi​
4,转至(2),直至训练集中没有误分类点

学习算法的对偶形式

上面的原始学习算法,我们通过以下方式更新参数:
w←w+ηyixib←b+ηyiw\leftarrow w+\eta y_ix_i \\ b\leftarrow b+\eta y_i w←w+ηyi​xi​b←b+ηyi​
由于我们把w和b都初始化为0,所以每次更新w和b实际上都是在对ηyixi\eta y_ix_iηyi​xi​和ηyi\eta y_iηyi​的累加。对偶形式的基本思想是,用实例xix_ixi​和标记yiy_iyi​来表示w和b。对于某个误分类的样本i,可能需要nin_ini​次对w,b的迭代才能使之正确分类,令αi=niη\alpha_i = n_i\etaαi​=ni​η则有:
w=∑i=1Nniηyixi=∑i=1Nαiyixib=∑i=1Nniηyi=∑i=1Nαiyiw = \sum_{i=1}^Nn_i\eta y_i x_i = \sum_{i=1}^N\alpha_i y_i x_i \\ b = \sum_{i=1}^Nn_i\eta y_i = \sum_{i=1}^N\alpha_i y_i w=i=1∑N​ni​ηyi​xi​=i=1∑N​αi​yi​xi​b=i=1∑N​ni​ηyi​=i=1∑N​αi​yi​
上面的式子就能够仅仅用xix_ixi​和标记yiy_iyi​的线性组合来表示w和b,于是算法流程更新为:

输入:T={(x1,y1),(x2,y2),…,(xN,yN)}xi∈X=Rn,yi∈Y={−1,+1},i=1,2,…,N;0<η⩽1T=\{(x_1,y_1),(x_2,y_2),\dots,(x_N,y_N)\}\\ x_i\in \mathcal{X}=\mathbf{R}^n , y_i\in \mathcal{Y} =\{-1,+1\}, i=1,2,\dots, N; 0< \eta \leqslant 1T={(x1​,y1​),(x2​,y2​),…,(xN​,yN​)}xi​∈X=Rn,yi​∈Y={−1,+1},i=1,2,…,N;0<η⩽1

输出:
α,b;f(x)=sign(∑j=1Nαjyjxj⋅x+b)α=(α1,α2,⋯,αN)T\alpha ,b; f(x)=sign\left(\sum_{j=1}^N\alpha_jy_jx_j\cdot x+b\right)\\ \alpha=(\alpha_1,\alpha_2,\cdots,\alpha_N)^T α,b;f(x)=sign(j=1∑N​αj​yj​xj​⋅x+b)α=(α1​,α2​,⋯,αN​)T

  1. α←0,b←0\alpha \leftarrow 0,b\leftarrow 0α←0,b←0
  2. 训练集中选取数据(xi,yi)(x_i,y_i)(xi​,yi​)
  3. 如果yi(∑j=1Nαjyjxj⋅x+b)⩽0y_i\left(\sum_{j=1}^N\alpha_jy_jx_j\cdot x+b\right) \leqslant 0yi​(∑j=1N​αj​yj​xj​⋅x+b)⩽0

αi←αi+ηb←b+ηyi\alpha_i\leftarrow \alpha_i+\eta \\ b\leftarrow b+\eta y_i αi​←αi​+ηb←b+ηyi​

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

【统计学习方法】感知机笔记相关推荐

  1. 统计学习方法|感知机原理剖析及实现

    欢迎直接到我的博客查看最近文章:www.pkudodo.com.更新会比较快,评论回复我也能比较快看见,排版也会更好一点. 原始blog链接: http://www.pkudodo.com/2018/ ...

  2. 统计学习方法读书笔记(六)-逻辑斯蒂回归与最大熵模型(迭代尺度法(IIS))

    全部笔记的汇总贴:统计学习方法读书笔记汇总贴 逻辑斯谛回归 (logistic regression )是统计学习中的经典分类方法.最大熵是概率模型学习的一个准则,将其推广到分类问题得到最大熵模型(m ...

  3. 统计学习方法读书笔记(九)-EM算法及其推广

    全部笔记的汇总贴:统计学习方法读书笔记汇总贴 EM算法用于含有隐变量(hidden variable)的概率模型参数的极大似然估计,或极大后验概率估计.EM算法的每次迭代由两步组成:E步,求期望(ex ...

  4. 逻辑斯蒂回归_逻辑斯蒂回归详细解析 | 统计学习方法学习笔记 | 数据分析 | 机器学习...

    本文包括: 重要概念 逻辑斯蒂回归和线性回归 二项逻辑斯谛回归模型 逻辑斯蒂回顾与几率 模型参数估计 多项逻辑斯谛回归 其它有关数据分析,机器学习的文章及社群 1.重要概念: 在正式介绍逻辑斯蒂回归模 ...

  5. 李航《统计学习方法》笔记

    虽然书名是统计学习,但是却是机器学习领域中和重要的一本参考书.当前的机器学习中机器指计算机,但是所运用的方法和知识是基于数据(对象)的统计和概率知识,建立一个模型,从而对未来的数据进行预测和分析(目的 ...

  6. 统计学习方法 --- 感知机模型原理及c++实现

    参考博客 Liam Q博客 和李航的<统计学习方法> 感知机学习旨在求出将训练数据集进行线性划分的分类超平面,为此,导入了基于误分类的损失函数,然后利用梯度下降法对损失函数进行极小化,从而 ...

  7. 机器学习:《统计学习方法》笔记(一)—— 隐马尔可夫模型

    参考:<统计学习方法>--李航:隐马尔可夫模型--码农场 摘要 介绍隐马尔可夫模型的基本概念.概率计算.学习方法.预测方法等内容. 正文 1. 基本概念 隐马尔可夫模型是关于时序的模型,描 ...

  8. 统计学习方法 学习笔记(1)统计学习方法及监督学习理论

    统计学习方法及监督学习理论 1.1.统计学习 1.1.1.统计学习的特点 1.1.2.统计学习的对象 1.1.3.统计学习的目的 1.1.4.统计学习的方法 1.1.5.统计学习的研究 1.1.6.统 ...

  9. 统计学习方法-感知机概括和补充

    前言 <统计学习方法>第二版出了有段时间了,最近得空可以拜读一下.之前看第一版的时候还是一年多以前,那个时候看的懵懵懂懂的,很吃力.希望这一次能够有所收获,能够收获新的东西,这些文章只是用 ...

  10. 统计学习方法感知机(附简单模型代码)

    1. 感知机模型 输入为实例的特征向量, 输出为实例的类别, 取+1和-1:感知机对应于输入空间中将实例划分为正负两类的分离超平面, 属于判别模型:导入基于误分类的损失函数:利用梯度下降法对损失函数进 ...

最新文章

  1. 经典的Java基础面试题集锦
  2. [Spring 深度解析]第4章 Spring之AOP
  3. 以太网端口类型和可插拔模块揭密
  4. 鸿蒙IPC摄像机,华为鸿蒙OS来了,海雀AI全景摄像头助力万物互联
  5. C++入门指南及实战 第一步 概述及经典HelloWorld
  6. 微信语音怎么转发给别人听_微信分付怎么邀请别人 微信分付如何才能被邀请开通...
  7. python提取高频词_seo与python大数据结合给文本分词并提取高频词
  8. 欧洲杯推动夜间消费发展 便利蜂晚20时-凌晨2时服务人次创新高
  9. ES6基础教程一 学习笔记
  10. Python入门--个数可变的位置参数和关键字参数
  11. 90后IT男被准丈母娘拒绝:家境不重要,重要的是…戳中痛处
  12. 华为鸿蒙系统再公测,安卓再见!华为正式发布鸿蒙系统公测版!
  13. 解析.db文件,并且导出为sql语句
  14. 电子阅读器行业市场研究分析及未来趋势预测分析
  15. DAMA数据管理知识体系指南-读书笔记9
  16. C语言基础编程题1.0
  17. 流程图设计教程和参考样例
  18. Ad Mucher最新有效注册,升级方式
  19. Python-hrvanalysis库 挖掘心电信号特征 方法总结
  20. Progression Approximation---以无穷数列求和为例

热门文章

  1. 使用nltk.pos出现IndexError: string index out of range
  2. 大话数据结构:拓扑排序
  3. OpenCV学习笔记七-创建滑动条
  4. 7.4.5 鲁棒主成分分析 PCA
  5. 清华大学梁宸计算机系,2015年广东高考高等学校自主招生录取考生名单公示(2)...
  6. flask框架中勾子函数的使用
  7. iOS10 CallKit简单开发
  8. 开源跳板机(堡垒机)Jumpserver v0.3.0 发布
  9. 《xUnit Test Patterns》学习笔记4 - Principles of Test Automation
  10. JSP(五):属性范围