一种基于异步分布式优化算法的高效蕈菌毒性识别方法

文档序号:33180228发布日期:2023-02-04 04:47阅读:71来源:国知局
一种基于异步分布式优化算法的高效蕈菌毒性识别方法

1.本发明涉及智慧农业农作物识别技术领域,尤其涉及一种基于异步分布式优化算法的高效蕈菌毒性识别方法。


背景技术:

2.在目前的技术发展中,国内外的人工智能以及自动识别技术已经发展得非常迅速,依赖于移动app平台所实现的识别程序也越来越多,图像处理技术也越来越得到人们的重视,尤其是在农业领域,对于菌类的识别更是如此。
3.图像的识别离不开成熟的算法。如果将蕈菌毒性识别看作一个在有向网络上的分布式优化问题,那么目前可采用的分布式算法可以根据通信机制分为同步算法和异步算法两类。这两种算法的显著区别在于:异步算法中的蕈菌不是等待其他蕈菌完成更新,而是使用当前可用的信息自动继续本地计算。而在同步算法中,需要一个全局时钟来协调所有蕈菌,以同步其更新。这就不可避免地导致计算性能较强的蕈菌等待弱情况的蕈菌,使得大量的网络处于空闲状态。因此,与同步算法相比,异步算法能够提供更好的收敛性能。然而,当涉及算法的设计和分析时,异步算法也带来了巨大的挑战,因为如果用异步的方式直接对一个效果较好的同步算法进行实现,它可能是无效的。
4.因此,亟需一种能够采用异步方式对蕈菌毒性进行高效且精准识别的方法。


技术实现要素:

5.基于此,有必要针对上述技术问题,提供一种基于异步分布式优化算法的高效蕈菌毒性识别方法。
6.一种基于异步分布式优化算法的高效蕈菌毒性识别方法,包括以下步骤:将蕈菌毒性识别问题转换为有向网络上多智能体的分布式异步优化问题;采用基于异步分布式非精确梯度推送优化算法,对所述分布式优化问题进行求解,得到蕈菌毒性识别结果;基于异步鲁棒梯度跟踪机制,对所述蕈菌毒性识别结果进行处理,获取蕈菌毒性梯度的平均值,作为蕈菌毒性识别的目标结果。
7.在其中一个实施例中,所述将蕈菌毒性识别问题转换为有向网络上多智能体分布式异步优化问题,具体包括:构建有向网络g=(v,ε),式中,v={1,

,m}表示蕈菌的集合,表示边的集合,若蕈菌j直接从蕈菌i接收到信息,则有(i,j)∈ε;所述有向网络满足假设一:有向网络g=(v,ε)为有向、强连接且每个蕈菌i能够知道g的出度;设表示蕈菌i的内邻域集合,表示蕈菌i的外邻域集合;对于任意i,j∈v,若始终存在一条有向路径由(i,l1),(l1,l2),

,(l
t
,j),l1,

,l
t
∈v构成,则有向网络g为强连通。
8.在其中一个实施例中,所述将蕈菌毒性识别问题转换为有向网络上的多智能体分布式异步优化问题,还包括:在所述有向网络上的一般分布式优化问题,为:
[0009][0010]
式中,z为列向量,为n维实数的几何,为全局目标函数;所述分布优化问题满足假设二:每个局部目标函数都是光滑的,即对于所有的i∈v和存在正常数li使得式中,表示函数f在z处的梯度;且所述分布优化问题满足假设三:全局目标函数是μ-强凸的,即对于任意存在正常数μ,使得成立,其中,表示转置;对于每个i∈{1,2,

,m),fi(z)为仅由单个蕈菌i访问的本地函数,m为g中蕈菌的总数,所有蕈菌协同计算全局决策变量z,得到最优解,表示为z
*

