2020第一届无线大数据竞赛——华为赛道:无线网络智能定位 第2名方案

大家好,我是轶扬,本文给大家分享一下我在2020年参加的第一届无线大数据竞赛的比赛方案。
IMT-2020(5G)推进组在2020年初成立了5G与AI融合研究任务组,也是从这一年开始,国内许多通信公司都推出了AI解决无线通信中各种问题的比赛,目的是加速5G引入AI技术,加大5G支持AI的力度,并争取在最新的5G增强技术标准中形成成熟的提案。2020年华为和移动共同举办了国内的第一届无线大数据竞赛,我参加了华为赛道的无线网络智能定位赛题,这是我第一次参加机器学习+无线通信的比赛,也是第一次深入学习和研究机器学习在实际系统中的应用,获得了决赛第2名的成绩。下面是对于赛题和解决方案的详细介绍。
在这里插入图片描述

赛题描述

1 背景介绍

1.1 什么是无线定位?
  无线定位是指在无线移动通信网络中,通过对接收到的无线电波的参数进行测量并收集测量报告,采用特定的算法对移动终端所处的地理位置进行估计,以便后续提供相应的终端位置信息和服务。
1.2 传统定位技术
  传统定位模型有很多,从原理上讲大致可以分为三种:

  • 基于三角关系和运算的定位技术
    1)基于距离测量的定位技术
    2)基于角度测量的定位技术
  • 基于指纹匹配的定位技术
    本质上是一种模式识别的方法,用一些具体的、量化的特征描述环境中的各个位置,存放在数据库中,然后根据一定的匹配规则进行位置预测。
  • 基于临近关系的定位技术
    根据待定位物体与一个或多个已知位置的临近关系来定位,比如待定位终端在哪个小区的服务范围就用该小区的cellID来确定位置。

1.3 为什么还要研究定位模型
  业界虽然已经有了很多传统定位模型,但无线定位环境复杂,影响因素众多,需要研究得到一个比较准确的模型,是一项艰难的任务,任重道远。近几年 AI 技术突飞猛进,各行各业如火如荼。而且无线 LTE 网络已在全球完全普及,全球几十亿用户,每天甚至每小时都能产生大量数据,如何利用这么庞大的数据,结合 AI技术,将定位模型做到更精准、更高效、更便捷,是研究定位模型的一个重要方向。
  本次算法大赛,结合定位模型的业务痛点,面向各路技术专家,展开具有创新性和可实现性强的算法设计,使得该模型可以在不同环境下准确定位,为无线产品打下坚实基础。

2 任务描述

2.1 任务简述
  本次任务挑战高精度定位模型。给定多个地区用户终端所测量的网络测量报告,各队伍通过设计建模算法,建立输入(测量报告)与输出(用户位置)的关系,输出模型及预测代码。
  本次任务不限定队伍所使用方案,白盒(传统技术)黑盒(AI 技术)均可,最终比拼在验证集上的准确性。结合应用诉求,算法除考虑本次任务的挑战目标外,还应当具备预测速度快(不强制要求)的特点。
2.2 数据
  所用数据为测量报告。测量报告记录了,命名为 mr_X.csv (X 表示数据编号),字段固定。每条测量报告包含如下各字段对应含义如 Table 1 所示。

  • Table 1:测量报告数据表格的字段含义
    在这里插入图片描述

