一种基于生成对抗网络的轨迹数据分类方法与流程

文档序号:15493250发布日期:2018-09-21 21:04阅读:2880来源:国知局

本发明属于机器学习中的深度学习领域,涉及一种基于机器学习的轨迹数据方法,尤其涉及一种基于对抗学习进行数据增强,从而提升轨迹数据分类效果的数据处理方法。



背景技术:

随着人类生活中智能手机、可穿戴智能设备的普及,越来越多的基于位置的社交网络(lbsns)数据被挖掘。对这些数据按照用户进行分类是一个非常重要的研究方向,分类的结果对广告或地点用户的精准推荐,甚至对于追踪失踪人口都有巨大的用处。

传统的机器学习方法使用svm、lda、lcss等算法对数据进行分类。而当今社会是一个大数据的时代,在海量数据的前提下,传统机器学习算法对于计算机内存的消耗让很多计算机设备难以承受,而深度学习不仅可以轻松地处理海量的数据,并且还可以达到优于传统机器学习算法的效果。使用循环神经网络(rnn)或者其变体长短期记忆网络(lstm)将轨迹按用户类别进行分类(如图1所示),达到的分类效果要好于传统的机器学习算法,具体处理过程如下:将进行预处理(包括删除过长数据和删除数据量较少的用户)后的轨迹数据,例如图1中的t11(用户1的第一条轨迹)、t21(用户1的第二条轨迹)、t12(用户2的第一条轨迹)、t22(用户2的第二条轨迹)……;使用word2vec技术进行词向量的转换,将离散的轨迹点转化为连续空间中的向量(这些向量中包含了数据的上下文信息,也就代表了原始数据之间的关系),处理后的轨迹向量可以正确表示出原有轨迹数据中前一轨迹点和后一轨迹点之间的某种联系;再将向量化的数据输入到循环神经网络(recurrentneuralnetwork,rnn)中,从循环神经网络中输出的信息输入到一个全连接层中,通过使用softmax激活函数进行分类操作,便得到了该轨迹所属的用户id【q.gao,f.zhou,k.zhang,g.trajcevski,x,luo,andf.zhang,“identifyinghumanmobilityviatrajectoryembeddings”2016】。对于当今社会产生的海量数据而言,即使上述轨迹分类方法没有包含调参等步骤,深度学习达到的效果已经优于传统的机器学习算法。

深度学习对比传统机器学习方法的优点是可以更加有效地处理海量数据,然而真实的轨迹数据集中,有些用户的轨迹数据丰富,而另一些用户的轨迹数据却很稀疏。在稀疏的数据上不足以体现出深度学习的优势,甚至会对神经网络的训练造成负面影响。因此对轨迹数据进行预处理是为了去除稀疏数据对神经网络训练带来的负面影响。然而去除稀疏轨迹数据必然影响对真实轨迹数据的分类效果,从而影响其在实际生活中的应用。因此为了使深度学习真正意义上地可以应用在实际生活的问题中,必须处理好稀疏数据对神经网络带来的负面影响,而不仅仅是删除它们。



技术实现要素:

本发明的目的旨在克服现有技术中轨迹数据分类方法存在的难以对稀疏数据进行有效分类的缺陷,提供一种基于生成对抗网络的轨迹数据分类方法,以解决因真实轨迹数据稀疏性对神经网络训练带来的负面影响,提高深度学习对轨迹数据的分类效果,从而更加适用于实际应用。

本发明的基本思路为,利用基于生成对抗网络对稀疏真实轨迹数据分布进行模拟,根据模拟分布生成若干组仿真轨迹数据,从而减少轨迹数据的稀疏性,提升轨迹数据的密集度,从而更好的为训练分类提供基础数据,使轨迹分类效果得到进一步提高。

基于上述发明思路,本发明提供的基于生成对抗网络的轨迹数据分类方法,包括以下步骤:

s1,将真实轨迹数据输入生成对抗网络,使生成对抗网络训练至生成器生成与真实轨迹数据同分布的仿真轨迹数据;

s2,利用生成对抗网络的生成器生成若干组仿真轨迹数据;

s3,对生成的若干组仿真轨迹数据与真实轨迹数据一起进行分类处理,得到轨迹用户映射。

