【ElM分类】基于麻雀搜索算法优化ElM神经网络实现数据分类附代码

简介: 【ElM分类】基于麻雀搜索算法优化ElM神经网络实现数据分类附代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测雷达通信 无线传感器

信号处理图像处理路径规划元胞自动机无人机 电力系统

⛄ 内容介绍

极限学习机(Extreme Learning Machine, ELM)是近几年发展起来的一种有效的新型单隐层前馈神经网络学习算法,和传统学习算法不同的是,ELM算法的网络参数随机选取,无需调节,输出权值是通过对平方损失函数最小化得到的最小二乘解,因此该算法具有较快的学习速度和良好的泛化性能,并在多模式分类,非线性预测等领域得到了广泛的应用.但是ELM在学习过程中也不可避免的存在众多缺点,其参数的随机选取导致一系列非最优参数的生成,使得所需隐含层节点数多于传统学习算法,影响其泛化性能,并导致系统的病态;在学习过程中仅仅只利用了输入参数的信息进行计算,而忽略了非常有价值的实际输出值;将其应用于工业生产中所得到的精度不能满足实际的标准等等.针对上述缺点,本文提出了一种对ELM的麻雀搜索算法极限学习机(SSA-ELM)。

1 麻雀搜索算法原理

麻雀搜索算法是一种新型的群智能优化算法, 2020 年由 Xue [15] 提出,主要是受麻雀的觅食和反哺食行为启发,具有寻优能力强、收敛速度快的特点。麻雀搜索算法将整个麻雀种群分为三类,即寻找食物的生产者,抢夺食物的加入者和发现危险的警戒者。生产者和加入者可以相互转化,但各自在种群中的占比不会发生变化。在模拟实验中,需要使用虚拟麻雀进行食物的寻找,与其他寻优算法相同,麻雀搜索算法首先需要对麻雀种群与适应度值进行初始化,麻雀种群可初始化为如下形式,表达式为(3) 中:n为麻雀的数量;d为要优化的变量的维度即独立参数的数目;xnd为第n只麻雀第d维度的值。由此,总体麻雀适应度值表征形式为(4)中:f(x)为个体适应度值。适应度值较好的麻雀(即生产者)在搜索中会优先获得食物并指引群体的觅食方向与范围,与此同时,生产者会具有更大的觅食搜索范围。生产者在觅食过程中,位置不断发生移动,而在遇到捕食者时,移动规则又会发生改变,即(5)中:t为当前迭代次数;j∈{12d}xitj为迭代第t次时,第i个麻雀的第j个维度的值;α∈(01],为随机数;iter_max为迭代次数最多的常数;R2∈[01],为报警值;ST∈[01],为安全阈值;Q为服从正态分布的随机数;L1×d阶矩阵(元素全为1)R2ST时,代表该区域安全,无捕食者出没,生产者会出现大范围觅食行为;R2≥ST时,表示一些麻雀发现了捕食者并发出警告,所有麻雀迅速飞入安全区域。而对加入者而言,在觅食过程中,一旦生产者找到了好的食物源,加入者必会知晓,并飞向它的附近抢食,同时,也有加入者会时刻监视生产者,随时准备争抢食物。由此加入者的位置更新规则为(6)中:xp为生产者占据的最佳位置;xworst为全局最差位置;A1×d阶矩阵,每个元素随机为1或-1A†AT(AAT)1。当i>时,表示适应性较差的第i个加入者抢夺食物失败,为了更好地获得食物避免挨饿只能飞往其他地区进行觅食。总体而言,假设意识到危险的麻雀(即警戒者)10~20%。初始位置则随机产生,规则为(7)中:λ为步长控制函数,是一个均值为0,方差为1的正态分布随机数;fi为当前麻雀适应值;fg为全局最好适应值;fw为全局最差适应值;k为麻雀移动方向;xbest为全局最优位置;ε为最小常数,避免除数为零。当fifg时,警戒者位于种群边缘,意识到危险后向中央安全区靠近;当fifg时,则是处于种群中央的麻雀意识到了危险,为躲避危险,则向其他麻雀身边靠拢。

2 极限学习机

传统的单隐层神经网络由三部分组成,分别是输入层、隐含层和输出层,输入层神经元节点个数即输入变量的个数,隐含层节点个数则需要人为给定,输出层节点个数也就是输出变量的个数。在2006年,新加坡南洋理工大学的Huang等[16]在传统的单隐层神经网络的基础上提出了一种新的前馈神经网络学习算法,命名为极限学习机(extremelearningmachine,ELM),不同于传统的基于梯度的前馈神经网络算法,该方法随机产生隐含层与输入层之间的连接权值及隐含层神经元的阈值,训练过程中只需要设置隐含神经元的个数便可获得唯一最优解,极限学习机网络结构如图1所示。

3 麻雀算法优化极限学习机

本文采用麻雀搜索算法对其隐含层的初始权值与阈值进行优化,具体构建过程可以概述为:确定ELM的输入与输出样本集;确定对ELM初始权值及阈值的编码方式;随机采样产生第一代种群;计算每个个体的适应值,并排序选优;按照既定规则更新产生下一代种群直至满足终止条件为止,终止条件设置为预测值与期望值的误差矩阵的范数小于某一设定值。

利用麻雀搜索算法对核极限学习机的两项参数:核参数及正则化系数进行优化,得到耦合滑坡预测模型,其实施步骤如下。

步骤1初始化种群。设置麻雀数量为20,随机产生初始核参数及正则化系数,生成种群初始位置。

步骤2确定优化参数的取值范围。根据多次实验,确定核参数为(-100 100),正则化系数为(-100 100)。

