【ML模型详细推导3】- 感知机

本文深入解析感知机模型,包括其作为二分类线性分类器的角色,原始形式与对偶形式的详细模型介绍,以及随机梯度下降的学习算法。探讨了感知机在数据线性可分情况下的应用,对偶形式的优势及其实现策略。

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

1. 一句话介绍感知机

· 一个二分类的线性分类模型。
· 感知机学习旨在求出将训练集数据进行线性划分的分类超平面,导入基于误分类的损失函数,利用梯度下降法对损失函数进行极小化,求得模型。
· 分为原始形式和对偶形式。

2. 模型介绍(原始形式)

前提:数据集要求线性可分性
- 模型:
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 &lt; 0 其中,sign(x)=\left\{\begin{matrix} +1,&amp; x\geqslant 0 &amp; \\ -1 &amp; x&lt;0&amp; \end{matrix}\right. sign(x)={+1,1x0x<0

- 损失函数(学习策略)
损失函数,误分类点到超平面的“函数间隔”和:
L ( w , b ) = − ∑ x i ∈ M y i ( w x i + b ) L(w,b) = -\sum_{x_i\in M}y_i (wx_i+b) L(w,b)=xiMyi(wxi+b)其中, M M M为误分类的集合。

函数间隔待了解
(Q1:什么是函数间隔,和几何间隔的区别)

- 随机梯度下降(学习算法)

随机梯度下降法,最小化损失函数 L ( w , b ) L(w,b) L(w,b)
梯度:
▽ w L ( w , b ) = − ∑ x i ∈ M y i x i \triangledown _wL(w,b)=-\sum _{x_i\in M}y_i x_i \\ wL(w,b)=xiMyixi ▽ b L ( w , b ) = − ∑ x i ∈ M y i \triangledown _bL(w,b)=-\sum _{x_i\in M}y_i bL(w,b)=xiMyi
随机选取一个数据点 ( x i , y i ) (x_i,y_i) (xi,yi),判断其是否误分类,也就是判断 y i ⋅ ( w x + b ) &lt; 0 y_i\cdot(wx+b)&lt;0 yi(wx+b)<0与否
y i f ( x ) &lt; 0 y_i f(x)&lt;0 yif(x)<0,对 w , b w,b w,b 进行更新:
w ← w + η y i x i w\leftarrow w+\eta y_ix_i ww+ηyixi b ← b + η y i b\leftarrow b+\eta y_i bb+ηyi其中, η \eta η为学习率。
感知机学习算法是误分类驱动的,这样,因为数据线性可分,通过迭代可以直至训练集中没有误分类点。

3. 感知机的对偶形式

- 模型:
将训练集 { ( x 1 , y 1 ) ( x 2 , y 2 ) … ( x i , y i ) } \{(x_1,y_1)(x_2,y_2)…(x_i,y_i)\} {(x1,y1)(x2,y2)(xi,yi)}全部代入进行随机下降,若第 i 个样本用的次数为 n i n_i ni ,则最后训练出的 w w w b b b
w = ∑ i = 1 N n i η y i x i w = \sum _{i=1}^{N}n_i\eta y_ix_i w=i=1Nniηyixi b = ∑ i = 1 N n i η y i b = \sum _{i=1}^{N}n_i\eta y_i b=i=1Nniηyi

w w w b b b 带入感知机原始形式得对偶形式:
f ( x ) = s i g n ( ∑ j = 1 N n j η y j x j ⋅ x + ∑ j = 1 N n j η y j ) f(x) = sign(\sum _{j=1}^{N}n_j\eta y_jx_j \cdot x+ \sum _{j=1}^{N}n_j\eta y_j) f(x)=sign(j=1Nnjηyjxjx+j=1Nnjηyj)
此时,参数就由 w w w b b b ,变为了 n 1 , n 2 … n N n_1, n_2 … n_N n1,n2nN
所以要求 f(x) ,就要求出 n i n_i ni

- 策略:
从训练集中选数据,直到没有误分类点

- 算法:
从训练集中选数据,直到没有误分类点
1)初始化 ∀ n i = 0 \forall n_i=0 ni=0
2)在训练集选数据 ( x i , y i ) (x_i,y_i) (xi,yi)
3)若 y i ⋅ ( ∑ j = 1 N n j η y j x j ⋅ x i + ∑ j = 1 N n j η y j ) &lt; 0 y_i\cdot(\sum _{j=1}^{N}n_j\eta y_jx_j \cdot x_i+ \sum _{j=1}^{N}n_j\eta y_j)&lt;0 yi(j=1Nnjηyjxjxi+j=1Nnjηyj)<0,代表分错了,更新 n i = n i + 1 n_i = n_i+1 ni=ni+1
4)转到2直到没有误分类数据

为何会有对偶形式?(对偶形式的好处):
 对偶形式的目的是降低运算量,但是并不是在任何情况下都能降低运算量,而是在特征空间的维度很高时才起到作用。
  设样本特征维度为n,样本数量为m,m相对于n很小,也就是特征维度很高:
  首先考虑原始的感知机学习算法,每一轮迭代至少要判断某个输入实例是不是误判点,也就是要计算 是否 y i ⋅ ( w x + b ) &lt; 0 y_i\cdot(wx+b)&lt;0 yi(wx+b)<0。这里的运算量主要集中在 w x wx wx的内积计算上,时间复杂度为 O ( m ) O(m) O(m),由于特征维度m很大,所以会很慢。
  在对偶形式的学习算法中,判断输入实例 ( x i , y i ) (x_i,y_i) (xi,yi)是否误判的条件变换为 y i ⋅ ( ∑ j = 1 N n j η y j x j ⋅ x i + ∑ j = 1 N n j η y j ) &lt; 0 y_i\cdot(\sum _{j=1}^{N}n_j\eta y_jx_j \cdot x_i+ \sum _{j=1}^{N}n_j\eta y_j)&lt;0 yi(j=1Nnjηyjxjxi+j=1Nnjηyj)<0。可以看到这里所有的输入实例都仅仅以内积的形式 x j x i x_jx_i xjxi 出现,可以预先计算输入实例两两之间的内积,得到所谓的Gram矩阵 G = [ x i x j ] N ∗ N G=[x_ix_j]_{N*N} G=[xixj]NN,这样一来,每次误判检测时直接在Gram矩阵里查表就能拿到内积 x j x i x_jx_i xjxi ,所以这个误判检测的时间复杂度是 O ( n ) O(n) O(n)
  可以看出,对偶形式的感知机,把每轮迭代的时间复杂度的从特征维度m转移到了训练集大小n上,那么对于维度非常高的空间,运算量自然就降低了。


参考:
1.《统计学习方法》李航
2. 知乎回答:如何理解感知机学习算法的对偶形式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值