上述基于生成对抗网络的轨迹数据分类方法,所述步骤s1的目的在于,生成对抗网络通过对来自数据集的真实轨迹数据进行学习和训练,能够生成与真实轨迹数据分布相似,与真实轨迹数据无法通过鉴别器区分的仿真轨迹数据。生成对抗网络包括生成器和鉴别器,生成器和鉴别器相互对抗;鉴别器的作用在于区分真实轨迹数据和仿真轨迹数据;生成器的作用在于通过参数(例如权重)优化,生成可以迷惑鉴别器的仿真轨迹数据;当鉴别器无法再分辨出真实轨迹数据和仿真轨迹数据时,则认为此时生成器生成的仿真轨迹数据已经符合要求,达到了一个很好的仿真效果。该步骤s1具体包括以下分步骤:

s11,将从高斯分布中采样的随机噪音作为输入数据输入到生成对抗网络的生成器,生成一组仿真轨迹数据;

s12,生成器输出的仿真轨迹数据与真实轨迹数据一起输入到生成对抗网络的鉴别器中,鉴别器对仿真轨迹数据和真实数据进行鉴别,得到鉴别结果;并根据鉴别结果分别计算得到生成器损失函数值和鉴别器损失函数值;

s13,判断得到的生成器损失函数值和鉴别器损失函数值是否趋于稳定,若趋于稳定,则进入步骤s2;若没有趋于稳定,则进入步骤s14;

s14,将得到的生成器损失函数值和鉴别器损失函数值分别返回至生成器和鉴别器,并利用生成器损失函数值和鉴别器损失函数值分别对生成器和鉴别器的参数进行修正,之后返回步骤s11。

上述基于生成对抗网络的轨迹数据分类方法,所述步骤s11在于利用生成器的网络模型生成一组仿真轨迹数据,具体包括以下分步骤:

s111,将从高斯分布中采样的随机噪音作为输入数据输入到生成器的网络模型中,产生一组数据;

s112,将步骤s111产生的一组数据压缩至-1到1之间;

s113,将得到的压缩数据作为符合真实轨迹数据向量维度的随机化生成向量,同时将来自数据集的真实轨迹数据进行向量化,得到真实轨迹数据对应的向量;

s114,分别计算每一条随机化生成向量与真实轨迹数据对应的向量之间的余弦夹角;

s115,遍历得到的余弦夹角,找出与真实轨迹数据对应的向量夹角之差最小的随机生成向量,构成仿真向量;

s116,将步骤s115得到的仿真向量还原成真实轨迹数据中相应的轨迹点,得到仿真轨迹数据。

上述基于生成对抗网络的轨迹数据分类方法,本发明中,所述生成器的网络模型为长短期记忆网络(long-shorttermmemory,lstm)。为了防止过拟合的发生,所述长短期记忆网络的每一层神经网络增加dropout机制。

上述生成对抗网络的轨迹数据分类方法,所述步骤s112中,利用tanh激活函数将步骤s111产生的一组数据压缩至-1到1之间,以便于模拟原始数据使用word2vec技术将得到的压缩数据进行向量化。

上述生成对抗网络的轨迹数据分类方法,由于轨迹中所存在的都是真实的经纬度定位的地点,不能是凭空捏造新的地点,因此需要从步骤s113得到的随机化生成向量中找到与真实轨迹数据对应向量最接近的向量,并将其还原成相应的真实轨迹数据点(真实的经纬度)。通过步骤s114至步骤s116,可以从生成器生成的数据中找出与真实轨迹数据中的数据点相同的数据,从而组成一组仿真轨迹数据。

上述生成对抗网络的轨迹数据分类方法,所述步骤s12具体实现方式为:将生成器输出的仿真轨迹数据与真实轨迹数据进行向量化处理,向量化后的数据输入到鉴别器的网络模型中,提取出仿真轨迹数据和真实轨迹数据的向量特征;根据得到的向量特征得到鉴别结果。这里的向量特征不仅包括具有真实经纬度的地点数据,还包括相邻两个真实轨迹数据点之间的时序关系。本发明鉴别器的网络模型为卷积神经网络(convolutionneuralnetwork),相比于其它神经网络或其它算法可以更加有效地提取到输入数据的主要特征。卷积神经网络包括卷积层和池化层,卷积层用于提取输入到该网络模型中的真实轨迹数据与仿真轨迹数据的向量特征;池化层用于对卷积层得到的向量特征进行聚合统计,最终输出0到1之间的数据来代表鉴别器认为该输入数据更像真实数据还是仿真数据。

