当前位置: 首页 > news >正文

基于灰狼优化(GWO)、帝国竞争算法(ICA)和粒子群优化(PSO)对梯度下降法训练的神经网络的权值进行了改进(Matlab代码实现)

 💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

在神经网络训练中,使用传统的梯度下降法可能会受到局部极值问题的影响,导致训练结果不够稳定或收敛速度较慢。为了改进神经网络的权值训练,考虑结合灰狼优化(GWO)、帝国竞争算法(ICA)和粒子群优化(PSO)等优化算法。下面是方法:

初始化神经网络: 首先,根据问题的特点和需求,设计并初始化神经网络的结构,包括神经元层、激活函数等。

梯度下降法训练: 使用传统的梯度下降法对神经网络进行初始训练,以获得一个基本的权值设置。

算法集成: 将灰狼优化(GWO)、帝国竞争算法(ICA)和粒子群优化(PSO)三种优化算法集成到神经网络的权值调整过程中。

多种算法运行: 为了充分利用这些算法的优势,可以采取以下策略:

在每次权值更新之前,使用三种算法分别对神经网络权值进行优化,得到三组不同的权值。

将这三组权值分别代入神经网络进行预测或训练,得到对应的损失函数值。

根据损失函数值的大小,选择其中表现最好的一组权值来更新神经网络。

参数调整: 每个优化算法都有一些参数需要调整,如迭代次数、种群大小等。您可以通过实验和交叉验证来选择最佳的参数组合,以达到更好的性能。

终止条件: 设置合适的终止条件,如达到一定的迭代次数或损失函数值足够小。

结果分析: 最后,比较集成了三种优化算法的权值训练方法与单独使用梯度下降法的效果。分析哪种方法在收敛速度、稳定性和精度方面表现更好。

📚2 运行结果

主函数部分代码:

clc;
clear;
close all;
​
%% Problem Definition
%% loading dataset %%
load('Weight_mat.mat')
load('trainset.mat')
load('testset.mat')
​
var_num=71;            
VarSize=[1 var_num];  
VarMin=-5;        
VarMax= 5;       
%% PSO Parameters
max_epoch=100;      
ini_pop=50;        
​
% Constriction Coefficients
phi1=2.1;
phi2=2.1;
phi=phi1+phi2;
khi=2/(phi-2+sqrt(phi^2-4*phi));
w=khi;          % Inertia Weight
wdamp=0.99;        % Inertia Weight Damping Ratio
c1=khi*phi1;    % Personal Learning Coefficient
c2=khi*phi2;    % Global Learning Coefficient
​
% Velocity Limits
VelMax=0.1*(VarMax-VarMin);
VelMin=-VelMax;
%% Initialization
​
empty_particle.Position=[];
empty_particle.Cost=[];
empty_particle.Velocity=[];
empty_particle.Best.Position=[];
empty_particle.Best.Cost=[];
​
particle=repmat(empty_particle,ini_pop,1);  
GlobalBest.Cost=inf;
Cost_Test= zeros(50,1);
for i=1:ini_pop% Initialize Positionparticle(i).Position= WEIGHTS(i ,:);% Initialize Velocityparticle(i).Velocity=zeros(VarSize);% Evaluationparticle(i).Cost=mape_calc(particle(i).Position,trainset);Cost_Test(i)=mape_calc(particle(i).Position,testset);% Update Personal Bestparticle(i).Best.Position=particle(i).Position;particle(i).Best.Cost=particle(i).Cost;% Update Global Bestif particle(i).Best.Cost<GlobalBest.CostGlobalBest=particle(i).Best;endend
​
BestCost_Train=zeros(max_epoch,1);
BestCost_Test=zeros(max_epoch,1);
[~, SortOrder]=sort(Cost_Test);
Cost_Test =Cost_Test(SortOrder);
%% PSO Main Loop
for it=1:max_epochfor i=1:ini_pop% Update Velocityparticle(i).Velocity = w*particle(i).Velocity ...+c1*rand(VarSize).*(particle(i).Best.Position-particle(i).Position) ...+c2*rand(VarSize).*(GlobalBest.Position-particle(i).Position);% Apply Velocity Limitsparticle(i).Velocity = max(particle(i).Velocity,VelMin);particle(i).Velocity = min(particle(i).Velocity,VelMax);% Update Positionparticle(i).Position = particle(i).Position + particle(i).Velocity;IsOutside=(particle(i).Position<VarMin | particle(i).Position>VarMax);particle(i).Velocity(IsOutside)=-particle(i).Velocity(IsOutside);% Apply Position Limitsparticle(i).Position = max(particle(i).Position,VarMin);particle(i).Position = min(particle(i).Position,VarMax);% Evaluationparticle(i).Cost = mape_calc(particle(i).Position,trainset);for l= 1:ini_popCost_Test(l)=mape_calc(particle(l).Position,testset);end[~, SortOrder]=sort(Cost_Test);Cost_Test =Cost_Test(SortOrder);BestCost_Test(it) = Cost_Test(1);% Update Personal Bestif particle(i).Cost<particle(i).Best.Costparticle(i).Best.Position=particle(i).Position;particle(i).Best.Cost=particle(i).Cost;% Update Global Bestif particle(i).Best.Cost<GlobalBest.CostGlobalBest=particle(i).Best;endendend

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