注:
1)svrCGI 为全球小区标识,可以唯一确定一个小区;CellID_i 局部唯一,有可能会重复。
2)邻区最多有 6 个记录,服务小区+邻区最多 7 个记录,无效的邻区标识和信号强度用空 值标识。比如,测量报告中有 1 个服务小区 3 个邻区,那么邻区 4,5,6 的标识和信号强度值均为空值。
3)信号强度的取值[-40,-140],数字越小信号强度越弱。
4)用户位置(X,Y)为标签列,即训练数据中的用户位置(X,Y)是已知的,测试数据中的用户位置为无效(nan, nan)
5)无线环境中,一个位置的终端多数情况下会接收到多个无线基站小区的信号,但终端实际入网做业务时只会连接到一个小区上,这个小区被称为主服务小区,其它接收到信号的小区被称为邻区
2.3 挑战目标
请各个参赛队根据自己建立的特征集以及我们提供的训练数据集,建立定位模型来对不同城市的用户位置进行预测。
我们将根据如下挑战目标来为各参赛队伍最后训练得到的模型进行评分。评分所用考核数据集仅为我们所有,以测试各提交模型的实际泛化能力。
2.4 模型精度评估方式
基于欧式距离计算真实位置和预测位置的误差距离,假设第 i 条测量报告的用户位置为(𝑋𝑖, 𝑌𝑖),参赛队定位模型计算的结果为(𝑋̂𝑖,𝑌̂𝑖),根据欧式距离可以计算出两者之间的距离:
在这里插入图片描述
将测量报告所有点的误差计算出来,对其 67%、80%分位数进行评估(误差数值越小越好)。
测量报告位置的预测成功率基本要求是 95%,允许采用算法将 5%误差较大的点剔除。

  • 初赛:
    筛选定位成功率超过 95%的参赛队,以误差的 80%、67%分位值(按重要度排序,即首先比较 80%误差分位数,若相同再比较 67%分位数,其中定位误差计算均保留两位小数),若仍相同,则根据提交时间,提交早的参赛队排名靠前。
  • 决赛:
    除关注误差分位数(与初赛评价标准一致)外,大赛会记录各个参赛队建模预测整体(端到端)用时作为参考。请各个参赛队在追求精度的同时考虑到效率问题。
    注意:由于存在多个测试集,各参赛队需严格按照测试集数字顺序合并对应的预测结果,且保持各个预测结果内部各条数据顺序不变。顺序错误会导致最终结果产生较大误差,请各参赛队伍务必正确按序合并后提交。

赛题理解

数据特征探索

在机器学习中有句话叫,数据决定了模型性能的上限,而一个好的模型设计可以无限的逼近这个上限。

比赛提供了六个地区的用户终端所测量的网络测量报告,包括大概两千万条数据,我们需要建立测量报告与用户位置的关系,也就是根据用户在位置A测量的来自最多六个邻近基站的信号强度,来估计位置A的具体坐标,因此,测量报告和用户位置分别是任务的输入和输出。比赛有两个评测指标,一个是所有点误差的80%分位数(基于欧式距离计算的误差距离从小到大排序,总数据的第80%个误差),另一个是模型的NAIE平台线上的推理预测时间,因此,需要兼顾所设计定位算法的准确性和计算速度,对于计算速度取决于算法本身的计算复杂度以及代码编写的效率,我们在追求高效算法的同时,更需要注意优化自己实现算法的代码,但这往往是编程经验不足或者重“道”轻“术”的通信专业背景的学生不擅长的地方,所以我们不仅要提高自己的专业技能,还要在平时有意识的多点一些技能点,重道也要重术(关于这一点,我在之前的中兴捧月算法大赛中(中兴捧月算法大赛通信赛道第1名方案分享)略微有一些探索和心得,也在结果上尝到了一些“甜头”)。回到赛题,这两千万条测量报告其实就是我们所说的信号指纹,每条信号指纹数据包括了一个用户的ID,用户的二维坐标(此为标签,只在训练集中有),主小区的ID,主小区的接收信号强度RSRP,还有最多6个邻区的相对ID和对应的RSRP,RSRP的取值范围是-40db到-140db,数字越小信号强度越弱,距离越远。
我从两个维度进行探索性数据分析:
1)第一个维度是6个城市数据集之间的差异化分析:
在这里插入图片描述
可以发现六个城市的小区密集程度各不相同,虽然数据集没有给出每个基站的位置,但是我们可以通过用户测量报告中的有效邻区数量分布来推测出来,比如拿其中一个简单的例子说明,第一个城市的所有用户测量报告有70%的测量报告中有3个有效rsrp,而第二个城市的70%的测量报告只有2个有效rsrp,我们据此可以推断,第一个城市的基站分布相对第二个城市更密集,因为大多数用户可以接收到更多较强的邻区信号,按照这个思路,发现六个城市的其实数据集分布差异较大,所以应该在模型上要区别对待,可能是算法上的差异,也可能是一些参数上的调整,这些都是通过最开始的分析得到的结论,最终也验证了这一点,也是大多数选手忽略的地方。
2)第二个维度是一个城市数据集内的数据分析:
我们还是以第一个城市为例,首先通过统计,可以发现训练集和测试集的测量报告有效rsrp分布是几乎一致的,也就是说第一个城市的测试集也有70%的测量报告中有3个有效rsrp。这个结论非常重要,因为训练集和测试集的数据统计分布的一致性不管对于传统的机器学习,还是深度学习来说都是十分重要的。因此这个结论也很好的支撑了机器学习在这一个实际任务中的应用。然后我们再分析具体的数据,会发现很多很有现实意义而区别于那些基于指纹定位的学术研究的数据特征。
主要有以下特征

  • 用户位置在城市范围内随机:用户的位置在城市中是任意的。

  • 基站位置未知:所有基站的位置未知(对于用户),因此只能用人工路测的经验数据集做指纹匹配,而不能以基站的具体坐标为参考。

  • 用户在同一个位置可能有不同的信号指纹

    • a) 连接的主小区svrCGI和邻区CGI相同,但对应的RSRP不同,对于这种情况,可以将对应的RSRP取平均值。
      在这里插入图片描述
    • b) 连接的主小区svrCGI和邻区ID均不相同
      在这里插入图片描述
  • 用户在不同位置拥有相同的信号指纹:用户在不同位置上,收集到的测量报告上的svrCGI、CellCGI数量及大小均相同。对于这种情况,可以将位置取平均值。
    在这里插入图片描述

  • 同一条测量报告中出现相同的邻区ID,并且对应的RSRP不同。对于这种情况,可将位置去平均值。
    在这里插入图片描述

  • 在同一主小区下的测量报告中,测量到的邻区信号数量不同(设计算法时最需要关注的):
    同一主小区内在不同位置、时刻的接收到的小区有效信号数量有可能不同,意味着测试数据与多个不同匹配数据的相同小区ID数量不同,导致各指纹信号在向量空间上的纬度不同,那么在基于指纹的定位算法中,如何保证不同维度的向量之间相似性评估的公平性,这一个问题是算法设计的关键。