上述生成对抗网络的轨迹数据分类方法,所述生成器损失函数为所述鉴别器损失函数为式中,m为真实轨迹点或者是仿真轨迹点总数,i为第i个真实轨迹点或仿真轨迹点,x(i)为第i个真实轨迹点输入数据,fw(x(i))为第i个真实轨迹点输出数据,w为鉴别器的网络模型权重参数,gθ(z(i))为第i个仿真轨迹点输入数据,fw(gθ(z(i)))为第i个仿真轨迹点输出数据,z(i)为第i个仿真轨迹点对应的输入生成器的高斯分布上的先验采样数据,θ为生成器的网络模型权重参数。上述真实轨迹点输入数据x(i)和仿真轨迹点输入数据gθ(z(i))为输入鉴别器网络模型的数据,真实轨迹点输出数据fw(x(i))和仿真轨迹点输出数据fw(gθ(z(i)))来自鉴别器网络模型的输出数据,将步骤s12得到的生成器损失函数值和鉴别器损失函数值分别与前几轮迭代过程步骤s12得的生成器损失函数值和鉴别器损失函数值相比较,判断两者是否趋于稳定,若趋于稳定,则停止迭代,则进入步骤s2;若没有趋于稳定,将得到的生成器损失函数值和鉴别器损失函数值分别返回至生成器和鉴别器,并利用生成器损失函数值和鉴别器损失函数值分别对生成器和鉴别器的参数进行修正,之后返回步骤s11。

利用鉴别器损失函数对鉴别器参数w进行修正的具体实现方式为:

w←w+α·rmsprop(w,gw)

w←clip(w,-c,c)

式中,α为学习率,取值范围为0.01~0.1,rmsprop()为优化算法,是本领域的一种常规优化手段。

首先将鉴别器损失函数对w的梯度赋值给gw,然后将w+α·rmsprop(w,gw)作为下一轮迭代过程中鉴别器网络模型使用的权重参数w,若w+α·rmsprop(w,gw)超出了定义的阈值范围[-c,c],则直接将-c或c作为下一轮迭代过程中鉴别器网络模型使用的权重参数w。完成对鉴别器参数w的修正后,返回步骤s11,开始下一轮迭代过程。

本发明中是首先对鉴别器参数w通过若干轮迭代过程进行修正,完成对鉴别器参数w的若干次修正后,对生成器参数θ进行一次修正,接下来再对鉴别器参数w进行修正,如此通过多轮迭代,生成器与鉴别器的损失函数输出趋于稳定,生成器与鉴别器的训练便达到平衡。此时生成器可以正确模拟真实轨迹数据分布,生成与真实轨迹数据无法通过鉴别器区分的仿真轨迹数据。本领域技术人员可以根据具体情形,对鉴别器参数w和生成器参数θ的修正选择合适的迭代方式。

利用生成器损失函数对生成器参数θ进行修正的具体实现方式为:

θ←θ-α·rmsprop(θ,gθ)

式中,α为学习率,取值范围为0.01~0.1,rmsprop()为优化算法,是本领域的一种常规优化手段。

首先将生成器损失函数对θ的梯度赋值给gθ,然后将θ-α·rmsprop(θ,gθ)作为下一轮迭代过程中鉴别器网络模型使用的权重参数θ。完成对生成器参数θ的修正后,返回步骤s11,开始下一轮迭代过程。

上述生成对抗网络的轨迹数据分类方法,所述步骤s3中,将生成的若干组仿真轨迹数据与真实轨迹数据一起输入分类器进行分类训练,得到轨迹用户映射,具体实现方式为:采用word2vec技术对经步骤s2得到的若干组仿真轨迹数据与真实轨迹数据进行向量化处理,再将向量化处理后的数据输入到分类器的分类模型中,从分类模型输出的信息利用softmax激活函数进行分类,得到轨迹用户映射。所述分类模型为rnn(recurrentneuralnetwork,循环神经网络)、lstm(长短期记忆网络)、lcss(longest-common-subsequence,最长公共子序列)、lda(lineardiscriminantanalysis,线性判别分析网络)、svm(supportvectormachine,支持向量机)、bi-tuler(bi,bidirectionallstm;tuler,trajectory-userlinkingviaembeddingandrnn)中的一种。由于长短期记忆网络是一种根据时间序列或字符序列自我调用的神经网络,可以提取到输入数据中的时序关系,有利于处理存在时序关系的数据,因此长短期记忆网络为分类处理的优选实施方式。

