改进Transformer模型其实也不难

        声明:文章是从本人公众号中复制而来,因此,想最新最快了解各类智能优化算法及其改进的朋友,可关注我的公众号:强盛机器学习,不定期会有很多免费代码分享~

目录

原理简介

数据介绍

结果展示

完整代码


之前一期推文里已经推出了利用Matlab实现Transformer预测模型的方法:

Matlab终于能实现Transformer预测了

不过话又说回来,单单放一个Transformer模型好像没有创新性,毕竟是别人提出的算法。同时,很多小伙伴也有自己的改进算法,想要与Transformer模型结合到一起,也有部分小伙伴后台留言说想要进一步提高预测精度。

现在网上大部分的Transformer模型都是基于Python的,但是Python对于小白来说很不友好,新手小白更推荐用Matlab(大神勿扰),这里解释下两点原因:

1.Python需要配置环境、安装各种编译器等等,有时版本还难以统一,导致某些包无法运行。更重要的是,这么多Transformer模型真真假假,有些基于Tensorflow,有些基于Pytorch,万一少了Transformer模型的某个部分,你能分辨出来吗?

2.目前的智能优化算法均是基于Matlab实现,极少有Python版本,尤其是最新的优化算法。如果想将优化算法与Transformer模型结合起来,那么需要尽量在同一平台上实现。

因此,本期推文教你利用智能优化算法实现改进Transformer模型,同时提供与原Transformer模型的对比,包含柱状图、两张雷达图、二维散点图等等,非常容易吸引审稿人~

当然,此类模型知网上也还没有人用过,属于尚未发表的创新点,大家替换上自己的数据集,paper不就蹭蹭发了吗~

原理简介

以下内容没有任何公式,可放心查看!

首先,选择一种优化算法。我们之前发过很多2024年的新算法,比如鳗鱼-石斑鱼优化算法、班翠鸟优化算法等等,作者在这里选择了于2024年3月发表在SCI人工智能一区顶刊《Artificial Intelligence Review》上的黑翅鸢优化算法BKA,这个算法简洁明了,性能也不错,改进的空间也很大,因此选择这一算法对Transformer模型进行改进与优化。当然,小伙伴们想要换成其他算法也是非常方便的~

想要了解BKA算法原理小伙伴可以查看这篇推文:

2024年SCI一区新算法-黑翅鸢优化算法(BKA)-公式原理详解与性能测评 Matlab代码免费获取

再简单说下Transformer模型:

Transformer是2017年由Google团队针对机器翻译任务所提出来的模型,它没有采用卷积神经网络或者循环神经网络的结构,而是一个完全基于自注意力机制的模型,主要结构为位置编码、编码器、解码器和前馈网络。其优势就是高度并行化提高计算效率,可以捕获长时间依赖关系,更好地解决长时依赖问题。

在我们的实验中,原始Transformer模型设置最大训练次数为50次,初始学习率为0.01,L2正则化系数为0.005,自注意力机制中的头数为4,因此每个头的键的通道数为4*32。

但是,原始Transformer模型需要人为设置参数,通常依据工程经验来确定,工作量较大且较为繁琐,若模型拥有过多超参数则人工难以寻找最优参数组合。

因此,采用BKA算法优化Transformer中的自注意力机制头数、学习率、正则化系数三个超参数,目标函数值为MAPE,也就是使其误差最小。

更换优化算法也非常方便,只需满足BKA算法的调用格式,查找替换即可更换自己的优化算法。

数据介绍

本期推文采用的案例数据是经典的多变量时间序列预测数据集,是为了方便大家替换自己的数据集,各个变量采用特征1、特征2…表示,无实际含义,最后一列即为输出。

更换自己的数据时,只需最后一列放想要预测的列,其余列放特征即可,无需更改代码,非常方便!

结果展示

首先训练原始未改进的Transformer模型,再训练经BKA优化后的Transformer模型,设置最大训练次数均为50次,得到的结果如下所示:

预测效果对比图:

迭代曲线图:

柱状图:

需要注意的是,因为MAPE是百分制的,所以值非常小,因此相比于MAE、RMSE指标其值过小而看不出,这是非常正常的。

雷达图1:

雷达图2:

二维散点图:

网络结构图:

最后,运行完成后控制台中会显示各个模型的误差与预测指标。

可以看到,优化后的Transformer模型精度有了很大的提高,误差明显减小,出的图片也非常美观。

以上结果展示中所有图片,作者都已精心整理过代码,都可以一键运行main直接出图!不信的话可以看下面文件夹截图,非常清晰明了!

适用平台:Matlab2023b及以上,没有的文件夹里已经免费提供安装包,直接下载即可!

完整代码

想要以上Matlab代码的,可以直接点击推文左下角“阅读原文”,或者后台回复关键词,不区分大小写:

CXYHH

(先前已经购买过Transformer模型的小伙伴,可提前私聊提供购买截图后找我领取5折优惠券)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/42914.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【学术会议征稿】第五届计算机工程与智能控制学术会议(ICCEIC 2024)

第五届计算机工程与智能控制学术会议(ICCEIC 2024) 2024 5th International Conference on Computer Engineering and Intelligent Control 第五届计算机工程与智能控制学术会议(ICCEIC 2024)将于2024年10月18日至22日在广州举办&#xff0…

LDR6282-显示器:从技术革新到视觉盛宴

显示器,作为我们日常工作和娱乐生活中不可或缺的一部分,承载着将虚拟世界呈现为现实图像的重要使命。它不仅是我们与电子设备交互的桥梁,更是我们感知信息、享受视觉盛宴的重要窗口。显示器在各个领域的应用也越来越广泛。在办公领域&#xf…

Gradle使用插件SonatypeUploader-v2.6上传到maven组件到远程中央仓库

本文基于sonatypeUploader 2.6版本 插件的使用实例:https://github.com/jeadyx/SonatypeUploaderSample 发布步骤 提前准备好sonatype账号和signing配置 注:如果没有,请参考1.0博文的生成步骤: https://jeady.blog.csdn.net/art…

收银系统源码-营销活动-幸运抽奖

1. 功能描述 营运抽奖:智慧新零售收银系统,线上商城营销插件,商户/门店在小程序商城上设置抽奖活动,中奖人员可内定; 2.适用场景 新店开业、门店周年庆、节假日等特定时间促销;会员拉新,需会…

SQLServer连接异常

2. 文件夹对应的是[internal].[folders]表,与之相关的权限在[internal].[folder_permissions]表 项目对应的是[internal].[projects]表,与之相关的权限在[internal].[project_permissions],版本在[internal].[object_versions]表。 环境对应…

MongoDB本地配置分片

mongodb server version: 7.0.12 社区版 mongo shell version: 2.2.10 平台:win10 64位 控制台:Git Bash 分片相关节点结构示意图 大概步骤 1. 配置 配置服务器 副本集 (最少3个节点) -- 创建数据目录 mkdir -p ~/dbs/confi…

华为eNSP:HCIA汇总实验

本次拓扑实验需求: 1、内网地址用DHCP 2、VLAN10不能访问外网 3、使用静态NAT 实验用到的技术有DHCP、划分VLAN、IP配置、VLAN间的通信:单臂路由、VLANIF,静态NAT、基本ACL DHCP是一种用于自动分配IP地址和其他网络参数的协议。 划分VLA…

新型模型架构(参数化状态空间模型、状态空间模型变种)

文章目录 参数化状态空间模型状态空间模型变种Transformer 模型自问世以来,在自然语言处理、计算机视觉等多个领域得到了广泛应用,并展现出卓越的数据表示与建模能力。然而,Transformer 的自注意力机制在计算每个词元时都需要利用到序列中所有词元的信息,这导致计算和存储复…

简单介绍 Dagger2 的入门使用