基于指纹匹配的定位算法设计

在这里插入图片描述

算法步骤描述与实现细节

1、在指纹库中搜索与测试数据来自相同主基站的所有匹配数据;
2、这些匹配数据的主小区id和测试数据都一样,但有效邻区的数量,以及邻区id和匹配数据的有效邻区的数量和id有可能不同,举个例子,比如现在测试数据除了主小区外,还有邻区ID为1、2、3的rsrp,从指纹库中找到2条匹配数据,匹配数据A只有1、4邻区的rsrp,那么和测试数据只能从两个维度上计算相似性;匹配数据B有1、2、3、5邻区的rsrp,那么测试数据就可以从四个维度上计算相似性。我们采用类似于knn的思想,应该用这两个匹配数据的位置的加权平均作为预测位置,这个时候在权重计算上就出现了一个问题,因为这里引入不同维度的向量比较,传统的knn是直接用欧氏空间rsrp误差的倒数作为权重,但这里引入了不同维度的欧氏空间的rsrp误差如何赋予权重的问题。我的做法是,对于一个维度为N的向量,此处N不大于7,那按照相同邻区的数量进行划分,理论上他在训练集中最多能找到N种不同的匹配数据,我把这N种不同的匹配数据与测试数据在各自维度欧氏空间的rsrp误差和它相应的匹配数据的位置标签分别放在N个列表中,也就是说每个列表里面放的都是很多<误差,位置>的数据对,这样就构建好了我们的特征集,然后再在这个特征集上在做处理。
3、首先进行离群点筛选,我们对每个列表的所有匹配数据的位置用3sigma准则进行筛选,也就是按照x-x的平均数是否小于等于3倍的标准差为准则,去除掉那些被认为是离散点的匹配数据,这样能够去除一部分测量报告异常的数据。(当然还可以用基于距离或者聚类的方法进行离群点检测,但他们需要大量的统计计算)
4、对每个列表都进行一次离群点筛选,然后计算各列表的加权平均值和标准差,加权平均值为后续的计算预测位置做参考,标准差用于判断列表中的位置的离散程度。
5、由于测量报告的有效邻区和其rsrp受到基站与用户距离、信道衰落情况、散射点遮蔽物分布等综合因素影响,我们在给每个匹配数据赋予权重的时候也必须做出相应的考虑,因此按照实际的通信场景做出三个合理性假设:

