zoukankan      html  css  js  c++  java
  • 第二章-感知机

    看完上一章的概要学习后,开始就进入第二章的内容——感知机。对于统计学习方法而言,包含三要素,模型+策略+算法,接下来就从以下三个要素全面了解感知机。

    感知机模型

    简单来说,感知机(Perceptron)针对的是二分类的线性模型,其输入为实例的特征向量,输出为实例的类别,取+1、-1。利用数学语言抽象模型可以这样描述:

    [假设输入空间(特征空间)是chi in R^n,输出空间是y={+1,-1},输入xin chi表示实例的特征向量,\ 对应于输入空间的点;输出yin Y表示实例的类别。由输入空间到输出空间满足如下函数:\ f(x)= sign(w cdot x + b )\ 其中w是权重参数,b是偏置项,sign是符号函数,即:\ sign(x) = left{ egin{aligned} 1 & , & x geq 0 \ -1 & , & x < 0 end{aligned} ight. ]

    感知机模型属于判别模型,旨在求出将训练数据进行线性划分的分离超平面。如图所示:

    感知机学习策略

    在对于一个训练数据集是线性可分的情况下,感知机学习的目标就是在于找到一个可以将正实例点和负实例点完全正确分隔开的超平面。既然要明确这样一个分离超平面,那么就需要确定一个感知机模型,也就是需要确定一个学习策略,即定义损失函数并将损失函数最小化。

    对于常见的损失函数就是一个自然选择是误分类点的总数,但是这样的一个损失函数并不是连续可导函数,不容易优化,那么另一个选择就是误分类点到超平面的总距离。即可抽象描述为:

    [输入空间R_n中任意一点x_0到超平面S的距离可表示为: frac{|w cdot x + b|}{||w||},其中||w||表示为w的L2范数 ]

    其次,对于误分类点(x,y)来说,-y(w x+b)>0成立。

    [ecause w cdot x + b > 0时,y_i=1 \ 又ecause w cdot x + b > 0时,y_i=-1 \ herefore 总距离为:- frac{1}{||w||}sum_{X_i in M} y_i(w cdot x + b) ]

    由此,可这样描述为:

    [给定数据集T={(X_1,Y_1),(X_2,Y_2)...(X_N,Y_N)},其中,x_i in chi=R^n,y_i in Y={+1,-1},i=1,2,...N \ 损失函数定义为:L(w,b)=-sum_{X_i in M} y_i(w cdot x + b),\其中M时误分类点的集合 ]

    感知机算法

    感知机的学习问题转化为求解损失函数的的最优化问题,其最优化的方向是随机梯度下降法(Stochastic Gradient Descent)。(每次迭代更新的是两个向量)

    原始形式

    [输入:训练数据集T={(X_1,Y_1),(X_2,Y_2)...(X_N,Y_N)},\ 其中,x_i in chi=R^n,y_i in Y={+1,-1},i=1,2,...N \;学习率eta(0<eta leq 1);\ 输出:w,b;感知机模型f(x)=sign(w cdot x + b)\ (1) 选取初值w_0,b_0;\ (2) 在训练集中选取数据(x_i,y_i)\ (3) 如果y_i(w cdot x + b) leq 0 \ w leftarrow w + eta y_ix_i\ b leftarrow b+eta y_i\ (4)转至(2),直至训练集中没有误分类点 ]

    对偶形式

    对偶形式的基本思想是将w和b表示为实例x和标记y的线性组合形式,通过求解其系数而求得w和b,从而逐步更新w和b。那么w和b关于(x,y)的增量分别描述为:

    [w = sum_{i=1}^N alpha_iy_ix_i\ b=sum_{i=1}^N alpha_iy_i \ 其中,alpha_i=n_ieta.实例点更新越多,表示距离分离超平面越近,也就是比较难分类。 ]

    以下可以对照着原始形式来描述对偶形式:

    [输入:训练数据集T={(X_1,Y_1),(X_2,Y_2)...(X_N,Y_N)},\ 其中,x_i in chi=R^n,y_i in Y={+1,-1},i=1,2,...N \;学习率eta(0<eta leq 1);\ 输出:w,b;感知机模型f(x)=sign(sum_{i=1}^N alpha_iy_ix_i cdot x + b)\ 其中alpha =(alpha_1,alpha_2,alpha_3,...alpha_N)\ (1) alpha leftarrow 0,b leftarrow 0;\ (2) 在训练集中选取数据(x_i,y_i)\ (3) 如果y_i(sum_{i=1}^N alpha_iy_ix_i cdot x_i + b) leq 0\ alpha_i leftarrow alpha_i + eta b leftarrow + eta y_i (4) 转至(2)直至没有误分类点 ]

    其实对偶形式中训练实例仅以内积的形式出现,为了方便,其实可以将训练集中的实例间的内积先计算出来以矩阵形式进行存储,这个矩阵即是所谓的Gram矩阵,即:

    [G = [x_i cdot x_j]_{N imes N} ]

    回过头来对比原始形式,可以看出原始形式实质每次更新的是两个向量,其计算量比较大,但是对偶形式由于可以先将实例间的内积先计算出来进行存储,因此对偶形式每次迭代更新的就是数据,相比较而言,更新代价小。

    Novikoff定理的数学推导

    [定理描述: 设训练集T={(x_1,y_1),(x_2,y_2)...(x_N,y_N)}是线性可分的,\ 其中x_i in chi=R^n,y_i in Y={+1,-1},i=1,2,3...N,则:\ (1) 存在满足条件||hat{w}||=1的超平面hat{w}_{opt} cdot hat{x}=w_{opt} cdot x+b_{opt}=0将训练数据集完全正确分开;且存在gamma>0,\ 对所有i=1,2...N满足:\ y_i(hat{w}_{opt} cdot hat{x})=y_i(w_{opt} cdot x+b_{opt}) geq gamma\ (2)令R=max||hat{x_i}||,则感知机在训练集的误分类次数k满足不等式:\ k leq (frac{R}{gamma})^2 ]

    证明

    为了便于描述推导过程,将偏置b并入权重向量w中,同样也将输入向量作为扩充,加进常数1

    [基于以上的提示,可得到hat{w}=(w^T,b)^T;hat{x}=(x^T,1)^T;hat{x} in R^{n+1};hat{w} in R^{n+1} \ 1.证明(1): 由于训练集是线性可分的,因此存在超平面将数据集完全正确分开,\ 取超平面hat{w}_{opt} cdot hat{x}=w_{opt} cdot x+b_{opt}=0,使得||hat(w)_{opt}||=1.\ 对有限的i=1,2...N,均有\ y_i(hat{w}_{opt} cdot hat{x})=y_i(w_{opt} cdot x+b_{opt}) geq 0 \ 所以存在,gamma = min(y_i(w_{opt} cdot x+b_{opt})),\ 使得y_i(hat{w}_{opt} cdot hat{x})=y_i(w_{opt} cdot x+b_{opt}) geq gamma \ 2.证明(2): 感知机算法从hat{w}=1开始,如果实例被误分类,则更新权重。\ 令hat{w_{k-1}}是第k个误分类实例之前的扩充权重向量,即:\ hat{w_{k-1}}=(w_{k-1}^T,b_{k-1})^T \ 那么存在:\ y_i(hat{w}_{k-1} cdot hat{x})=y_i(w_{k-1} cdot x+b_{k-1}) leq 0 \ 若(x_i,y_i)是被hat{w_{k-1}}=(w_{k-1}^T,b_{k-1})^T误分类的数据,那么w和b的更新是:\ w_{k-1} leftarrow w_{k-1} + eta y_ix_i\ b_{k-1} leftarrow b_{k-1} +eta y_i\ 即:\ hat{w_{k}} = hat{w_{k-1}} + eta y_ihat{x_i} \ herefore hat{w_{k}} cdot hat{w_{opt}} \ = (hat{w_{k-1}} + eta y_ihat{x_i}) cdot hat{w_{opt}} \ = hat{w_{k-1}} cdot hat{w_{opt}} + eta y_i hat{w_{opt}} cdot hat{x_i} \ geq hat{w_{k-1}} cdot hat{w_{opt}} + etagamma \ geq hat{w_{k-2}} cdot hat{w_{opt}} + 2etagamma \ geq hat{w_{k-3}} cdot hat{w_{opt}} + 3etagamma ... geq ketagamma \ 又ecause ||hat{w_k}||^2 \ = (hat{w_{k-1}} + eta y_ihat{x_i})^2 \ = ||hat{w_{k-1}}||^2 + 2eta y_ihat{w_{k-1}} cdot hat{x_i} + eta^2||hat{x_i}||^2 \ leq ||hat{w_{k-1}}||^2 + eta^2||hat{x_i}||^2 \ leq ||hat{w_{k-1}}||^2 + eta^2R^2 \ leq ||hat{w_{k-2}}||^2 + 2eta^2R^2 ... leq keta^2R^2 \ herefore 由不等式可得: \ keta gamma leq hat{w_{k}} cdot hat{w_{opt}} leq ||hat{w_{k}}||hat{w_{opt}} leq sqrt{k}eta R \ herefore k^2 gamma^2 leq kR^2 \ herefore 既可得证:k leq (frac{R}{gamma})^2 ]

    思考

    1.感知机模型的假设空间是什么?模型的复杂度体现在哪儿?

    感知机是一种线性分类模型,属于判别模型。其假设空间实在定义特征空间中所有线性分类模型,也就是wx+b;

    其模型复杂度体现在所有实例的特征数量,也就是特征维度上。

  • 相关阅读:
    存储过程学习笔记
    重新学习struts
    ANT打包J2EE项目war包
    08 | 递归:如何用三行代码找到“最终推荐人”?
    基于Flask 实现Web微信登陆
    基于轮询实现实时的在线投票系统
    Flask 微信公众号开发
    微信公众号开发
    爬虫之正则案例
    爬虫之正则表达式的应用爬取
  • 原文地址:https://www.cnblogs.com/cecilia-2019/p/11328010.html
Copyright © 2011-2022 走看看