改进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折优惠券)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值