class-感知机Perception
1 感知机模型
感知机perceptron是二类分类问题的线性分类模型,输入为实例的特征向量,输出为实例的类别(+1,-1)。感知机旨在求出训练数据进行线性划分的分离超平面(separating hyperplane),基于损失函数,利用梯度下降法对损失函数进行极小化,求得感知机模型,从而对新实例进行分类。它分为原始和对偶形式。1957年Rossenblatt提出。
1.1 模型定义
从输入空间到输出空间的映射(函数):f(x)=sign(w·x+b)
其中,w是weight,x输入向量,b偏置bias,sign是符号函数,即
假设空间是定义在所有特征空间上的函数(线性分类模型)的集合{f|f(x)=w·x+b}
感知机解释:
线性方程w·x+b=0对应于特征空间Rn一个超平面,w是超平面的法向量,b是超平面的截距,超平面S将实例分为正负两类。
2 感知机学习策略
2.1 数据的线性可分性
如果对于数据集T,存在一个超平面能够完全正确的将其划分到超平面的两侧称为数据集线性可分linear separable
2.2 学习策略
假设数据线性可分,为了求出超平面,需要求出w和b,需要一个学习策略(如何找到超平面的计算方法),即定义损失函数,并将损失函数最小化。
定义损失函数:误分类点总数到超平面S的总距离。
输入空间Rn任一点到平面的距离是:点到平面的距离
误分类点满足:
因此误分类点到平面的距离是:
假设总共有M个误分类点,则总距离为:
不考虑常数项||w||,就是感知机的损失函数,即
在误分类时,L为w,b的连续可导函数。正确分类时L为0。
3 学习算法
主要就是对上述损失函数进行求解全局最小(优)值(极小值)
3.1 算法原始形式
具体采用随机梯度下降法(stochastic gradient descent SGD):首先任意选取一个超平面w0,b0,然后梯度下降法不断地极小化目标表函数,极小化过程不是一次使M中所有误分类点梯度下降,而是一次随机选取一个误分类点使其梯度下降。
梯度为:
具体算法过程:
3.2 收敛性
首先将b并入w得到w hat,将x添加一维1,形式将被简化。于是得到:
迭代次数k有一个上限,说明原始算法是可收敛的,前提是数据线性可分。
3 学习算法的对偶形式
说明一点,感知机的学习算法是支持向量机学习算法的基础,这里原始形式和对偶形式与之对应。
Gram 矩阵:
MATLAB示例:
x1=[3,3]',
x2=[4,3]',
x3=[1,1]',
G=[x1'*x1,x1'*x2,x1'*x3;
x2'*x1,x2'*x2,x2'*x3;
x3'*x1,x3'*x2,x3'*x3]
最新文章
- Cygwin中解决vi编辑器方向键和Backspace键不好使、安装vim的方法
- 【BZOJ】2115: [Wc2011] Xor
- JSPatch中的OC高级语法
- C# 随机读写入文件
- asp.net学习资源汇总
- Git各种错误汇总
- Linux命令之进程的管理
- 我和小美的撸码日记(3)之一句话搞定MVC表单页数据绑定与提交
- JAVA IP地址转成长整型方法
- ios 获取融云token
- find the majority element
- Apache2.2以上版本与Tomcat整合配置及负载均衡实现
- JDBC的使用
- resteasy简单实例
- 转化.vdi到.vmdk
- 关于form与表单操作
- python 去除字符串末尾的子串
- JavaScript外部函数调用AngularJS的函数、$scope
- ASP.NET Core Web 项目 发布的IIS7提示“HTTP Error 502.5 - Process Failure
- 百度 Echart 的使用
热门文章
- 洛谷 [P1963] [NOI2009] 变换序列
- 4.C++中的函数重载,C++调用C代码,new/delete关键字,namespace(命名空间)
- Office 365 机器人(Bot)开发入门指南 (新篇)
- Oracle-11g 中使用表空间透明数据加密(TDE)
- php与web页面交互(二)
- go get报错unrecognized import path “golang.org/x/net/context”…
- 图论算法-Tarjan模板 【缩点;割顶;双连通分量】
- [bzoj3998][TJOI2015]弦论-后缀自动机
- Spring Data与elasticsearch版本对应关系
- shell 颜色控制系列