统计学习 Statistical Learning 高级人工智能 第八章 统计学习 Statistical Learning 史忠植 中国科学院计算技术研究所
内容提要 统计学习方法概述 统计学习问题 学习过程的泛化能力 支持向量机 SVM寻优算法 极限学习机 应用 2017/3/16 Chap8 SL Zhongzhi Shi
统计学习方法概述 统计方法是从事物的外在数量上的表现去推断该事物可能的规律性。科学规律性的东西一般总是隐藏得比较深,最初总是从其数量表现上通过统计分析看出一些线索,然后提出一定的假说或学说,作进一步深入的理论研究。当理论研究 提出一定的结论时,往往还需要在实践中加以验证。就是说,观测一些自然现象或专门安排的实验所得资料,是否与理论相符、在多大的程度上相符、偏离可能是朝哪个方向等等问题,都需要用统计分析的方法处理。 2017/3/16 Chap8 SL Zhongzhi Shi
统计学习方法概述 近百年来,统计学得到极大的发展。我们可用下面的框架粗略地刻划统计学发展的过程: 1900-1920 数据描述 1900-1920 数据描述 1920-1940 统计模型的曙光 1940-1960 数理统计时代 随机模型假设的挑战 松弛结构模型假设 1990-1999 建模复杂的数据结构 2017/3/16 Chap8 SL Zhongzhi Shi
统计学习方法概述 从1960年至1980年间,统计学领域出现了一场革命,要从观测数据对依赖关系进行估计,只要知道未知依赖关系所属的函数集的某些一般的性质就足够了。引导这一革命的是60年代的四项发现: Tikhonov, Ivanov 和 Philips 发现的关于解决不适定问题的正则化原则; Parzen, Rosenblatt 和Chentsov 发现的非参数统计学; Vapnik 和Chervonenkis 发现的在泛函数空间的大数定律,以及它与学习过程的关系; Kolmogorov, Solomonoff 和Chaitin 发现的算法复杂性及其与归纳推理的关系。 这四项发现也成为人们对学习过程研究的重要基础。 2017/3/16 Chap8 SL Zhongzhi Shi
统计学习方法概述 统计学习方法: 传统方法: 统计学在解决机器学习问题中起着基础性的作用。传统的统计学所研究的主要是渐近理论,即当样本趋向于无穷多时的统计性质。统计方法主要考虑测试预想的假设和数据模型拟合。它依赖于显式的基本概率模型。 模糊集 粗糙集 支持向量机 2017/3/16 Chap8 SVM Zhongzhi Shi
统计学习方法概述 统计方法处理过程可以分为三个阶段: (1)搜集数据:采样、实验设计 (2)分析数据:建模、知识发现、可视化 (3)进行推理:预测、分类 常见的统计方法有: 回归分析(多元回归、自回归等) 判别分析(贝叶斯判别、费歇尔判别、非参数判别等) 聚类分析(系统聚类、动态聚类等) 探索性分析(主元分析法、相关分析法等)等。 2017/3/16 Chap8 SVM Zhongzhi Shi
支持向量机 SVM是一种基于统计学习理论的机器学习方法,它是由Boser,Guyon, Vapnik在COLT-92上首次提出,从此迅速发展起来 Vapnik V N. 1995. The Nature of Statistical Learning Theory. Springer-Verlag, New York Vapnik V N. 1998. Statistical Learning Theory. Wiley-Interscience Publication, John Wiley&Sons, Inc 目前已经在许多智能信息获取与处理领域都取得了成功的应用。 COLT(Computational Learning Theory) 2017/3/16 Chap8 SVM Zhongzhi Shi
学习问题研究的四个阶段 Rosenblatt 感知器(60年代)。 学习理论基础的创立(60-70年代) 经验风险最小,算法复杂性 神经网络(80年代) PAC 回到起点(90年代) 多层感知器 2017/3/16 Chap8 SVM Zhongzhi Shi
统计学习理论 统计学习理论是小样本统计估计和预测学习的最佳理论。 假设输出变量Y与输入变量X之间存在某种对应的依赖关系,即一未知概率分布P(X,Y),P(X,Y)反映了某种知识。学习问题可以概括为:根据l个独立同分布( independently drawn and identically distributed )的观测样本train set, (x1,y1),(x2,y2),…,(xn,yn) 2017/3/16 Chap8 SVM Zhongzhi Shi
函数估计模型 学习样本的函数: 产生器 (G) 产生随机向量x Rn, 它们是从固定但未知的概率分布函数F(x)中独立抽取的。 训练器Supervisor (S) 对每个输入向量x 返回一个输出值y,产生输出的根据是同样固定 但未知的条件分布函数 F(y|x) 学习机Learning Machine (LM) 它能够实现一定的函数集f(x,), , 其中是参数的集合。 G S LM x y ^ 关键概念: 学习的问题就是从给定的函数集f(x,), 中选择出能够最好地逼近训练器响应的函数。这种选择是基于训练集的,训练集由根据联合分布F(x,y)=F(x)F(y|x)抽取出的l个独立同分布(i.i.d)观测 (x1,y1), (x2,y2), … ,(xn,yn) 组成 2017/3/16 Chap8 SVM Zhongzhi Shi
期望风险 学习到一个假设H=f(x, w) 作为预测函数,其中w是广义参数.它对F(X,Y)的期望风险R(w)是(即统计学习的实际风险): 其中,{f(x,w)}称作预测函数集,w为函数的广义参数。{f(x,w)}可以表示任何函数集。L(y,f(x,w))为由于用f(x,w)对y进行预测而造成的损失。不同类型的学习问题有不同形式的损失函数。 2017/3/16 Chap8 SVM Zhongzhi Shi
经验风险 而对train set上产生的风险Remp(w)被称为经验风险(学习的训练误差): 首先Remp(w)和R(w)都是w的函数,传统概率论中的定理只说明了(在一定条件下)当样本趋于无穷多时Remp(w)将在概率意义上趋近于R(w),却没有保证使Remp(w)最小的点也能够使R(w) 最小(同步最小)。 2017/3/16 Chap8 SVM Zhongzhi Shi
经验风险 根据统计学习理论中关于函数集的推广性的界的结论,对于两类分类问题中的指示函数集f(x, w)的所有函数(当然也包括使经验风险员小的函数),经验风险Remp(w)和实际风险R(w)之间至少以不下于1-η(0≤η≤1)的概率存在这样的关系: 2017/3/16 Chap8 SVM Zhongzhi Shi
VC维 VC维(Vapnik-Chervonenkis Dimension)。模式识别方法中VC维的直观定义是:对一个指示函数集,如果存在h个样本能够被函数集里的函数按照所有可能的2h种形式分开,则称函数集能够把h个样本打散。函数集的VC维就是它能打散的最大样本数目h。 h是函数H=f(x, w)的VC维, l是样本数. 2017/3/16 Chap8 SVM Zhongzhi Shi
过学习 一般的学习方法(如神经网络)是基于 Remp(w) 最小,满足对已有训练数据的最佳拟和,在理论上可以通过增加算法(如神经网络)的规模使得Remp(w) 不断降低以至为0。 但是,这样使得算法(神经网络)的复杂度增加, VC维h增加,从而φ(h/l)增大,导致实际风险R(w)增加,这就是学习算法的过拟合(Overfitting). 2017/3/16 Chap8 SVM Zhongzhi Shi
过学习Overfitting and underfitting Problem: how rich class of classifications q(x;θ) to use. underfitting good fit overfitting Problem of generalization: a small emprical risk Remp does not imply small true expected risk R. 2017/3/16 Chap8 SVM Zhongzhi Shi
学习理论的四个部分 How fast is the rate of convergence of a learning process? 1. 学习过程的一致性理论 What are (necessary and sufficient) conditions for consistency (convergence of Remp to R) of a learning process based on the ERM Principle? 2.学习过程收敛速度的非渐近理论 How fast is the rate of convergence of a learning process? 3. 控制学习过程的泛化能力理论 How can one control the rate of convergence (the generalization ability) of a learning process? 4. 构造学习算法的理论 How can one construct algorithms that can control the generalization ability? 2017/3/16 Chap8 SVM Zhongzhi Shi
结构风险最小化归纳原则 (SRM) ERM is intended for relatively large samples (large l/h) Large l/h induces a small which decreases the the upper bound on risk Small samples? Small empirical risk doesn’t guarantee anything! …we need to minimise both terms of the RHS of the risk bounds The empirical risk of the chosen An expression depending on the VC dimension of 2017/3/16 Chap8 SVM Zhongzhi Shi
结构风险最小化归纳原则 (SRM) The Structural Risk Minimisation (SRM) Principle Let S = {Q(z,),}. An admissible structure S1S2…Sn…S: For each k, the VC dimension hk of Sk is finite and h1≤h2≤…≤hn≤…≤hS Every Sk is either is non-negative bounded, or satisfies for some (p,k) 2017/3/16 Chap8 SVM Zhongzhi Shi
结构风险最小化归纳原则 (SRM) The SRM Principle continued hn h* S1 S2 Sn The SRM Principle continued For given z1,…,zl and an admissible structure S1S2…Sn… S, SRM chooses function Q(z,lk) minimising Remp in Sk for which the guaranteed risk (risk upper-bound) is minimal Thus manages the unavoidable trade-off of quality of approximation vs. complexity of approximation 2017/3/16 Chap8 SVM Zhongzhi Shi
结构风险最小化归纳原则 (SRM) Confidence interval h1 h* hn h S1 S* Sn 风险界限Bound on the risk 置信范围 Confidence interval 经验风险Empirical risk h1 h* hn h Sn S* S1 S* Sn 2017/3/16 Chap8 SVM Zhongzhi Shi
支持向量机 SVM SVMs are learning systems that use a hyperplane of linear functions in a high dimensional feature space — Kernel function trained with a learning algorithm from optimization theory — Lagrange Implements a learning bias derived from statistical learning theory — Generalisation SVM is a classifier derived from statistical learning theory by Vapnik and Chervonenkis 2017/3/16 Chap8 SVM Zhongzhi Shi
线性分类器 f a yest x f(x,w,b) = sign(w. x - b) denotes +1 denotes -1 How would you classify this data? 2017/3/16 Chap8 SVM Zhongzhi Shi
线性分类器 f a yest x f(x,w,b) = sign(w. x - b) denotes +1 denotes -1 How would you classify this data? 2017/3/16 Chap8 SVM Zhongzhi Shi
线性分类器 f a yest x f(x,w,b) = sign(w. x - b) denotes +1 denotes -1 How would you classify this data? 2017/3/16 Chap8 SVM Zhongzhi Shi Copyright © 2001, 2003, Andrew W. Moore
线性分类器 f a yest x f(x,w,b) = sign(w. x - b) denotes +1 denotes -1 How would you classify this data? 2017/3/16 Chap8 SVM Zhongzhi Shi Copyright © 2001, 2003, Andrew W. Moore
线性分类器 f a yest x f(x,w,b) = sign(w. x - b) denotes +1 denotes -1 How would you classify this data? 2017/3/16 Chap8 SVM Zhongzhi Shi Copyright © 2001, 2003, Andrew W. Moore
a 最大间隔 x f yest f(x,w,b) = sign(w. x - b) denotes +1 denotes -1 The maximum margin linear classifier is the linear classifier with the maximum margin. This is the simplest kind of SVM (Called an LSVM) Linear SVM 2017/3/16 Chap8 SVM Zhongzhi Shi Copyright © 2001, 2003, Andrew W. Moore
分类超平面 Training set: (xi, yi), i=1,2,…N; yi{+1,-1} Hyperplane: wx+b=0 This is fully determined by (w,b) 2017/3/16 Chap8 SVM Zhongzhi Shi
最大间隔 According to a theorem from Learning Theory, from all possible linear decision functions the one that maximises the margin of the training set will minimise the generalisation error. 2017/3/16 Chap8 SVM Zhongzhi Shi
最大间隔原则 w wx+b>0 wx+b<0 wx+b=0 Note1: decision functions (w,b) and (cw, cb) are the same Note2: but margins as measured by the outputs of the function xwx+b are not the same if we take (cw, cb). Definition: geometric margin: the margin given by the canonical decision function, which is when c=1/||w|| Strategy: 1) we need to maximise the geometric margin! (cf result from learning theory) 2) subject to the constraint that training examples are classified correctly w wx+b>0 wx+b<0 wx+b=0 2017/3/16 Chap8 SVM Zhongzhi Shi
最大间隔原则 According to Note1, we can demand the function output for the nearest points to be +1 and –1 on the two sides of the decision function. This removes the scaling freedom. Denoting a nearest positive example x+ and a nearest negative example x-, this is Computing the geometric margin (that has to be maximised): And here are the constraints: 2017/3/16 Chap8 SVM Zhongzhi Shi
最大边界 wx+b>1 wx+b<1 wx+b=1 wx+b=0 wx+b=-1 Given a linearly separable training set (xi, yi), i=1,2,…N; yi{+1,-1} Minimise ||w||2 Subject to This is a quadratic programming problem with linear inequality constraints. There are well known procedures for solving it wx+b>1 wx+b<1 wx+b=1 wx+b=0 wx+b=-1 2017/3/16 Chap8 SVM Zhongzhi Shi
支持向量 The training points that are nearest to the separating function are called support vectors. What is the output of our decision function for these points? 2017/3/16 Chap8 SVM Zhongzhi Shi
分类问题的数学表示 已知:训练集包含 个样本点: 说明: 是输入指标向量,或称输入,或称模式,其分 量称为特征,或属性,或输入指标; 已知:训练集包含 个样本点: 说明: 是输入指标向量,或称输入,或称模式,其分 量称为特征,或属性,或输入指标; 是输出指标,或输出. 问题:对一个新的模式 ,推断它所对应的输出 是1还是-1. 实质:找到一个把 上的点分成两部分的规则. 2维空间上的分类问题) n维空间上的分类问题. 2017/3/16 Chap8 SVM Zhongzhi Shi
分类学习方法 根据给定的训练集 其中, ,寻找 上的一个实 值函数 ,用决策函数 判断任一模式 对应的 值. 其中, ,寻找 上的一个实 值函数 ,用决策函数 判断任一模式 对应的 值. 可见,分类学习机——构造决策函数的方法(算法), 两类分类问题 多类分类问题 线性分类学习机 非线性分类学习机 2017/3/16 Chap8 SVM Zhongzhi Shi
分类学习方法 SVM分类问题大致有三种:线性可分问题、近似线性可分问题、线性不可分问题。 2017/3/16 Chap8 SVM Zhongzhi Shi
最大间隔法的直观导出 考虑 上的线性可分的分类问题. 这里有许多直线 能将两类点正确分开. 如何选取 和 ? 考虑 上的线性可分的分类问题. 这里有许多直线 能将两类点正确分开. 如何选取 和 ? 简单问题:设法方向 已选定,如何选取 ? 解答: 选定 平行直线 极端直线 和 取 和 的中间线为分划直线 如何选取 ? 对应一个 ,有极端直线 ,称 和 之间的距 离为“间隔”.显然应选使“间隔”最大的 。 2017/3/16 Chap8 SVM Zhongzhi Shi
数学语言描述 调整 ,使得 令 ,则两式可以等价写为 与此相应的分划直线表达式: 给定适当的法方向 后,这两条极端直线 可表示为 给定适当的法方向 后,这两条极端直线 可表示为 调整 ,使得 令 ,则两式可以等价写为 与此相应的分划直线表达式: 2017/3/16 Chap8 SVM Zhongzhi Shi
如何计算分划间隔? 考虑2维空间中极端直线之间的间隔情况 求出两条极端直线的距离: 2017/3/16 Chap8 SVM Zhongzhi Shi
极大化“间隔”的思想导致求解下列对变量 和 的最优化问题 分划直线表达式为 “间隔” 为 极大化“间隔”的思想导致求解下列对变量 和 的最优化问题 说明:只要我们求得该问题的最优解 ,从而构造分划 超平面 ,求出决策函数 。 上述方法对一般 上的分类问题也适用. 原始问题 2017/3/16 Chap8 SVM Zhongzhi Shi
Margin = …..(1) H1平面: H2平面: …..(2) 2017/3/16 Chap8 SVM Zhongzhi Shi
求解原始问题 为求解原始问题,根据最优化理论,我们转化为对偶问题来求解 为原始问题中与每个约束条件对应的Lagrange乘子。这是 一个不等式约束条件下的二次函数寻优问题,存在唯一解 2017/3/16 Chap8 SVM Zhongzhi Shi
线性可分问题 根据最优解 计算 ,选择 的一个正分量 , 并据此计算 构造分划超平面 ,决策函数 计算 ,选择 的一个正分量 , 并据此计算 构造分划超平面 ,决策函数 事实上, 的每一个分量 都与一个训练点相对应。而分划超平面仅仅依赖于 不为零的训练点 ,而与对应于 为零的那些训练点无关。 称 不为零的这些训练点的输入 为支持向量(SV) 2017/3/16 Chap8 SVM Zhongzhi Shi
近似线性可分问题 不要求所有训练点都满足约束条件 ,为此 对第 个训练点 引入松弛变量(Slack Variable) , 不要求所有训练点都满足约束条件 ,为此 对第 个训练点 引入松弛变量(Slack Variable) , 把约束条件放松到 。 (即“软化” 约束条件) 体现了训练集被错分的情况,可采用 作 为一种度量来描述错划程度。 两个目标:1. 间隔 尽可能大 2. 错划程度 尽可能小 显然,当 充分大时,样本点 总可以满足以上约束条件。 然而事实上应避免 太大,所以需在目标函数对 进行惩罚 2017/3/16 Chap8 SVM Zhongzhi Shi
近似线性可分问题 因此,引入一个惩罚参数 ,新的目标函数变为: 体现了经验风险,而 则体现了表达能力。所以 因此,引入一个惩罚参数 ,新的目标函数变为: 体现了经验风险,而 则体现了表达能力。所以 惩罚参数 实质上是对经验风险和表达能力匹配一个裁决。 当 时,近似线性可分SVC的原始问题退化为线性可分 SVC的原始问题。 2017/3/16 Chap8 SVM Zhongzhi Shi
(广义)线性支持向量分类机算法 设已知训练集 ,其中 2. 选择适当的惩罚参数 ,构造并求解最优化问题 求得 设已知训练集 ,其中 2. 选择适当的惩罚参数 ,构造并求解最优化问题 求得 3. 计算 ,选择 的一个分量 ,并据此 计算出 4. 构造分划超平面 ,决策函数 2017/3/16 Chap8 SVM Zhongzhi Shi
非线性分类 例子: 2017/3/16 Chap8 SVM Zhongzhi Shi
Non-linear Classification What can we do if the boundary is nonlinear ? Idea: transform the data vectors to a space where the separator is linear 2017/3/16 Chap8 SVM Zhongzhi Shi
Non-linear Classification The transformation many times is made to an infinite dimensional space, usually a function space. Example: x cos(uTx) 2017/3/16 Chap8 SVM Zhongzhi Shi
Non-linear SVMs Transform x (x) The linear algorithm depends only on xxi, hence transformed algorithm depends only on (x)(xi) Use kernel function K(xi,xj) such that K(xi,xj)= (x)(xi) 2017/3/16 Chap8 SVM Zhongzhi Shi
非线性分类 设训练集 ,其中 假定可以用 平面上的二次曲线来分划: 现考虑把2维空间 映射到6维空间的变换 设训练集 ,其中 假定可以用 平面上的二次曲线来分划: 现考虑把2维空间 映射到6维空间的变换 上式可将2维空间上二次曲线映射为6维空间上的一个超平面: 2017/3/16 Chap8 SVM Zhongzhi Shi
非线性分类 可见,只要利用变换,把 所在的2维空间的两类输入点映射到 所在的6维空间,然后在这个6维空间中,使用线性学习机求出分划超平面: 可见,只要利用变换,把 所在的2维空间的两类输入点映射到 所在的6维空间,然后在这个6维空间中,使用线性学习机求出分划超平面: 最后得出原空间中的二次曲线: 怎样求6维空间中的分划超平面?(线性支持向量分类机) 2017/3/16 Chap8 SVM Zhongzhi Shi
非线性分类 需要求解的最优化问题 其中 2017/3/16 Chap8 SVM Zhongzhi Shi
非线性分类 线性分划->非线性分划 代价:2维空间内积->6维空间内积 在求得最优化问题的解 后,得到分划超平面 其中 在求得最优化问题的解 后,得到分划超平面 其中 最后得到决策函数 或 2017/3/16 Chap8 SVM Zhongzhi Shi
非线性分类 为此,引进函数 有 比较(2)和(3),可以发现 这是一个重要的等式,提示6维空间中的内积 可以通过计算 中2维空间中的内积 得到。 2017/3/16 Chap8 SVM Zhongzhi Shi
实现非线性分类的思想 给定训练集后,决策函数仅依赖于 而不需要再考虑非线性变换 如果想用其它的非线性分划办法,则可以考虑选择其它形式 的函数 ,一旦选定了函数,就可以求解最优化问题 得 ,而决策函数 2017/3/16 Chap8 SVM Zhongzhi Shi
实现非线性分类的思想 决策函数 其中 2017/3/16 Chap8 SVM Zhongzhi Shi
核函数(核或正定核)定义 设 是 中的一个子集。称定义在 上的函数 是核函数(正定核或核),如果存在着从 到某一个 空间 的映射 使得 设 是 中的一个子集。称定义在 上的函数 是核函数(正定核或核),如果存在着从 到某一个 空间 的映射 使得 其中 表示 中的内积 2017/3/16 Chap8 SVM Zhongzhi Shi
核函数的选择 目前研究最多的核函数主要有三类: 多项式内核 径向基函数内核RBF Sigmoind内核 得到q 阶多项式分类器 每个基函数中心对应一个支持向量,它们及输出权值由算法自动确定 包含一个隐层的多层感知器,隐层节点数是由算法自动确定 2017/3/16 Chap8 SVM Zhongzhi Shi
多项式内核 The kind of kernel represents the inner product of two vector(point) in a feature space of dimension. For example 2017/3/16 Chap8 SVM Zhongzhi Shi
SVM寻优算法 传统的利用二次型优化技术解决对偶问题时: 需要计算存储核函数矩阵。当样本点数较大时,需要很大的存储空间。例如:当样本点超过4000时,存储核函数矩阵就需要多达128兆内存; SVM在二次型寻优过程中要进行大量的矩阵运算,通常寻优算法占用了算法时间的主要部分。 - Edgar Osuna(Cambridge,MA)等人在IEEE NNSP’97发表了An Improved Training Algorithm for Support Vector Machines ,提出了SVM的分解算法,即将原问题分解为若干个子问题,按照某种迭代策略,通过反复求解子问题,最终使得结果收敛于原问题的最优解。 2017/3/16 Chap8 SVM Zhongzhi Shi
SVM寻优算法 根据子问题的划分和迭代策略的不同,大致分为: 块算法(Chunking Algorithm): 考虑去掉Lagrange乘子等于零的训练样本不会影响原问题的解,采用一部分样本构成工作样本集进行训练,移除其中的非支持向量,并把训练结果对剩余样本进行检验,将不符合KKT条件的样本与本次结果的支持向量合并成为一个新的工作集。然后重新训练,如此重复获得最优结果。 例如:基于这种思路的 算法。 2017/3/16 Chap8 SVM Zhongzhi Shi
SVM寻优算法 块算法(Chunking Algorithm): SMO使用了块与分解技术,而SMO算法则将分解算法思想推向极致,每次迭代仅优化两个点的最小子集,其威力在于两个数据点的优化问题可以获得解析解,从而不需要将二次规划优化算法作为算法一部分。尽管需要更多的迭代才收敛,但每个迭代需要很少的操作,因此算法在整体上的速度有数量级的提高。另外,算法其他的特征是没有矩阵操作,不需要在内存中存储核矩阵。 2017/3/16 Chap8 SVM Zhongzhi Shi
SVM寻优算法 SMO算法每次迭代时,在可行的区域内选择两点,最大化目标函数,从而优化两个点的最小子集。无论何时,当一个乘子被更新时,调整另一个乘子来保证线性约束条件成立,保证解不离开可行区域。每步SMO选择两个参数优化,其他参数固定,可以获得解析解。尽管需要更多的迭代才收敛,但每个迭代需要很少的操作,因此算法在整体上的速度有数量级的提高。另外,算法其他的特征是没有矩阵操作,不需要在内存中存储核矩阵。 2017/3/16 Chap8 SVM Zhongzhi Shi
SVM寻优算法 类别名称 测试样本数 错误分类数 准确度(%) 政治 146 4 97.26 军事 83 100 经济 137 3 100 经济 137 3 97.81 法律 32 2 93.75 农业 106 98.11 体育 90 1 98.89 卫生 34 97.06 工业 87 97.70 科技 111 98.20 交通 40 97.50 生活 91 98.90 宗教 天气 24 91.67 合计 984 21 97.87 2017/3/16 Chap8 SVM Zhongzhi Shi
SVM寻优算法 SMO算法核缓存算法 SMO算法在每次迭代只选择两个样本向量优化目标函数,不需要核矩阵。虽然没有核矩阵操作,但仍需要计算被选向量和训练集中所有样本向量的核函数,计算次数为2n(n为训练集中的样本数)。如果训练集中的样本选取有误,在噪声比较多的情况下,收敛会很慢,迭代次数很多,则核函数的计算量也是非常可观的,SMO 算法的优点就完成失去了。同时,考虑到文本分类的文本向量一般维数比较大,核函数的计算将会非常耗时,尤其在高价多项式核和高斯核等核函数的计算中表现更加明显。 2017/3/16 Chap8 SVM Zhongzhi Shi
SVM寻优算法 SMO算法核缓存算法 在内存中为SMO算法核函数开辟n行m列的核矩阵空间。其中:n为训练集中的样本数;m是为可调节参数,根据实际的内存大小进行调整,每列存放训练集中某个样本向量与训练集中所有样本向量的核函数计算结果列表。在核矩阵列头生成m个节点的双向循环链表队列,每个节点指向核矩阵的列,通过双向循环链表队列实现核矩阵中的核函数列唤入唤出操作。同时,为了实现样本向量的核函数列的快速查找,为每个训练样本向量设计了快速索引列表,通过索引列表判断该训练样本向量的核函数列是否在核矩阵中,并确定在哪一列。 2017/3/16 Chap8 SVM Zhongzhi Shi
SVM寻优算法 选择一个训练集,通过调整核缓冲参数的大小,记录不同核缓存大小情况下训练时间,结果如下表: 核缓存大小(Mb) 训练样本数 核矩阵 迭代次数 训练时间(M:S) 1 5624 5624*23 40726 7:06 10 5624*233 3:50 20 5624*466 2:41 30 5624*699 1:56 40 5624*932 1:29 50 5624*1165 1:23 60 5624*1398 1:08 70 5624*1631 1:05 80 5624*1864 1:04 90 5624*2097 1:07 100 5624*2330 1:37 250 5624*5624 1:12 2017/3/16 Chap8 SVM Zhongzhi Shi
SVM寻优算法 通过引入核缓存机制,有效的改进了SMO算法,提高了文本分类的训练速度。在核缓存机制中采用简单的hash查找算法和队列FILO算法,有效提高了核矩阵查找和唤入唤出操作的效率。设置核矩阵列参数,通过调节列参数,可以灵活的根据系统运行情况调整训练的时间和空间开销,避免因系统空间开销过大使系统运行效率下降,反而影响训练速度。 2017/3/16 Chap8 SVM Zhongzhi Shi
SVM寻优算法 活动向量集选择算法 当训练样本数非常大的时候,如果系统能够提供的核缓冲大小很有限,那么能够同时保存在核缓冲中训练样本的核函数数目在训练样本数中所占比例将非常的小。在训练过程中,训练样本在核缓冲中的核函数命中率将显著下降,导致核缓冲中的核函数被频繁的唤入唤出,而每执行一次唤入唤出操作将引起系统重新计算训练样本的核函数,核缓存的作用被很大程度的削弱了。如果出现这样的情况,要么增加系统的存储空间;要么减少训练样本数,才能提高系统的训练速度。为解决训练样本数多,系统内存空间小的矛盾,本文通过活动向量集选择算法,比较好地解决了这个问题。 2017/3/16 Chap8 SVM Zhongzhi Shi
SVM寻优算法 活动向量集选择算法 算法的主要思想是:定期检查训练样本集,在收敛前预先确定训练样本集中一些边界上的点(alpha=0,或者alpha=C)是否以后不再被启发式选择,或者不再被判定为最有可能违例,如果存在这样的点,将它们从训练样本集中剔除出去,减少参加训练的样本数。该算法基于如下的认识:经过多次迭代后,如果样本的拉格朗日乘子一直为0,该点被当前估计的支持向量集所确定的超平面区分得很开,即使以后支持向量集发生变化,该点也不会是最靠近超平面的点,则可以确定该样本不是支持向量;经过多次迭代后,如果样本的拉格朗日乘子一直为非常大的C常数,即使以后支持向量集发生变化,该点也不会远离超平面,则可以确定该样本是上边界处的支持向量 2017/3/16 Chap8 SVM Zhongzhi Shi
SVM寻优算法 活动向量集选择算法 这样就可以在SMO算法收敛前,提前将边界上的点从训练样本集中剔除,逐渐缩小参加训练的活动样本集,从而减少SMO算法对核缓存空间的要求,提高训练速度。 训练开始前,训练活动集样本初始化为全部训练样本。每经过一定次数的迭代(比如迭代1000次),如果算法还没有收敛,应检查活动集中的向量,检查是否有训练样本可以不参加迭代运算。 检查完当前活动向量集中所有样本后,产生了新的活动向量集。如果新的活动向量集的样本数减少一成以上(含一成),则可以收缩当前活动向量集,用新的活动向量集替换当前活动向量集。当活动向量集的样本数减少到一定的程度,对核缓存空间的要求不是很大的时候,继续减少训练样本对训练速度的提高就非常有限了,这时就没有必要再减少训练样本了。 2017/3/16 Chap8 SVM Zhongzhi Shi
SVM寻优算法 2. 固定工作样本集 (Osuna et al.): 将工作样本集的大小固定在算法速度可以容忍的限度内,迭代过程选择一种合适的换入换出策略,将剩余样本中的一部分与工作样本集中的样本进行等量交换,即使支持向量的个数超过工作样本集的大小,也不改变工作样本集的规模,而只对支持向量中的一部分进行优化。 例如: 算法 2017/3/16 Chap8 SVM Zhongzhi Shi
极限学习机 单隐层的前馈神经网络(Single-hidden Layer Feedforward Neural networks, SLFN)因为结构简单并且具有一致的逼近能力,成为了ANN模型中研究的热点。传统的SLFN普遍采用梯度下降算法来训练,其收敛速度慢,网络中所有的参数都要经过多次迭代求得,通常花费时间要几小时几天甚至更长,有时甚至还会陷入局部最优解。为了解决以上问题,黄广斌(G.B.Huang)等人于2004年提出了一种新型的SLFN算法,被称为极限学习机(Extreme Learning Machine,ELM)。该算法不依赖于输入权值和隐单元偏置的选择,可以进行随机赋值,然后通过合适的激活函数得到隐含层的输出矩阵,网络的输出权值可由解析直接求得。整个算法中所有参数的确定无需迭代,无需微调,因此与传统的训练方法如BP算法相比,其学习速度更快,泛化性能更好。 2017/3/16 Chap8 SVM Zhongzhi Shi
泛化SLFN(single-hidden layer feedforward network) 输出函数: 隐含层输出函数: 输出函数不必一定是: Sigmoid: RBF:
新的学习理论 学习不伴随递归调解:给定任意一个分段连续函数g,如果连续目标函数f(x)能被近似通过SLFN中的隐藏节点,但是SLFN中隐藏节点的值不需要被调解; 所有隐藏节点的值被随机产生不需要对训练的数据有任何了解,这就是,任何连续目标函数f和任何随机产生的序列 只要 能满足最小化:
统一学习平台 适合任何连续分段函数 对于N个任意不同的样本 在SLFN中有L个隐藏节点和输出函数 并且SLFN被数学建模为: :隐藏节点参数 :链接隐含层节点 与输出层节点的权值
极限学习机 数学建模:H是神经网络的隐含层输出矩阵,H的第i列是第i个隐含节点的输出 其中:
极限学习机 学习三步骤: 假设一个给定的训练集 隐藏节点输出函数 ,隐藏节点数目L 随机产生隐藏节点参数: 计算隐藏层输出矩阵H 计算输出权值 其中:
极限学习机 特性: 需要的数学简单 学习速度快 隐藏节点 和 不仅独立于训练数据也独立于彼此 隐藏节点 和 不仅独立于训练数据也独立于彼此 不像那些在产生隐含节点之前一定要先观察训练数据,ELM可以在观察训练数据之前产生隐含节点 ELM适合所有有界分段连续的激活函数 ELM看起来比SVM和神经网络更简单
极限学习机变种 输出函数: 1 Ridge regression theory based on ELM 在计算输出权值 时,加入 到 在计算输出权值 时,加入 到 的对角线中: 或者
极限学习机变种 2 Kernel based on ELM 隐含层输出矩阵(h(x))有时对使用者未知,定义了kernel 矩阵:
SVM applications Pattern recognition Features: words counts DNA array expression data analysis Features: expr. levels in diff. conditions Protein classification Features: AA composition 2017/3/16 Chap8 SVM Zhongzhi Shi
Handwritten Digits Recognition 2017/3/16 Chap8 SVM Zhongzhi Shi
Applying SVMs to Face Detection The SVM face-detection system 1. Rescale the input image several times 2. Cut 19x19 window patterns out of the scaled image 4. Classify the pattern using the SVM 5. If the class corresponds to a face, draw a rectangle around the face in the output image. 3. Preprocess the window using masking, light correction and histogram equalization 2017/3/16 Chap8 SVM Zhongzhi Shi
Applying SVMs to Face Detection Experimental results on static images Set A: 313 high-quality, same number of faces Set B: 23 mixed quality, total of 155 faces 2017/3/16 Chap8 SVM Zhongzhi Shi
Applying SVMs to Face Detection Extension to a real-time system Face Detection on the PC-based Color Real Time System An example of the skin detection module implemented using SVMs 2017/3/16 Chap8 SVM Zhongzhi Shi
References Vladimir Vapnik. The Nature of Statistical Learning Theory, Springer, 1995 Andrew W. Moore. cmsc726: SVMs. http://www.cs.cmu.edu/~awm/tutorials C. Burges. A tutorial on support vector machines for pattern recognition. Data Mining and Knowledge Discovery, 2(2):955-974, 1998. http://citeseer.nj.nec.com/burges98tutorial.html Vladimir Vapnik. Statistical Learning Theory. Wiley-Interscience; 1998 Thorsten Joachims (joachims_01a): A Statistical Learning Model of Text Classification for Support Vector Machines Ben Rubinstein. Statistical Learning Theory. Dept. Computer Science & Software Engineering, University of Melbourne; and Division of Genetics & Bioinformatics, Walter & Eliza Hall Institute 2017/3/16 Chap8 SVM Zhongzhi Shi
Questions?! Thank You www.intsci.ac.cn/shizz/ 2017/3/16 Chap8 SVM Zhongzhi Shi