上述生成对抗网络的轨迹数据分类方法,为了提高轨迹数据分类效率,可以在某些强调时间效率的使用场景中,先采用分类器对基础轨迹数据进行分类,对于分类错误或者难以实现分类的数据(可以作为本发明中的稀疏数据部分)进一步采用本发明提供的基于生成对抗网络的轨迹数据分类方法进行处理,这样可以显著提高轨迹数据分类效率。

与现有技术相比,本发明具有以下有益效果:

1、本发明基于生成对抗网络的轨迹数据分类方法,通过生成对抗网络可以模拟真实轨迹数据的分布,以生成的仿真轨迹数据和真实轨迹数据一起作为轨迹数据分类的数据源,对轨迹数据进行分类。可以有效解决数据稀疏问题,避免稀疏轨迹数据对轨迹数据分类产生负面影响;由于稀疏轨迹数据也存在相应的轨迹用户映射,因此能够实现对稀疏轨迹数据分类,有助于提高数据分类效果;

2、本发明基于生成对抗网络的轨迹数据分类方法,可以与常规分类方法相结合,单独针对容易导致分类错误或者难以分类的稀疏数据进行分类,从而显著提高轨迹数据分类效率;

3、本发明基于生成对抗网络的轨迹数据分类方法,将符合真实轨迹数据分布的仿真轨迹数据和真实轨迹数据一起进行轨迹数据分类,从而为进行轨迹分类的神经网络提供更加优秀的输入数据,来进一步提高轨迹数据分类效果。

附图说明

图1为使用循环神经网络(rnn)按用户类别进行轨迹数据分类的基础模型。

图2为利用深度学习基础模型lstm以及本发明提供的基于生成对抗网络的深度学习模型对轨迹数据分类的效果图。其中(a)为利用深度学习基础模型lstm对非稀疏轨迹数据分类得到的轨迹用户映射效果图(箭头方向代表用户行走的轨迹),(b)为利用深度学习基础模型lstm对非稀疏轨迹数据和稀疏数据分类得到的轨迹用户映射效果图(箭头方向代表用户行走的轨迹,打×的地方表示由于数据稀疏导致难以实现分类),(c)为利用生成对抗网络生成的仿真轨迹数据,(d)d部分为利用本发明提供的基于生成对抗网络的深度学习模型对稀疏数据分类得到的轨迹用户映射效果图。

图3为生成对抗网络的简要思想示意图;其中,(a)为训练起始阶段,(b)和(c)为训练时的对抗过程,(d)为训练结束阶段,a-真实数据,b-噪音分布的采样输入生成器后输出的生成数据,c-鉴别器鉴别真实数据和生成数据的能力。

图4为本发明提供的基于生成对抗网络的轨迹数据分类方法框架示意图。

术语解释:

word2vec是一种向量化的技术,目的是在于将离散的数据嵌入到连续的向量空间中。word2vec可以通过中心词预测上下文,使用预测出来的上下文与真实的上下文之间的差距优化word2vec模型,从而可以学到一个合适的表示这些数据的多维向量模型。这些向量中包含了数据的上下文信息,也就代表了原始数据之间的关系。

具体实施方式

以下结合附图对本发明作进一步描述。

实施例

本实施例提供的基于生成对抗网络的轨迹数据分类方法是基于生成器、鉴别器和分类器组成的深度学习模型来实现的。生成器和鉴别器构成生成对抗网络。

生成对抗网络是一种基于深度学习的生成模型,生成器的作用是生成数据,鉴别器的作用是分辨真实数据和生成数据,同时生成器通过优化自身参数从而生成可以迷惑鉴别器的数据,当鉴别器无法分辨出真实数据和生成数据时,则认为此时的生成器可以生成模拟真实数据的仿真数据。如图3所示,生成器通过学习噪音分布z到真实数据分布的映射,来模拟真实数据;初始时【如图3(a)】,生成器生产的数据(b)与真实数据(a)相差很远;通过对抗训练,利用反向传播对生成器和鉴别器参数进行优化,可以使生成器生成的数据越来越接近真实数据【如图3(b)和(c)】;当生成器已经可以正确模拟真实数据的分布,鉴别器也无法再区分出生成数据与真实数据时,训练结束,训练效果达到完美状态【如图3(d)】。