​[1]郭跃东,宋旭东.梯度下降法的分析和改进[J].科技展望,2016,26(15):115+117.

🌈4 Matlab代码实现

相关文章:

基于灰狼优化(GWO)、帝国竞争算法(ICA)和粒子群优化(PSO)对梯度下降法训练的神经网络的权值进行了改进(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

jenkins自动化构建保姆级教程(持续更新中)

1.安装 1.1版本说明 访问jenkins官网 https://www.jenkins.io/&#xff0c;进入到首页 点击【Download】按钮进入到jenkins下载界面 左侧显示的是最新的长期支持版本&#xff0c;右侧显示的是最新的可测试版本&#xff08;可能不稳定&#xff09;&#xff0c;建议使用最新的…...

HTTPS 的加密流程

目录 一、HTTPS是什么&#xff1f; 二、为什么要加密 三、"加密" 是什么 四、HTTPS 的工作过程 1.对称加密 2.非对称加密 3.中间人攻击 4.证书 总结 一、HTTPS是什么&#xff1f; HTTPS (Hyper Text Transfer Protocol Secure) 是基于 HTTP 协议之上的安全协议&…...

Jmeter 参数化的几种方法

目录 配置元件-用户自定义变量 前置处理器-用户参数 配置元件-CSV Data Set Config Tools-函数助手 配置元件-用户自定义变量 可在测试计划、线程组、HTTP请求下创建用户定义的变量 全局变量&#xff0c;可以跨线程组调用 jmeter执行的时候&#xff0c;只获取一次&#xff0…...

剑指Offer45.把数组排成最小的数 C++

1、题目描述 输入一个非负整数数组&#xff0c;把数组里所有数字拼接起来排成一个数&#xff0c;打印能拼接出的所有数字中最小的一个。 示例 1: 输入: [10,2] 输出: “102” 示例 2: 输入: [3,30,34,5,9] 输出: “3033459” 2、VS2019上运行 先转换成字符串再组合起来 #in…...

【java毕业设计】基于SSM+MySql的人才公寓管理系统设计与实现(程序源码)--人才公寓管理系统

基于SSMMySql的人才公寓管理系统设计与实现&#xff08;程序源码毕业论文&#xff09; 大家好&#xff0c;今天给大家介绍基于SSMMySql的人才公寓管理系统设计与实现&#xff0c;本论文只截取部分文章重点&#xff0c;文章末尾附有本毕业设计完整源码及论文的获取方式。更多毕业…...

golang操作excel的高性能库——excelize/v2

目录 介绍文档与源码安装快速开始创建 Excel 文档读取 Excel 文档打开数据流流式写入 [相关 Excel 开源类库性能对比](https://xuri.me/excelize/zh-hans/performance.html) 介绍 Excelize是一个纯Go编写的库&#xff0c;提供了一组功能&#xff0c;允许你向XLAM / XLSM / XLS…...

学习51单片机怎么开始?

学习的过程不总是先打好基础&#xff0c;然后再盖上层建筑&#xff0c;尤其是实践性的、工程性很强的东西。如果你一定要先全面打好基础&#xff0c;再学习单片机&#xff0c;我觉得你一定学不好&#xff0c;因为你的基础永远打不好&#xff0c;因为基础太庞大了&#xff0c;基…...

[.NET学习笔记] -.NET6.0项目动态加载netstandard2.0报错但项目添加引用则正常的问题

问题描述 .NET6.0的项目使用netstandard2.0版本的动态链接库。若是在项目中直接添加引用&#xff0c;应用netstandard2.0项目或者netstandard2.0编译后的dll均能正常工作。但如果通过xcopy等方式&#xff0c;额外将对应的dll复制到执行目录&#xff0c;会执行失败。调用方式一…...

山景DSP芯片可烧录AP8224C2音频处理器方案

AP8224C2高性能32位音频应用处理器AP82系列音频处理器是面向音频应用领域设计的新一代SoC平台产品&#xff0c;适用于传统音响系统、新兴的蓝牙或Wifi 无线音频产品、Sound Bar 和调音台等市场。该处理器在总体架构和系统组成上&#xff0c;充分考虑了音频领域的特点&#xff0…...

来聊聊托管服务提供商(MSP)安全

纵观各个中小型企业&#xff0c;由于预算十分有限而且系统环境的满载&#xff0c;如今它们往往需要依赖托管服务提供商&#xff08;managed service providers&#xff0c;MSP&#xff09;来支持其IT服务与流程。而由于MSP提供的解决方案可以与客户端基础设施相集成&#xff0c…...

最新版本的Anaconda环境配置、Cuda、cuDNN以及pytorch环境一键式配置流程

本教程是最新的深度学习入门环境配置教程&#xff0c;跟着本教程可以帮你解决入门深度学习之前的环境配置问题。同时&#xff0c;本教程拒绝琐碎&#xff0c;大部分以图例形式进行教程。这里我们安装的都是最新版本~ 文章目录 一、Anaconda的安装1.1 下载1.2 安装1.3 环境配置…...

【数据结构与算法】十大经典排序算法-选择排序

&#x1f31f;个人博客&#xff1a;www.hellocode.top &#x1f3f0;Java知识导航&#xff1a;Java-Navigate &#x1f525;CSDN&#xff1a;HelloCode. &#x1f31e;知乎&#xff1a;HelloCode &#x1f334;掘金&#xff1a;HelloCode ⚡如有问题&#xff0c;欢迎指正&#…...

【Spring专题】Spring之Bean的生命周期源码解析——阶段一(扫描生成BeanDefinition)

目录 前言阅读准备阅读指引阅读建议 课程内容一、生成BeanDefinition1.1 简单回顾*1.2 概念回顾1.3 核心方法讲解 二、方法讲解2.1 ClassPathBeanDefinitionScanner#scan2.2 ClassPathBeanDefinitionScanner#doScan2.3 ClassPathScanningCandidateComponentProvider#findCandid…...

【C#】判断打印机共享状态

打印机共享状态 /// <summary>/// 打印机共享状态/// </summary>public enum PrinterShareState{/// <summary>/// 无打印机/// </summary>None -1,/// <summary>/// 未共享/// </summary>NotShare 0,/// <summary>/// 已共享/// …...

运维监控学习笔记7

Zabbix的安装&#xff1a; 1、基础环境准备&#xff1a; 安装zabbix的yum源&#xff0c;阿里的yum源提供了zabbix3.0。 rpm -ivh http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm 这个文件就是生成了一个zabbix.repo 2、安…...

【业务功能篇64】maven加速 配置settings.xml文件 镜像

maven加速 添加阿里镜像仓 <?xml version"1.0" encoding"UTF-8"?><!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additi…...

Spring Boot(六十四):SpringBoot集成Gzip压缩数据

1 实现思路 2 实现 2.1 创建springboot项目 2.2 编写一个接口,功能很简单就是传入一个Json对象并返回 package com.example.demo.controller;import com.example.demo.entity.Advertising; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.springframewo…...

Mac安装opencv后无法导入cv2的解决方法

前提条件&#xff1a;以下两个插件安装成功 pip install opencv-python pip install --user opencv-contrib-python 注&#xff1a;直接用pip install opencv-contrib-python如果报错&#xff0c;就加上“–user" 第一步&#xff1a; 设置–添加python解释器 第二步&am…...

【题解】按之字形顺序打印二叉树

按之字形顺序打印二叉树 题目链接&#xff1a;按之字形顺序打印二叉树 解题思路&#xff1a;层次遍历&#xff0c;借助队列 首先解决如何模仿之字形的问题&#xff0c;我们为此设置一个flag&#xff0c;每到一层就修改flag&#xff0c;如果flag为true&#xff08;初始为fals…...

3个方法突破访问限制:Bypass Paywalls Clean让优质内容触手可及

3个方法突破访问限制&#xff1a;Bypass Paywalls Clean让优质内容触手可及 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 当一位医学研究员在凌晨三点急需查阅最新临床研究&#xf…...

2026年了,为什么很多企业做了智慧气象,结果还是没把风险降下来?

上个月&#xff0c;和一位新能源集团的运营负责人聊天&#xff0c;他抛出一个百思不得其解的问题&#xff1a;“我们花了300多万上了智慧气象系统&#xff0c;接了精细化预报&#xff0c;预警信息每天推送到手机、电脑、大屏&#xff0c;三个渠道同步。结果上个月一场雷暴&…...

GPT-SoVITS WebUI 终极指南:5分钟快速上手一站式语音合成解决方案

GPT-SoVITS WebUI 终极指南&#xff1a;5分钟快速上手一站式语音合成解决方案 【免费下载链接】GPT-SoVITS 1 min voice data can also be used to train a good TTS model! (few shot voice cloning) 项目地址: https://gitcode.com/GitHub_Trending/gp/GPT-SoVITS GPT…...

5. 大模型核心基础概念(三):模型量化、蒸馏、微调的核心逻辑(通俗解读)

001、开篇:为什么大模型需要“瘦身”与“调教”?——量化、蒸馏、微调的必要性 上周在产线调试一个端侧部署的视觉模型,设备跑着跑着就内存溢出了。同事盯着日志问我:“模型在服务器上明明跑得好好的,怎么一到嵌入式板子上就崩了?” 我看了眼那 2GB 的 RAM 和板载的 8GB …...

SM4算法在嵌入式平台的轻量化移植与优化实践

1. SM4算法与嵌入式平台适配挑战 SM4作为我国自主设计的商用分组密码标准&#xff0c;在物联网设备安全领域应用广泛。但直接将OpenSSL中的SM4实现移植到STM32等嵌入式平台时&#xff0c;开发者常会遇到三大难题&#xff1a; 代码体积膨胀&#xff1a;OpenSSL的SM4实现依赖大量…...

Windows下PyTorch CPU版安装全攻略:从下载到验证(含conda常用命令)

Windows平台PyTorch CPU版高效安装指南&#xff1a;从零基础到环境验证 在深度学习领域&#xff0c;PyTorch已成为最受欢迎的框架之一。对于Windows用户而言&#xff0c;特别是刚接触机器学习的新手&#xff0c;正确安装PyTorch是迈入这一领域的第一步。本文将详细介绍如何在Wi…...

黑客为什么不攻击微信钱包?

黑客为什么不攻击微信钱包&#xff1f; 现在人人手机里都装着微信和支付宝&#xff0c;里面都或多或少存了些钱。怎么从来没听说谁的钱被技术牛逼黑客惦记走&#xff1f; 是黑客没攻击过&#xff1f;还是黑客不敢攻击&#xff1f;其实都不是。阿里巴巴首席风险官郑俊芳就说过&…...

Joy-Con Toolkit终极指南:快速解锁Switch手柄隐藏功能

Joy-Con Toolkit终极指南&#xff1a;快速解锁Switch手柄隐藏功能 【免费下载链接】jc_toolkit Joy-Con Toolkit 项目地址: https://gitcode.com/gh_mirrors/jc/jc_toolkit Joy-Con Toolkit是一款专为任天堂Switch手柄设计的开源控制软件&#xff0c;为游戏玩家提供前所…...

Python内存管理策略对比评测报告(2024权威版):仅1种策略通过了金融级SLA压力测试,其余4种已淘汰

第一章&#xff1a;Python智能体内存管理策略对比评测报告&#xff08;2024权威版&#xff09;概述Python智能体&#xff08;如基于LLM的Agent框架、自主任务调度器、多步推理引擎&#xff09;在运行过程中面临高频对象创建、长生命周期缓存、跨线程引用共享等复杂内存场景。传…...

AI写论文超厉害!4款AI论文生成工具,解决毕业论文写作难题!

还在为撰写期刊论文而烦恼吗&#xff1f;面对成堆的文献、复杂的格式要求以及无休止的修改&#xff0c;许多学术人员常常感到效率低下。这并不奇怪&#xff01;不过&#xff0c;不必太担心&#xff0c;以下将推荐4款实测有效的AI论文写作工具&#xff0c;它们能帮助你在论文文献…...