李航机器学习方法3之感知机

文章详细介绍了感知机模型,包括其超平面的法向量、点到超平面的距离与损失函数的推导,以及学习策略(使用梯度下降法)。此外,还探讨了感知机的实现代码,展示了训练过程,并证明了感知机的收敛性,确保在有限次迭代后能找到正确分类的超平面。最后提到了对偶形式在高维特征空间中的优势。

0.参考

机器学习方法,作者:李航
感知机与超平面,作者:GRNovmbrain
浅析感知机(一)–模型与学习策略,作者:忆臻

1.待解决问题

1. w T x + b = 0 中 w T 为什么是约束边界的法向量? w^Tx+b=0中w^T为什么是约束边界的法向量? wTx+b=0wT为什么是约束边界的法向量?
2. 从点到超平面的距离推导出 l o s s f u n c t i o n 。 从点到超平面的距离推导出loss function。 从点到超平面的距离推导出lossfunction

也就是需要首先找到损失函数,然后转化为最优化问题。

1.1需要知道的是

思想:错误驱动
感知机解决的是二分类问题且必须线性可分,输入(特征向量) x ∈ R p x\in \mathbb{R}^p xRp,输出 y = { − 1 , + 1 } y=\{-1,+1\} y={ 1,+1}
决策函数: f ( x ) = s i g n ( w T x + b ) f(x)=sign(w^Tx+b) f(x)=sign(wTx+b)
s i g n ( a ) = { − 1 , a < 0 + 1 , a ≥ 0 sign(a)=\begin{cases}-1,a<0\\+1,a\geq0\end{cases} sign(a)={ 1,a<0+1,a0
其中 w w w是weight vector, b b b是bias

图示:在这里插入图片描述

1.2补充:什么是线性可分?

给定一个数据集,如果存在某个超平面 S ( w x + b = 0 ) S(wx+b=0) S(wx+b=0),能够将数据集的正实例点和负实例点完全正确的划分到超平面的两侧,即对 y = + 1 y=+1 y=+1的实例点,有 w x + b > 0 wx+b>0 wx+b>0,对 y = − 1 y=-1 y=1的实例点,有 w x + b ≤ 0 wx+b\leq0 wx+b0,则称数据集线性可分,否则线性不可分。

2.一些问题

2.1 w ⃗ \vec w w 是超平面的法向量?

如图在 w T + b = 0 w^T+b=0 wT+b=0上任意取两个点 x 1 , x 2 x_1,x_2 x1,x2
在这里插入图片描述

即得: { w T x 1 + b = 0 w T x 2 + b = 0 → w T ( x 1 − x 2 ) = 0 \begin{cases}w^Tx_1+b=0 \\ w^Tx_2+b=0\end{cases}\rightarrow w^T(x_1-x_2)=0 { wTx1+b=0wTx2+b=0wT(x1x2)=0
即得: w ⃗ ⋅ ( x 1 − x 2 ) ⃗ = 0 → w ⃗ ⊥ ( x 1 − x 2 ) ⃗ \vec w \cdot \vec{(x_1-x_2)}=0 \rightarrow \vec w \bot \vec{(x_1-x_2)} w (x1x2) =0w (x1x2)
所以得到如下图所示:在这里插入图片描述
所以可以推导出 w ⃗ \vec w w 是超平面的法向量。

2.2从点到超平面的距离 → \rightarrow Loss Function

预备知识:点到平面的距离怎么求?
设点为 P P P,在平面上任取一点 A A A,距离就等于 P A ⃗ \vec {PA} PA 往单位法向量上的投影,如图所示:在这里插入图片描述
∣ P Q ∣ = P A ⃗ 在 n ⃗ ( 法向量 ) 的投影 = ∣ P A ⃗ ⋅ n ⃗ ∣ ∣ n ⃗ ∣ |PQ|=\vec{PA}在\vec{n}(法向量)的投影=\frac{|\vec{PA}\cdot\vec{n}|}{|\vec n|} PQ=PA n (法向量)的投影=n PA n ,分子是绝对值,分母是模。

回到问题:求d?
w T x + b = 0 w^Tx+b=0 wTx+b=0上,任取一点 x ′ x^{'} x,则 d = ∣ w T ⋅ ( x − x ′ ) ∣ ∣ ∣ w ∣ ∣ 2 d=\frac{|w^T\cdot (x-x^{'})|}{||w||_2} d=∣∣w2wT(xx),这里 w w w L 2 L2 L2范式就是模长。

{ w T x ′ + b = 0 → b = − w T x ′ d = ∣ w T ⋅ ( x − x ′ ) ∣ ∣ ∣ w ∣ ∣ 2 = ∣ w T x − w T x ′ ∣ ∣ ∣ w ∣ ∣ 2 = ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ 2 \begin{cases} w^Tx^{'}+b=0\rightarrow b=-w^Tx^{'}\\d=\frac{|w^T\cdot (x-x^{'})|}{||w||_2}=\frac{|w^Tx-w^Tx^{'}|}{||w||_2}=\frac{|w^Tx+b|}{||w||_2} \end{cases} { wTx+b=0b=wTxd=∣∣w2wT(xx)=∣∣w2wTxwTx=∣∣w2wTx+b
至此,距离的表达式就推导出来了。

3.loss function推导

很自然的会想到用误分类点的数目来作为损失函数,是误分类点个数越来越少,最终全部分对就可以了,建立如下所示的loss function(这样的损失函数并不是w,b连续可导(无法用可导函数形式来表达出误分类点的个数),无法进行优化。):
l ( w , b ) = ∑ i = 1 N I ( y i ( w T x i + b ) < 0 ) l(w,b)=\sum_{i=1}^N I(y_i(w^Tx_i+b) < 0) l(w,b)=i=1NI(yi(wTxi+b)<0)
对于指示函数的由来:考虑正确分类 ( w T x i + b ) > 0 , y i = + 1 (w^Tx_i+b)>0,y_i=+1 (wTxi+b)>0,yi=+1 y w T x i + b ) < 0 , y i = − 1 yw^Tx_i+b)<0,y_i=-1 ywTxi+b)<0,yi=1,得到正确的 y i ( w T x i + b ) > 0 y_i(w^Tx_i+b)>0 yi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值