第二章 感知机
Posted clearhanhui
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第二章 感知机相关的知识,希望对你有一定的参考价值。
1 感知机
感知机是一种二分类模型,其输入为实例的特征向量,输出为(pm1)。感知机模型是神经网络和支持向量机的基础。
定义:假设输入空间是(X subseteq R^n)输出空间是(Y subseteq {+1,-1})。输入(x in X)表示实例的特征向量,对应于输入空间的点,输出(y in Y)表示手里的类别,由输入空间到输出空间的如下函数:
称为感知机。其中(w)和(b)成为感知机模型参数,(w in R^n)称为权值,(b in R)是偏置,(w cdot x)表示(w)和(x)的内积,(sgn)是符号函数(或(sign)),即:
1.1 感知机的学习策略
定义:给定一个数据集
其中(x_i in X = R^n, y_i in Y={+1,-1}, i=1,2,...,N),如果存在某个超平面(S)
能够将数据集的正实例和负实例点完全正确划分到超平面的两侧,及对所有的(y_i=+1)的实例(i),有(wcdot x_i+b >0),所有的(y_i=-1)的实例(i),有(w cdot x_i+b<0),则称数据集(T)为线性可分的数据集;否则,称数据集(T)线性不可分。感知机的学习目标就是寻找一个超平面,能够将一个线性可分数据集完全分离,为了寻找这样的超平面我们需要寻找一个损失函数。这里通计算每个点到超平面的距离总和
其中(||w||)是(w)的(L_2)范数,(M)是误分类点集合。忽略(frac{1}{||w||})可以得到感知机学习的损失函数(理由参考这里)
1.2 感知机的学习算法步骤
1.2.1 算法一
常规算法。首先推导出损失函数(L(w,b))的梯度是
则选取一个误分类点((x_i, y_i)),对(w),(b)进行更新
其中(eta(0<eta leq 1))是学习率,也称步长。设感知机模型为(f(x)=sgn(wcdot x+b)),(eta(0<eta leq 1))是学习率,也称步长,步骤如下:
- 选取初值(w_0),(b_0);
- 在训练集中选取数据({x_i,y_i});
- 如果(y_i(wcdot x_i+b)<0)
- 转至步骤2,直至没有误分类点,即:
1.2.2 算法一的收敛性
Novikoff定理:设训练数据集(T={(x_1,y_1),(x_2,y_2),..,(x_N,y_N)})是线性可分的,其中(x_iin X=R^n,y_iin Y={+1,-1},i=1,2,...,N),则
- 存在满足条件(||hat{w}_{opt}||=1)的超平面(hat{w}_{opt}cdot hat{x}=w_{opt}cdot x+b_{opt}=0)将训练数据集完全正确分开;且存在(gamma>0),对所有(i=1,2,...,N)
- 令(R=max||hat{x_i}||,1leq ileq N),则感知机算法在训练数据集上的误分类次数(k)满足不等式
证明参考这里
1.2.3 算法二
对偶形式。在算法一中,假设初始值(w_0),(b_0)均为0,对误分类点通过
修改n次,则(w),(b)关于((x_i,y_i))的增量分别是(alpha_iy_ix_i)和(alpha_ib_i),这里(alpha_i=n_ieta),(n_i)表示第(i)个样本被使用的次数。最后学习到的(w),(b)可以表示为
设感知机模型为(f(x)=sgn(sum_{j=1}^Nalpha_jy_jx_j cdot x+b)),其中(alpha={alpha_1,alpha_2,...,alpha_N}^T),步骤如下:
- (alpha=0,b=0);
- 在训练集中选取数据((x_i,y_i));
- 如果(y_i(sum^N_{j=1}a_jy_jx_jcdot x_i+b)leq 0)
- 转至步骤2,直至没有误分类点,即:
对偶形式中训练实例仅以内积的形式出现。为了方便,可以预先将训练集中实例间的内积计算出来并以矩阵的形式存储,,这个矩阵就是所谓的Gram矩阵。
以上是关于第二章 感知机的主要内容,如果未能解决你的问题,请参考以下文章