本实施例中,生成器采用word2vec技术与网络模型长短期记忆网络(lstm)相结合,使用高斯分布产生的随机噪音作为模型的输入,长短期记忆网络的每层神经网络增加了dropout机制。生成器进一步包括使用tanh激活函数将长短期记忆网络中输出的数据压缩到-1到1之间的压缩模块、采用word2vec技术将真实数据进行向量化的向量化处理模块、将生成向量还原成数据集中真实轨迹点的还原模块。

本实施例中,鉴别器采用卷积神经网络(convolutionneuralnetwork,cnn)技术。卷积神经网络用于提取输入到鉴别器中的真实轨迹数据与仿真轨迹数据的向量特征,卷积神经网络比其它神经网络或其他算法可以更加有效地提取到输入数据的主要特征。卷积神经网络包括卷积层和池化层,卷积层用于提取输入数据的向量特征,池化层用于对卷积得到的向量特征进行聚合统计,最终输出0到1之间的数据来代表鉴别器认为该输入数据更像真实数据还是仿真数据。以上鉴别器技术对所输入的数据真假进行判断,也就是将仿真数据和真实数据区分出来。

本实施例中,生成对抗网络进一步包括用于优化生成器参数和鉴别器参数的参数优化模块,其根据生成器损失函数值和鉴别器损失函数值对生成器参数和鉴别器参数进行修正优化。

本实施例中,分类器采用word2vec技术与分类模型相结合,对来自训练数据集的真实轨迹数据和生成器生成的仿真轨迹数据进行分类处理,得到轨迹分布,使用softmax激活函数进行数据输出,以输出值中的最大值作为分类得到的用户id,建立轨迹与用户之间的映射关系(轨迹用户映射)。这里的分类模型可以为rnn(循环神经网络)、lstm(长短期记忆网络)、lcss(longest-common-subsequence,最长公共子序列)、lda络(线性判别分析网)、svm(supportvectormachine,支持向量机)、bi-tuler(bi,bidirectionallstm;tuler,trajectory-userlinkingviaembeddingandrnn)中的一种。由于长短期记忆网络是一种根据时间序列或字符序列自我调用的神经网络,可以提取到输入数据中的时序关系,有利于更准确地对包含时序关系的数据进行分类。

本实施例中数据集用于存储由真实轨迹点组成的真实轨迹数据。

本实施例提供的基于生成对抗网络的轨迹数据分类方法,如图4所示,包括以下步骤:

s1,将真实轨迹数据输入生成对抗网络,使生成对抗网络训练至生成器生成与真实轨迹数据同分布的仿真轨迹数据,其包括以下分步骤:

s11,将从高斯分布中采样的随机噪音z作为输入数据输入到生成对抗网络的生成器,生成一组仿真轨迹数据,具体包括以下分步骤:

s111,将从高斯分布中采样的随机噪音作为输入数据输入到生成器的网络模型长短期记忆网络(lstm)中,通过长短期记忆网络,可以训练学习得到从高斯分布到真实轨迹数据分布的映射,为了防止过拟合的发生,所述长短期记忆网络的每一层神经网络增加dropout机制;长短期记忆网络最终产生一组输出数据;

s112,利用tanh激活函数将步骤s111产生的一组数据压缩至-1到1之间,以便于模拟原始数据使用word2vec技术进行向量化;

s113,将得到的压缩数据作为符合真实数据向量维度的随机化生成向量,同时将来自数据集的真实轨迹数据使用word2vec技术进行向量化,得到真实轨迹数据对应的向量;

s114,由于轨迹中所存在的都是真实的经纬度定位的地点,不能是凭空捏造新的地点,因此需要从步骤s113得到的随机化生成向量中找到与真实轨迹数据对应向量最接近的向量,并将其还原成相应的真实轨迹数据点(真实的经纬度),这由还原模块来完成;本步骤中,先分别计算每一条随机化生成向量与真实轨迹数据对应的向量之间的余弦夹角,即两条向量的点乘结果除以两条向量的模的乘积;

s115,遍历得到的余弦夹角,找出与真实轨迹数据对应的向量夹角之差最小的随机生成向量,构成仿真向量;例如,设定向量a为随机生成向量,向量b为真实轨迹点经过word2vec技术映射而来的、与真实轨迹点对应的高维向量,余弦角度计算结果中最小的一对向量对(a,b),两条向量所指向的方向最为接近,将其作为仿真向量;采用相同的方法从随机生成向量中找出与所有真实轨迹点数据对应向量指向接近的仿真向量;

