第 5 期
张明光等: 基于支持向量机的非线性系统辨识研究
·74·
基 于 支 持 向 量 机 的 非 线 性 系 统 辨 识 研 究 *
( 1. 兰 州理 工大学 电 气与 信息 工程 学院 , 甘肃 兰 州 730050; 2. 上 海交 通大 学 自动化 研究 所, 上 海 200030)
张明 光1 , 阎威武 2, 李战明 1
摘 要: 研 究了 基于 支持 向量 机的 非线 性系 统辨识 方法 并进 行了 仿真 试验 , 用 交叉 验证 的方 法进 行 支 持向 量 机
参数 选择 。有效 的仿 真结 果表 明支 持向 量机 是非线 性系 统辨 识的 一种 非常 有效 的方 法。
关键 词: 支 持向 量机 ; 系统 辨识 ; 非线 性
中图 法分 类号 : TP274
文献 标识码 : A
文章 编号 : 1001- 3695( 2006) 05- 0047- 02
Study of Nonlinear System Identification Based on Support Vector Machine
( 1. College of Electric & Information Engineering, Lanzhou University of Science & Technology, Lanzhou Gansu 730050, China; 2. Institute of
Automation, Shanghai Jiaotong University, Shanghai 200030, China)
ZHANG Ming-guang1, YAN Wei-wu2 , LI Zhan-ming1
Abstract: Nonlinear system identification based on SVM( Support Vator Machine) was discussed and corresponding simula-
tion was implemented. Cross validation method was used to select hyperparameter of SVM model. Good result indicated that
SVM is effective tool for nonlinear system identification.
Key words: Support Vector Machine; System Identification; Nonlinear
非线性系统辨识是控制领域里一个非常重要的研究内容,
也是控制理论能否成功地 应用于 实际的 关键之 一。根据辨 识
的系统模型可以设计各种合适的控制器, 从而使非线性系统工
作在所需要的状态; 同时, 利用 系统模 型也可 以方便 地实现 对
非线性系统的监控。非线性系 统辨识 在信号 处理中 同样具 有
很重要的作用。对线性、非时变和具有不确定参数的对象进行
辨识和自适应控制的研究已取得了很大的进展, 与线性系统的
辨识相比, 非线性系统的 辨识有 很多难 点, 如 模型的 结构和 阶
次很难确定。人工神经网络由 于其可 以逼近 任意类 型的非 线
性, 所以给未知非线性系统的辨识带来了新的方法。然而人工
神经网络存在着收敛速度慢和局部极小值的问题, 且在一般的
神经网络中还没有通用的方法确定隐层单元数目, 存在过拟合
现象。支持向量机是由 Vapnik [ 1] 最初在统计学习理论的基础
上建立起来的一种非常有 力的机 器学习 方法。它是 近几年 发
展起来的一种人工智能技术, 支持向量机较好地解决了传统学
习算法中存在的小样本、非线性、高维数、局部极小点等实际问
题, 具有很强的泛化能力。支持向量机为非线性系统辨识提供
了一个非常有力的工具。
1 支持向量机非线性估计算法
支持向量机主要是基于如下思想: 通过事先选择的非线性
映射将输入向量映射到高维特征空间, 在这个空间中构造最优
决策函数。在构造最优决策函数时, 利用了结构风险最小化原
则, 最后利用原空间的核函数取代了高维特征空间中的点积运
算。
收稿日期: 2004- 10- 01; 修返日期: 2005- 06- 15
基金项目: 国家科技攻关计划资助项目( 2002BA901A28)
1. 1 支持向量机估计算法 [ 2]
设样本为 n 维向量, 某区域的 l 个样本及其值表示为
( x1, y1) , …, ( xl, y l) ∈Rn ×R
首先用一非线性映射 ψ( ·) 把样本从原空间 Rn 映射到特
φ
( xl ) ) 。在 这个高维特 征
征空间 ψ( x) = (
空间中构造最优决策函数 y( x) = w· φ( x) + b, 这样 非线性 估
计函数转换为高维特征空 间中的 线性估 计函数。利 用结构 风
险最小化原则, 寻 找 w, b 就 是 最 小 化 R = 1
2
φ
( x2) , …,
· ‖ w‖ 2 + c ·
φ
( x1) ,
Remp, 其中‖w‖ 2 是控制 模型 的复 杂度, c 是 正规 化参 数, Remp
为误差控制函数, 也即 ε不敏感损失函数。
支持向量机估计算法的优化问题为
minJ( w, ξ) = 1
2
φ
l
w· w + c∑
i = 1
s. t. y i - w· ( xi)
( ξi + ξ*
i
- b≤ε+ ξi
w· ( xi) + b - yi ≤ε+ ξ*
i
φ
)
, ξ*
i
, ξi ≥0 , i =1 , … , l
( 1 )
这个优化问题的解可通过 Lagrang 函数的鞍点给出:
L( w, ξ* , ξ, a, a* , c, β, β* ) =
1
2
l
w·w + c∑
i =1
( ξi + ξ*
i )
l
- ∑
i = 1
ai( ( w·
φ
l
( xi ) ) - yi + b + ε+ ξi ) - ∑
i =1
( βi ξi + β*
i ξ*
i
)
a*
i
( y i - ( w· φ( x i) )
- b + ε+ ξ*
i
)
l
- ∑
i =1
( 2 )
( 3 )
( 4 )
L
ξ i
= 0
l
可得: w = ∑
i =1
= 0,
= 0,
= 0,
L
b
( ai - a*
i
L
ξ *
i
根据优化条件: L
w
φ
l
( x i) , ∑
i =1
c - ai - βi =0 , c - a*
i = 0, i = 1, …, l
i
根据 Mercer’s 条件, 定义核
K( x i, xj) = ( xi) · ( x j)
( ai - a*
i
φ
φ
- β*
)
) =0 ,
由式( 2) 、式( 3) 和式( 4) , 优化问题转换为如下优化问题:
·84·
计算机应用研究
2006 年
maxW( a, a * ) = -
1
2
l
∑
i, j=1
( ai - a*
i
) ( aj - a*
j
l
) K( xi , xj) + ∑
i =1
( ai -
l
a*
i ) y i - ∑
i =1
) ε
( ai - a*
i
s. t. ∑( ai - a*
i ) = 0,
0≤ ai≤c, 0≤a*
非线性估计函数为
( ai - a *
f( x) = ∑
支持 向理
i ≤c, i = 1, …, l
i ) K( xi , x j) + b
1. 2 核函数
( 5)
( 6)
基于支持向量机的系统辨识步骤如下:
( 1) 选取样本, 并对样本数据进行校正和预处理。
( 2) 确定正规化参数集 Sc 和核参数集 Sθ。
( 3) 从这两个参数集中选取参数分别进行组合。
( 4) 利用所选参数进行支持向量机训练。
( 5) 用确认集进行检验, 返回步骤( 3) 直至组合结束。
( 6) 选出最佳参数组合, 建立支持向量机模型。
( 7) 用建立好的模型进行预测。
选择不同的核函数 K( x, xi) 可构造 不同的支持 向量积, 常
3 仿真
用的核包括:
( 1) 生成多项式的核 K( x, xi ) = [ ( x, xi) + 1] d, d 为阶数;
( 2) 生成径向基函数的核 K( x, xi ) = K( |x - xi |) ;
( 3) 生成神经网络的核 K( x, xi ) = S( υ( x, xi) + c) 。
2 基于支持向量机的系统辨识
非线性系统辨识的基本方 法就是 利用已 有的数 据构造 一
个数学模型, 即y = f( u, y) , 使它能够对输出变量进行最佳 估计
和预测。其中 u 为系统已知的输 入量, y 为系统已知 的输出 变
量, y为模型 f 对输 出变量 的最 优估 计。一般 传统 的系 统辨 识
方法是根据系统 的输入 /输出 数据 对 u /y, 利 用 数学 方法 提 取
系统的数 学模 型 f, 所 采用 的训 练原 则为 e = ‖ y - y‖ < ε成
立, 其中 ε为预定的辨识精度。这种传统的训练原则存在着缺
点, 即只对训练误差进行约束, 而没有对模型的结构进行控制。
所以有时最后得到的模型虽然有良好的训练精度, 但泛化能力
却不令人满意, 如神经网络中的过拟合现象。而支持向量机算
法采用了结构风险最小原则, 达到了训练精度和模型复杂度之
间的某种平衡, 在保证训 练精度 的情况 下, 很 好地控 制了模 型
的复杂度, 从而在算法上保证了模型具有良好的泛化性能。
基于支持向量机的系统模型属于黑盒子一类的模型, 所以
只关心对象的输入与输出, 而不 必关心 对象的 具体结 构, 输 入
与输出的映射关系由支持 向量机 来实现。基 于支持 向量机 的
系统辨识过程如图 1 所示。在具体进行系统模型的辨识时, 首
先利用 输入变量 u 和输出变 量 y 的样本对支 持向量机进 行训
练, 然后利用训练好的模型对输出变量进行估计。基于支持向
量机的系统模型如图 2 所示, 其中中间层为支持向量。最后在
非线性系统模型中, 输入变量与输出变量之间的非线性函数关
系由支持向量机 f( x) = ∑
i ) K( xi , xj) + b 来实现。
( ai - a*
支持 向量
u
非线性系数
d-+
y
输入变量
u员
y
图 1 支持向量机系统辨识过程
支持向量机模型
输入变量
un
图2 支持向量机系统模型
支持向量
左
左
输出 y
双输入单输出的非线性静态系统 [ 3] 表示如下:
z = ( 1 + x - 2 + y - 1. 5 ) 2 1≤ x, y≤5
采用支持向量机的方法对系统进行建模。
3. 1 数据处理
首先对变量进行归一化: xi =
xi - min( xi)
max( xi ) - min( x i)
归一化后的属性值xi∈[ 0, 1] 。
核函数选取径向基函数:
‖x - xi‖ 2
K( x, xi ) = exp{
-
)
2σ2
( 7 )
( 8 )
( 9 )
n
其中, ‖x - xi ‖ = ∑
槡
k = 1
( x k - xk
i ) 2 , σ为核宽度。
用测试集的泛化均方根误差( RMSE) 判断建模效果的优劣:
RMSE =
1
槡
n
n
∑
i =1
( y i - yi) 2
( 10 )
式中, n 为校验样本数目, yi , yi 分别为实际值与估计值。
正规化 参 数 集 Sc = { 50, 25, 10, 5, 0. 75, 0. 5, 0. 25, 0. 1,
0. 05, 0. 01} 和 核 参数 Sσ = { 5, 1, 0. 75, 0. 5, 0. 25, 0. 1, 0. 075,
0. 05, 0. 025, 0. 01} 。
3. 2 结果及讨论
图 3 为支持向量机模型的估计值与实际值的比较曲线。
5
0
-5
虚线
估计值
样本值 实线
-
-
5 10 15 20 25 30 35 40 45 50
训练样本
5
0
-5
虚线
估计值
样本值 实线
-
-
5 10 15 20 25 30 35 40 45 50
测试样本
(a)
(着=0.01,滓=0.25,c=0.1)
(b)
图 3 支持向量机模型的估计值与是及分析值的比较曲线
从图 3 可以看出, 支持向量机模型的估计值与实际分析 值
吻合得非常好, 估计结果的 精度很 高, 较好地 跟踪了 系统的 变
化趋势。将试验结 果与 其他 建模方 法, 如 Sugeno 使 用的 基 于
模糊聚类方法 [ 4] 、Gomez-Skarmeta 使用的 EST 算法及多模型 方
法 [ 5] 进行比较, 比较结果如表 1 所示。从 表 1 可 以看出, 支 持
向量机模型表现出了良好的泛化能力。
在进行支持向量机支持向量机建模时有两类参数, 即正规
化参数 c 和核参数( 如生成 多项式的核 的阶数 d) , 它们 是非常
重要的参数。寻找最佳正规化参数和核参数的问题也就是最佳
表 1 非线 性系统 建模误 差
模 型
Suge no
EST1 / EST2 / EST3
支 持 向 量 机
RMSE
0. 564
0. 300 / 0. 282 /0. 266
0 . 104 7
模型选择问题。本文用交叉验证的方 法进行参数的选取, 首先
确定正规化参数集 Sc = {
,
然后从参数集中选取参数分别进行组合, 对支持向量机 进行训
练。用确认集检验, 选出最佳的参数组合作为模型的最终参数。
c 1 , …, cN} 和核参 数 Sθ= { θ1, …, θN}
通过仿真研究可以发现基 于支持 向量机 的非线 性系统 辨
识方法有如下优点: ①只需要非线性系统较少的先验知识。②
不需要确定系统的具体结构, 而且与普通神经网络相比, 其模型
结构是自动确定的, 没有局部极值问题。③由于 ( 下转第 82 页 )
·28·
计算机应用研究
2006 年
一些机制, 允许将 Schema 组件设计在不同的模式文档之中, 由
这些模式文档共 同组 成一 个完 整的 模式。这 此机 制 包括: In-
clude, 允许在模式文档 中包 含具 有 相同 命名 空 间的 另一 个 模
式文档; Redefine, 如果被重定义的模式文档与重定义它的 模式
文档具有相同的目标命名空 间, 则可对 模式文 档进行 重定义;
Import, 允许引用来自其他 命名空 间的组 件。如果需 要设计 的
模式数量很大, 而且需要重用的 Schema 组件也很多, 则可选择
在多个模式文档间进行分层, 具体的示例可参考文献[ 2] 。
以下代码便是 依 据这 种思 想 设 计的 一 个 简单 W3C XML
Schema 模式“bookstore4. xsd”。在 此模 式中, 共 有三 个模 式 文
档: “bookelement. xsd”, “book. xsd”和 “bookStore. xsd”。 其 中
“book. xsd”包含“bookelement. xsd”, 而“bookstore4. xsd”又 包含
“book. xsd”, 形成了一个在多个模式文档间层层嵌套的关系。
( 1) 模式文档 bookelement. xsd
< xsd: schema… >
< xsd: element name = " Title" type = " xsd: string" / >
< xsd: element name = " Author" type = " xsd: string" / >
< xsd: element name = " Data" type = " xsd: string" / >
< xsd: element name = " ISBN" type = " xsd: string" / >
< xsd: element name = " Publisher" type = " xsd: string" / >
< / xsd: schema >
( 2) 模式文档 book. xsd: < xsd: schema… >
< xsd: include schemaLocation = " . \bookelement. xsd" / >
< xsd: element name = " Book" >
< xsd: complexType >
< xsd: sequence >
< xsd: element ref = " Title" / >
< xsd: element ref = " Author" / >
< xsd: element ref = " Date" / >
< xsd: element ref = " ISBN" / >
< xsd: element ref = " Publisher" / >
< / xsd: sequence >
< / xsd: complexType >
< / xsd: element >
< / xsd: schema >
( 3) 模式文档 bookstore4. xsd: < xsd: schema… >
< xsd: include schemaLocation = " . \book. xsd" / >
< xsd: element name = " BookStore" >
< xsd: complexType >
< xsd: sequence >
< xsd: element ref = " Book" maxOccurs = " unbounded" / >
< / xsd: sequence >
< / xsd: complexType >
( 上 接第 48 页 ) 采用了 核函数 来处理 输入输 出之间 的非 线性 关
系, 且核的选择灵活多样, 使之非常适合于非线性系统的辨识。
④基于支持向量机的模型具有非常好的泛化能力。
4 结论
支持向量机是一种新的通用学习机器, 它较好地解决了传
统学习方法中存在的小样本、非线性、高维数、局部极小点等实
际问题, 具有很强的泛化能力。本文研究了基于支持向量机的
非线性系统辨识 方法, 利 用支持 向量机 进行非 线性系 统辨 识。
有效的仿真结果表明支持向量机为非线性系统辨识提供了一种
十分有效的新方法, 在非线性系统辨识中有良好的应用前景。
参考文献:
[ 1]
apnik V N. The Nature of Statistical Learning Theory [ M] . New
York: Springer-Verlag, 1999.
< / xsd: element >
< / xsd: schema >
1. 3 综合结构化程序设计方法和面向对象的设计方法
这种设计方式实际上是综 合了结 构化程 序设计 方法和 面
向对象的设 计 方 法。 在 此 种 设计 方 式 中, 全 局组 件 ( 包 括 元
素、类型等) 和局部组件( 包括元素、类 型等) 的设计 是随意的,
并被随意地组合在一起。此种 方式是 最差的 一种模 式设计 方
法, 应该尽量避免。运用 这种设 计思想 的最典 型的 W3C XML
Schema 设计模式为博洛尼亚 ( Bologna 意大利城市) , 具体内 容
可参考文献[ 1] 。
2 小结
本文从结构化程序设计和 面向对 象程序 设计的 视角共 介
绍了六种 比较典型的 W3C XML Schema 模 式设计方法, 但是,
具体选择哪一种模式设计方法, 则取决于业务的实际需要。如
果模式文档的大小是要考虑的主要问题, 则结构化程序设计方
法比较合适; 如果名字空间 的复杂 性是要 考虑的 主要问 题, 则
结 构化 程 序 设计 方 法 和 “封 装的 Schema 组 件 类 型侧 重 于 类
型”的设计方 法 比 较合 适; 如 果 可 扩 展 性是 要 考 虑 的 主 要 问
题, 则面向对象的设计方法比较合适。
参考文献:
[ 1 ]
edBiquitous. XML Schema Design Guidelines, version 1. 2 [ EB/
OL] . http: / / www. medbiq. org/ technology / tech _ architecture/ xm-
ldesignguidelines. pdf, 2004- 04- 30.
[ 2] Ma Yongheng, Xiong Qianxing, Wu Yefu, et al. Building W3C XMl
Schema for UN / EDIFACT Messages with Multiplayer and Modular
Architecture[ C] . Proceedings of the International Conference on Web
Service, Las Vegas, Nevada, USA: CSREA Press, 2003. 515- 519 .
[ 3] 李浩, 孙 统风, 孟现 飞, 等 . 基 于 面向 对 象 思 想构 建 XML Schema
[ J] . 微机 发展 , 2003, 13( 6 ) : 59- 64.
[ 4] 胡庆 彬, 黄 石 生 . 结 构化 和 面 向 对象 程 序 设 计方 法 的 探 讨 [ J] .
计算机 应用 研究, 1998, 15( 1) 56- 58.
[ 5] 王茹, 宋 瀚涛 . XML 文档 结构 定 义 规 范——— XML Schema[ J] . 计
算机应 用研 究, 2002, 19 ( 1) : 127-129 .
作者简介:
马 永恒 ( 1975 - ) , 男, 湖 北 云梦 人 , 硕 士 生, 研 究 方 向 为 计 算 机 支 撑 技
术 ; 熊 前兴 ( 1943 - ) , 男, 湖 北 洪 湖 人 , 博 士 生 导 师, 研究 方 向 为 计 算 机
支 撑技 术; 杨金娥 ( 1976- ) , 女, 湖北 孝感 人, 助理研 究员 , 硕 士。
[ 2]
Suykens J A K . Nonlinear Modeling and Support Vector Machines
[ C] . Proc . of the 18th IEEE Conference on Instrumentation and
Measurement Technology, 2001 . 287- 294.
[ 4]
[ 3] Nakanishi H, Turksen I B, Sugeno M. A Review and Comparison of
Six Reasoning Method[ J] . Fuzzy Sets and Systems, 1992, 57: 257-
294.
Sugeno M, Yasukawa T. A Fuzzy-Logic-based Approach to Qualita-
tive Modeling[ J] . IEEE Trans. Fuzzy Systems, 1993 , 1 ( 1) : 7- 31 .
[ 5] Gomez-Skarmeta A F, Delgado M, Vila M A. About the Use of Fuzzy
Clustering Techniques for Fuzzy Model Identification[ J] . Fuzzy Sets
and Systems, 1999 , 106: 180-188 .
作者简介:
张 明光( 1971 - ) , 男, 副 教 授, 硕 士 , 主 要 研 究 领 域 为 人 工 智能 、计 算 机
控 制及 其在过 程控 制 中的 应 用 ; 阎 威 武 ( 1972 - ) , 男, 讲 师, 博 士 , 主 要
研 究领 域为人 工智 能、智能控 制、数 据 挖掘 ; 李战 明 ( 1962- ) , 男 , 院长 ,
教 授, 硕士 , 主 要研 究领域 为人 工智能 和智能 控制 。