机器学习——感知机
机器学习整个过程:根据模型H,使用演算法A,在训练样本D上进行训练,得到最好的h,其对应的g就是我们最后需要的机器学习的模型函数,一般g接近与目标函数f。
1.感知机原理
可以用一个简单的例子来阐述:银行需要给客户发信用卡,那符合什么样的条件的客户才能发信用卡,比如说年收入,年龄,工作单位,都会影响信用卡的派发。银行派发信用卡的问题就是一个典型的机器学习问题,我们需要根据客户信息数据集D,通过算法A,在模型H中选择最好的h,得到g,接近目标函数f,发信用卡(+1),不发信用卡(-1)。
感知机就是机器学习中最基本的一个模型(Perceptron),结合刚才银行发信用卡的信息,我们可以把客户的个人信息作为特征向量x,总共有d个特征向量。每个权重为w,w反映出特征对于派发信用卡的影响大小。最后我们将所有特征加权与一个阈值进行相减,结果大于0,则派发信用卡,若小于0,则不派发。感知机模型,就相当于特征向量加权求和与阈值相减若大于0,则输出h(x)=1;反之,h(x)=-1。我们最终的目的就是计算出权值w和阈值。
图中 x 代表特征值,而 w 代表特征值的权重,这里我们将阈值当作w0,引入一个x0=1的量,这样我们就把阈值转换成了权值w0,简化了计算。
同时我们说的感知机,在这个模型上就是一条直线,称之为linear(binary) classifiers。但实际上感知机的线性分类不仅仅局限于二维空间,在三维空间中,线性分类用平面来表示,也就是超平面。只要是形如WTX的线性模型都是属于线性分类。当然线性分类不仅仅只有感知机一种模型,也有后来要学习的逻辑回归。
2.感知机学习算法
那么如何找到一条正确的直线,能够将所有点都分类正确呢,这就是演算法需要做的了,首先我们在平面上选择一条直线,看看哪一点分类错误,开始对第一个错误分类点进行修正,我们可以通过调整直线位置,就可以使错误分类点划分到正确分类位置,不断重复此过程,直到所有的点都分类正确,当然我们可能会遇到调整直线位置,原本分类正确的点现在分类错误了,这就需要我们的数据使线性可分的了。
如何调整权重
调整公式:
W t + 1 ← W t + y n ( t ) X n ( t ) W_t+1←W_t+y_n(t)X_n(t) Wt+1←Wt+yn(t)Xn(t)
判断错误时 s i g n ( w t T x n ( t ) ) sign(w^T_tx_n(t)) sign(wtTxn(t))
X ⃗ \vec{X} X是w这个向量的长度,而 θ \theta θ则是w与x之间的夹角。由于长度不会为负数。因此影响 w T x w^Tx wTx是正还是负主要因子就是 θ \theta θ。 cos ( θ