s116,将步骤s115得到的仿真向量还原成真实轨迹数据中相应的轨迹点,得到仿真轨迹数据;将步骤s115得到的仿真向量a,看作真实轨迹点相应的向量b,以向量b相应的真实轨迹点(真实的经纬度)作为仿真向量b相应的仿真轨迹点,即所谓将向量a还原成向量b相应的真实轨迹点,采用相同的方法处理步骤s115得到的所有仿真向量,由此得到一组由还原后的真实轨迹点组成的仿真轨迹数据。

例如user0的一条真实轨迹数据为(22847420315165161537),以22847真实轨迹点为例,采用word2vec技术得到的相应向量b为(0.043425433,0.6373132345,0.1451467546,…)100维,通过步骤s115得到的仿真向量a为(0.0233443453,0.672245432,0.123468454,…)100维,则仿真向量a还原得到的仿真轨迹点为22847。

s12,生成器输出的仿真轨迹数据与真实轨迹数据一起输入到生成对抗网络的鉴别器中,鉴别器对仿真轨迹数据和真实数据进行鉴别,得到鉴别结果;并根据鉴别结果分别计算得到生成器损失函数值和鉴别器损失函数值。

利用鉴别器对输入的数据的真假进行判断,也就是将仿真数据和真实数据区分出来。具体实现方式为:将生成器输出的仿真轨迹数据与真实轨迹数据利用word2vec技术进行向量化处理后的数据输入到鉴别器的网络模型卷积神经网络中,利用卷积层提取出仿真轨迹数据和真实轨迹数据的向量特征;之后利用池化层对得到的向量特征进行聚合统计,得到鉴别结果。这里的向量特征不仅包含具有真实经纬度的地点数据,还包括相邻两个真实轨迹数据点之间的时序关系。

所述鉴别结果包括来自鉴别器卷积神经网络输出的真实轨迹点输出数据fw(x(i))和仿真轨迹点输出数据fw(gθ(z(i)))。

所述生成器损失函数为所述鉴别器损失函数为式中,m为真实轨迹点或者是仿真轨迹点总数,i为第i个真实轨迹点或仿真轨迹点,x(i)为第i个真实轨迹点输入数据,fw(x(i))为第i个真实轨迹点输出数据,w为鉴别器的网络模型权重参数,gθ(z(i))为第i个仿真轨迹点输入数据,fw(gθ(z(i)))为第i个仿真轨迹点输出数据,z(i)为第i个仿真轨迹点对应的输入生成器的高斯分布上的先验采样数据,θ为生成器的网络模型权重参数。上述真实轨迹点输入数据x(i)和仿真轨迹点输入数据gθ(z(i))为输入鉴别器网络模型的数据,gθ(z(i))来自生成器输出数据。

s13,判断得到的生成器损失函数值和鉴别器损失函数值是否趋于稳定,若趋于稳定,则进入步骤s2;若没有趋于稳定,则进入步骤s14。

鉴别器要求可以鉴别出真实数据为1,鉴别出生成数据为0,而生成器则要求鉴别器无法鉴别出生成的数据,为此,调用优化参数模块,需通过反向传播,经过若干轮迭代,利用得到的生成器损失函数值和鉴别器损失函数值分别对生成器和鉴别器参数进行优化修正。当生成器损失函数值和鉴别器损失函数值趋于稳定时,生成器和鉴别器的训练达到平衡,此时生成器生成的仿真轨迹数据以及可以模拟真实轨迹数据分布,鉴别器已无法鉴别仿真轨迹数据和真实轨迹数据。

判断生成器损失函数值和鉴别器损失函数值趋于稳定的方式为:将第n轮迭代过程(以从高斯分布产生的噪音输入生成器至得到生成器损失函数值和鉴别器函数值为一个迭代过程)中步骤s12得到的生成器损失函数值和鉴别器损失函数值分别与第n轮之前的几轮迭代过程步骤s12得的生成器损失函数值和鉴别器损失函数值相比较,判断两者是否趋于稳定,若趋于稳定,则停止迭代,则进入步骤s2;若没有趋于稳定,将得到的生成器损失函数值和鉴别器损失函数值分别返回至生成器和鉴别器,并利用生成器损失函数值和鉴别器损失函数值分别对生成器和鉴别器的参数进行修正,之后返回步骤s11。

例如,第n轮迭代过程得到的鉴别器损失函数值为0.09,第n轮迭代之前的5轮鉴别器损失函数值为0.1、0.09、0.091、0.092、0.089,说明经过n轮迭代过程后,鉴别器损失函数值在0.09附近徘徊,则认为鉴别器损失函数值趋于稳定。

