神经网络稳定性的交叉验证模型
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Computer Engineering and Applications 计算机工程与应用
2010,46(34) 43
神经网络稳定性的交叉验证模型
邱龙金 1,贺昌政 2 QIU Long-jin1,HE Chang-zheng2
1.四川大学 计算机学院,成都 610065 2.四川大学 工商管理学院,成都 610065 1.College of Computer Science,Sichuan University,Chengdu 610065,China 2.College of Business Administration,Sichuan University,Chengdu 610065,China E-mail:jinlong2204@yahoo.cn
该文使用 2 折交叉验证,即将训练集 A(X,Y)随机地划分 为两个相等大小的子集 B(X,Y)和 C(X,Y),在这两个子集上 分别进行学习训练,可以得到两个不同的模型 net1和 net2。最 后将与 A(X,Y)服从相同分布的测试数据集 D(X,Y)中的 X 输 入 net1和 net2,得到两个输出 Y1和 Y2,通过计算两个模型的输出 结果的相似度来衡量模型的稳定性,并通过对 Y 的比较来预 测精度。
表 2 UCI 数据集验证结果
数据集 混凝土抗压数据集
汽车省油数据集 电脑硬件数据集
平均
BP 0.698 90 0.679 00 0.693 50 0.690 46
GRNN 0.707 00 0.706 60 0.707 00 0.706 86
RBF 0.701 50 0.703 60 0.704 30 0.703 13
配置网络参数,如网络层数,各层神经元 数,传递函数,训练函数和学习函数等
初始化网络,如权重矩阵和偏差矩阵
输入训练数据集 A(X,Y)进行网络学习过程
是
If 误差>误差限 and
训练次数<最大训练次数
否
输入测试数据集 B(X,Y)
否
测试其预测精度是否达标
是 输出 net
图 3 网络训练算法流程图
2.2.3 计算相似度和稳定值
开始
输入 A(X,Y),令 t 等于 A 的行数, 定义数组 randun(t/2),i=0
随机产生 1 到 t 间的整数 r
是 r 是否已在 randun 数组中
否 Randum[i]=r,i=i+1
否 i<t/2 是
j=2,no1=0,no2=0
是
否 j 是否已在 randum 数组中
2.2.2 网络训练 神经网络的训练程序的好坏直接影响了训练后得到的网
QIU Long-jin,HE Chang-zheng.Cross validation model for neural network stability.Computer Engineering and Applications,2010,46(34):43-45.
Abstract:According to cross-validation theory by Skutin,the cross-validation model of neural network stability is proposed. Four wildly used and representative neural networks are adopted as the subjects investigated and retrieved the rank of the stabilities of BP,RBF,GRNN,ELM,using the experiment results based on the random and UCI data sets.Finally,and the ranking is tested by the statistical method. Key words:neural network;stability;cross-validation;statistical test
2.2 交叉验证模型算法描述
该文的核心是在交叉验证算法的基础上,提出神经网络 的二折交叉验证模型,并通过对大量数据集进行训练,然后比 较不同神经网络的预测精度和稳定性,从统计学的角度得出 不同神经网络的稳定性排序。所以,算法的正确性成了数据
基金项目:国家自然科学基金(the National Natural Science Foundation of China under Grant No.70911130228,No.70771067)。 作者简介:邱龙金(1986-),男,硕士,主要研究方向:信息安全、数据挖掘;贺昌政(1947-),男,教授,博导,主要研究领域:数据挖掘。 收稿日期:2010-03-12 修回日期:2010-06-17
3.2 UCI 数据集验证
本文选择一些数据样本比较大的 UCI 标准数据集作为样 本,测试 3.1 节得到的稳定性排序结果在 UCI 数据集上是否稳 定,即验证随机数据集和 UCI 数据集是否得到相似的稳定性 排序结果。本节选用 3 个数据集进行实验,在每个数据集上 每种神经网络计算 20 次取均值。在建立模型时需要先对所 有样本数据进行对数化处理 (x' = ln(x)) ,以消除量纲的影响。 实验结果见表 2。
输出 Y1,Y2
计算 Y1、Y2相似度 simi
B[no1++]=A[j++]
C[no2++]=A[j++]
J<t/2
否
是
输出 B(X,Y)、C(X,Y)
结束 图 2 随机划分数据集算法流程图
对 simi 进行标准化处理
稳定性度量值 sta 为 simi 平均值
输出 sta 图 4 计算相似度和稳定值流程图
中 Y 的误差平方和,
否
判断是否达到精度要求
是
计算 Y1、Y2相似度,从而计算出该 模型的一次稳定性度量值
程序结束
图 1 神经网络交叉验证算法总流程图
2.2.1 随机划分数据集 2 折交叉验证算法首要的问题是将服从相同分布的数据
集随机划分为训练集和测试集,训练集用于训练神经网络得 到神经元相互连接权重,测试集用于验证基于同一训练数据 集的网络模型之间的相似度,从而计算稳定性度量值。算法 描述见图 2。
44
2010,46(34)
Computer Engineering and Applications 计算机工程与应用
实验成功与否的关键。图 1 给出了神经网络交叉验证的算法 流程,并在后面小节中给出了关键子程序的算法描述。
开始
输入服从相同分布的数据集 A(X,Y) 和 D(X,Y),分别作为训练数据集和测
ELM 0.408 280 0.407 710 0.408 110 0.408 210 0.408 078
从表 1 可以很明显地看出,在不同噪声水平下得到了几 乎 完 全 相 同 的 稳 定 性 度 量 值 优 劣 排 序 ,从 高 到 低 依 次 是 ELM、GRNN、RBF、BP,说明神经网络之间的稳定性横向比较 是可行的并且排序结果本身也具有稳定性,不受噪声水平影响。
网络训练得到的网络模型 net1、net2是否相似,是通过判断 这两个模型对相同输入(即测试数据集 C)得到的输出结果
Y1、Y2是否相似来度量的,本文采用 Tanimoto[5]距离 d 来度量两
个输出向量 Y1、Y2的相似度,任意 Y1、Y2其距离 d 定义如下:
å d
=
1 n+
n
1i=1
(Y1(i) - Y2(i))2
(1)
其中 n 为向量的长度,相似度定义如下:
simi
=
1 d
(d! =
0)
(2)
simi = 1(d = 0)
(3)
根据经验估计分类学习算法的稳定性计算的定义,稳定
性度量值的计算是对一组相似度的简单取平均值。算法描述
见图 4。
开始
将测试集 D(X,Y)分别输入训 练好的网络 net1、net2中,得到
表 1 随机数据集实验结果
噪声 0 1% 5%
10% 平均
BP 0.380 34 0.390 54 0.390 41 0.391 98 0.388 31
GRNN 0.406 295 0.404 775 0.406 420 0.405 020 0.405 628
RBF 0.402 06 0.404 13 0.403 05 0.402 65 0.402 97
摘 要:根据 Skutin 提出的交叉验证理论,针对神经网络学习算法提出了神经网络稳定性的交叉验证模型,并选择 4 种应用广泛、 具有代表性的神经网络作为研究对象,通过随机数据集和 UCI 数据集上的数据实验结果得出了 BP、RBF、GRNN、ELM 等 4 种神 经网络的稳定性排序,并用统计检验方法对排序结果进行了检验。 关键词:神经网络;稳定性;交叉验证;统计检验 DOI:10.3778/j.issn.1002-8331.2010.34.013 文章编号:1002-8331(2010)34-0043-03 文献标识码:A 中图分类号:TP183
1 引言
神经网络由于其固有的自学习、自适应、自组织和大规模 的并行处理能力,已经在模式识别、信号处理、系统辨识、智能 控制、优化计算和数据预测等领域得到了广泛的应用,而神经 网络稳定性在很大程度上决定了其应用的广泛性[1]。现在基 于稳定性理论基础之上的神经网络稳定性理论研究和实证分 析的文献和教材都很多,然而真正面向应用的研究成果相对 少见,且多通过严谨的数学推导来证明神经网络中某一种模 型的稳定性是否存在及其存在条件,更没有对各种不同神经 网络模型之间的稳定性做出比较。在神经网络应用中,稳定 性是非常重要的,如何比较各种不同神经网络的稳定性是选 择神经网络必须考虑的一个重要问题。该文提出了神经网络 稳定性的交叉验证模型,用于计算神经网络的稳定性度量值 和比较各种不同神经网络的稳定性差异,为实际应用中神经 网络的选择提供了客观的稳定性比较方法。
邱龙金,贺昌政:神经网络稳定性的交叉验证模型
2010,46(34) 45
3 数据实验 3.1 随机数据集
随机数据集是指随机产生的服从相同模型的数据集,使 用一个具有普遍性的多元多次方程 Y=F(X),然后随机产生一 个输入矩阵 X 得到一个输出向量 Y,将 A(X,Y)进行随机划分 作为训练数据集 B 和测试数据集 C,以验证多种神经网络模型 在该数据集上的稳定值的差异,初步得到在具有普遍性的随 机数据集上各种神经网络模型的稳定性度量值排序。本文使 用二元二次方程 Y = a1 - a2 x1 + a3 x2 + a4 x12 - a5 x1*x2 + a*z 作为 数据模型,其中系数 a1到 a5由随机数产生,a 代表噪声水平,z 为[-0.5,0.5]之间的随机数,代表随机干扰项。X 为随机产生 的服从正态分布的 2×200 输入矩阵,Y 为由模型 Y=F(X)产生 的 1×200 输出矩阵。程序运行 20 次取均值,实验结果见表 1。
络的拟合精度和预测精度,其效果取决于网络的结构和参数 配置,如网络的层数、每层神经元个数、各层传递函数、网络训 练函数和学习函数、训练次数和误差限等,而参数的配置并不 存在绝对最优的组合,需要在经验的基础上反复尝试直到拟 合误差小到可以接受的水平,算法描述见图 3。
创建网络 ne(t BP,Gቤተ መጻሕፍቲ ባይዱNN,RBF,ELM)
试数据集
将数据集 A(X,Y)随机划分为大小相 等的数据集 B(X,Y)和 C(X,Y)
分别以 B(X,Y)和 C(X,Y)作为训练数 据集训练得到网络模型 net1和 net2
将测试数据集 D(X,Y)中 X 分别输入 网络模型 net1和 net2中得到两个输出
矩阵 Y1和 Y2
分别计算 Y1、Y2同 D(X,Y)
2 神经网络稳定性交叉验证模型 2.1 算法的稳定性
神经网络的学习是基于有限的训练数据设计有效的学习
算法,寻找输入与输出之间的依赖关系。学习算法中非常重 要的问题是如何估计算法的准确性和稳定性。L.Derroye 和 T. Wagner[2]提出了独立于 VC 维理论的学习算法稳定性定义:一 个学习算法在一个训练集 S 上稳定指的是如果任意改变训练 集 S 中一个点,算法的输出仅有一个微小的改变。该文根据 Skutin[3]提出的交叉验证稳定性定义提出了计算神经网络稳定 性度量值的算法。
2010,46(34) 43
神经网络稳定性的交叉验证模型
邱龙金 1,贺昌政 2 QIU Long-jin1,HE Chang-zheng2
1.四川大学 计算机学院,成都 610065 2.四川大学 工商管理学院,成都 610065 1.College of Computer Science,Sichuan University,Chengdu 610065,China 2.College of Business Administration,Sichuan University,Chengdu 610065,China E-mail:jinlong2204@yahoo.cn
该文使用 2 折交叉验证,即将训练集 A(X,Y)随机地划分 为两个相等大小的子集 B(X,Y)和 C(X,Y),在这两个子集上 分别进行学习训练,可以得到两个不同的模型 net1和 net2。最 后将与 A(X,Y)服从相同分布的测试数据集 D(X,Y)中的 X 输 入 net1和 net2,得到两个输出 Y1和 Y2,通过计算两个模型的输出 结果的相似度来衡量模型的稳定性,并通过对 Y 的比较来预 测精度。
表 2 UCI 数据集验证结果
数据集 混凝土抗压数据集
汽车省油数据集 电脑硬件数据集
平均
BP 0.698 90 0.679 00 0.693 50 0.690 46
GRNN 0.707 00 0.706 60 0.707 00 0.706 86
RBF 0.701 50 0.703 60 0.704 30 0.703 13
配置网络参数,如网络层数,各层神经元 数,传递函数,训练函数和学习函数等
初始化网络,如权重矩阵和偏差矩阵
输入训练数据集 A(X,Y)进行网络学习过程
是
If 误差>误差限 and
训练次数<最大训练次数
否
输入测试数据集 B(X,Y)
否
测试其预测精度是否达标
是 输出 net
图 3 网络训练算法流程图
2.2.3 计算相似度和稳定值
开始
输入 A(X,Y),令 t 等于 A 的行数, 定义数组 randun(t/2),i=0
随机产生 1 到 t 间的整数 r
是 r 是否已在 randun 数组中
否 Randum[i]=r,i=i+1
否 i<t/2 是
j=2,no1=0,no2=0
是
否 j 是否已在 randum 数组中
2.2.2 网络训练 神经网络的训练程序的好坏直接影响了训练后得到的网
QIU Long-jin,HE Chang-zheng.Cross validation model for neural network stability.Computer Engineering and Applications,2010,46(34):43-45.
Abstract:According to cross-validation theory by Skutin,the cross-validation model of neural network stability is proposed. Four wildly used and representative neural networks are adopted as the subjects investigated and retrieved the rank of the stabilities of BP,RBF,GRNN,ELM,using the experiment results based on the random and UCI data sets.Finally,and the ranking is tested by the statistical method. Key words:neural network;stability;cross-validation;statistical test
2.2 交叉验证模型算法描述
该文的核心是在交叉验证算法的基础上,提出神经网络 的二折交叉验证模型,并通过对大量数据集进行训练,然后比 较不同神经网络的预测精度和稳定性,从统计学的角度得出 不同神经网络的稳定性排序。所以,算法的正确性成了数据
基金项目:国家自然科学基金(the National Natural Science Foundation of China under Grant No.70911130228,No.70771067)。 作者简介:邱龙金(1986-),男,硕士,主要研究方向:信息安全、数据挖掘;贺昌政(1947-),男,教授,博导,主要研究领域:数据挖掘。 收稿日期:2010-03-12 修回日期:2010-06-17
3.2 UCI 数据集验证
本文选择一些数据样本比较大的 UCI 标准数据集作为样 本,测试 3.1 节得到的稳定性排序结果在 UCI 数据集上是否稳 定,即验证随机数据集和 UCI 数据集是否得到相似的稳定性 排序结果。本节选用 3 个数据集进行实验,在每个数据集上 每种神经网络计算 20 次取均值。在建立模型时需要先对所 有样本数据进行对数化处理 (x' = ln(x)) ,以消除量纲的影响。 实验结果见表 2。
输出 Y1,Y2
计算 Y1、Y2相似度 simi
B[no1++]=A[j++]
C[no2++]=A[j++]
J<t/2
否
是
输出 B(X,Y)、C(X,Y)
结束 图 2 随机划分数据集算法流程图
对 simi 进行标准化处理
稳定性度量值 sta 为 simi 平均值
输出 sta 图 4 计算相似度和稳定值流程图
中 Y 的误差平方和,
否
判断是否达到精度要求
是
计算 Y1、Y2相似度,从而计算出该 模型的一次稳定性度量值
程序结束
图 1 神经网络交叉验证算法总流程图
2.2.1 随机划分数据集 2 折交叉验证算法首要的问题是将服从相同分布的数据
集随机划分为训练集和测试集,训练集用于训练神经网络得 到神经元相互连接权重,测试集用于验证基于同一训练数据 集的网络模型之间的相似度,从而计算稳定性度量值。算法 描述见图 2。
44
2010,46(34)
Computer Engineering and Applications 计算机工程与应用
实验成功与否的关键。图 1 给出了神经网络交叉验证的算法 流程,并在后面小节中给出了关键子程序的算法描述。
开始
输入服从相同分布的数据集 A(X,Y) 和 D(X,Y),分别作为训练数据集和测
ELM 0.408 280 0.407 710 0.408 110 0.408 210 0.408 078
从表 1 可以很明显地看出,在不同噪声水平下得到了几 乎 完 全 相 同 的 稳 定 性 度 量 值 优 劣 排 序 ,从 高 到 低 依 次 是 ELM、GRNN、RBF、BP,说明神经网络之间的稳定性横向比较 是可行的并且排序结果本身也具有稳定性,不受噪声水平影响。
网络训练得到的网络模型 net1、net2是否相似,是通过判断 这两个模型对相同输入(即测试数据集 C)得到的输出结果
Y1、Y2是否相似来度量的,本文采用 Tanimoto[5]距离 d 来度量两
个输出向量 Y1、Y2的相似度,任意 Y1、Y2其距离 d 定义如下:
å d
=
1 n+
n
1i=1
(Y1(i) - Y2(i))2
(1)
其中 n 为向量的长度,相似度定义如下:
simi
=
1 d
(d! =
0)
(2)
simi = 1(d = 0)
(3)
根据经验估计分类学习算法的稳定性计算的定义,稳定
性度量值的计算是对一组相似度的简单取平均值。算法描述
见图 4。
开始
将测试集 D(X,Y)分别输入训 练好的网络 net1、net2中,得到
表 1 随机数据集实验结果
噪声 0 1% 5%
10% 平均
BP 0.380 34 0.390 54 0.390 41 0.391 98 0.388 31
GRNN 0.406 295 0.404 775 0.406 420 0.405 020 0.405 628
RBF 0.402 06 0.404 13 0.403 05 0.402 65 0.402 97
摘 要:根据 Skutin 提出的交叉验证理论,针对神经网络学习算法提出了神经网络稳定性的交叉验证模型,并选择 4 种应用广泛、 具有代表性的神经网络作为研究对象,通过随机数据集和 UCI 数据集上的数据实验结果得出了 BP、RBF、GRNN、ELM 等 4 种神 经网络的稳定性排序,并用统计检验方法对排序结果进行了检验。 关键词:神经网络;稳定性;交叉验证;统计检验 DOI:10.3778/j.issn.1002-8331.2010.34.013 文章编号:1002-8331(2010)34-0043-03 文献标识码:A 中图分类号:TP183
1 引言
神经网络由于其固有的自学习、自适应、自组织和大规模 的并行处理能力,已经在模式识别、信号处理、系统辨识、智能 控制、优化计算和数据预测等领域得到了广泛的应用,而神经 网络稳定性在很大程度上决定了其应用的广泛性[1]。现在基 于稳定性理论基础之上的神经网络稳定性理论研究和实证分 析的文献和教材都很多,然而真正面向应用的研究成果相对 少见,且多通过严谨的数学推导来证明神经网络中某一种模 型的稳定性是否存在及其存在条件,更没有对各种不同神经 网络模型之间的稳定性做出比较。在神经网络应用中,稳定 性是非常重要的,如何比较各种不同神经网络的稳定性是选 择神经网络必须考虑的一个重要问题。该文提出了神经网络 稳定性的交叉验证模型,用于计算神经网络的稳定性度量值 和比较各种不同神经网络的稳定性差异,为实际应用中神经 网络的选择提供了客观的稳定性比较方法。
邱龙金,贺昌政:神经网络稳定性的交叉验证模型
2010,46(34) 45
3 数据实验 3.1 随机数据集
随机数据集是指随机产生的服从相同模型的数据集,使 用一个具有普遍性的多元多次方程 Y=F(X),然后随机产生一 个输入矩阵 X 得到一个输出向量 Y,将 A(X,Y)进行随机划分 作为训练数据集 B 和测试数据集 C,以验证多种神经网络模型 在该数据集上的稳定值的差异,初步得到在具有普遍性的随 机数据集上各种神经网络模型的稳定性度量值排序。本文使 用二元二次方程 Y = a1 - a2 x1 + a3 x2 + a4 x12 - a5 x1*x2 + a*z 作为 数据模型,其中系数 a1到 a5由随机数产生,a 代表噪声水平,z 为[-0.5,0.5]之间的随机数,代表随机干扰项。X 为随机产生 的服从正态分布的 2×200 输入矩阵,Y 为由模型 Y=F(X)产生 的 1×200 输出矩阵。程序运行 20 次取均值,实验结果见表 1。
络的拟合精度和预测精度,其效果取决于网络的结构和参数 配置,如网络的层数、每层神经元个数、各层传递函数、网络训 练函数和学习函数、训练次数和误差限等,而参数的配置并不 存在绝对最优的组合,需要在经验的基础上反复尝试直到拟 合误差小到可以接受的水平,算法描述见图 3。
创建网络 ne(t BP,Gቤተ መጻሕፍቲ ባይዱNN,RBF,ELM)
试数据集
将数据集 A(X,Y)随机划分为大小相 等的数据集 B(X,Y)和 C(X,Y)
分别以 B(X,Y)和 C(X,Y)作为训练数 据集训练得到网络模型 net1和 net2
将测试数据集 D(X,Y)中 X 分别输入 网络模型 net1和 net2中得到两个输出
矩阵 Y1和 Y2
分别计算 Y1、Y2同 D(X,Y)
2 神经网络稳定性交叉验证模型 2.1 算法的稳定性
神经网络的学习是基于有限的训练数据设计有效的学习
算法,寻找输入与输出之间的依赖关系。学习算法中非常重 要的问题是如何估计算法的准确性和稳定性。L.Derroye 和 T. Wagner[2]提出了独立于 VC 维理论的学习算法稳定性定义:一 个学习算法在一个训练集 S 上稳定指的是如果任意改变训练 集 S 中一个点,算法的输出仅有一个微小的改变。该文根据 Skutin[3]提出的交叉验证稳定性定义提出了计算神经网络稳定 性度量值的算法。