线性分类Linear Classification

记录一些学习随笔,作为数据挖掘知识的整理


感知器(perceptron)vol.1

我们所学的首个神经网络

类是实现定义好的点所组成的组

分类(classification)可以猜测某一个点所在的类


在学习分类时我们需要解决的2个问题:

1、分类(classifying):判断出点在decision boundary的哪一边

2、learning:找到分隔出两个类的decision boundary。

在learning完成后,classifier可以对未知点做正确分类。


引入超平面(hyperplane)作分隔用。

向量加一个origin point可以表示一个hyperplane P

若点X属于法向量V和超平面上一点C组成的平面,则有V和X-C的点积为0的性质,类似三维平面。


V是超平面的法向量,C是超平面的原点。

对于点到P的符号距离(signed distance)y,可以表示为y=V(X-C)(两个向量的点积)

因此可以用此来将一个点归类,若距离y大于零归为一类,y小于零归为另一类

引入step函数,将y作为参数,当y为负时step函数输出-1,y为正时step函数输出1。再以该输出z作为分类判断依据。


上述就是一个人工神经元(artificial neuron)的例子。xi作为输入,vi作为偏置权值(bias weight),step函数是传递函数(transfer function)的例子,也可以有其他传递函数如linear和tanh等。 


至此,我们已经解决classification的第一个问题classifying。


下面是neuron learning,即找到合理的v0,v1,...,vn。找到法向量和初始点后可构造出hyperplane。


将由hyperplane分类时产生的错误归类称为Error,

t是点X的应该归到的类,取值为1或-1,z是神经元输出。

以E为准我们找到neuron learning的方法:逐步减小error。

1、随机取数据集里的一点

2、计算该点的error

3、调整v0,...,vn使error降低

4、重复上述步骤

我们用E关于vi的偏导数来表示它们之间的变化关系

取一阶偏导数,再将一阶偏导数乘上经验系数(fudge factor,learning rate),则有

得到完整的Delta rule(一种学习法则)

1、在数据集中随机取点

2、计算该点的E

3、计算

4、更新vi

5、重复执行上述步骤,将更多的点进行正确分类


所取的经验系数足够小,算法可以收敛到期望状态,但不唯一。

发布了23 篇原创文章 · 获赞 0 · 访问量 2万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章