改进Transformer模型其实也不难

news2024/11/15 4:06:53

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

目录

原理简介

数据介绍

结果展示

完整代码


之前一期推文里已经推出了利用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.coloradmin.cn/o/1906663.html

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

相关文章

WAIC2024 上海 | Gooxi 全面展示智算新成果,加速人工智能落地应用

浦江之畔,大咖云集;智能浪潮,奔涌不息。7月4日,被誉为人工智能界风向标的世界人工智能大会暨人工智能全球治理高级别会议在上海盛大召开,Gooxi此次携最新AI服务器以及解决方案参与,以算为擎赋能新质生产力&…

LLM之RAG实战(四十一)| 使用LLamaIndex和Gemini构建高级搜索引擎

Retriever 是 RAG(Retrieval Augmented Generation)管道中最重要的部分。在本文中,我们将使用 LlamaIndex 实现一个结合关键字和向量搜索检索器的自定义检索器,并且使用 Gemini大模型来进行多个文档聊天。 通过本文,我…

人工智能在三级淋巴结:肿瘤浸润淋巴细胞领域的系统研究进展|顶刊速递·24-07-08

小罗碎碎念 本期文献主题:人工智能在三级淋巴结/肿瘤浸润淋巴细胞领域的系统分析 关于三级淋巴结和肿瘤浸润淋巴细胞的文献,会是接下来的分析重点,期间也会穿插临床文献&项目复现的推文。 另外再说点科研道路上的题外话,也算是…

Python 爬虫 tiktok API接口获取tiktok用户关注列表

此接口可获取tiktok用户关注列表。若有需要,请点击文末链接联系我们。 详细采集页面如下https://www.tiktok.com/quanap_official 请求API http://api.xxxx.com/tt/user/following?user_id7252644648840381445&count10&offset0&tokentest 请求参数 返…

拿客户电脑,半小时完成轮播组件开发!被公司奖励500!

故事背景 原文链接:拿客户电脑,用豆包IDE逆天改命完成需求紧急开发!被公司奖励500! 前几天,业务拉了一个大客户,客户需要先看我们做的样本项目(类似于官网首页),然后才会…

更新GCC版本问题处理(Could not resolve host: mirrorlist.centos.org;)更换SCL配置源/SCL后yum使用不了

SCL: 在 Linux 系统中,更新 GCC(GNU Compiler Collection)编译器需要使用 Software Collections (SCL) 库的原因主要有以下几点: https://wiki.centos.org/AdditionalResources/Repositories/SCLhttps://wiki.centos…

游戏开黑语音-使用云服务器部署teamspeak服务(系统Ubuntu 20.04 LTS)

目录 前置物品服务器调整及部署1.重装系统2.换源3.下载teamspeak服务端并部署 连接服务器参考 前置物品 一台云服务器(系统:Ubuntu 20.04 LTS) 服务器调整及部署 1.重装系统 在腾讯云官网的主机控制台内,选择重装系统 (由于之前为了快速和…

重庆交通大学数学与统计学院携手泰迪智能科技共建的“智能工作室”

2024年7月4日,重庆交通大学数学与统计学院与广东泰迪智能科技股份有限公司携手共建的“智能工作室”授牌仪式在南岸校区阳光会议室举行。此举标志着数统学院与广东泰迪公司校企合作新篇章的开启,也预示着学院在智能科技教育领域的深入探索和实践。 广东…

电源中电感底部需要铺地平面吗?

感有交变电流,电感底部铺铜会在地平面上产生涡流,涡流效应会影响功率电感的电感量,涡流也会增加系统的损耗,同时交变电流产生的噪声会增加地平面的噪声,会影响其他信号的稳定性。 在EMC方面来看,在电感底部…

作为产品经理,如何用大模型给我们赋能?非常详细,收藏我这篇就够了

作为一名产品经理,如果您考虑转行至大模型领域,您将能够将产品管理技能与大模型技术相结合,从而在产品开发和创新方面获得一系列好处。以下是转行大模型对产品经理的一些潜在益处: 更深入的技术理解:了解大模型技术将…

deepspeed huggingface传入参数 optimizer和lr_scheduler测试

Trainer中 首先: WarmupDecayLR --lr_scheduler_type linear WarmupLR --lr_scheduler_type constant_with_warmup 1 TrainArgument不传lr_scheduler_type、optim,warmup_steps15 ds config文件中定义如下: 注意:如果不在Trai…

java-spring boot光速入门教程(超详细!!)

目录 一、引言 1.1 初始化配置 1.2 整合第三方框架 1.3 后期维护 1.4 部署工程 1.5 敏捷式开发 二、SpringBoot介绍 spring boot 2.1 搭建一个spring boot工程 2.2 使用idea创建项目 2.3 在线创建姿势 2.4 项目的目录结构 2.5 项目的运行方式 2.6 yml文件格式 2…

无线麦克风哪个品牌音质最好,揭秘手机收音麦克风哪个牌子好!

随着全球直播和短视频行业的蓬勃发展,领夹麦克风因其便携性和出色的录音质量而备受青睐。用户在各种场合下追求清晰、真实的录音效果,领夹麦克风无疑是一个理想的选择。 然而,面对市场上琳琅满目的品牌和型号,想要挑选一款性能优…

计算机网络之无线局域网

1.无线局域网工作方式 工作方式:每台PC机上有一个无线收发机(无线网卡), 它能够向网络上的其他PC机发送和接受无线电信号。 与有线以太网相似,无线局域网也是打包方式发送数据的。每块网卡都有一个永久的、唯一的ID号…

【原理+使用】DeepCache: Accelerating Diffusion Models for Free

论文:arxiv.org/pdf/2312.00858 代码:horseee/DeepCache: [CVPR 2024] DeepCache: Accelerating Diffusion Models for Free (github.com) 介绍 DeepCache是一种新颖的无训练且几乎无损的范式,从模型架构的角度加速了扩散模型。DeepCache利…

小白·使用Tesseract-OCR工具读取图片

1、直接pip安装 工具使用vscode和pycharm都可以。 这里介绍使用vscode的方法。 (1)、调出终端 (2)、安装依赖 (3)、编写代码 import pyocr import pyocr.builders from PIL import Image import re# 获取Tesseract-OCR工具 tools pyocr.get_available_tools() tool tools[…

使用 MFA 保护对企业应用程序的访问

多因素身份验证(MFA)是在授予用户访问特定资源的权限之前,使用多重身份验证来验证用户身份的过程,仅使用单一因素(传统上是用户名和密码)来保护资源,使它们容易受到破坏,添加其他身份…

C# 实现基于exe内嵌HTTPS监听服务、从HTTP升级到HTTPS 后端windows服务

由于客户需要把原有HTTP后端服务升级为支持https的服务,因为原有的HTTP服务是一个基于WINDOWS服务内嵌HTTP监听服务实现的,并不支持https, 也不像其他IIS中部署的WebAPI服务那样直接加载HTTPS证书,所以这里需要修改原服务支持https和服务器环…

Java基础-Java中的常用类(上)

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 String类 创建字符串 字符串长度 连接字符串 创建格式化字符串 String 方法 System类 常用方法 方…

谨慎投稿!这本EI期刊正在被“劫持”!

Journsl ofTisniin lniversity Seience and Technology《天津大学学报(自然科学与工程技术版)》创刊于l955年,月刊,全国核心期刊,天津市一级期刊。该刊是由天津大学主办的综合性学术刊物,主要刊登自然科学和…