【统计学习方法】感知机笔记
文章目录
- 感知机模型
- 感知机损失函数
- 感知机参数学习
- 学习算法的原始形式
- 学习算法的对偶形式
感知机是用于二分类的线性模型,输入是实例的特征,输出是类别。感知机模型目标是找到将数据线性划分的分离超平面。
感知机模型
假设输入空间为: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∣∣1yi(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∣∣1xi∈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,使得损失函数最小化:
minw,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,bminL(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∑xiyi∂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+ηyixib←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+ηyixib←b+ηyi
4,转至(2),直至训练集中没有误分类点
学习算法的对偶形式
上面的原始学习算法,我们通过以下方式更新参数:
w←w+ηyixib←b+ηyiw\leftarrow w+\eta y_ix_i \\ b\leftarrow b+\eta y_i w←w+ηyixib←b+ηyi
由于我们把w和b都初始化为0,所以每次更新w和b实际上都是在对ηyixi\eta y_ix_iηyixi和η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∑Nniηyixi=i=1∑Nαiyixib=i=1∑Nniηyi=i=1∑Nαiyi
上面的式子就能够仅仅用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αjyjxj⋅x+b)α=(α1,α2,⋯,αN)T
- α←0,b←0\alpha \leftarrow 0,b\leftarrow 0α←0,b←0
- 训练集中选取数据(xi,yi)(x_i,y_i)(xi,yi)
- 如果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αjyjxj⋅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
- 转至(2),直至训练集中没有误分类点
【统计学习方法】感知机笔记相关推荐
- 统计学习方法|感知机原理剖析及实现
欢迎直接到我的博客查看最近文章:www.pkudodo.com.更新会比较快,评论回复我也能比较快看见,排版也会更好一点. 原始blog链接: http://www.pkudodo.com/2018/ ...
- 统计学习方法读书笔记(六)-逻辑斯蒂回归与最大熵模型(迭代尺度法(IIS))
全部笔记的汇总贴:统计学习方法读书笔记汇总贴 逻辑斯谛回归 (logistic regression )是统计学习中的经典分类方法.最大熵是概率模型学习的一个准则,将其推广到分类问题得到最大熵模型(m ...
- 统计学习方法读书笔记(九)-EM算法及其推广
全部笔记的汇总贴:统计学习方法读书笔记汇总贴 EM算法用于含有隐变量(hidden variable)的概率模型参数的极大似然估计,或极大后验概率估计.EM算法的每次迭代由两步组成:E步,求期望(ex ...
- 逻辑斯蒂回归_逻辑斯蒂回归详细解析 | 统计学习方法学习笔记 | 数据分析 | 机器学习...
本文包括: 重要概念 逻辑斯蒂回归和线性回归 二项逻辑斯谛回归模型 逻辑斯蒂回顾与几率 模型参数估计 多项逻辑斯谛回归 其它有关数据分析,机器学习的文章及社群 1.重要概念: 在正式介绍逻辑斯蒂回归模 ...
- 李航《统计学习方法》笔记
虽然书名是统计学习,但是却是机器学习领域中和重要的一本参考书.当前的机器学习中机器指计算机,但是所运用的方法和知识是基于数据(对象)的统计和概率知识,建立一个模型,从而对未来的数据进行预测和分析(目的 ...
- 统计学习方法 --- 感知机模型原理及c++实现
参考博客 Liam Q博客 和李航的<统计学习方法> 感知机学习旨在求出将训练数据集进行线性划分的分类超平面,为此,导入了基于误分类的损失函数,然后利用梯度下降法对损失函数进行极小化,从而 ...
- 机器学习:《统计学习方法》笔记(一)—— 隐马尔可夫模型
参考:<统计学习方法>--李航:隐马尔可夫模型--码农场 摘要 介绍隐马尔可夫模型的基本概念.概率计算.学习方法.预测方法等内容. 正文 1. 基本概念 隐马尔可夫模型是关于时序的模型,描 ...
- 统计学习方法 学习笔记(1)统计学习方法及监督学习理论
统计学习方法及监督学习理论 1.1.统计学习 1.1.1.统计学习的特点 1.1.2.统计学习的对象 1.1.3.统计学习的目的 1.1.4.统计学习的方法 1.1.5.统计学习的研究 1.1.6.统 ...
- 统计学习方法-感知机概括和补充
前言 <统计学习方法>第二版出了有段时间了,最近得空可以拜读一下.之前看第一版的时候还是一年多以前,那个时候看的懵懵懂懂的,很吃力.希望这一次能够有所收获,能够收获新的东西,这些文章只是用 ...
- 统计学习方法感知机(附简单模型代码)
1. 感知机模型 输入为实例的特征向量, 输出为实例的类别, 取+1和-1:感知机对应于输入空间中将实例划分为正负两类的分离超平面, 属于判别模型:导入基于误分类的损失函数:利用梯度下降法对损失函数进 ...
最新文章
- 经典的Java基础面试题集锦
- [Spring 深度解析]第4章 Spring之AOP
- 以太网端口类型和可插拔模块揭密
- 鸿蒙IPC摄像机,华为鸿蒙OS来了,海雀AI全景摄像头助力万物互联
- C++入门指南及实战 第一步 概述及经典HelloWorld
- 微信语音怎么转发给别人听_微信分付怎么邀请别人 微信分付如何才能被邀请开通...
- python提取高频词_seo与python大数据结合给文本分词并提取高频词
- 欧洲杯推动夜间消费发展 便利蜂晚20时-凌晨2时服务人次创新高
- ES6基础教程一 学习笔记
- Python入门--个数可变的位置参数和关键字参数
- 90后IT男被准丈母娘拒绝:家境不重要,重要的是…戳中痛处
- 华为鸿蒙系统再公测,安卓再见!华为正式发布鸿蒙系统公测版!
- 解析.db文件,并且导出为sql语句
- 电子阅读器行业市场研究分析及未来趋势预测分析
- DAMA数据管理知识体系指南-读书笔记9
- C语言基础编程题1.0
- 流程图设计教程和参考样例
- Ad Mucher最新有效注册,升级方式
- Python-hrvanalysis库 挖掘心电信号特征 方法总结
- Progression Approximation---以无穷数列求和为例
热门文章
- 使用nltk.pos出现IndexError: string index out of range
- 大话数据结构:拓扑排序
- OpenCV学习笔记七-创建滑动条
- 7.4.5 鲁棒主成分分析 PCA
- 清华大学梁宸计算机系,2015年广东高考高等学校自主招生录取考生名单公示(2)...
- flask框架中勾子函数的使用
- iOS10 CallKit简单开发
- 开源跳板机(堡垒机)Jumpserver v0.3.0 发布
- 《xUnit Test Patterns》学习笔记4 - Principles of Test Automation
- JSP(五):属性范围