s14,将得到的生成器损失函数值和鉴别器损失函数值分别返回至生成器和鉴别器,并利用生成器损失函数值和鉴别器损失函数值分别对生成器和鉴别器的参数进行修正,之后返回步骤s11。

本实施例中,生成器参数为权重参数θ,鉴别器参数为权重参数w。本实施例中是先通过若干轮(例如4轮)迭代,完成对鉴别器参数w的若干次(相应的为4次)修正后,对生成器参数θ进行一次修正,接下来再对鉴别器参数w进行修正,如此通过多轮迭代,生成器与鉴别器的损失函数输出趋于稳定,生成器与鉴别器的训练便达到平衡,此时生成器可以正确模拟真实轨迹数据分布,生成与真实轨迹数据无法通过鉴别器区分的仿真轨迹数据。本领域技术人员可以根据具体情形,对鉴别器参数w和生成器参数θ的修正选择合适的迭代方式。

参数优化模块利用鉴别器损失函数对鉴别器参数w进行修正的具体实现方式为:

w←w+α·rmsprop(w,gw)

w←clip(w,-c,c)

式中,α为学习率,取值范围为0.01~0.1,rmsprop()为优化算法,是本领域的一种常规优化手段。

首先将鉴别器损失函数对w的梯度赋值给gw,然后将w+α·rmsprop(w,gw)作为下一轮迭代过程中鉴别器网络模型使用的权重参数w,若w+α·rmsprop(w,gw)超出了定义的阈值范围[-c,c],则直接将-c或c作为下一轮迭代过程中鉴别器网络模型使用的权重参数w。完成对鉴别器参数w的修正后,返回步骤s11,开始下一轮迭代过程。

参数优化模块利用生成器损失函数对生成器参数θ进行修正的具体实现方式为:

θ←θ-α·rmsprop(θ,gθ)

式中,α为学习率,取值范围为0.01~0.1,rmsprop()为优化算法,是本领域的一种常规优化手段。

首先将生成器损失函数对θ的梯度赋值给gθ,然后将θ-α·rmsprop(θ,gθ)作为下一轮迭代过程中鉴别器网络模型使用的权重参数θ。完成对生成器参数θ的修正后,返回步骤s11,开始下一轮迭代过程。

s2,利用生成对抗网络的生成器生成若干组仿真轨迹数据。

本步骤的目的在于利用步骤s1中生成对抗网络训练好的生成器生成若干组仿真轨迹数据,将其与真实轨迹数据一起进行分类。这样,当真实数据比较稀疏时,可以弥补因数据稀疏产生的分类错误或者难以分类的缺陷。

s3,对生成的若干组仿真轨迹数据与真实轨迹数据一起进行分类处理,得到轨迹用户映射。

本步骤的目的在于将生成的若干组仿真轨迹数据与真实轨迹数据一起输入分类器进行分类训练,得到轨迹用户映射,具体实现方式为:采用word2vec技术对经步骤s2得到的若干组仿真轨迹数据与真实轨迹数据进行向量化处理,再将向量化处理后的数据输入到分类器的分类模型中,从分类模型输出的信息利用softmax激活函数进行分类,得到轨迹用户映射。这部分可以参考本领域已经披露的常规分类器的实现方式,例如文献q.gao,f.zhou,k.zhang,g.trajcevski,x,luo,andf.zhang,“identifyinghumanmobilityviatrajectoryembeddings”2016公开的轨迹数据分类方法。

这里的分类模型可以为rnn(循环神经网络)、lstm(长短期记忆网络)、lcss(longest-common-subsequence,最长公共子序列)、lda(lineardiscriminantanalysis,线性判别分析网络)、svm(supportvectormachine,支持向量机)、bi-tuler(bi,bidirectionallstm;tuler,trajectory-userlinkingviaembeddingandrnn)中的一种。由于长短期记忆网络是一种根据时间序列或字符序列自我调用的神经网络,可以提取到输入数据中的时序关系,有利于处理包含时序关系的数据分类,因此长短期记忆网络为分类处理的优选实施方式。

