感知机算法详解

今天想写一下感知机算法的详解。感知机算法由Rosenblatt在1957年提出,是一类简单的线性判别算法,通过扩展又可以与许多其他算法密切相关。如逻辑回归模型、支持向量机、前馈神经网络(多层感知机)、线性判别分析等。因此感知机算法尽管很少单独使用,但它对于理解其他模型和算法非常有用,很适合作为开始机器学习的一个切入点,同时也是建立知识体系的一个枢纽。

本文首先简要介绍感知机,然后讲解感知机的模型、策略、算法,最后分析感知机算法与各个算法之间的联系并做出总结。

感知机能做什么

感知机是一种二分类模型,其输入为样本的特征向量,输出为样本的类别,取+1和-1二值。要得到正确的模型,感知机要求数据集本身线性可分:
在二维平面上,线性可分意味着能用一条直线将正、负样本分开;
在三维空间中,线性可分意味着能用一个平面将正、负样本分开;
在n维空间中,线性可分意味着能用n-1维超平面将正、负样本分开。 在这里插入图片描述

图1 二维平面上的线性可分与线性不可分

为了便于应用感知机算法,我们有时会使用一些技巧,使得线性不可分的样本在某些变换下成为线性可分。这些技巧包括将样本分离到更高维空间(图2)或投影到特定的方向(图3)等,这是另一大类方法,本文主要讲解一般的感知机,此处不详细展开讨论。

图2 分离到高维空间实现线性可分
图3 投影特定方向实现线性可分

感知机模型

  • 定义
    设输入空间(特征空间)为 X ⊆ R n X\subseteq\R^n XRn,输出空间为 Y = { − 1 , + 1 } Y=\{-1,+1\} Y={ 1,+1}
    输入 x ∈ X x\in X xX 为实例的特征向量 输出 y ∈ Y y\in Y yY 为实例的类别
    由输入空间到输出空间的如下函数称为感知机
    f ( x ) = s i g n ( w x + b ) f(x) = sign(wx+b) f(x)=sign(wx+b)其中 w w w b b b为模型参数, w ∈ R n w\in\R^n wRn称为权值, b ∈ R b\in\R bR称为偏置。 s i g n sign sign是符号函数。

感知机模型有直观的几何解释:线性方程 w x + b = 0 wx+b=0 wx+b=0 对应于分离超平面 S S S,其中 w w w S S S的法向量, b b b S S S的截距。求解感知机,就是要解出 w w w b b b,得到能正确分离所有正负样本的超平面 S S S(见图1).

感知机策略

为找出正确的分离超平面、确定感知机模型参数,需要确定一个学习策略。在监督学习中,使用某种策略即是选用相应的损失函数。
考虑以在S划分下误分类点的总数作为损失函数,该函数可以自然地监督感知机的分类性能,但它不是参数 w w w b b b的连续可导函数,不易优化。如图4,当超平面在空间中由 S 1 S1 S1连续变化至 S 3 S3 S3时,相应的法向量 w w w也连续变化,而误分类点数量则是不连续的。 在这里插入图片描述

图4 误分类点个数不连续变化

为此感知机采用的损失函数为:误分类点到超平面 S S S的总距离,该函数对 w w w b b b连续可导。
单个点 x i x_i xi到超平面 S S S的距离为 − 1 ∥ w ∥ ∣ w x i + b ∣ -\frac{1}{\Vert w \Vert}\vert wx_i+b \vert w1wxi+b,

对于误分类点数据 ( x i , y i ) (x_i,y_i) (xi,yi),有 − y i ( w x i + b ) > 0 -y_i(wx_i+b)>0 yi(wxi+b)>0,因为 y i y_i yi w x i + b wx_i+b wxi+b 异号

设超平面 S S S的误分类集合为 M M M,则所有误分类点到超平面 S S S的总距离为 − 1 ∥ w ∥ ∑ x i ∈ M y i ( w x i + b ) -\frac{1}{\Vert w \Vert}\sum_{x_i\in M}y_i(wx_i+b) w1xiMyi(wxi+b) 不考虑式中的 − 1 ∥ w ∥ -\frac{1}{\Vert w \Vert} w1,即得到感知机学习的损失函数。

  • 损失函数
    给定训练集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} T={ (x1,y1),(x2,y2),...,(xN,yN)},其中
  • 27
    点赞
  • 95
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值