NLP深入学习(八):感知机学习

本文详细介绍了感知机,一种基于线性模型的监督学习算法,用于解决二分类问题。内容涵盖了感知机的基本概念、结构、学习策略,特别是对原始形式和对偶形式的对比,以及它们在处理大规模稀疏数据集时的优势。
摘要由CSDN通过智能技术生成


0. 引言

前情提要:
《NLP深入学习(一):jieba 工具包介绍》
《NLP深入学习(二):nltk 工具包介绍》
《NLP深入学习(三):TF-IDF 详解以及文本分类/聚类用法》
《NLP深入学习(四):贝叶斯算法详解及分类/拼写检查用法》
《NLP深入学习(五):HMM 详解及字母识别/天气预测用法》
《NLP深入学习(六):n-gram 语言模型》
《NLP深入学习(七):词向量》

1. 感知机

感知机(Perceptron)是一种基于线性模型的监督学习算法,主要用于解决二分类问题。它是神经网络和许多其他机器学习算法的基础模型之一,由弗兰克·罗森布拉特(Frank Rosenblatt)于1957年提出。

1.1 基本概念与结构

  • 感知机模型试图找到一个超平面来分割特征空间中的数据点,使得不同类别的样本分别位于超平面的两侧。
  • 超平面可以用线性函数表示:
    f ( x ) = w T x + b f(x) = w^T x + b f(x)=wTx+b
    其中 x x x 是输入特征向量, w w w 是权值向量(weight vector), b b b 是偏置项(bias), s i g n ( f ( x ) ) sign(f(x)) sign(f(x)) 表示对输入 x x x 的分类结果,通常取+1或-1。
    在这里插入图片描述

1.2 学习策略

感知机的学习策略:确定参数 w w w b b b,定义一个损失函数并将其最小化。损失函数一般是选择误分类点到超平面的距离和:
∣ w ⋅ x + b ∣ ∣ ∣ w ∣ ∣ \frac{|w·x+b|}{||w||} ∣∣w∣∣wx+b
∣ ∣ w ∣ ∣ ||w|| ∣∣w∣∣ w w w 的第二范数。因为 y y y取值是+1和-1,对于误分类的点有:
− y i ( w ⋅ x + b ) > 0 -y_i(w\cdot x + b)>0 yi(wx+b)>0
因此,误分类点 x i x_i xi 到超平面的距离是:
− 1 ∣ ∣ w ∣ ∣ y i ( w ⋅ x + b ) -\frac{1}{||w||}y_i(w·x+b) ∣∣w∣∣1yi(wx+b)
那么所有的误分类点到超平面的总和距离为:
− 1 ∣ ∣ w ∣ ∣ ∑ x i ∈ M y i ( w ⋅ x i + b ) -\frac{1}{||w||}\sum\limits_{x_i\in M}y_i(w·x_i+b) ∣∣w∣∣1xiMyi(wxi+b)
不必考虑 1 ∣ ∣ w ∣ ∣ \frac{1}{||w||} ∣∣w∣∣1,则得到感知机的损失函数:
L ( w , b ) = − ∑ x i ∈ M y i ( w ⋅ x i + b ) L(w,b) = -\sum\limits_{x_i\in M}y_i(w·x_i+b) L(w,b)=xiMyi(wxi+b)
其中M为误分类的点的集合。

2. 感知机学习算法

2.1 原始形式

已经确定了感知机的损失函数,那么其原始形式只需要最小化这个损失函数:
min ⁡ w , b L ( w , b ) = − ∑ x i ∈ M y i ( w ⋅ x i + b ) \min \limits_{w,b}L(w,b) = -\sum\limits_{x_i\in M}y_i(w·x_i+b) w,bminL(w,b)=xiMyi(wxi+b)