图2给出了采用深度学习基础模型lstm以及本实施例基于生成对抗网络的轨迹数据分类方法对轨迹数据进行分类的对比图。(a)为利用深度学习基础模型lstm按照【q.gao,f.zhou,k.zhang,g.trajcevski,x,luo,andf.zhang,“identifyinghumanmobilityviatrajectoryembeddings”2016】提供的分类方法对非稀疏轨迹数据分类得到的轨迹用户映射效果图,箭头方向代表用户行走的轨迹。(b)为利用深度学习基础模型lstm按照【q.gao,f.zhou,k.zhang,g.trajcevski,x,luo,andf.zhang,“identifyinghumanmobilityviatrajectoryembeddings”2016】对非稀疏轨迹数据(图中a部分)和稀疏数据(图中b部分)分类得到的轨迹用户映射效果图,箭头方向代表用户行走的轨迹,打×的地方表示由于数据稀疏导致难以实现正确的分类。(c)为按照步骤s11利用生成器生成的仿真轨迹数据。(d)中,c部分为利用深度学习基础模型lstm按照【q.gao,f.zhou,k.zhang,g.trajcevski,x,luo,andf.zhang,“identifyinghumanmobilityviatrajectoryembeddings”2016】对非稀疏轨迹数据分类得到的轨迹用户映射效果图,d部分为本实施例基于生成对抗网络的轨迹数据分类方法对轨迹数据分类得到的轨迹用户映射效果图。从图中可以看出,采用本发明提供的基于生成对抗网络的轨迹数据分类方法,可以对稀疏数据实现正确分类,得到相应的轨迹用户映射,从而有助于提高轨迹数据分类效果。

应用例

采用实施例1提供的基于生成对抗网络的轨迹数据分类方法对三个不同的真实数据集(geolife数据集、gowalla数据集、brightkite数据集,这三个数据集可以从https://github.com/gcooq/tul获取)上分别产生的效果。对于每个数据集,随机抽取小部分数据作为测试集,剩余数据作为训练集。首先分别利用三个训练集对基于三种传统机器学习方法(lcss、lda、svm)与一种使用深度学习方法(bi-tuler)的分类器进行轨迹数据分类,训练得到可以实现轨迹数据分类的分类器,然后使用这四种分类器对测试集中的轨迹数据进行分类处理,以softmax函数输出的最大值作为分类得到的用户id,即得到相应的轨迹用户映射。其分类效果见表1至表3中左边未加粗字体部分(即withouttgan部分)。再使用实施例1提供的基于生成对抗网络的轨迹数据分类方法分别利用三个训练集进行轨迹数据分类训练,对每一组真实轨迹数据,首先利用生成对抗网络生成若干组与真实轨迹数据同分布的仿真轨迹数据,再将生成的若干组仿真轨迹数据和真实轨迹数据一起分别对三种基于传统机器学习方法(lcss、lda、svm)与一种使用深度学习方法(bi-tuler)的分类器进行轨迹数据分类训练,得到可以实现轨迹数据分类的模型;然后使用得到的模型对测试集中的数据进行处理(对测试集中的数据直接使用分类器进行分类),以softmax函数输出的最大值作为分类得到的用户id,即得到相应的轨迹用户映射。其分类效果见表1至表3中右边加粗字体部分(即withtgan部分)。

表1:对geolife数据集进行轨迹数据分类的分类效果

表2:对gowalla数据集进行轨迹数据分类的分类效果

表3:对brightkite数据集进行轨迹数据分类的分类效果

tgan表示基于生成对抗网络的轨迹数据分类;

acc@1表示从测试集中取1组轨迹数据的准确率;

acc@3表示从测试集中取3组轨迹数据的准确率;

acc@5表示从测试集中取5组轨迹数据的准确率;

acc@10表示从测试集中取10组轨迹数据的准确率;

macro-f1表示从测试集中取所有轨迹数据的准确率;

acc@1、acc@3、acc@5、acc@10、macro-f1的计算方法可以参考文献q.gao,f.zhou,k.zhang,g.trajcevski,x,luo,andf.zhang,“identifyinghumanmobilityviatrajectoryembeddings。

从表1至表3可以看出,使用了本发明基于生成对抗网络的轨迹数据分类方法的分类效果要全面优于单纯使用传统机器学习方法和深度学习方法的分类效果。

由此可知,本发明可以有效的解决数据稀疏问题,为轨迹分类带来效果上的提高。在某些强调时间效率的使用场景中,本发明也可以先使用传统机器学习方法和深度学习方法进行分类,然后选择出分类错误的部分,即所认为的稀疏数据部分,单独对稀疏数据使用本发明基于生成对抗网络的轨迹数据分类方法进行处理,从而达到提高效率的目的。

本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1