[0011]
在其中一个实施例中,还包括:将单个蕈菌的分布式优化问题表示为:
[0012][0013][0014]
式中,zi对于每个i∈{1,

,m}是全局最优解z
*
的蕈菌i的局部估计。
[0015]
在其中一个实施例中,所述采用基于异步分布式非精确梯度推送优化算法,对分布式异步优化问题进行求解,得到蕈菌毒性识别结果,具体包括:激活蕈菌ik和来自的消息的传输延迟其中,ik表示迭代k中的激活蕈菌;引入一个计时器用于跟踪接收到的消息的生成时间;对每个蕈菌i的变量zi,vi,ui,xi和yi进行更新,通过局部优化将所有i的决策变量zi达成共识,得到蕈菌毒性识别结果。
[0016]
在其中一个实施例中,所述采用基于异步分布式非精确梯度推送优化算法,对分布式异步优化问题进行求解,得到蕈菌毒性识别结果,具体包括:对基于异步分布式非精确梯度推送优化算法进行程序初始化,设定所有蕈菌i和梯度推送优化算法进行程序初始化,设定所有蕈菌i和令k=0,并开始进行迭代循环;选择激活规则操作,选择(ik,dk),其中,作为激活规则;设置计时器,为:
[0017][0018]
进行本地化优化操作,为:
[0019][0020][0021]
[0022][0023]
在其中一个实施例中,所述基于异步鲁棒梯度跟踪机制,对所述蕈菌毒性识别结果进行处理,获取蕈菌毒性梯度的平均值,作为蕈菌毒性识别的目标结果,具体包括:根据异步鲁棒梯度跟踪机制,获取每个蕈菌的维护状态变量wi以及辅助变量ρ
ij
和其中,变量ρ
ij
用于存储蕈菌j生成的所有消息,变量用于存储从发送到i的消息;定义一个正向量使每个元素满足:
[0024][0025][0026]
式中,中,使得所有(i,j)∈ε,否则,设置r
ij
=0。
[0027]
在其中一个实施例中,所述基于异步鲁棒梯度跟踪机制,对所述蕈菌毒性识别结果进行处理,获取蕈菌毒性梯度的平均值,作为蕈菌毒性识别的目标结果,具体包括:对所述蕈菌毒性识别结果进行异步梯度跟踪操作,为:
[0028][0029][0030][0031]
将跟踪得到的数据进行批量缓冲更新,为:
[0032][0033]
保持未激活代理的状态,判定停止条件是否成立,若所述停止条件成立,则获取蕈菌毒性识别的目标结果,并结束;若所述停止条件不成立,则执行k=k+1,并返回激活规则操作,重复迭代直至所述停止条件成立。
[0034]
在其中一个实施例中,所述停止条件为:最大的步长满足:
[0035][0036]
根据上式有g的光谱半径ρ(g)《1,即式中,o(λk)表示每个执行异步算法的蕈菌收敛到相同的最优解的速率,为收敛因子,k表示迭代次数。
[0037]
相比于现有技术,本发明的优点及有益效果在于:通过将蕈菌毒性识别结果转换为有向网络上多智能体的分布式异步优化问题,采用基于异步分布式非精确性梯度推送优化算法,对分布式优化问题进行求解,得到蕈菌毒性识别结果,基于异步鲁棒梯度跟踪机制,对蕈菌毒性识别结果进行处理,获取蕈菌毒性梯度的平均值,作为蕈菌毒性识别的目标结果,使得每个蕈菌均能够线性收敛到精确的最优解,确保蕈菌毒性识别的高精度,且提高了蕈菌毒性识别的效率。
附图说明
[0038]
图1为一个实施例中一种基于异步分布式优化算法的高效蕈菌毒性识别方法的流程示意图;
[0039]
图2为一个实施例中的蕈菌网络图;
[0040]
图3为一个实施例中apdig算法的线性收敛性能随迭代次数变化的情况曲线;
[0041]
图4为一个实施例中apdig算法的测试精度随迭代次数变化的情况曲线;
[0042]
图5为一个实施例中apdig算法的训练精度随迭代次数变化的情况曲线。
具体实施方式
[0043]
在进行本发明具体实施方式说明之前,先对本发明的整体构思进行如下说明:
[0044]
本发明主要是基于蕈菌毒性识别的过程研发的,目前蕈菌毒性识别可采用的同步算法计算性能依赖计算性能最弱的蕈菌,造成大量的网络空闲问题,此外现有的异步算法的设计和分析可能存在无效的问题。
[0045]
发明人经过分析发现,出现上面的这些问题的主要原因是现有技术中蕈菌毒性识别算法的不完善。因此本发明提出了一种基于异步分布式优化算法的高效蕈菌毒性识别方法,通过异步分布式推送优化算法进行蕈菌毒性识别,确保其中每个蕈菌都能够进行独立的计算和通信,且蕈菌能够使用过时的消息执行计算,并在没有任何协调协议的情况下与相邻蕈菌进行通信,从而实现蕈菌毒性识别的高效率和高精度。
[0046]
介绍完本发明的整体构思后,为了使本发明的目的、技术方案及优点更加清楚明白,下面通过具体实施方式结合附图对本发明做进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0047]
在一个实施例中,如图1所示,提供了一种基于异步分布式优化算法的高效蕈菌毒性识别方法,包括以下步骤:
[0048]
步骤s101,将蕈菌毒性识别问题转换为有向网络上多智能体的分布式异步优化问题。
[0049]
具体地,将蕈菌毒性识别问题转换为有向网络上多智能体的分布式异步优化问题,具体是建模为一个分散逻辑回归任务。
[0050]
其中,通过有向网络解决分布式优化问题,具体为:构建有向网络g=(v,ε),式中,v={1,

,m}表示蕈菌的集合,表示边的集合,若蕈菌j直接从蕈菌i接收到信息,则有(i,j)∈ε;有向网络满足假设一:有向网络g=(v,ε)为有向、强连接且每个蕈菌i能够知道g的出度;设表示蕈菌i的内邻域集合,
表示蕈菌i的外邻域集合;对于任意i,j∈v,若始终存在一条有向路径由(i,l1),(l1,l2),

