【机器学习算法】感知机模型
文章目录
- 1. 感知机模型
- 2. 收敛性证明(Novikoff定理)
- 3. 感知机对偶形式
- 4.感知机的缺点
- 5.感知机的几个变形
- 5.1 投票感知机
- 5.2 平均感知机
1. 感知机模型
感知机模型是一个二分类的模型,它通过形如y=wx+by=wx+by=wx+b的式子将实例x转换为类别,取+1和-1表示,从而将实例进行划分。它是简单并且容易实现的一个模型。
感知机模型主要用来将平面上线性可分的数据集进行划分,对于线性不可分的数据集,感知机无法收敛。
感知机模型的输入输出由以下函数进行映射,其中w是n维空间的一个向量,b是偏置,sign是符号函数。
f(x)=sign(wx+b)..........(1)sign(x)={+1x≥0−1x<0..........(2)f(x)=sign(wx+b)..........(1) \\ sign(x)= \begin{cases} +1 & x \ge 0 \\ -1 & x \lt 0 \end{cases}..........(2) f(x)=sign(wx+b)..........(1)sign(x)={+1−1x≥0x<0..........(2)
对于感知机的学习策略,我们可以考虑当一个实例点被误分类,则调整w,b的值 ,使分离超平面向该误分类点的一侧移动,减少该误分类点与超平面的距离,直至超平面越过该误分类点使其正确分类。于是有感知机的损失函数
L(w,b)=−∑xi∈Myi(w⋅xi+b)..........(3)L(w,b)=-\sum_{x_i \in M}y_i(w·x_i+b)..........(3) L(w,b)=−xi∈M∑yi(w⋅xi+b)..........(3)
其中M为误分类点的集合。可以发现−yi(w⋅xi+b)-y_i(w·x_i+b)−yi(w⋅xi+b)恒为正数,当所有点都完全分类正确时,损失函数为0。对于一个误分类的样本点来说,式子(3)是w,b的连续可导函数。所以采用随机梯度下降法进行学习。感知机学习算法的原始形式如下:
- 定义初始的w0,b0w_0,b_0w0,b0。
- 扫描训练集,若yi(w⋅xi+b)≤0y_i(w·x_i+b) \le 0yi(w⋅xi+b)≤0,则更新w=w+ηyixi,b=b+ηyiw=w+\eta y_ix_i,b=b+\eta y_iw=w+ηyixi,b=b+ηyi
- 重复2,直至不存在误分类点。
c不同的初始值,或者误分类点的选取顺序不同,都可能使得最后得到的w和b不同。
2. 收敛性证明(Novikoff定理)
我们如何保证在算法原始模型中,经过有限次的迭代后一定会收敛呢?下面我们进行收敛性的证明。首先令w^x^=w⋅x+b\hat w \hat x=w·x+bw^x^=w⋅x+b。假设最终得到的超平面w^opt⋅x^=wopt⋅x+bopt=0\hat w_{opt}·\hat x=w_{opt}·x+b_{opt}=0w^opt⋅x^=wopt⋅x+bopt=0,使∣∣w^opt∣∣=1||\hat w_{opt}||=1∣∣w^opt∣∣=1,因此对于所有的样本i,有
yi(w^opt⋅x^i)>0y_i(\hat w_{opt}·\hat x_i) \gt 0 yi(w^opt⋅x^i)>0
存在
γ=mini{yi(wopt⋅xi+bopt)}\gamma =\min_{i}\{y_i(w_{opt}·x_i+b_{opt})\} γ=imin{yi(wopt⋅xi+bopt)}
使得
yi(w^opt⋅x^i)≥γ..........(4)y_i(\hat w_{opt}·\hat x_i) \ge \gamma..........(4) yi(w^opt⋅x^i)≥γ..........(4)
选择初值w^0\hat w_0w^0,令w^k−1\hat w_{k-1}w^k−1是第k个误分类实例之前的权重向量,则第k个误分类实例的条件是
yi(w^k−1⋅x^i)=yi(wk−1⋅xi+bk−1)≤0.........(5)y_i(\hat w_{k-1}·\hat x_i)=y_i(w_{k-1}·x_i+b_{k-1}) \le 0.........(5) yi(w^k−1⋅x^i)=yi(wk−1⋅xi+bk−1)≤0.........(5)
假如样本(xi,yi)(x_i,y_i)(xi,yi)被误分类,则更新权重和偏置
wk=wk−1+ηyixibk=bk−1+ηyiw_k=w_{k-1}+\eta y_ix_i \\ b_k=b_{k-1}+\eta y_i wk=wk−1+ηyixibk=bk−1+ηyi
即
w^k=w^k−1+ηyix^i..........(6)\hat w_{k}=\hat w_{k-1}+\eta y_i\hat x_i..........(6) w^k=w^k−1+ηyix^i..........(6)
由式子4和6得
w^kw^opt=w^k−1⋅w^opt+ηyiw^opt⋅x^i≥w^k−1⋅w^opt+ηγ..........(7)\begin{aligned} \hat w_k \hat w_{opt} &=\hat w_{k-1}· \hat w_{opt} + \eta y_i \hat w_{opt} · \hat x_i \\ &\ge \hat w_{k-1}· \hat w_{opt} +\eta \gamma..........(7) \end{aligned} w^kw^opt=w^k−1⋅w^opt+ηyiw^opt⋅x^i≥w^k−1⋅w^opt+ηγ..........(7)
因此可得w^k\hat w_kw^k和w^k−1\hat w_{k-1}w^k−1之间的递推式,从而有
w^kw^opt≥w^k−1⋅w^opt+ηγ≥w^k−2⋅w^opt+2ηγ≥...≥kηγ..........(8)\hat w_k \hat w_{opt} \ge \hat w_{k-1}· \hat w_{opt} +\eta \gamma \ge \hat w_{k-2}· \hat w_{opt} +2\eta \gamma \ge ... \ge k\eta \gamma..........(8) w^kw^opt≥w^k−1⋅w^opt+ηγ≥w^k−2⋅w^opt+2ηγ≥...≥kηγ..........(8)
令R=max1≤i≤N∣∣xi∣∣R=\max\limits_{1 \le i \le N}||x_i||R=1≤i≤Nmax∣∣xi∣∣,又由式子5和6推得
∣∣w^k∣∣2=∣∣w^k−1∣∣2+2ηyiw^k−1⋅x^i+η2∣∣x^i∣∣2≤∣∣w^k−1∣∣2+η2∣∣x^i∣∣2≤∣∣w^k−1∣∣2+η2R2≤∣∣w^k−2∣∣2+2η2R2≤...≤kη2R2..........(9)\begin{aligned} ||\hat w_k||^2 &=||\hat w_{k-1}||^2 + 2\eta y_i \hat w_{k-1}·\hat x_i+\eta ^2 ||\hat x_i||^2 \\ &\le ||\hat w_{k-1}||^2 +\eta ^2 ||\hat x_i||^2 \\ &\le ||\hat w_{k-1}||^2 +\eta ^2 R^2 \\ &\le ||\hat w_{k-2}||^2 +2\eta ^2 R^2 \\ &\le ... \\ &\le k\eta ^2 R^2 ..........(9) \end{aligned} ∣∣w^k∣∣2=∣∣w^k−1∣∣2+2ηyiw^k−1⋅x^i+η2∣∣x^i∣∣2≤∣∣w^k−1∣∣2+η2∣∣x^i∣∣2≤∣∣w^k−1∣∣2+η2R2≤∣∣w^k−2∣∣2+2η2R2≤...≤kη2R2..........(9)
结合8和9,得到
kηγ≤w^k⋅w^opt≤∣∣w^k∣∣∣∣w^opt∣∣≤kηRk\eta \gamma \le \hat w_{k} · \hat w_{opt} \le ||\hat w_k||||\hat w_{opt}|| \le \sqrt{k}\eta R kηγ≤w^k⋅w^opt≤∣∣w^k∣∣∣∣w^opt∣∣≤kηR
于是
k≤(Rγ)2..........(10)k \le \left(\frac{R}{\gamma}\right)^2..........(10) k≤(γR)2..........(10)
根据10,我们知道误分类次数k是有上界的,也就是说经过有限次分类我们一定能找到将训练数据完全分开的超平面。
3. 感知机对偶形式
假设w和b初始值均为0,对于误分类点通过w=w+ηyixiw=w+\eta y_ix_iw=w+ηyixi和b=b+ηyib=b+\eta y_ib=b+ηyi逐步修改,设修改N次,则最后学习到的w和b分别是
w=∑i=1Naiyixib=∑i=1Naiyiw=\sum_{i=1}^Na_iy_ix_i \\ b=\sum_{i=1}^Na_iy_i w=i=1∑Naiyixib=i=1∑Naiyi
其中ai=niηa_i=n_i\etaai=niη,nin_ini表示第i个实例点由于被误分而更新的次数。则我们的感知机模型可以表示为f(x)=sign(∑j=1Najyjxj⋅x+b)f(x)=sign\left(\sum\limits_{j=1}^Na_jy_j x_j·x+b\right)f(x)=sign(j=1∑Najyjxj⋅x+b)
感知机算法的对偶形式总结如下:
- 初始化a⃗=0,b=0\vec a=0,b=0a=0,b=0
- 遍历训练集,如果当前样本yi(∑j=1Najyjxj⋅x+b)≤0y_i\left(\sum\limits_{j=1}^Na_jy_j x_j·x+b\right) \le 0yi(j=1∑Najyjxj⋅x+b)≤0,则更新ai=ai+η,b=b+ηyia_i=a_i+\eta,b=b+\eta y_iai=ai+η,b=b+ηyi
- 重复2直至没有误分类数据。
由于训练过程中需要不停地计算內积,因此可以先将训练实例的內积计算出来并以矩阵的形式存储,这个矩阵被称为Gram矩阵。
4.感知机的缺点
- 在数据集线性可分时,感知器虽然可以找到一个超平面把两类数据分开,
但并不能保证能其泛化能力。 - 感知器对样本顺序比较敏感。每次迭代的顺序不一致时,找到的分割超平
面也往往不一致。 - 如果训练集不是线性可分的,就永远不会收敛
5.感知机的几个变形
5.1 投票感知机
投票感知器记录第k 次更新后得到的权重wkw_kwk 在之后的训练过程中正确分类样本的次数ckc_kck 。这样最后的分类器形式为:
y=sgn(∑k=1Kcksgn(wkTx))y = sgn(\sum_{k=1}^Kc_ksgn(w^T_kx)) y=sgn(k=1∑Kcksgn(wkTx))
投票感知机需要保存K个权重向量,带来额外开销。
5.2 平均感知机
为了降低开销,对投票感知机的式子进行简化,得到
y=sgn(∑k=1K(ckwk)Tx)=sgn(wˉTx)\begin{aligned} y & = sgn(\sum_{k=1}^K(c_kw_k)^Tx) \\ & = sgn(\bar w^Tx) \end{aligned} y=sgn(k=1∑K(ckwk)Tx)=sgn(wˉTx)
【机器学习算法】感知机模型相关推荐
- 机器学习算法——感知机支持向量机
1前言 本篇博客主要详细介绍两种具有一定相似性的机器学习算法--感知机Perceptron和支持向量机SVM,该两种算法都是在特征空间中寻找划分平面从而对数据集进行划分的思想,但寻找划分平面的算法不同 ...
- 【机器学习】感知机模型对偶形式
感知机模型的对偶形式 感知机模型 python感知机实现代码 感知机模型的对偶形式也称累积形式,相对于之前的感知机多了一个 ɑi = nɧ ,n表示使用某实例作为误分类点更新参数w,b的次数,如果未被 ...
- 【城北徐公之机器学习】感知机模型
一.什么是感知机? 感知机最早由计算科学家Rosenblatt在1958年提出,他是一种单层(注意,输入层并不计算在内)神经网络.如图为一个二元输入的感知机模型. 其中x1,x2为输入,b为偏置,激活 ...
- 常见机器学习算法(模型)优缺点比较
博客已转移至 https://lmhgithi.github.io/ 内容更全 朴素贝叶斯NB(分类)(生成) 优点 稳定的分类效率 对小规模数据表现很好,能处理多分类任务,适合增量式训练 对缺失数据 ...
- 机器学习算法学习---模型融合和提升的算法(五)
Blending的优点在于: 1.比stacking简单(因为不用进行k次的交叉验证来获得stacker feature) 2.避开了一个信息泄露问题:generlizers和stacker使用了不一 ...
- 图解机器学习算法(6) | 决策树模型详解(机器学习通关指南·完结)
作者:韩信子@ShowMeAI 教程地址:https://www.showmeai.tech/tutorials/34 本文地址:https://www.showmeai.tech/article-d ...
- 机器学习中算法与模型的区别
点击上方,选择星标或置顶,每天给你送干货! 阅读大概需要7分钟 跟随小博主,每天进步一丢丢 Datawhale干货 来自:Datawhale 作者:Sambodhi,海边的拾遗者 导读 机器学习涉及到 ...
- 机器学习算法一览,应用建议与解决思路
机器学习算法一览,应用建议与解决思路 作者:寒小阳 时间:2016年1月. 出处:http://blog.csdn.net/han_xiaoyang/article/details/5046933 ...
- etc的常见算法_运用机器学习算法研究城市形态与户外温度之间的相关性
随着城市化进程以及气候变化的加剧,城市正经历着频率更高.强度更大.持续时间更长的热浪天气.目前学者提出许多研究不同尺度气候问题的方法,其中最常用的是参数回归方法,如最小二乘法回归模型(OLS,ordi ...
- 机器学习系列(4)_机器学习算法一览,应用建议与解决思路
作者:寒小阳 时间:2016年1月. 出处:http://blog.csdn.net/han_xiaoyang/article/details/50469334 声明:版权所有,转载请联系作者并注明出 ...
最新文章
- 卫星数据现已加入 Azure 豪华套餐,在太空向女神表个白?
- hdu2413 二分+二分匹配
- jquery判断页面滚动条(scroll)是上滚还是下滚,且是否滚动到头部或者底部
- vue制作tab切换(vuex + 动画)
- vue组件的实例使用
- linux进程socket通信,linux进程间通信--socket套接字 实例代码
- javascript浮点数学习总结之0.1+0.2
- python编程输入,Python编程:输入变量返回nam
- android+新版本+menu,【Android界面实现】SlidingMenu最新版本使用详解
- 书籍推荐:《Java数据结构与算法》
- OpenFOAM-6.0 如何创建已有标量场的梯度向量场
- java英语面试自我介绍_java的英文面试自我介绍
- Android Canvas绘制丘比特之箭
- linux识别不了喇叭,Ubuntu扬声器无声的解决方法
- 工作中常见的网络设备图片
- 【経験談】VS2013创建数据库连接失败问题
- 【软件之道】亿图9.3 显示的内容与导出成图片后的内容不一致
- 万年历 java程序_用Java编程输出万年历的功能实现
- 桶内蓝色红色颜料比例
- Maven查看JAR包的依赖关系