天天看点

机器学习——感知机算法

感知机算法

感知机(perception)是一种二类线性模型,主要用于分类问题。

一些定义

目标函数:

f(x)=sgn(w*x+b) 其中sgn为符号函数

其中向量w为目标函数向量,向量x为样本。向量w={w1,w2…wn},向量x={x1,x2…xn}

超平面:

w*x+b=0 所构成的平面

向量w为超平面上的法向量。

训练集:

T=(x1,y1),(x2,y2),(x3,y3)…(xn,yn)

其中xn为向量,即为上面的向量x

yn的取值范围为{-1,1}。即正类为1,负类为-1。

线性平分:

若向量w满足,对于所有i,若w*xi+b>0则yi=1,若w*xi+n<0则yi=-1,则称w线性平分x。

负分类:

对于任意i,若满足 yi*(w*xi+b)<0则计为负分类。

通俗地来说也就是分错类。

分类损失/代价函数

L(w,b) = -Σyi*(wi*xi+b) 其中i为所有的负分类

若没有负分类则 L(w,b)=0。

对于感知机算法,我们需要做的是最小化L。

最优化计算

我们取出我们需要最优化的函数 L(w,b) = -Σyi*(wi*xi+b) 其中i为所有的负分类

这东西一般使用随机梯度下降法进行计算。

我们先随机一个向量w0和常数b0。

然后每次随机选择一个负分类x,让它对w和b进行梯度下降。

w=w-α*yi*xi , b=b-α*xi 其中α为学习率。

然后继续操作直到没有负分类点。

继续阅读