随机梯度下降法初始时任选 w 0 w_0 w0 b 0 b_0 b0作为初始超平面,如果有误分类点,随机选取一个误分类点,进行梯度下降,计算损失函数的梯度:
▽ w L ( w , b ) = − ∑ x i ∈ M y i x i ▽ w L ( w , b ) = − ∑ x i ∈ M y i \begin{aligned} \triangledown _wL(w,b)&=-\sum_{x_i\in M}y_ix_i \\ \triangledown_wL(w,b)&=-\sum_{x_i\in M}y_i \end{aligned} wL(w,b)wL(w,b)=xiMyixi=xiMyi
梯度下降法使参数向反方向变化,使用随机选出的误分类点的数据,根据提前设置好的学习率对进行更新:
w ← w + η y i x i b ← b + η y i \begin{aligned} w& \leftarrow w+\eta y_ix_i \\ b& \leftarrow b+\eta y_i \end{aligned} wbw+ηyixib+ηyi
使损失函数不断减小,直到为0时就得到了可正确分类数据集的超平面。

2.2 对偶形式

感知机(Perceptron)的对偶形式是针对原始形式进行优化的一种方法,其基本思想是将原问题转换为对偶形式,从而改变算法求解的方式。在解决线性可分数据集的二分类问题时,原始的感知机算法通过迭代更新权重向量 w w w 来找到一个能够正确划分正负样本的超平面。

对偶形式则引入了拉格朗日乘子法,并且使用了一种基于误分类点的表示方式。在这个形式下,不再直接更新权重向量 w w w,而是维护一组系数 α \alpha α,每个系数对应训练集中的一条误分类样例。对偶形式的核心更新规则是在每次迭代中调整这些系数 α \alpha α,而不是权值向量和偏置项。

可将每次 w , b w,b w,b 增量表示为 α i y i x i , α i y i \alpha _iy_ix_i,\alpha _iy_i αiyixi,αiyi,其中 α = n i η \alpha = n_i\eta α=niη,假设 w 0 = b 0 = 0 w_0=b_0=0 w0=b0=0(无关要紧),更新过程表示为:
w = ∑ i α i y i x i b = ∑ i α i y i \begin{aligned} w&=\sum_i\alpha _iy_ix_i\\ b&=\sum_i \alpha _iy_i \end{aligned} wb=iαiyixi=iαiyi

感知机模型可由 α , b \alpha ,b α,b表出。
f ( x ) = s i g n ( ∑ j α j y j ⋅ x + b ) f(x)=sign(\sum_j\alpha _jy_j\cdot x + b) f(x)=sign(jαjyjx+b)

在判断是否是误分类点时用
y i ( ∑ j α j y j x j ⋅ x i + b ) ⩽ 0 y_i(\sum _j\alpha _jy_jx_j\cdot x_i + b)\leqslant 0 yi(jαjyjxjxi+b)0
更新时
α i ← α i + η b ← b + η y i \begin{aligned} \alpha _i &\leftarrow \alpha _i +\eta\\ b &\leftarrow b + \eta y_i \end{aligned} αibαi+ηb+ηyi

对偶形式的优势在于它可能比原始形式收敛更快,尤其是在大规模稀疏数据集上,因为它的计算主要集中在误分类样本上。另外,对偶形式对于支持向量机(SVM)的学习算法也有重要影响,SVM 的对偶形式也是通过类似的拉格朗日对偶变换得到的,并且在实际应用中有更优的表现。

3. 参考

《NLP深入学习(一):jieba 工具包介绍》
《NLP深入学习(二):nltk 工具包介绍》
《NLP深入学习(三):TF-IDF 详解以及文本分类/聚类用法》
《NLP深入学习(四):贝叶斯算法详解及分类/拼写检查用法》
《NLP深入学习(五):HMM 详解及字母识别/天气预测用法》
《NLP深入学习(六):n-gram 语言模型》
《NLP深入学习(七):词向量》

欢迎关注本人,我是喜欢搞事的程序猿; 一起进步,一起学习;

也欢迎关注我的wx公众号:一个比特定乾坤

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SmallerFL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值