matlab R2024a以上
一、数据集
二、2024年新SCI顶刊算法红嘴蓝鹊优化器RBMO
红嘴蓝鹊优化算法(Red-billed blue magpie optimizer, RBMO)是一种新型的元启发式算法(智能优化算法),灵感来源于红嘴蓝鹊的合作、高效的捕食行为。 该成果由Shengwei Fu等人于2024年5月发表在 SCI顶刊《Artificial Intelligence Review》 上!
算法流程:
- 种群初始化
其中ub,lb分别代表问题空间的上下界
- 寻找食物:在寻找食物时,红嘴蓝鹊通常以小组(2至5只)或群集(超过10只)的方式操作,以增强搜索效率。它们采用各种技术,如跳跃在地面上,行走,或搜查树木以寻找食物资源。这种适应性和灵活性使红嘴蓝鹊能够根据环境条件和可用资源采用多样化的狩猎策略,确保有充足的食物供应。当小组探索食物时,使用等式(3),而在群集搜索时使用等式(4)。
- 攻击猎物:红嘴蓝鹊在追捕猎物时展现出高水平的狩猎技能和合作能力。它们采用快速啄食、跃起捕食或飞行捕捉昆虫等策略。在小团体行动中,主要目标通常是小型猎物或植物。相应的数学模型在方程(5)中呈现。在集群操作时,红嘴蓝鹊能够联合瞄准大型昆虫或小型脊椎动物等更大的猎物。该行为的数学表征概述在方程(6)中。这种掠食性狩猎行为突显了红嘴蓝鹊所具备的多样策略和技能,使其成为一个能够成功在各种情境下安全获取食物的多才多艺的捕食者。
- 储存食物:除了搜索和攻击食物外,红嘴蓝鹊还会将多余的食物存放在树洞或其他隐蔽的地点以供将来食用,确保在食物短缺时有稳定的食物供应。这一过程保留了解决方案信息,帮助个体找到全局最优值。数学模型如方程(7)所示。
综上所述,在RBMO中,优化过程通过生成一组随机的候选解(称为种群)开始。RBMO的搜索策略通过反复的轨迹探索适当的位置,无论是次优解还是最优解。食物存储阶段增强了RBMO的探索和开发能力。最后,RBMO搜索过程在满足结束标准时结束。值得注意的是,红嘴蓝鹊的种群大小在捕食过程中不同,但小规模种群和群集的总数保持相似。在本文中,我们提出了一个用于平衡种群的系数\epsilon,将其设定为0.5。RBMO的伪代码在算法1中提供。
三、Transformer模型
Transformer模型是一种用于处理序列数据的深度学习模型,最初由Vaswani等人在2017年提出。它在自然语言处理(NLP)领域取得了巨大的成功,并成为许多语言模型的基础,如BERT、GPT系列等。以下是Transformer模型的详细介绍:
Transformer模型的基本结构
Transformer模型由编码器(Encoder)和解码器(Decoder)两部分组成,每一部分都由多个层(Layers)堆叠而成。每一层包括两个主要组件:多头自注意力机制(Multi-Head Self-Attention Mechanism)和前馈神经网络(Feed-Forward Neural Network)。
编码器
编码器负责将输入序列转换为一组隐含表示(Hidden Representations)。每个编码器层包括:
- 多头自注意力机制(Multi-Head Self-Attention):通过计算输入序列中每个位置的自注意力分数,捕捉输入序列的全局依赖关系。
- 前馈神经网络(Feed-Forward Neural Network):对每个位置的隐含表示进行非线性变换,增强模型的表达能力。
- 残差连接和层归一化(Residual Connection and Layer Normalization):这些技术帮助训练更深的网络,保持梯度稳定。
解码器
解码器负责生成输出序列,每个解码器层包括:
- 掩蔽多头自注意力机制(Masked Multi-Head Self-Attention):类似于编码器的自注意力机制,但只关注之前生成的输出位置,防止信息泄露。
- 编码器-解码器注意力机制(Encoder-Decoder Attention):将解码器的隐含表示与编码器的隐含表示进行结合,捕捉输入与输出之间的依赖关系。
- 前馈神经网络和残差连接、层归一化:与编码器相同。
关键组件
- 注意力机制(Attention Mechanism):Transformer模型的核心,通过计算查询(Query)、键(Key)和值(Value)之间的点积注意力分数来实现。注意力机制允许模型在处理当前位置时关注整个序列,从而捕捉长距离依赖关系。
- 多头注意力(Multi-Head Attention):通过将注意力机制扩展为多个头(Heads),模型可以在不同的子空间中并行计算注意力,从而捕捉更丰富的特征。
- 位置编码(Positional Encoding):由于Transformer不包含循环神经网络(RNN)或卷积神经网络(CNN)等顺序信息处理机制,位置编码用于为输入序列中的每个位置添加顺序信息。
四、效果展示
五、代码获取
感兴趣的朋友可以关注最后一行
% 参数设置
options0 = trainingOptions('adam', ...
'Plots','none', ...
'MaxEpochs', 100, ...
'MiniBatchSize', 32, ...
'Shuffle', 'every-epoch', ...
'InitialLearnRate', 0.01, ...
'L2Regularization', 0.002, ... % 正则化参数
'ExecutionEnvironment', "auto",...
'Verbose',1);
%% https://mbd.pub/o/bread/mbd-ZpmYkphr