假设1:同一个欧氏空间下(也就是同一个列表内),匹配数据和预测数据的rsrp误差越小,说明其位置上的距离越接近,因此按照rsrp的误差大小赋予权重。
假设2:匹配数据与测试数据的来自相同邻区的接收信号数量越多,说明在地理位置上更接近,因此按照相似维度赋予权重。
假设3:列表中的所有位置的标准差越小,说明位置越集中,可靠性越高,因此可以按照标准差的大小赋予权重。
6、基于以上推断和假设,可以得到预测位置的计算公式:
L ^ = ∑ n = 1 7 w n × L o c n × 1 σ n ∑ n = 1 7 w n × 1 σ n \hat{L}=\frac{\sum_{n=1}^7w_n\times Loc_n\times \frac{1}{\sigma_n}}{\sum_{n=1}^7w_n \times\frac{1}{\sigma_n}} L^=n=17wn×σn1n=17wn×Locn×σn1
7、上面的算法是没有任何的超参数的,也就是说不需要对某些参数进行搜索,是一个对每个数据集都普适的算法,但是根据我一开始的数据分析,不同城市的数据集分布是不同的,因此我结合实际通信场景,引入一些超参数,来再次进行算法上的优化。引入超参之后,我就接触到了NAIE平台的一个强大的功能:自动超参优化机制。

指纹匹配库中离群点筛选
在这里插入图片描述
筛选5%误差较大数据
记录40000条测试数据在步骤6中得到标准差,从小到大排序,保留前95%的标准差对应的预测位置,其他测试数据的预测位置设为空值。

如何让算法对不同城市的数据集进行自适应并进行自动超参优化?

1、根据业务理解,在算法中引入一些超参数,对不同城市进行自适应:
a)假设测试数据和匹配数据的公共小区数量相同的情况下,两个测量报告中来自不同的小区的信号越多,可靠性越低,对于基站分布较分散的城市,可靠性进一步降低。那么不同的小区数量和相同的小区数量的差值就是一个超参数。
b)每个维度的rsrp误差阈值,当rsrp误差大于对应的阈值,就舍弃该条匹配数据。
2、超参优化迭代过程:
1)选择一种超参组合;
2)对模型进行训练;
3)使用某些标准进行模型评估;
4)根据评估结果与特定超参搜索策略,进行超参迭代更新。
终止条件为达到最大迭代次数或达到预期效果。
3、利用NAIE进行自动超参优化
1)将每个城市的有标签数据集以1:9的比例划分为验证集和训练集,使用验证集进行模型评估;
2)以最小化欧氏空间坐标平均误差为目标,以网格搜索、随机搜索、贝叶斯优化为超参优化方法。
在这里插入图片描述

比赛结果

最终算法在所有测试数据上的80%误差分位数和67%误差分位数分别为195米和136米,中位数误差在100m左右。有小伙伴可能会问百米级的定位准确度未必也太差了呢?我的想法是,我们对于这次比赛数据和比赛目的要有一些更清晰的认识:
1、本次大赛的数据主要是本站和邻站的RSRP,这些数据的获取非常容易,不需要对用户终端有额外的硬件要求或申请额外的权限,也不需要对网络侧进行任何修改,就可以轻松获取大量的相关数据。
2、出于比赛平台的算力限制考虑以及比赛的目的只是对选手所提出的数据预处理方法、建模方法以及算法性能进行初步的验证,因此,出题方公布的数据只是实际数据库中很小的一部分,正如我们开头所讲,数据决定了模型的上限,在实际生产环境中,指纹匹配库的规模一定是非常大的数量级,具体效果相比于此次比赛也会显著提升。
3、最终基于指纹匹配的定位结果作为一种辅助信息,对于网络侧的一些应用肯定是会有所帮助的。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第十一届华为杯全国研究生数学建模竞赛题目D是一个关于水资源优化分配的问题。在这个问题中,我们需要考虑如何合理分配水资源以满足不同地区的需求。 首先,我们需要了解不同地区的水资源情况和需求量。通过收集相关数据,我们可以获得不同地区的水资源供应和需求量的信息。接下来,我们需要利用数学建模方法来优化分配水资源。 在这个问题中,我们可以考虑使用线性规划模型。我们可以将不同地区的水资源供应量和需求量作为变量,然后建立目标函数和约束条件。目标函数可以是最大化水资源的利用效率或者最小化水资源分配不均衡度。约束条件可以包括水资源供应量的限制和需求量的限制。通过求解线性规划模型,我们可以获得最优的水资源分配方案。 此外,我们还可以考虑灰度关联度分析方法。通过灰度关联度分析,我们可以评估不同地区之间的水资源分配关联程度,并进行灵活的调整。我们可以根据这些灰度关联度值来制定合理的水资源分配方案,以达到最佳的效果。 总结起来,第十一届华为杯全国研究生数学建模竞赛题目D涉及到水资源优化分配的问题。通过数学建模方法,我们可以建立模型,考虑线性规划模型和灰度关联度分析方法,以获得最优的水资源分配方案。这样可以确保水资源能够在不同地区得到合理的分配,满足各方需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值