,(l
t
,j),l1,

,l
t
∈v构成,则有向网络g为强连通。
[0051]
其中,在有向网络上的一般分布式优化问题,为:
[0052][0053]
式中,z为列向量,为n维实数的几何,为全局目标函数;分布优化问题满足假设二:每个局部目标函数都是光滑的,即对于所有的i∈v和存在正常数li使得式中,表示函数f在z处的梯度;且分布优化问题满足假设三:全局目标函数是μ-强凸的,即对于任意存在正常数μ,使得成立,式中,表示转置;对于每个i∈{1,2,

,m),fi(z)为仅由单个蕈菌i访问的本地函数,m为g中蕈菌的总数,所有蕈菌协同计算全局决策变量z,得到最优解,表示为z
*

[0054]
其中,单个蕈菌的分离方法具体为:将单个蕈菌的分布式优化问题表示为:
[0055][0056][0057]
式中,zi对于每个i∈{1,

,m}是全局最优解z
*
的蕈菌i的局部估计,对于等式约束,通常称为共识约束,用来保证所有蕈菌的局部估计都是相等的。
[0058]
步骤s102,采用基于异步分布式非精确梯度推送优化算法,对分布式优化问题进行求解,得到蕈菌毒性识别结果。
[0059]
其中,激活蕈菌ik和来自的消息的传输延迟式中ik表示迭代k中的激活蕈菌;引入一个计时器用于跟踪接收到的消息的生成时间;对每个蕈菌i的变量zi,vi,ui,xi和yi进行更新,通过局部优化将所有i的决策变量zi达成共识,得到蕈菌毒性识别结果。
[0060]
具体地,采用基于异步分布式非精确梯度推送优化算法(asynchronous push distributed inexact gradient optimization algorithm,apdig),对分布式优化问题进行求解时,首先,根据开放规则选择激活蕈菌ik和来自的消息的传输延迟其中ik表示迭代k中的激活蕈菌。一旦确定ik和就知道该消息是由蕈菌在迭代时生成的。这样做的主要原因是蕈菌j在迭代完成更新并向所有外邻居发起消息传递。
[0061]
然后,引入一个计时器来跟踪接收到的(可能已经被使用的)消息的生成时间。如果存在大于当前计数器的情况,这意味着接收到的消息比当前存储的消息更晚。蕈菌ik接受它们并更新为否则,这些消息将被丢弃,而将保持不变。
需要注意的是,只需要在生成的消息中附加一个时间标记来反映其本地计时计数器,并且不需要特定计算的额外变量。
[0062]
最后,对每个蕈菌i的变量zi,vi,ui,xi和yi的更新构成局部优化步骤,这一步的目标是就所有i的决策变量zi达成共识。一般地,这一步补充两种行为,即局部计算和异步通信。首先,每个蕈菌通过一个局部梯度下降步骤来更新中间变量v,而另一个中间变量u只是一个赋值操作,可以放弃。在这里,是一个具有适当选择的不协调的步长。然后,由于共识步骤在异步通信阶段对异步是鲁棒的,只需要使用来自所有内邻的延迟消息和以及当前自己的消息来更新变量。
[0063]
其中,apdig算法具体为:对基于异步分布式非精确梯度推送优化算法进行程序初始化,设定所有蕈菌i和始化,设定所有蕈菌i和令k=0,并开始进行迭代循环;选择激活规则操作,选择(ik,dk),其中,作为激活规则;设置计时器,为:
[0064][0065]
进行本地化优化操作,为:
[0066][0067][0068][0069][0070]
具体地,通过上述算法能够实现对分布式异步优化问题的快速求解,从而提高蕈菌毒性识别的效率,且能够使得蕈菌可以使用过时的消息执行计算,并在没有任何协调协议的情况下与相邻蕈菌进行通信。
[0071]
步骤s103,基于异步鲁棒梯度跟踪机制,对蕈菌毒性识别结果进行处理,获取蕈菌毒性梯度的平均值,作为蕈菌毒性识别的目标结果。
[0072]
具体地,由于异步会导致延迟或数据包丢失的情形,因此采用异步鲁棒梯度跟踪机制,对获取的蕈菌毒性识别结果进行处理,得到蕈菌毒性梯度的平均值,作为蕈菌毒性识别的目标结果。
[0073]
对于异步鲁棒梯度跟踪机制,每个蕈菌i维护状态变量wi以及辅助变量ρ
ij
和这些变量有助于处理不均匀激活和异步通信。变量ρ
ij
用于存储蕈菌j生成的所有消息,并发送到缓冲区变量存储从发送到i的消息,并由i在最近的更新中使用。
[0074]
其中,根据异步鲁棒梯度跟踪机制,获取每个蕈菌的维护状态变量wi以及辅助变量ρ
ij
和其中,变量ρ
ij
用于存储蕈菌j生成的所有消息,变量用于存储从发送到i的消息;定义一个正向量使每个元素满足:
[0075][0076][0077]
式中,式中,使得所有(i,j)∈ε(包括i=j)的否则,设置r
ij
=0。
[0078]
其中,异步鲁棒梯度跟踪机制具体为:对蕈菌毒性识别结果进行异步梯度跟踪操作,为:
[0079][0080][0081][0082]
将跟踪得到的数据进行批量缓冲更新,为:
[0083][0084]
保持未激活代理的状态,判定停止条件是否成立,若停止条件成立,则获取蕈菌毒性识别的目标结果,并结束;若停止条件不成立,则执行k=k+1,并返回激活规则操作,重复迭代直至停止条件成立。
[0085]
其中,停止条件为:最大的步长满足:
[0086][0087]
根据上式有g的光谱半径ρ(g)《1,即式中,o(λk)表示每个执行异步算法的蕈菌收敛到相同的最优解的速率,为收敛因子,k表示迭代次数。
[0088]
具体地,由于基于异步分布式非精确梯度推送优化算法的收敛速度与网络参数ρ和m、目标函数μ和及最大步长有关,因此定义一个正向量,并重复迭代,直至最大步长符合预设条件时,停止迭代,得到蕈菌毒性梯度的平均值,并将其作为蕈菌毒性识别的目标结果。
[0089]
具体地,考虑这样一个场景,其中,蕈菌ik已经接收到一些新消息,即
在步骤中,蕈菌ik基于其当前消息和即来自其内邻居的延迟消息,构建中间变量由于蕈菌ik已经接收到新消息,中的消息必须大于中的消息,并且差值将获取在之前为ik生成的且尚未被蕈菌ik使用的之和。然后,生成的被推回蕈菌ik本身和它的外邻居
[0090]
具体地说,在生成的总和中,蕈菌ik得到确定更新确定更新而其余的被分配给蕈菌与一个积累到质量缓冲并产生更新最后,在中,在迭代k+1(即)时的每个局部缓冲区变量被重置为当前的累积变量
[0091]
在本实施例中,通过将蕈菌毒性识别结果转换为有向网络上多智能体的分布式异步优化问题,采用基于异步分布式非精确性梯度推送优化算法,对分布式优化问题进行求解,得到蕈菌毒性识别结果,基于异步鲁棒梯度跟踪机制,对蕈菌毒性识别结果进行处理,获取蕈菌毒性梯度的平均值,作为蕈菌毒性识别的目标结果,使得每个蕈菌均能够线性收敛到精确的最优解,确保蕈菌毒性识别的高精度,且提高了蕈菌毒性识别的效率。
[0092]
在一个实施例中,仿真结果采用仿真软件matlab获得。在蕈菌数据集上包括一个具有22个特征的分散逻辑回归任务,其中,apdig基于蕈菌的不同特征,例如菌盖形状、菌盖表面、菌盖颜色、疤痕等,来识别蕈菌是否有毒。从数据集中选择前8000个样本,其中6000个样本用于训练鉴别,其他的样本用于测试。处理后的数据集为其中ui是特征向量,bi是第i次观测的标签。
[0093]
假设当ui有毒时bi=1,而当ui无毒时bi=-1。模拟一个包含m=100个蕈菌的网络,如图2所示。然后,将数据集均匀地分配给所有蕈菌,对应于索引集d=6000的分区为和对于所有的i≠l,分散逻辑回归问题为并设置相关参数p=10,d=10,t=100,γ=0.01。
[0094]
在本实例中,运行两个apdig实例,一个使用不协调的步长,另一个使用递减步长规则α
t+1
=α
t
(1-0.02α
t
),其中t是局部迭代计数器。为使采用的apdig体现最佳性能,对步长进行对应调整,令如图3所示,为apdig算法的线性收敛性能随迭代次数变化的情况曲线,随着迭代次数增大,线性收敛性能也随之提升。此外,apdig算法的测试精度和训练
精度随迭代次数的变化分别如图4和图5所示,apdig算法的测试精度和训练精度能够通过少量迭代得到提升,使得蕈菌识别的效率得以提高。
[0095]
以上内容是结合具体的实施方式对本发明所做的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1