依赖注入 在介绍 Dagger2 这个之前,必须先解释一下什么是依赖注入,因为这个库就是用来做依赖注入的。所以这里先简单用一句话来介绍一下依赖注入: 依赖注入是一种设计模式,它允许对象在运行时注入其依赖项。而不是在编译时确定&a…

Andorid 11 InputDispatcher FocusedApplication设置过程分析

在Input ANR中,有一类ANR打印的reason 为 “xx does not have a focused window” ,表明 输入事件 5s 内,只有FocusedApplication,而没找到focused window。本文分析下FocusedApplication的设置过程。 setFocusedApp 源码路径&am…

用PlantUML可视化显示JSON

概述 PlantUML除了绘制UML中的一些标准图之外,也可以以图形化的方式显示一些其他图形或数据形式的结构,这其中就包括JSON。 它以一种简单且优美的图形形式,表达了JSON的结构。你可以用它来作为设计JSON数据文件的依据,辅助设计或…

day01:项目概述,环境搭建

文章目录 软件开发整体介绍软件开发流程角色分工软件环境 外卖平台项目介绍项目介绍定位功能架构 产品原型技术选型 开发环境搭建整体结构:前后端分离开发前后端混合开发缺点前后端分离开发 前端环境搭建Nginx 后端环境搭建熟悉项目结构使用Git进行版本控制数据库环…

【C++】AVL树(旋转、平衡因子)

🌈个人主页:秦jh_-CSDN博客🔥 系列专栏:https://blog.csdn.net/qinjh_/category_12575764.html?spm1001.2014.3001.5482 ​ 目录 前言 AVL树的概念 节点 插入 AVL树的旋转 新节点插入较高左子树的左侧---左左:…

【C++】stack和queue的模拟实现 双端队列deque的介绍

🔥个人主页: Forcible Bug Maker 🔥专栏: STL || C 目录 🌈前言🔥stack的模拟实现🔥queue的模拟实现🔥deque(双端队列)deque的缺陷 🌈为什么选择…

七、Docker常规软件安装

目录 一、总体步骤 二、安装tomcat 1、docker hub上查找tomcat镜像 三、安装MySQL 1、查看MySQL镜像 2、拉取MySQL镜像到本地,本次拉取MySQL5.7 3、使用MySQL镜像创建容器 4、使用Windows数据库工具,连接MySQL实例 5、常见问题 6、创建MySQL容器实例 7、新…

DDP:微软提出动态detection head选择,适配计算资源有限场景 | CVPR 2022

DPP能够对目标检测proposal进行非统一处理,根据proposal选择不同复杂度的算子,加速整体推理过程。从实验结果来看,效果非常不错 来源:晓飞的算法工程笔记 公众号 论文: Should All Proposals be Treated Equally in Object Detect…

同声传译app哪个好免费?对话交流推荐这5个

暑期到,也是旅游出行的好日子~自打周边不少国家都开放免签政策之后,出国游也变得更加方便了~对于外语水平不高的朋友来讲,想要保证出行体验,其实手上只要备好一个同声传译app就OK! 倘若你还不清楚都有哪些同声传译app…

背部筋膜炎的症状及治疗

背部筋膜炎,也称为胸背肌筋膜炎,主要是由于劳损或风寒湿邪侵入引起的。其典型症状主要包括: 1、疼痛:背部筋膜一旦出现炎症性病变,会对周围交感神经组织产生刺激作用,从而引起不同程度的疼痛症状。 2、僵…

NAT:地址转换技术

为什么会引入NAT? NAT(网络地址转换)的引入主要是为了解决两个问题 IPv4地址短缺:互联网快速发展,可用的公网IP地址越来越少。网络安全:需要一种方法来保护内部网络不被直接暴露在互联网上。 IPv4 &…

低通滤波以及卡尔曼滤波

先讲解几个低通滤波,低通滤波比卡尔曼滤波简单,因为卡尔曼滤波涉及到两个输入量,一个是控制量,一个是观测量,而低通滤波是一个输入量 1,利用工具箱配置低通滤波 参考地址:https://blog.csdn.net…