一文读懂感知机模型

本文深入浅出地介绍了感知机模型,从线性可分问题出发,详细阐述了感知机的定义、学习策略及算法。通过讨论感知机的对偶形式,揭示了其在高维数据和效率优化上的意义,为后续学习神经网络和支持向量机奠定了基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

很多人第一次学习机器学习,就学的是感知机(Perceptron)这个模型。感知机模型虽然简单,但是包含的方法确实后面很多模型常常用到的,例如神经网络、支持向量机等。

本文就用最简单的方式,从该模型背景出发,对其原理进行推导。文中特别介绍了感知机的对偶形式,对我们学习支持向量机很有益处,可以好好体会感知机和支持向量机的区别与联系。

1 问题提出

假设在二维空间中我们有一些散点,这些散点属于不同的类,那我们该怎么样区分这些点呢?或者说按照什么样的规则分开这些点呢?我们首先想到的应该是画一条线来进行区分。

如下图所示,红色的线的上部为一类,下部分为一类。很简单不是吗?如果我们下图建立坐标,就可以很容易的求得直线的解析式F(X),F(X)>0为一类,F(X)<0又为另一类。倘若我们的空间为N维呢,情况又会怎么样呢?于是我们提出了感知机模型,简单来说,就是找一个直线或者平面将数据分隔开
在这里插入图片描述

2 感知机模型初探

2.1 感知机模型的定义

一中的 f(x)就是感知机的最简单形式,现在假设输入空间为N维,输入空间为y = {+1, -1},我们定义函数:

f(x) = sign(wx+b)

该函数便称为感知机,其中w与b是感知机模型参数,w为权值(N维),b为偏置,sign()函数即符号函数,在x大于0时为正,x小于0时结果为负,该函数的最大作用是取某个数的符号,在机器学习中,常常用于二分类问题。
在这里插入图片描述

2.2 感知机模型的细节

感知机模型定义为f(x) = sign(wx+b),其函数内部的 wx+b,当其 wx+b=0 时表示为一个超平面,具体超平面是什么在2.3中有讲解,注意,此处w和x都是N维的

我们将数据x代入 wx+b 中,若 wx+b>0 表明其在超平面上方,值 wx+b<0 表示其在超平面下方( 类别不同,符号不同 )。因此我们在外面加上 sign() 函数,取其正负号,其结果便能够表示数据的类别。

同时要理解模型是什么?在二分类问题中,将给定数据输入模型中,能够输出数据的类别。感知机模型就是如此,同时感知机模型的本质是一个判别模型,仅仅能够判断数据的类别。与之相对的是生成模型,具体的定义可以看本人的生成对抗网络(GAN)论文原文详解一文。

但是模型不是天生就有的,我们需要找到最合适的 wb 才能将数据很好的分割开来,而怎么找到合适的 wb 呢?就需要对模型进行训练了,具体的训练过程见第三节。

2.3 感知机模型的适用范围

在1中我们可以注意到,两类样本都是可以通过直线下进行分割的,这样数据集称为线性可分数据集,扩展到N维,我们定义:
在这里插入图片描述
简而言之,假如我们的数据能够被wx+b=0的超平面分隔开,则称为数据集线性可分,这里超平面的概念初学者可能会难理解,其实质就是数据能够被这个函数分隔在左右两边,wx+b>0是一类,wx+b<0又是一类。

wx+b=0在二维空间中是一条直线,三维空间中是一个平面,在多为空间中就可以被称为超平面了,因为我们根本无法想象了,想象不出来就记得这个函数公式就好啦。

指导线性可分的概念,我们也就给出感知机的适用范围。感知机就必须要求数据集是线性可分的, 不然就无法确定一个超平面了。

3 感知机学习算法

定义好模型之后,我们需要对模型进行训练,以得出合适的参数。在李航的《统计学习法》一书中,统计学习有三大要素,分别是模型、策略和方法。这是一个很好的学习框架,当解决一类机器学习问题的时候,脑中就应该有这三个概念,再在这个框架上添砖加瓦。

3.1 模型

进行统计学习,首先考虑的问题就是要学习什么样的模型。李航《机器学习》一书中,将模型定义为要学习的条件概率分布和决策函数,两种模型分别对应概率模型的非概率模型。在学习机器学习过程中,要慢慢的理解二者的差别。

个人理解使用模型的最根本目标就是能够拟合现有数据的特征。例如在感知机中可以将正负样本分开,在聚类算法中可以吧同类的点划分在一起等,都是能够拟合现有数据的特征,并依据我们所得到的这个模型,去对一些未知的数据进行分类、聚类等操作

本文的感知机模型目标就是找到一个超平面,以此来分割正负样本点,故是一种非概率模型。再第二节中,我们知道了感知机模型的决策函数定义为:
f ( x ) = s i g n ( w x + b ) f(x) = sign(wx+b) f(x)=sign(wx+b) 其中的 s i g n ( x ) = { + 1 , x ⩾ 0 − 1 , x ⩽ 0 sign(x) = \left\{\begin{matrix} +1,x\geqslant 0\\ -1,x\leqslant 0 \end{matrix}\right. sign(x)={ +1,x01,x0

3.2 学习策略

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值