步骤3建立SSA-KELM耦合模型,计算麻雀个体适应度,对适应度值进行排序,寻找出当前最好和最差的个体。

适应度函数为式(16)中为真实值;为函数预测值。

步骤4根据式式(7)更新麻雀位置。

步骤5获取新的麻雀位置及个体适应度值,将本轮最优适应度值与之前的最优适应度值做比较,如果本轮更优,则更新全局最优适应度值与相关位数。

步骤6循环结束。当迭代次数大于500,则寻优过程结束。步骤7得到KELM的最佳训练参数,模型建立。

⛄ 部分代码

function [IW,B,LW,TF,TYPE] = elmtrainNew(P,T,N,TF,TYPE,IW,B)

% ELMTRAIN Create and Train a Extreme Learning Machine

% Syntax

% [IW,B,LW,TF,TYPE] = elmtrain(P,T,N,TF,TYPE)

% Description

% Input

% P   - Input Matrix of Training Set  (R*Q)

% T   - Output Matrix of Training Set (S*Q)

% N   - Number of Hidden Neurons (default = Q)

% IW - 输入初始权值

% B -  输入初始阈值

% TF  - Transfer Function:

%       'sig' for Sigmoidal function (default)

%       'sin' for Sine function

%       'hardlim' for Hardlim function

% TYPE - Regression (0,default) or Classification (1)

% Output

% IW  - Input Weight Matrix (N*R)

% B   - Bias Matrix  (N*1)

% LW  - Layer Weight Matrix (N*S)

% Example

% Regression:

% [IW,B,LW,TF,TYPE] = elmtrain(P,T,20,'sig',0)

% Y = elmtrain(P,IW,B,LW,TF,TYPE)

% Classification

% [IW,B,LW,TF,TYPE] = elmtrain(P,T,20,'sig',1)

% Y = elmtrain(P,IW,B,LW,TF,TYPE)

% See also ELMPREDICT

% Yu Lei,11-7-2010

% Copyright www.matlabsky.com

% $Revision:1.0 $

if nargin < 2

   error('ELM:Arguments','Not enough input arguments.');

end

if nargin < 3

   N = size(P,2);

end

if nargin < 4

   TF = 'sig';

end

if nargin < 5

   TYPE = 0;

end

if size(P,2) ~= size(T,2)

   error('ELM:Arguments','The columns of P and T must be same.');

end

[R,Q] = size(P);

if TYPE  == 1

   T  = ind2vec(T);

end

[S,Q] = size(T);

% Randomly Generate the Input Weight Matrix

% IW = rand(N,R) * 2 - 1;

% Randomly Generate the Bias Matrix

% B = rand(N,1);

BiasMatrix = repmat(B,1,Q);

% Calculate the Layer Output Matrix H

tempH = IW * P + BiasMatrix;

switch TF

   case 'sig'

       H = 1 ./ (1 + exp(-tempH));

   case 'sin'

       H = sin(tempH);

   case 'hardlim'

       H = hardlim(tempH);

end

% Calculate the Output Weight Matrix

LW = pinv(H') * T';


⛄ 运行结果

⛄ 参考文献

[1]马飞燕, 李向新. 基于改进麻雀搜索算法-核极限学习机耦合算法的滑坡位移预测模型[J]. 科学技术与工程, 2022(022-005).

❤️ 关注我领取海量matlab电子书和数学建模资料
❤️部分理论引用网络文献,若有侵权联系博主删除



相关文章
|
6月前
|
机器学习/深度学习 人工智能 算法
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
261 0
|
6月前
|
机器学习/深度学习 算法 物联网
基于遗传方法的动态多目标优化算法
基于遗传方法的动态多目标优化算法
|
SQL 监控 安全
网络安全与信息安全:漏洞、加密与安全意识
随着互联网的迅猛发展,网络安全和信息安全问题日益受到关注。本文深入探讨了网络安全漏洞、加密技术以及提高个人和组织的安全意识的重要性。通过分析常见的网络攻击手段如缓冲区溢出、SQL注入等,揭示了计算机系统中存在的缺陷及其潜在威胁。同时,详细介绍了对称加密和非对称加密算法的原理及应用场景,强调了数字签名和数字证书在验证信息完整性中的关键作用。此外,还讨论了培养良好上网习惯、定期备份数据等提升安全意识的方法,旨在帮助读者更好地理解和应对复杂的网络安全挑战。
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
390 17
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
308 10
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,并提供一些实用的代码示例。通过阅读本文,您将了解到如何保护自己的网络安全,以及如何提高自己的信息安全意识。
314 10
|
监控 安全 网络安全
网络安全与信息安全:漏洞、加密与意识的交织
在数字时代的浪潮中,网络安全与信息安全成为维护数据完整性、保密性和可用性的关键。本文深入探讨了网络安全中的漏洞概念、加密技术的应用以及提升安全意识的重要性。通过实际案例分析,揭示了网络攻击的常见模式和防御策略,强调了教育和技术并重的安全理念。旨在为读者提供一套全面的网络安全知识框架,从而在日益复杂的网络环境中保护个人和组织的资产安全。
|
存储 监控 安全
云计算与网络安全:云服务、网络安全、信息安全等技术领域的融合与挑战
本文将探讨云计算与网络安全之间的关系,以及它们在云服务、网络安全和信息安全等技术领域中的融合与挑战。我们将分析云计算的优势和风险,以及如何通过网络安全措施来保护数据和应用程序。我们还将讨论如何确保云服务的可用性和可靠性,以及如何处理网络攻击和数据泄露等问题。最后,我们将提供一些关于如何在云计算环境中实现网络安全的建议和最佳实践。

热门文章

最新文章