自结-DeepTrack Grouping RFID Tags Based on Spatio-temporal Proximity in Retail Spaces

DeepTrack: Grouping RFID Tags Based on Spatio-temporal Proximity in Retail Spaces翻译+理解+引文简介

简述和翻译

文章来源:IEEE INFOCOM 2020 - IEEE CONFERENCE ON COMPUTER COMMUNICATIONS , pp.1271-1280

下载地址:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9155357

作者:Shasha Li, Mustafa Arslan, Amir Khojastepour, Srikanth V. Krishnamurthy, Sampath Rangarajan

题目

​ DeepTrack:在零售空间中基于时空邻近性(Spatio-temporal Proximity)对RFID标签分组

摘要

​ 用于在销售点(POS)系统中盘点和处理交易的RFID应用程序可提高运营效率,但其设计目的并非提供客户与产品交互的见解。我们通过解决邻近分组问题来弥合这一差距,以识别随着时间的推移彼此非常接近的RFID标签组。我们设计了DeepTrack,这是一个框架,它使用深度学习自动跟踪客户在购物过程中携带的一组物品。这挖掘了隐藏的购买行为,帮助零售商做出更好的商业决策,并为创新的购物体验打下基础,如无缝结帐(“a la Amazon Go亚马逊无人超市”)。DeepTrack采用带有注意机制循环神经网络(RNN)来解决没有显式定位标签的噪声环境下的邻近分组问题。**我们制作DeepTrack的设计,不仅可以跟踪移动组(客户携带的产品),还可以灵活识别固定标签组(货架上的产品)。**DeepTrack的关键特质是,它只需使用现成的商用RFID设备的标签数据。我们的实验表明,只有两小时的训练数据,当跟踪八个移动(静止)组时,DeepTrack的分组准确率达到98.18%(99.79%)。

介绍

​ 零售店(如优衣库、梅西百货等)已开始使用RFID增加或取代传统条形码,以加快库存和付款处理。虽然这样的实施提高了运营效率,但它们并不是为了让零售商了解客户与产品的互动。在这个方向上,我们提出了一个问题,在这个问题中,我们试图确定我们称之为接近组的东西,那指的是一组RFID标签,这些标签在零售商店中随着时间的推移彼此非常接近。

​ **为了识别邻近组,我们设计了DeepTrack,这是一个利用深度学习来捕获标签阅读之间的时空关系的框架。**DeepTrack利用零售商店中分布的RFID阅读器的数据,通过跟踪客户在整个购物过程中提货(或放回)产品时的“虚拟购物车”的演变,可以解锁客户隐藏的购买行为。不仅要了解客户购买的商品,还要了解他们在商店中的路径[1]、[2]、[3]、[4]以及他们购买商品的时间特征[5]、[6]、[7]、[8]、[9],这为零售商提供了新的营销策略。相比之下,传统的POS系统无法揭示这种深度的洞察,因为它们只从单一的有利优势提供最终的购物车内容,即从收银台收到的发票。此外,DeepTrack还为无缝结账铺平了道路,在这里,客户无需在结账站停车即可结账,因为购买将作为购物过程的一部分被自动跟踪。[显然,这需要将标签组与用户身份关联起来(即,带有人脸认证)]

​ 表面上看,似乎可以通过持续定位标签来解决邻近分组问题。最先进的标签定位系统需要专用设备[11]和/或采用受控的标签轨迹和速度[12]。很明显,这样的限制在零售店是不实际的,因为人们,(及其项目)不会表现出可预测的静态行为。因此,我们不知道有任何研究在实验上显示数百个RFID标签在动态环境中以随机模式移动的精确定位。DeepTrack 独特地利用 RNN 将来自多个阅读器的标签读取历史拼接在一起,以准确识别邻近组,而无需显式定位标签。我们的贡献总结如下:

  1. 据我们所知,这是第一篇为大型零售商店的RFID邻近分组问题提供可行解决方案的论文。通过不断跟踪具有常见移动模式的标签组,这为创新零售应用打下基础。
  2. 我们设计的DeepTrack,该框架采用Siamese RNN模型来学习RFID标签之间的时空接近度。DeepTrack的关键属性是:(a)它只依赖于来自商用RFID设备的标签数据;(b)它可以以非常高的精度对固定和移动标签进行分组。
  3. 由于无线系统中固有的多径和阻塞,实施DeepTrack具有挑战性,这会导致零星和嘈杂的标签读取。我们利用NLP(natural language processing,自然语言处理)研究中的注意机制,确保强调可靠的阅读,同时过滤掉可能降低分组准确性的嘈杂报告。
  4. 我们在商用RFID设备上实施并广泛评估DeepTrack。我们的实验表明,DeepTrack实现了98.18%的分组准确率,(99.79%)跟踪8个移动(静止)组,同时适应动态环境。

系统模型

​ RFID系统:典型的UHF RFID系统包括读卡器、附在物体上的标签以及收集/处理标签阅读的软件。每个阅读器发出一个信号,该信号被接收者标签反向散射以生成响应(包含其唯一的标签ID)。除了标签数据,读取器还从响应中提取RSSI(即,信号强度)。也精密的信号强度可捕获的其他特性,像相位差多普勒频移每个阅读器可能配备多根天线,在移动到下一根天线之前通过发射和等待标签响应来循环浏览它们,直到所有天线都有机会读取标签。由于我们试图在大型零售商店中跟踪标签,因此我们假设多个阅读器被仔细放置,以允许它们之间有一些重叠,从而消除任何覆盖范围差距。

循环神经网络(RNN):RNNs[13][14][15] 广泛用于时空邻近数据建模(例如[16][17])。简言之,RNN包含一系列重复的单元,每个单元同时考虑当前输入和前一单元的记忆状态,以输出新的记忆状态。使用重复单元,RNN可以获取一个输入序列,在每个时间点对每个输入的空间信息进行建模,并在输入序列中加入时间信息。LSTM[18]和GRU[19]是流行的RNN,它们克服了所谓的梯度消失/爆炸问题[20],因此能够捕获长期依赖性,[18], [19]. 我们使用基于GRU的RNN作为DeepTrack中的基本构建块,因为它比LSTM简单,并且在大多数情况下具有相当的性能。

问题和挑战

问题描述

​ 我们试图识别多个标签组,其中一个组被定义为RFID标签集,这些标签随着时间的推移彼此非常接近。我们还定义了(a)移动组,表示标签在商店中一起移动;它们可能在某些时间处于静止状态,但始终保持接近状态;(b)静态组,表示相互靠近(不移动)的一组标签。这些群体可能因不同的购物行为而演变。例如,当客户从货架上取下一件物品并带走时,该物品不再与货架上的其他物品属于同一组,必须与客户可能携带的其他物品一起包含在一组中。

​ 我们将决策窗口定义为一个时间间隔,在此时间间隔内,我们对给定的一对标签是否非常接近进行单个估计。更正式地说,我们将每次阅读表示为一个向量:$r_i ∈ R^{d_1} $ ; r i r_i ri包括时间戳、RSSI等特性。决策窗口中一个标签的所有读数可以表示为 x = [ r 1 , r 2 , . . . r N ] , x ∈ R d 1 x=[r_1,r_2,... r_N],x ∈ R^{d_1} x=[r1,r2,...rN]xRd1 其中N是决策窗口中的读数数量,可以随标签和决策窗口的不同而变化。给定一对标签的读数,比如x1和x2,我们使用RNN学习嵌入函数KaTeX parse error: Unexpected character: '' at position 3: f(̲·),该函数将RFID读数映射到特征向量。我们假设,如果在特定决策窗口期间,两个标签(即f(x1)和f(x2))在预先指定的空间接近度内,则两个标记的嵌入特征向量将。是接近的,否则将彼此远离。拥有一个小的决策窗口有助于快速捕获邻近性的变化。但是,它不能太小,以获取足够的读数,从而进行可靠的估计。

挑战

​ 不幸的是,深度学习不是RFID数据处理的即插即用,因为我们需要仔细设计模型以解决以下挑战。

不同的读数数量

​ 大多数**深度学习模型要么是为固定大小的输入(如图像)设计的,要么是假设类似大小的输入(如单词数相似的句子)。**使用 RFID,在每个决策窗口中,跨标签的读取次数可能从数十到数千不等。影响这一点的一个关键因素是阅读器覆盖区域中标签的总数及其各自的无线信道。提供 RNN 来处理最高数量的读数会导致模型的高复杂性(由于输入向量很大),而为具有少量读数的标签设计它,可能会产生一个“能力”不足的模型来识别组。

噪音标签读数

​ 多径导致来自标签的多个信号(具有不同的RSSI和相位),即使它位于固定位置。先前的解决方案[11][12]通过随时间收集读数以在给定位置精确定位标签来解决此问题。此类解决方案不适用于零售环境;使用标签移动性,不仅每个位置的读数较少,而且很难确定哪些读数可靠地表示给定的位置。因此,该模型需要使用来自每个位置的少量不可靠读数来准确发现移动组。

不同的移动模式

​ 零售店既有固定标签(如货架上的标签)也有移动标签(如由人携带的标签)。理论上,多普勒频移可以帮助区分不同的移动组,因为它可以指示移动的速度和方向。然而,对于静态标签组来说,这并不重要,因为缺乏运动不会引起足够的多普勒频移。相位差可用于识别固定组,因为它可以估计标签与读取器的距离[11]。另一方面,很难获得移动标签的可靠相位估计。此外,并非所有COTS RFID阅读器都具有此类低电平信号特征。

DeepTrack的描述(重点

​ 在本节中,我们将描述DeepTrack的总体架构,并描述我们为应对上述挑战而做出的具体设计选择。

使用成对邻近性进行分组(重点

​ 为了识别一个群体,我们使用成对接近(即两个标签之间的接近度)作为初基。我们假设存在“参考”标签,它们最初是各自组中的唯一成员。这些特殊标签可能安装在购物车或购物袋以及货架上。通过将其他标签(非参考标签)的“相似性”与该组的参考标签进行比较,测试其在该组中的成员资格。更高的相似性意味着两个标签更可能接近。因此,每个标签都会添加到具有最高相似性的组中。

​ 在DeepTrack中,我们使用暹罗神经网络(NN)架构来学习一对标签之间的相似性,(见图1)。暹罗NN最初被提议用于手签名验证[22],其任务是确定两个签名是否相似(属于同一个人)。暹罗神经网络有两个具有相同配置的相同子网络,其中每个子网络接受一个输入并将其映射到嵌入空间。然后,将来自两个子网络的嵌入特征输出馈送至模块,在模块中使用两个嵌入输出之间的L2范数距离等度量来查找相似性。

​ 为了训练暹罗RNN学习嵌入函数 f ( ⋅ ) f(·) f(),我们对[23]中提出的对比损失函数进行了修改,该修改适合我们的问题,包括下界(m1)和上界(m2),如下所示:
L o s s ( x 1 , x 2 , y ) = 1 2 y ⋅ m a x ( 0 , ∣ ∣ f ( x 1 ) − f ( x 2 ) ∣ ∣ 2 − m 1 ) 2 + 1 2 ( 1 − y ) ⋅ m a x ( 0 , m 2 − ∣ ∣ f ( x 1 ) − f ( x 2 ) ∣ ∣ 2 ) 2 Loss(x_1,x_2,y) = \frac{1}{2}y·max(0,||f(x_1)-f(x_2)||_2-m_1)^2+\frac{1}{2}(1-y)·max(0,m_2-||f(x_1)-f(x_2)||_2)^2 Loss(x1,x2,y)=21ymax(0,f(x1)f(x2)2m1)2+21(1y)max(0,m2f(x1)f(x2)2)2
​ 其中 x 1 x_1 x1 x 2 x_2 x2来自两个标签的一对读数。布尔值标记y=1,表示读数属于同一接近组的两个标签,否则为“0”。具体地说,我们引入下界m1以确保附近的标签(而不是在完全相同的坐标处)被分组在一起。

​ 我们用大量输入对及其真实标记训练 Siamese RNN(以下简称模型);如果一对读数来自同一组中的两个标签,则为真(y=1),否则为假(y=0)。为了找到最佳 f(·),模型最小化上述损失函数以对两个标签在同一组中(距离 < m1)或不在(距离 > m2)中进行分类。两个子网络的参数通过梯度下降算法进行更新,以最小化所有训练对的损失。距离根据经验确定。在训练之后,我们使用该模型来测试一对标签(其中一个是参考标签)之间的相似性,以便形成组。

利用注意机制总结标签读数(重点

​ 在将标签读数作为输入,输入到我们的模型之前,我们首先将决策窗口划分为多个(比如T)时隙。时隙具有足够短的持续时间,使得在该时间内(例如,1-2秒),标签被假定为准静止的。更重要的是,首先应用一个称为注意的关键预处理步骤来总结每个时隙中的读数(见图2)。这些总结构成了模型的输入,对于时隙t和标签j和k,用 x t ( j ) x^{(j)}_t xt(j) x t ( k ) x^{(k)}_t xt(k)表示。据我们所知,这是首次将注意应用于RFID读数。

​ 由于最近在自然语言处理(NLP)方面取得的成功,人们对注意变得越来越受欢迎[24]。以英法翻译为例,将法语句子逐字与源英语句子对齐是不合理的。具体来说,不同的英语单词与相关的派生法语单词有不同的相关性。注意机制动态地计算每个源英语单词与每个法语单词的相关度(也称为注意度)。

​ 我们以类似的思想应用注意在我们的问题,我们假设标签上的一些读数可能是“信息量更大”(即不受多路径或剧烈衰减的影响),而其他标签几乎没有关于当前状态的信息。我们使用模型到目前为止积累的记忆,以指导在当前时隙中读数的总结。通过将存储状态(包含标签的当前轨迹信息)与时隙内的每次读数进行比较,注意机制计算出哪些读数在标签状态(位置、运动等)方面更值得信赖。因此,它在总结过程中给予更多信息的读数更多的权重(迫使更多的注意力)。

​ 一个问题是每个读数可能在不同方面提供信息(例如,读数可能具有相似的 RSSI,但可能来自以前未见过的天线)。因此,我们使用多头注意力机制,它允许我们在多个子空间(一个头意味着一个子空间)中进行特征汇总,并比较每个子空间内的信息范围。我们将当前时隙的读数表示为 R t = [ r 1 t , r 2 t , . . . , r N t , ] ∈ R N ∗ d 1 R^t = [r_1^t,r_2^t,...,r_N^t,]∈ R^{N*d_1} Rt=[r1t,r2t,...,rNt,]RNd1。N是当前时隙内的阅读数,在 a t − 1 ∈ R d 2 a^t-1∈R^{d_2} at1Rd2是来自最后一个RNN单元的内存。为了a便于说明,我们考虑与单个标签相关的读数,而不显示指数t或t-1在下文中。

​ 1. 我们首先将 a a a和每个 r i r_i ri线性投影到d维空间,如下所示。 W a W_a Wa W r W_r Wr是要学习的投影矩阵。
R W r ∈ R N ∗ d , W r ∈ R d 1 ∗ d ( 2 ) a W a ∈ R d , W a ∈ R d 2 ∗ d ( 3 ) RW_r∈R^{N*d}, \qquad W_r∈R^{d_1*d} \qquad\qquad\qquad\qquad(2)\\ aW_a∈R^d, \qquad W_a ∈ R^{d_2*d} \quad \qquad\qquad\qquad\qquad(3) RWrRNd,WrRd1d(2)aWaRd,WaRd2d(3)

  1. 我们将投影存储向量和投影读数向量均匀地划分为H部分。我们现在在H代表子空间中有H个存储向量。一个类似的方法是将每个读数向量的子特征映射到这些子空间中。为了形式化,在 h h hth子空间中,我们获取一个存储向量 a ( h ) ∈ R d H a^{(h)}∈R^{d_H} a(h)RdH,并且N个标签的读数向量 R ( h ) ∈ R N ∗ d H , d H = d H R^{(h)}∈R^{N*d_H},d_H=\frac{d}{H} R(h)RNdH,dH=Hd
  2. 在每个子空间内,我们首先通过计算存储向量和每个读数向量之间的点积来测量存储向量 a ( h ) a^{(h)} a(h)和所有读数向量 r i ( h ) r_i^{(h)} ri(h)之间的相关度(注意)。这将产生一个N维向量,其中每个元素表示每次阅读的相关度。我们让每个元素除以 ( d H ) \sqrt{(d_H)} (dH) ,并且然后再向量上应用softmax函数,以获得每个阅读向量的最终注意度。该子空间内所有读数的汇总特征是所有读数向量的加权和,如等式4所示。显然,汇总向量是 d H d_H dH维的。

f S i n g l e H e a d ( a ( h ) , R ( h ) ) = s o f t m a x ( a ( h ) R ( h ) T d H ) R ( h ) ( 4 ) f_{SingleHead}(a^{(h)},R^{(h)})=softmax(\frac{a^{(h)}{R^{(h)}}^T}{\sqrt{d_H}})R^{(h)} \qquad\qquad\qquad (4) fSingleHead(a(h),R(h))=softmax(dH a(h)R(h)T)R(h)(4)

  1. 我们将每个子空间中的汇总向量连接起来,得到最终的汇总向量。

f M u l t i H e a d ( a , R ) = [ f S i n g l e H e a d ( a ( 1 ) , R ( 1 ) ) , . . . , f S i n g l e H e a d ( a ( H ) , R ( H ) ) ] ( 5 ) f_{MultiHead}(a,R)= [f_{SingleHead}(a^{(1)},R^{(1)}),...,f_{SingleHead}(a^{(H)},R^{(H)})] \qquad\qquad (5) fMultiHead(a,R)=[fSingleHead(a(1),R(1)),...,fSingleHead(a(H),R(H))](5)

  1. 汇总向量中的汇总子特征被分离。为了组合它们,我们在汇总的特征向量上调用线性变换,如等式6所示,然后,将转换后的特征作为输入,输入到GRU模型中,如图2所示。

x t = f M u l t i H r e a d ( a t , R t ) W m ( 6 ) x^t=f_{MultiHread}(a^t,R^t)W_m \qquad \qquad\qquad (6) xt=fMultiHread(at,Rt)Wm(6)

​ 在训练过程中,要学习的注意机制的参数是投影矩阵 Wa、Wr 和 Wm。给定输入对及其基本真值标签,我们使用梯度下降法更新Wa、Wr和Wm。经过训练后,我们得到:

​ a. Wa 将最后一个存储状态投影到适当的子空间,以便在每个子空间中,存储状态和读数向量之间的点积值将捕获相对于该子空间阅读的信息范围。

​ b. Wr 将标签读取向量投影到适当的子空间,以便点积捕获信息范围(如(a)中所示)。

​ c. Wm 合并来自不同子空间的信息,并形成 适合RNN 输入的方式表示汇总。

DeepTrack如何应对挑战?(重点

​ 我们将决策窗口拆分为多个时间段,以处理标签上不同数量的读数。这样做使得RNN的序列长度(即,重复单元的数量)等于决策窗口内的时隙数量(T)。这使我们能够用T而不是读数的数量来控制模型的复杂性。如前所述,在决策窗口中可以观察到来自某些标记的数千个读数,这会带来巨大的复杂性。

​ 我们专门应用多头注意机制来处理嘈杂的标签读数。由于多路径,即使标签位于固定位置,标签的响应也可能在RSSI(或相位)中大幅波动。注意机制识别出最能描述标签移动状态的一组响应,并使用这些响应进行推理,而不是盲目地使用所有响应。直觉是移动标签的位置在时间段内变化有些缓慢(因为典型的人类购物速度是有限的),因此可靠的信号往往会随着时间逐渐演变。所提出的注意机制将先前的轨迹信息与新读数进行比较,并选择与存储一致的可信新读数。产生与存储中的特征显着不同的特征的异常读数被认为不太可信。

​ 为了解决不同的移动模式,我们选择在我们的模型中不采用多普勒频移或相位作为特征,尽管阅读器公开了这些信息。如前所述,多普勒频移对于固定标签不重要,而相位测量对于移动标签不可靠。此外,在多个干扰读卡器的实践中获得这些特征是有挑战性的。相反,我们为每个RFID读取使用两个简单属性:RSSI和天线端口ID。天线端口ID表示读取标签的特定阅读器的特定天线(或波束)。为了读数之间的一致性,我们在[-1,1]范围内标准化RSSI。天线端口ID是一个离散属性,由独热编码表示。正如我们稍后将展示的,尽管使用了如此简单的属性,但由于其精心设计的RNN体系结构,DeepTrack具有非常高的分组精度。

实验设置

​ 我们在一个15m*15m的区域内进行实验,该区域代表一个拥有开放空间的杂货店,各种金属物体和结构稀疏地分布在其中。天花板大约3米高,有金属设备,可以产生多路径。

RFID装备

​ 我们部署了四个Impinj XArray RFID阅读器,覆盖图4所示的区域(阅读器用X标记)。每个阅读器位于地面以上2.5米处,以避免与天花板中的金属管道发生紧密的相互作用。我们部署阅读器并调整它们的发射功率,以便在其覆盖范围内只允许一些重叠,但不允许太多重叠。这提供了连续覆盖,同时最大限度地减少了交叉阅读器的干扰。XArray 使用一个天线阵列,可产生 52 个指向不同方向的波束。实际上,由于环境中的各种反射,波束之间存在一些覆盖重叠。阅读器在这些光束上连续循环,激活每个光束的时间由 Impinj 专有算法确定。我们将 RFID 标签以不同的方向放置在纸板箱上,以模拟包含随机放置物品的典型购物袋。每个盒子都很容易为我们的志愿者所携带,他们帮助我们进行涉及移动性的实验。因为我们需要同一组中的所有标签一起移动,所以一个人只需抓住一个盒子,四处走动,直到她把它放回原位。我们一共有36个盒子,每个盒子上有四个标签。

模型的超参数

​ 在我们的实现中,决策窗口为30秒,时隙为2秒;因此,在每个决策窗口中有15个时隙,并且RNN的序列长度参数是15,即,有15个重复的RNN单元。对于 GRU,隐藏神经元的数量设置为 256,输出神经元的数量设置为 128。已经表明隐藏神经元比输出神经元多是有益的 [25]。对于多头注意机制,我们将头部数量设置为16,并将每个子空间的维数设置为16,即dH=16。我们从经验上发现,这些头部足够大,能够提供对噪声的稳健性。

训练数据集

​ 我们使用前面描述的贴着标签箱在训练集中创建36个接近组。我们收集标签读数两个小时。在此期间,两个人每次选择一个随机的箱子并将其移动到任意位置。他们每2分钟重复一次。因此,我们不仅获得了关于固定盒子位置的信息,而且当人们拿起盒子并四处移动时,我们还获得了移动轨迹信息。虽然更长的数据集和更多的轨迹可以提高模型的性能,但我们的设置和人力有限,无法在如此长的时间内收集数据。

训练设置

​ 我们使用批梯度下降[26]来训练模型。在每个步骤中:

  1. 我们将一批输入对输入到与决策窗口内两个标签的读数相对应的模型中。 如果两个标签来自同一个盒子,则这对标签为真(否则为假)。
  2. 给定标签,我们进行反向传播并获得每个参数的梯度,以最小化输入批次的对比损失。
  3. 然后,我们根据其梯度来更新参数,即, w i ( t ) = w i ( t − 1 ) − α ∂ L o s s ∂ w i w_i^{(t)}=w_i^{(t-1)}-α\frac{∂Loss}{∂w_i} wi(t)=wi(t1)αwiLoss,其中α是学习率。

​ 我们有 100,000 个训练步骤,批大小为 256。起始学习率为 0.0005; 我们对学习率使用指数衰减 [27],衰减步长为 20,衰减率为 0.99。 这些值是根据经验选择的。

​ 在训练期间,随机选择的标签对很有可能会有false标记。由于最小化了所有训练样本的损失,如果其中大多数的基本事实是false,则模型被训练为偏向于false的输出,并且将无法学习true的关系。我们通过在每个训练步骤中将一半样本限制为具有true的标签而另一半具有falsed标签来克服这一问题。即使我们平衡了样本,属于两个邻近组的false对的数量也远小于属于远距离组的false对的数量。 然而,来自两个附近组的对更重要,因为很难将这些对与true对区分开来。为了帮助模型从邻近组中识别false对,我们引入了“在硬样本上重复训练”的策略。在每个训练步骤中,我们保留损失较大的硬样本,并在下一批中将它们用于下一个训练步骤。 为了避免过拟合异常样本,我们首先选择这些硬样本的前 10%,然后随机选择其中的一半包含在下一个训练批次中。

Benchmarking-标杆管理

​ 另一种测量标签之间接近度的潜在方法是动态时间扭曲 (DTW),它分析时间序列之间的相似性。[28]、[29]等研究使用DTW分析RFID相位模式。我们的 DTW 实施用于来自一对标签的读数,其中每个读数都是一个元组(天线位置和 RSSI)。为了测量两个元组之间的距离,我们使用天线位置之间的距离和 RSSI 之间的距离的加权线性组合。 我们在一组有限的离线测试中尝试了几种权重选择,并使用那些为我们的在线实验产生最佳准确性的权重选择。

评估

​ 在本节中,我们首先介绍涉及移动组的实验,然后是静态组。 然后我们详细分析模型的各个方面。

评估移动分组准确性
  1. 购物实验:目标是跟踪商店里人们的购物车。我们有五名志愿者被标记为顾客A到E,每个人都有一个袋子,上面贴着一个参考标签。我们在该地区分发了八个货架,并要求我们的志愿者在这些货架上“购买”带有标签的产品。他们模仿典型的购物行为:(a)呆在架子前浏览商品一段时间;(b) 偶尔以 1.5 米的距离互相跟随;(c) 偶尔会相互交叉路径。

  2. 场景:实验持续10分钟。 每个顾客的包都从有的三件物品开始。 顾客 A、B 和 C 各拿起一件物品(分别标记为 A1、B1 和 C1),并在第 2 分钟结束时将其放入他们的包中。 他们在第 4 分钟结束时各自拿起另一个物品(分别标记为 A2、B2 和 C2),并在第 6 分钟结束时各自拿起另一个物品(A3、B3 和 C3)作为他们的购物之旅。 最后,他们在第 8 分钟结束时各放回一个物品(分别标记为 A1、B1 和 C1)。 他们继续购物而不改变袋子里的东西,直到实验结束。 客户 D 和 E 携带他们最初的一套物品只需步行 10 分钟即可。

  3. 性能指标:我们以两分钟为间隔分析结果,每个时间间隔由 60 个两秒的时隙组成。通过滑动决策窗口,我们使用我们的模型在每个阶段做出46个分组决策。我们将分配准确率定义为标签被正确分配的百分比; 例如,如果 5 个标签中有 4 个正确分配到各自的组,则分配精度为 80%。我们还为每个组定义了完美的购物车条件,该条件要求该组被完全(组中没有丢失的物品)和正确(没有从货架或其他客户的包中分配的额外物品)被识别。在上面的例子中, 假设我们有三组 G1、G2 和 G3 以及 5 个标签。 如果 G1 的标签之一被错误地分配给 G2,这违反了 G1 和 G2 的完美购物车条件。 尽管分配准确率为 80%,但完美的购物车率仅为 33.3%(三分之一)。

  4. 结果:从每个阶段的 46 个测试中,表 I 显示了每个客户获得完美购物车的次数。我们看到 DeepTrack 在 25 个实例中的 10 个中始终识别出正确的组(≥45/46 购物车率)。整体完美购物车率为 93.39%,分配准确率为 95.91%(并非来自表格)。 当客户站在另一位客户附近或在某些决策窗口期间浏览货架时间过长时,我们观察到标签分配错误。即使DeepTrack犯了这种性质的错误,当志愿者继续四处走动时,它也会在随后的决策窗口中自我纠正。另一方面,DTW 的分配准确率为 90.34%,这看起来很有希望,因为它只比 DeepTrack 实现的差 5%。 然而,完美的购物车率仅为 44%(结果不以空间利益呈现)。DeepTrack 的带有注意力机制的 RNN 基于读数的一致性(即注意先验关联)将 RSSI 和天线 ID 结合起来,并且不会盲目地将读数线性结合(如 DTW)。这允许隐式过滤不良异常值读数,并显着提高分组精度,而不是 DTW。

  5. 跟踪嵌入距离:为了进一步分析结果,我们在图 5 中绘制了顾客 A 的物品标签和参考标签(记为A0)之间的嵌入距离。我们将两个标签之间的嵌入距离定义为两个嵌入特征之间差异的 L2 范数。我们观察到在第 2 分钟结束时,A1 和 A0 之间的距离变小,这与客户 A 拿起物品 A1 是一致的。类似地,A2(A3)和A0 之间的距离在第4 分钟(第6 分钟)结束时减小。 在第 8 分钟结束时,当客户 A 放回物品 A1 时,A1 和 A0 之间的距离再次增加。有趣的是,当顾客 A 在货架附近时(例如,当她在第 2 分钟结束时拿起 A1 时),A0 与货架上其他物品(A2 和 A3)之间的距离也会减小。如前所述,在这些场景中,来自附近货架(或其他客户)的物品可能会被临时分配到一个组中。 解决此问题的一种方法是在距离曲线上应用低通滤波器以平滑这些脉冲。 我们将这项调查留作未来的工作。

  6. 轨迹的影响:接下来,我们将深入研究人与人之间的不同交互如何影响分组准确性。我们要求两名志愿者以四种不同的方式各自携带一个盒子(B1和B2):(a)B2 追随与 B1 保持在某个固定距离后面相同的轨迹;(b)B2 跟随 B1 保持固定距离但从左到右移动(摆动),这使得它们的轨迹不同;(c)B1 和 B2 都随机行走,但有时会故意穿过路径;(d)B1和B2都是随机移动的。

    我们为每个场景收集 10 分钟的数据并执行 1000 组作业。 表二显示,当 B2 以完全相同的轨迹(1.2m)紧跟 B1 时,分配准确率为 75.97%,这是低但可以接受的,因为购物车本身大约有 0.8m 长。 分配精度随着 B1 和 B2 之间的分离而提高。 在实践中,我们不希望两个人在如此长的时间内完全跟随对方。 对于不同的轨迹,我们看到该模型具有 100% 的分配准确率。

  7. 保真度和稳健性:接下来,我们调查该模型是否足够智能以高保真地学习组之间的物理距离。回想一下,我们只用false和true标记训练模型,没有任何特定的物理距离信息。使用二进制false和true标记比始终跟踪每对标签之间的物理距离更实用。我们将 B1 和 B2 放在两个相对的角上,如图 6 所示。我们将 B1 带向 B2 步行 60 秒,然后将其带回起始位置 60 秒。 由于每个盒子上有四个标签,因此两个盒子之间有 16 个标签对。

    图7绘制了B1和B2之间所有标签对的嵌入距离。标签在第 t 秒的嵌入特征是从以该秒为中心的决策窗口获得的。 正如预期的那样,一开始嵌入距离很大。 当 B1 靠近 B2 时它会减小,当 B1 远离 B2 时它会增加。 这说明嵌入距离与物理距离“大体”一致; 尽管该模型是用离散二进制基本事实训练的,但它有效地学习了连续距离近似值。 我们还注意到盒子上的标签放置在不同的方向。 所有曲线随着时间的推移紧密聚集的事实表明我们的模型对标签方向具有稳健性。

评估静态分组准确性
  1. 分配误差的位置:我们评估了静态组的精度,其中我们在6*6网格上放置了36个盒子。我们通过网格上的行和列来表示每个组,即(r,c)。行或列中两个相邻箱子之间的距离(例如 (r,c) 和 (r+1,c))约为 1.2m。我们从每个盒子上的四个标签中随机选择一个标签作为参考标签; 其他的是我们需要分配给 36 个组之一的“非参考”标签。除了上一节中的模型(我们称之为模型 A),我们还引入了模型 B,该模型专门使用通过将箱子放置在 6*6 网格上的完全相同位置获得的数据进行训练(回想一下模型 A 在随机箱子位置和运动上进行训练)。

    我们为标签定义术语分配误差,我们计算其分配组与其正确组(即基本事实)之间网格上的物理距离。如果标签被正确分配,则该误差为 0。我们使用图 8 中的模型 A 和模型 B 绘制分配误差的累积分布函数 (CDF)。我们观察到大部分标签被正确分配(模型 A 为 70%,模型 B 为 95%)并且分配误差仅限于大多数标签的相邻框(模型 A 为 91%,模型 B 为 98%)。 我们希望模型 B 表现更好,因为它是用相同的箱子位置训练的。 这里的重要观察结果是,对于超过 90% 的标签,更通用的模型(模型 A)的性能与模型 B(使用完全相同的框位置训练的模型)相当。 这表明,虽然模型 A 没有在其训练数据中看到确切的箱子位置,但它成功地“转移”了从其他位置学到的知识。 如果要在通用设置中应用模型,这将很有用。

  2. 多径干扰的稳健性:我们接下来评估环境动态变化时的分组准确性。 我们再次使用相同的 6*6 网格放置,但当志愿者在盒子周围走动(不移动它们)现在收集读数。 为了产生额外的多径效应,我们要求一些人携带大型反射器物体(尺寸为 0.8m*0.4m 的板,由铝箔覆盖)。

    我们从图 11 中的三个箱子(Box (1,1)、Box (1,3) 和 Box(1,5))绘制了 16 个标签对之间的嵌入距离。我们看到同一箱子中标签之间的嵌入距离与不同箱子中的标签之间的嵌入距离相比,要小得多。 此外,嵌入距离随着箱子间距离的增加而增加,这表明该模型学习了静态箱子之间的相对物理距离(与动态箱子的早期结果一致)。 更重要的是,即使我们人为地引起了显着的反射,距离曲线也没有表现出异常变化,表明我们的模型对多径非常稳健。

  3. 波束成形的影响:我们发现,一般来说,在沿阅读器径向定位的两个附近静止组(例如,图 9 中的 A 组和 B 组)之间的歧义更难消除。这与与径向(即切线方向)正交的其他静止组对(例如,图 9 中的组 C 和 D)形成对比。为了评估这一点,我们在阅读器附近沿不同方向放置了两个箱子(相隔 1.2m 的固定距离)。图 10 显示了沿径向和切线方向的这种放置以及相应的分组精度。我们看到沿切线方向的精度明显高于沿径向的精度。这是因为在切线方向上的区分主要来自不同的波束(天线端口 ID 属性)。相比之下,在沿径向上,两组通常都被同一组波束覆盖,其中它们的 RSSI 变得更加重要。这表明阅读器的波束成形能力对于实现高分组精度至关重要。我们设想使用可以产生更清晰光束的系统,可以进一步提高此处报告的准确性。

评估模型各方面
  1. 特征的相对重要性:回想一下,我们用两个特征训练我们的模型:天线端口 ID 和 RSSI。 接下来,我们在缺少这些属性之一的情况下评估模型,以衡量它们对分组准确性的贡献。 为了消除RSSI的影响,我们将其值设为0; 为了消除天线端口 ID 的影响,我们使用全零向量而不是单热向量。我们评估了两种情况:(a)跟踪8个移动组;(b)跟踪八个静态组。表 III 捕获了不同属性单独和共同对分配准确性和完美购物车率的影响。我们看到:(1)在这两种情况下,天线端口ID是最重要的属性,但是,它本身并不足以产生高的完美购物车率;将天线端口 ID 与 RSSI 相结合是至关重要的,因为即使分配精度的微小提高也会导致完美购物车率的更大提高;(3)这两个特征的组合更为有利,尤其是对于静态组。我们指出,移动组通常跨波束移动(对应于多个天线端口 ID),而静态组需要 RSSI 功能来区分同一波束区中的组。

  2. 注意机制的影响:接下来,我们检查我们的注意机制在多大程度上有助于为 RNN 制作好的汇总。 我们训练了一个备用模型,该模型也使用 RNN,但应用全连接层进行汇总(在表 IV 中标记为传统方法)。 与多头注意机制相比,该模型学习静态权重以总结一个时间段内的读数。表IV比较了两种情况下这两个方法:(a)跟踪八个移动组;(b)跟踪八个静态组。我们看到,虽然传统方法实现了较高的分配准确率,但它的完美购物车率仍然相对较低。 由于传统的方法学习一个固定的汇总函数,不能动态识别信息读数,不能相应地作出调整; 这使得其为相对较低的完美购物车率。 凭借其专注于可靠读数的能力,多头注意在这两种情况下都提供了显着的改进。 这对于移动组而言更为明显,因为在这种情况下,模型通常在每个位置具有较少的可靠读数(注意有助于发现可靠读数)。

  3. 可视化注意机制:使用多头注意,我们将 16 个子空间中的分数相加(每个分数在 [0,1] 中),并将其用作读数的注意度。我们现在展示模型如何使用一个简单的案例来关注图 12a 中的一个静态标签的读数。 对于每个读数,我们显示相关的天线端口 ID、RSSI 和模型计算的注意度。

    在第一个时隙(冷启动),具有较大 RSSI 的读数(来自光束 34)获得更高的注意力分数。 由于没有轨迹存储,因此“信任”具有大 RSSI 的读数是合理的。 在第二个时隙中,虽然来自更远光束 (32) 的读数具有最大的 RSSI(可能是因为反射),但模型更关注来自光束 42 的读数。模型的选择更为明智,因为光束 42 更接近于 前一个位置(波束 34)并且具有较大的相关 RSSI(虽然不是最高的)。在图 12b 中,我们用标记 i 标记时隙 i 中注意力得分最高的位置。 我们看到选择的光束是聚集的并且与静态标签的物理位置一致。 这个结果(以及我们看到的许多其他结果)表明我们的模型可以动态识别信息读数,因此能够处理由多径引起的噪声读数。

    我们还观察到有关移动标签的有趣案例。 如图 12c 所示,虽然标签被许多光束读取(用橙色弧线标记),但模型更关注沿着标签物理轨迹的读数(用大箭头表示)。 在连续的时间段中注意力得分最高的阅读位置与随后的箭头相连。 选择的读数似乎与物理轨迹不完全一致; 然而,我们指出,在每个时隙内只有一部分波束处于活动状态,并且在遍历时可能尚未激活覆盖地面实况位置的最佳天线。

  4. 度量DeepTrack:由于标签之间的竞争,每个时隙内一个标签的读取次数可能会减少。为了检查我们的模型如何随标签数量而变化,我们通过在附近逐步部署更多标签来评估两个静态组(相距 1.2 m)的分配精度。表 V 显示,当我们使用 2s 时隙时,分组精度会随着额外标签数量的增加而降低。 这种减少在额外标签的数量达到 288 之前并不明显。随着我们进一步增加额外标签的数量,减少更加明显,其中 512 个额外标签的准确率为 95.15%。 将时隙持续时间增加到 4 秒可将准确度恢复到 99.14%,因为它有助于积累足够的读数。 这表明分组准确性和延迟之间存在折衷。

相关工作

  1. RFID标签定位与跟踪:RFID定位的早期工作(例如,[31]-[32])未能处理多路径对信号的影响。因此,它们在零售环境中的定位精度不足以进行邻近分组。其他研究采取特殊措施来处理多路径,以实现非常准确的 RFID 标签定位。其中一些([33]、[34]、[28])移动阅读器天线以收集信号测量值,而一些则利用非常大带宽上的通信 [11]。 虽然这些研究显示了高度准确的定位结果,但它们对静态标签也是如此,这些标签适合收集长时间的测量值(如 [11] 中报道的长达 6 秒)。 显然,零售环境中标签移动的动态特性对此类技术提出了挑战。 RFID 标签跟踪技术 [35]、[36]、[12] 通常假设标签轨迹和速度可以提前知道。他们实施逆合成孔径雷达全息图来精确跟踪标签移动。 这种技术对于具有数百个标签的大面积部署(例如,零售店)来说是不切实际的,其中人们以不可预测的模式移动。 相比之下,DeepTrack 不依赖于精确的标签定位,因此不受相同挑战的限制。
  2. 用RFID对顾客行为挖掘:最近的研究([29]、[37]、[38])侧重于使用 RFID 来检测零售店的顾客购买模式。这些研究提倡使用低级信号特征,如多普勒频移和相位,来识别某些产品交互(例如,拿起)或发现相关物品(例如,由同一客户持有)。由于多种原因,在大型零售店中使用相位或多普勒测量受到限制。首先,为了可靠地测量这些特征,需要慢速读取模式来延长收集它们所需的时间。其次,它们要求阅读器停留在一个频道上,这不是普遍可用的,例如美国的 FCC 要求阅读器实现跳频。第三,它们受到阅读器之间的干扰以及紧密间隔的标签之间的耦合效应 [39](例如,随机放置在购物袋中的物品),从而产生极其嘈杂的测量结果。为了验证这一假设,我们训练了一个更复杂的模型,该模型使用相位和多普勒(除了天线 ID 和 RSSI)并观察到非常小的增益(此处未提供结果)。我们通过展示深度学习可以识别具有易于获取的特征(例如天线 ID 和 RSSI)的邻近组,从而做出了新的贡献。

结论

​ 在本文中,我们提出了我们称之为RFID标签的时空邻近分组问题,该问题可以作为新兴零售应用(如挖掘客户购物行为和无缝结账)的基础。为了解决这个问题,我们设计了一个新颖的框架 DeepTrack,它将神经网络和自然语言处理的最新进展映射到这个问题。 DeepTrack 推断在附近组合在一起的静态和移动标签,并且对多路径和非视距环境具有稳健性。 我们的评估表明,高精度分组是可能的,这表明该技术在零售业的未来前景广阔。

笔记

文章中所有符号描述

  1. r i r_i ri是一个向量,用来表示读数(RSSI,timestamp时间戳等信息)
  2. r i ∈ R d 1 r_i∈R^{d_1} riRd1,d表示时间间隔或决策窗口,R表示阅读器
  3. x = [ r 1 , r 2 , . . . , r N ] x = [r_1,r_2,...,r_N] x=[r1,r2,...,rN],x表示某个标签在1个时间间隔或决策窗口内的所有读数;N表示读数的个数,N可以随着标签和时间间隔而变化
  4. f ( ⋅ ) f(·) f() 表示嵌入函数
  5. x t ( j ) x_t^{(j)} xt(j) 标签j在时隙t的所有读数
  6. x t ( k ) x_t^{(k)} xt(k) 标签k在时隙t的所有读数
  7. a t − 1 a^{t-1} at1 表示RNN单元最后一次记忆
  8. W a W_a Wa W r W_r Wr 是a和r的映射矩阵
  9. a是学习率
  10. W a W_a Wa 用于映射最后一次记忆状态到最佳子空间,以便获取该子空间的读数信息范围 – 多头注意机制的参数
  11. W r W_r Wr 用于映射读数向量到子空间以便获取信息范围 – 多头注意机制的参数
  12. W m W_m Wm 用于合并不同子空间的信息,形成合适的输入 – 多头注意机制的参数

关键字理解(简单理解)

时空邻近度
  1. 接近度:反映两个对象在特定空间中距离的指标。

  2. 概念:地理攻坚任意两匀质区域(含点)之间的时空邻近度,对给定的“流”,正比于二者之间的总流量,反比于从一端到达另一端的平均之间。

    例子1:“邻国相望,鸡犬之声相闻,民至老死不相往来”–两邻国的时空邻近度为零。因为总流量为0,因此时空邻近度为0。

    例子2:地球和太阳时空邻近度为0,因为总流量为0

  3. 本文:随着时间的推进,标签之间会非常地接近。

如何分组
  1. 顾客购物车中的贴有标签的物品为一组,其他静态的为一组,其他顾客的购物车为另外其他组
  2. 首先分为动态组和静态组
  3. 动态组又分为购物车组
  4. 静态组又分为货架子组
深度学习
  1. 深度学习(DL, Deep Learning)是机器学习领域中一个新的研究方向,它被引入机器学习使其更接近于最初的目标——人工智能。
  2. 深度学习是学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字,图像和声音等数据的解释有很大的帮助。它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。 深度学习是一个复杂的机器学习算法,在语音和图像识别方面取得的效果,远远超过先前相关技术。
注意力机制
  1. 注意力机制(Attention Mechanism)源于对人类视觉的研究。在认知科学中,由于信息处理的瓶颈,人类会选择性地关注所有信息的一部分,同时忽略其他可见的信息。上述机制通常被称为注意力机制。

  2. 注意力机制的一种非正式的说法是,神经注意力机制可以使得神经网络具备专注于其输入(或特征)子集的能力:选择特定的输入。注意力可以应用于任何类型的输入而不管其形状如何。

  3. 注意力机制通过对模型中不同关注部分赋予不同的权重,并从中抽取出更加重要和关键的信息,从而优化模型并做出更为准确的判断。

  4. image-20211122174314442

  5. 本文使用点积注意力:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-klzi5Poz-1638263704236)(/Users/xinyu/Library/Application Support/typora-user-images/image-20211122174438546.png)]

循环神经网络
  1. 传统的神经网络-前馈神经网络的结构:

    image-20211122155514897

  2. 循环神经网络(RNN) 主要用于处理序列数据,其最大的特点就是神经元在某时刻的输出可以作为输入再次输入到神经元,这种串联的网络结构非常适合于时间序列数据,可以保持数据中的依赖关系。

  3. RNN 是深度学习领域中一类特殊的内部存在自连接的神经网络,可以学习复杂的矢量到矢量的映射。

    拥有很强的计算能力并且具有联想记忆功能。

  4. 循环神经网络结构图:

image-20211122160850373

image-20211122160919911

image-20211122161208528

  1. 在时刻t,隐藏单元h 接收来自两方面的数据,分别为网络前一时刻的隐藏单元的值ht-1和当前的输入数据xt,并通过隐藏单元的值计算当前时刻的输出。t - 1 时刻的输入xt-1可以在之后通过循环结构影响t 时刻的输出。RNN 的前向计算按照时间序列展开,然后使用基于时间的反向传播算法(BackPropagation Through Time,BPTT)对网络中的参数进行更新,也是目前循环神经网络最常用的训练算法。
  2. Wxh为输入单元到隐藏单元的权重矩阵,Whh为隐藏单元之间的连接权重矩阵,Why为隐藏单元到输出单元的连接权重矩阵,by和bh为偏置向量。计算过程中所需要的参数是共享的,因此理论上RNN 可以处理任意长度的序列数据。ht的计算需要ht-1,ht-1的计算又需要ht-2,以此类推,所以RNN中某一时刻的状态对过去的所有状态都存在依赖。
  3. RNN擅长解决序列数据问题,相比于前馈神经网络,RNN 拥有记忆重要信息,选择性地遗忘次要信息的能力。
文章贡献总结
  1. RFID邻近分组问题提供可行解决方案
  2. DeepTrack,该框架采用Siamese RNN模型来学习RFID标签之间的时空接近度,以非常高的精度对标签进行分组
  3. NLP研究中的注意机制,确保强调可靠的阅读,同时过滤掉可能降低分组准确性的嘈杂报告。
  4. 实验中标签出很高的性能和精度
RSSI–接收的信号强度指示
  1. RSSI是射频信号理论术语,主要应用于发射机和接收机之间的距离测量。该方法是依据接收信号能量强度确定距离,对通信信道参数要求较高。其测距理论是:依据无线电波或声波在介质中传输,信号功率是随传播距离衰减的原理。根据信标节点已知信号的发射功率和节点接收的信号功率,通过信号与距离之间的衰减模型,就可以计算出节点间的距离。由于信号传播的过程中,受到距离和障碍物的影响。信号的功率强度随之衰减,间接影响精度。
  2. 无线信号中db值射端一般是正值,数值越大发射功率越大越好;接收端一般是负值,数值越小代表灵敏度越高越好。一般认为dbm为0是其最大值,意味着接收方把发射方发射的所有无线信号都接收到了,即无线路由器发射多少功率,接收的无线网卡就获得多少功率。
相位差
  1. 相位:相位(phase)是对于一个波,特定的时刻在它循环中的位置:一种它是否在波峰、波谷或它们之间的某点的标度。相位描述信号波形变化的度量,通常以度 (角度)作为单位,也称作相角。
  2. 相位噪声是对信号时序变化的另一种测量方式,其结果在频率域内显示,是频率域的概念。
  3. 如果没有相位噪声,那么振荡器的整个功率都应集中在频率f=fo处。但相位噪声的出现将振荡器的一部分功率扩展到相邻的频率中去,产生了边带(sideband)。在离中心频率一定合理距离的偏移频率处,边带功率滚降到1/fm,fm是该频率偏离中心频率的差值。
  4. 相位噪声通常定义为在某一给定偏移频率处的dBc/Hz值,其中,dBc是以dB为单位的该频率处功率与总功率的比值。一个振荡器在某一偏移频率处的相位噪声定义为在该频率处1Hz带宽内的信号功率与信号的总功率比值。
  5. 相位差:两个频率相同的交流电相位的差叫做相位差,或者叫做相差。
多普勒频移
  1. 多普勒效应造成的发射和接收的频率之差称为多普勒频移。它揭示了波的属性在运动中发生变化的规律(移动的方向和速度)。
  2. 所谓多普勒效应就是当发射源与接收体之间存在相对运动时,接收体接收到的来自发射源发射信息的频率与发射源发射信息的频率不相同,接收频率与发射频率之差称为多普勒频移。
  3. image-20211122210557841
  4. 多普勒频移公式–自学
RNNs的时空数据建模
  1. 时空数据模型是一种有效组织和管理时态地理数据,属性、空间和时间语义更完整的数据模型。时空数据模型表达了随时间变化的动态结构。
梯度消失和爆炸问题
  1. 随着模型深度不断增加,使得RNN 并不能很好地处理长距离的依赖[1]。Jacobian 矩阵的乘积往往会以指数级增大或者减小,其结果是使得长期依赖特别困难。通常使用BPTT 算法来训练RNN,对于基于梯度的学习需要模型参数θ 和损失函数L 之间存在闭式解,根据估计值和实际值之间的误差来最小化损失函数,那么在损失函数上计算得到的梯度信息可以传回给模型参数并进行相应修改。假设对于序列x1,x2,…,xt,通过st = Fθ(st-1,xt) 将上一时刻的状态st-1映射到下一时刻的状态st。T 时刻损失函数LT关于参数的梯度为:

    image-20211122161942684

  2. LSTM解决梯度消失和爆炸问题–与本文关联较小

    遗忘门是LSTM 单元的关键组成部分,可以控制哪些信息要保留哪些要遗忘,并且以某种方式避免当梯度随时间反向传播时引发的梯度消失和爆炸问题。遗忘门控制自连接单元,可以决定历史信息中的哪部分会被丢弃。即上一时刻记忆单元ct-1中的信息对当前记忆单元ct的影响。

    遗忘门使得LSTM 能够学习一些连续的任务并且可以对其内部状态进行重置。

    输出门控制记忆单元ct对当前输出值ht的影响,即记忆单元中的哪一部分会在时间步t 输出。

  3. GRU一种对LSTM改进的简化结构:

    GRU 没有窥视孔连接和输出激活函数,也没有线性自连接的记忆单元,而是直接线性累积在隐藏状态h 上。使用两个门控控制信息流动,LSTM 单元中的输入门和遗忘门在GRU 中耦合为更新门,更新门用于控制隐藏状态的更新,即当ut =0,无论序列有多长,都可以保持最初时间步中的信息。重置门决定是否忽略之前的隐藏状态,分别使用u 和r 表示更新门和复位门。

    image-20211122163602550

暹罗神经网络–孪生神经网络
  1. 孪生神经网络(Siamese neural network),是基于两个人工神经网络建立的耦合构架。孪生神经网络以两个样本为输入,输出其嵌入高维度空间的表征,以比较两个样本的相似程度。狭义的孪生神经网络由两个结构相同,且权重共享的神经网络拼接而成 。广义的孪生神经网络,或伪孪生神经网络(pseudo-siamese network),可由任意两个神经网拼接而成 。孪生神经网络通常具有深度结构,可由卷积神经网络、循环神经网络等组成。

  2. 在监督学习(L2)范式下,孪生神经网络会最大化不同标签的表征,并最小化相同标签的表征 。在自监督或非监督学习范式下,孪生神经网络可以最小化原输入和干扰输入间的表征。

  3. 孪生神经网络包含两个子网络,子网络各自接收一个输入,将其映射至高维特征空间,并输出对应的表征。通过计算两个表征的距离,例如欧式距离,使用者可以比较两个输入的相似程度。

  4. 结构图

    img

  5. Siamese Network有两个结构相同,且共享权值的子网络。分别接收两个输入X1与X2,将其转换为向量Gw(X1)与Gw(X2),再通过某种距离度量的方式计算两个输出向量的距离Ew。

嵌入
  1. 嵌入-用连续向量表示离散变量的方法

  2. 嵌入后的数据维度较低,它能将离散的序列映射为连续的向量

  3. 嵌入方法是指通过数学变换(机器学习算法)将高维空间的对象映射到低维空间并保持相关性质的一种方法。

    嵌入到低维空间再处理,可以减少数据存储与计算成本(高维空间有维数灾难)

    嵌入到低维空间,虽有部分信息损耗,但是这样反而可能提升模型的泛化能力(样本一般含有噪音,通过嵌入低维空间,其实可以“过滤掉”部分噪音)

L2范数距离
  1. L0范数是指向量中非0的元素的个数。(L0范数很难优化求解)

    L1范数是指向量中各个元素绝对值之和

    L2范数是指向量各元素的平方和然后求平方根

    L1范数可以进行特征选择,即让特征的系数变为0.

    L2范数可以防止过拟合,提升模型的泛化能力,有助于处理 condition number不好下的矩阵(数据变化很小矩阵求解后结果变化很大)(核心:L2对大数,对outlier离群点更敏感!)

  2. 监督机器学习问题无非就是,也就是在规则化参数的同时最小化误差。最小化误差是为了让我们的模型拟合我们的训练数据,而规则化参数是防止我们的模型过分拟合我们的训练数据。因为参数太多,会导致我们的模型复杂度上升,容易过拟合,也就是我们的训练误差会很小。但训练误差小并不是我们的最终目标,我们的目标是希望模型的测试误差小,也就是能准确的预测新的样本。所以,我们需要保证模型“简单”的基础上最小化训练误差,这样得到的参数才具有好的泛化性能(也就是测试误差也小),而模型“简单”就是通过规则函数来实现的。另外,规则项的使用还可以约束我们的模型的特性。

  3. ρ = ( x 2 − x 1 ) 2 + ( y 2 − y 1 ) 2 , ∣ X ∣ = x 2 2 + y 2 2 , 其 中 , ρ 为 点 ( x 2 , y 2 ) 与 点 ( x 1 , y 1 ) 之 间 的 欧 式 距 离 ; ∣ X ∣ 为 点 ( x 2 , y 2 ) 到 原 点 的 欧 式 距 离 ρ = \sqrt{(x_2-x_1)^2 + (y_2-y_1)^2},|X|=\sqrt{x_2^2+y_2^2},\\ 其中,ρ为点(x_2,y_2)与点(x_1,y_1)之间的欧式距离;\\ |X|为点(x_2,y_2)到原点的欧式距离 ρ=(x2x1)2+(y2y1)2 ,X=x22+y22 ρx2,y2x1,y1Xx2,y2

对比损失函数-contrasive loss function
  1. 损失函数主要是用于降维中,即本来相似的样本,在经过降维(特征提取)后,在特征空间中,两个样本仍旧相似;而原本不相似的样本,在经过降维后,在特征空间中,两个样本仍旧不相似。同样,该损失函数也可以很好的表达成对样本的匹配程度。
  2. image-20211122204653856
梯度下降算法
  1. 梯度下降法是用来求解最小二乘问题的一种迭代法。在求解损失函数最大值或最小值时,可以使用梯度上升法或梯度下降法。最小二乘问题的主要思想就是求解未知参数 ,使得预测值与观测值之差(即误差,或者说残差)的平方和达到最小。
  2. 以最小化损失函数为例,SGD 的算法过程是每次随机取一组样本θj ,得到对应的待拟合函数h(x),根据梯度下降法,用损失函数 J (θ )对θ求偏导,再不断根据学习率α更新θ ,得到 θ j − α σ J ( θ ) σ θ j θ_j-α\frac{σJ(θ)}{σθ_j} θjασθjσJ(θ)。SGD 一轮迭代只用一条随机选取的数据,所以一次学习时间非常快。在非凸函数上,梯度下降法求得的可能是极值而非最值,因此耗费大量的时间和内存,而随机梯度下降法拥有最终收敛于一个较好的局部极值点的优势,但缺点在于容易出现损失函数波动和有时无法判断是否收敛。
  3. Adam 是一种能替代传统随机梯度下降过程的一阶优化算法,它可以基于训练数据迭代更新神经网络权重。传统随机梯度下降算法的学习率在训练过程中并不会改变,而 Adam 拥有独立的自适应性和学习率的优势,在解决非凸优化问题中具有计算高效、所需内存少、易调参等优点。Adam 结合了适应性梯度算法(AdaGrad)和均方根传播(RMSProp)的优点,既提升了稀疏梯度上的性能,在非稳态和在线问题上也有不错的表现。因此,Adam 优化算法在解决大型模型和数据集的局部深度学习问题上效率很高。
多头注意力机制
  1. image-20211122193350211

M u l t i H e a d ( Q , K , V ) = C o n c a t ( h e a 1 , . . . , h e a d H ) W 0 MultiHead(Q,K,V) = Concat(hea_1,...,head_H)W^0 MultiHead(Q,K,V)=Concat(hea1,...,headH)W0

image-20211122193532177

  1. 将Q、K、V 通过矩阵映射后,重复执行h 次Attention操作(参数不共享),最后将结果拼接,即为“多头”,本模型中的注意力都为SAN。通过多头自注意力机制,能够使用不同序列位置的不同子空间的表征信息来进行序列数据处理。而在单一注意力机制中,这些不同位置不同子空间的表征信息由于取均值操作的存在,而将被模型丢弃
softmax函数
  1. 公式: S i = e i ∑ j = 1 K e j S_i=\frac{e^i}{∑^K_{j=1}e^j} Si=j=1Kejei
  2. 其中,i 表示从输入的多位向量中取出的某个一维向量,K表示输入向量的维数。
  3. Softmax 用于多分类过程,它将多个神经元的输出映射到(0,1)范围内表示概率,因而所有输出的和为1。Softmax 函数又称归一化指数函数,作用是将有限项离散概率分布的梯度对数归一化。因此,Softmax 在基于概率的多分类问题中有着广泛应用。
批梯度下降(Batch Gradient Descent, BGD)
  1. 来自:https://www.cnblogs.com/lliuye/p/9451903.html

  2. 梯度下降法作为机器学习中较常使用的优化算法,其有着三种不同的形式:批量梯度下降(Batch Gradient Descent)、随机梯度下降(Stochastic Gradient Descent)以及小批量梯度下降(Mini-Batch Gradient Descent)。

  3. 批量梯度下降

image-20211125184025621

  1. 随机梯度下降

image-20211125184155151

Benchmarking-标杆管理
  1. 标杆管理又称“基准管理”,其本质是不断寻找最佳实践,以此为基准不断地“测量分析与持续改进”。 [1] 标杆管理是创造模版的工具,它可以帮助企业创造自身的管理模式或工作模版,是实现管理创新并获得竞争优势的最佳工具
DTW-dynamic time warping
  1. 一种衡量两个长度不同的时间序列的相似度的方法
  2. 动态时间规整DTW是一个典型的优化问题,它用满足一定条件的的时间规整函数W(n)描述测试模板和参考模板的时间对应关系,求解两模板匹配时累计距离最小所对应的规整函数。
  3. 采用动态规划算法实现(具体实现看资料)
累积分布函数 (CDF)
  1. 概率密度函数:连续型随机变量的概率密度函数(在不至于混淆时可以简称为密度函数)是一个描述这个随机变量的输出值,在某个确定的取值点附近的可能性的函数。
  2. 累计分布函数:Cumulative Distribution Function,又叫分布函数,是概率密度函数的积分,能完整描述一个实随机变量X的概率分布
one-hot vertor
  1. One-Hot编码,又称为一位有效编码,主要是采用N位状态寄存器来对N个状态进行编码,每个状态都由他独立的寄存器位,并且在任意时候只有一位有效。

  2. One-Hot编码是分类变量作为二进制向量的表示。这首先要求将分类值映射到整数值。然后,每个整数值被表示为二进制向量,除了整数的索引之外,它都是零值,它被标记为1。

  3. 假如某个样本(某个人),他的特征是这样的[“男”,“中国”,“乒乓球”]。哪一维是1,就代表对象属于哪一类。

    性别特征:[“男”,“女”] ,对应[1,0]

    祖国特征:[“中国”,"美国,“法国”], 对应[1,0,0]

    运动特征:[“足球”,“篮球”,“羽毛球”,“乒乓球”], 对应[0,0,0,1]

    完整的特征数字化的结果为:[1,0,1,0,0,0,0,0,1]

  4. 好处:特征之间距离的计算或相似度的计算是非常重要的,而我们常用的距离或相似度的计算都是在欧式空间的相似度计算,计算余弦相似性,基于的就是欧式空间。而使用one-hot编码,将离散特征的取值扩展到了欧式空间,离散特征的某个取值就对应欧式空间的某个点。将离散型特征使用one-hot编码,确实会让特征之间的距离计算更加合理。

  5. 缺点:

    1. 矩阵稀疏和维度灾难。one-hot表示是将词语所在下标位置置为1,其他位置置为0,而现实生活中,词语的集合是很大的,达到几千甚至几万,而每个向量的维度是和词语集合中词语的数量是一致的,所以一个词需要用几千甚至几万的维度来表示,如此大的维度在后续计算中需要很大的计算资源。此外,一个向量中只有一个维度是非零的,明显是过于稀疏的。
    2. 语义缺失

文章重点整理

  1. 问题描述和挑战

821637994168_.pic

  1. DeepTrack的详细描述

781637993997_.pic_hd

801637994008_.pic_hd

791637994005_.pic_hd

  1. 实验设置

771637993994_.pic_hd

  1. 过程理解:

871638261071_.pic_hd

881638261074_.pic_hd

相关引文简介

  1. 13-14-15 RNN 广泛 用于 时空数据建模 16 - 17

对比损失函数

题目:Dimensionality Reduction by Learning an Invariant Mapping

下载地址:http://www.cs.toronto.edu/~hinton/csc2535/readings/hadsell-chopra-lecun-06-1.pdf

其他参考来自:https://blog.csdn.net/zhaoyin214/article/details/94396243

1 摘要和介绍
  1. 降维的目的是将高维数据转换为低维表示,以便相似的输入对象映射到流形上的附近点。

  2. 提出了一种称为学习不变映射降维(DrLIM)的方法,用于学习将数据均匀映射到输出流形的全局相干非线性函数。学习仅依赖于邻域关系,不需要在输入空间中进行任何距离度量。该方法可以学习对输入的某些变换不变性的映射。

  3. DrLIM的四个特点:

    1. 只需要训练样本之间的邻域关系。这些关系可能来自于先验知识或手动标记,并且与任何距离度量无关
    2. 对输入的非线性变换映射不变
    3. 在没有先验知识的情况下,学习函数可用于映射训练期间未看到的新样本
    4. 函数生成的映射在某种意义上是“平滑”的,并且在输出空间中是一致的
  4. 对比损失函数:通过学习映射函数GW的参数W,使原始高维空间中的近邻样本在低维流形上内聚、非近邻样本远离。低维流形上距离度量为欧氏距离:

    image-20211127210446628

    给定近邻关系集合, D W ( x 1 , x 2 ) D_W(x_1,x_2) DW(x1,x2)能够逼近样本在输入空间上的语义相似性。

2 学习低维映射
  1. 找到一个函数,给定输入空间中样本之间的邻域关系,将高维输入模式映射到低维输出。邻域关系图可能来自测试点不可用的信息源,如先验知识、手动标记等

  2. 输入向量集合: I = X 1 ⃗ , ⋯ , X p ⃗ X i ⃗ ∈ R D I={\vec{X_1},⋯,\vec{X_p}} \qquad \vec{X_i}∈R^D I=X1 ,,Xp Xi RD

    参数方程: G w : R D − − > R d d < < D G_w : R^D --> R^d \quad d<<D Gw:RD>Rdd<<D

    三个性质:

    1. 输出空间上的距离测度逼近输入空间中的近邻关系
    2. 对输入样本的复杂变换具有不变性
    3. 对近邻关系未知的样本公平
2.1 对比损失函数
  1. 高维训练向量集合: I = { x i } I = \{x_i\} I={xi};对于 I I I中的每个样本xi, S x i S_{x_i} Sxi表示与xi相似的样本集合;y=0表示x1与x2相似;y=1表示x1与x2不相似; D w ( x 1 , x 2 ) D_w(x_1,x_2) Dw(x1,x2)表示 G w G_w Gw输出间的欧式距离:

    image-20211127213800134

  2. 精准损失函数:
    L ( W , Y , X 1 ⃗ , X 2 ⃗ ) = ( 1 − Y ) 1 2 ( D w ) 2 + y 1 2 { m a x ( 0 , m − D w ) } 2 L(W,Y,\vec{X_1},\vec{X_2}) = (1-Y)\frac{1}{2}(D_w)^2+y\frac{1}{2}\{max(0,m-D_w)\}^2 L(W,Y,X1 ,X2 )=(1Y)21(Dw)2+y21{max(0,mDw)}2

GRU

题目:Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation

​ 使用RNN Encoder-Decoder模型学习统计机器翻译的短语表示

下载链接:https://arxiv.org/pdf/1406.1078.pdf

其他参考:https://blog.csdn.net/u010555997/article/details/76474533

1 摘要和介绍
  1. 提出了一种新的神经网络模型,即RNN Encoder-Decoder, 由两个神经网络(RNN)组成。一个RNN将一个符号序列(sequence of symbols)编码成一个固定长度的向量表示,另一个则将这个表示解码成另一个符号序列。该模型的编码器和解码器被联合训练(jointly trained),以最大化给定源序列的目标序列的条件概率(conditional probability)。
  2. 使用神经网络进行SMT研究,重点研究了一种新颖的神经网络结构,可用作传统的基于短语的SMT系统的一部分。我们将所提出的神经网络架构称为RNN Encoder–Decoder,由两个编码器-解码器对的循环神经网络(RNN)组成。编码器将可变长度的源序列映射到一个固定长度的向量,解码器将该向量映射回可变长度的目标序列。两个网络将被联合训练以最大化给定源序列的目标序列的条件概率
2 RNN Encoder-Decoder
2.1 循环神经网络
  1. 循环神经网络(RNN)是一个包含隐藏状态h和可变输出y的神经网络,其可操作于可变长度序列x =(x1,…,xT)。在每个时间步长t,RNN的隐藏状态ht按照如下公式更新:

h < t > = f ( h < t − 1 > , x t ) ( 1 ) h_{<t>}=f(h_{<t−1>},x_t) \qquad\qquad\qquad(1) h<t>=f(h<t1>,xt)(1)

​ 其中 ff是非线性激活函数。ff可以像logistic sigmoid function一样简单,也可以像long short-term memory(LSTM)一样复杂。通过训练预测序列中的下一个symbol,RNN可以学习序列上的概率分布。在这种情况下,每个时间步长t的输出是条件分布 p(xt|xt−1,…,x1),可以使用softmax激活功能输出多项式分布(1-K编码)
p ( x t , j = 1 ∣ x t − 1 , . . . , x 1 ) = e x p ( w j h < t > ) ∑ j ′ = 1 K e x p ( w j ′ h < t > ) ( 2 ) p(x_{t,j}=1|x_{t−1},...,x_1)=\frac{exp(wjh<t>)}{∑^K_{j′=1}exp(w_{j′}h_{<t>})}\qquad\qquad(2) p(xt,j=1xt1,...,x1)=j=1Kexp(wjh<t>)exp(wjh<t>)(2)
​ 其中 wj是权重矩阵 W的行。通过组合这些概率,我们可以用如下公式计算序列x的概率:
p ( x ) = ∏ t = 1 T p ( x t ∣ x t − 1 , . . . , x 1 ) ( 3 ) p(x)=∏_{t=1}^Tp(x_t|x_{t−1},...,x_1)\qquad\qquad\qquad(3) p(x)=t=1Tp(xtxt1,...,x1)(3)
​ 从这个学习的分布中,通过在每个时间步长迭代采样符号来直接抽样新序列。

2.2 RNN Encoder-Decoder
  1. 提出了一种新颖的神经网络架构,它可以学习将可变长度的序列编码为固定长度的向量表示,并将给定的固定长度向量表示解码回可变长度序列。
  2. 编码器是一个RNN,依次读取输入序列x的每个符号。当它读取每个符号时,RNN的隐层状态会根据公式(1)改变。当读到序列的结尾(由end-of-sequence符号标记)后,RNN隐层状态将会是整个输入序列的summary c
    模型的解码器是另一个RNN,通过预测给定隐层状态h的下一个symbal yt,解码器可被训练输出序列。然而,与2.1所述的RNN不同,yt和ht都受制于yt−1和输入序列的summary c。因此,在t时刻解码器的隐层状态是由

h < t > = f ( h < t − 1 > , y t − 1 , c ) h_{<t>}=f(h_{<t-1>},y_{t-1},c) h<t>=f(h<t1>,yt1,c)

​ 计算得出,类似的,下一个symbol的条件分别为
P ( y t ∣ y t − 1 , y t − 2 , . . . , t 1 , c ) = g ( h < t − 1 > , y t − 1 , c ) P(y_t|y_{t-1},y_{t-2},...,t_1,c)=g(h_{<t-1>},y_{t-1},c) P(ytyt1,yt2,...,t1,c)=g(h<t1>,yt1,c)
​ f与g为给定的激活函数(后者必须能生成有效的概率,比如利用softmax)

  1. RNN Encoder-Decoder的两个组件被联合训练以最大化条件对数似然 m a x 1 N ∑ n = 1 N l o g p θ ( y n ∣ x n ) max\frac{1}{N}∑_{n=1}^Nlogp_θ(y_n|x_n) maxN1n=1Nlogpθ(ynxn)

  2. 其中 θ是模型参数的集合,每个 (xn,yn)是来自训练集的(输入序列,输出序列)对。

  3. RNN Encoder-Decoder一旦被训练,模型可以用两种方式使用。一种是使用模型来生成给定输入序列的目标序列。另一种该模型可以用于对给定的输入输出序列对进行评分,评分是来自公式的概率 p θ ( y ∣ x ) p_θ(y|x) pθ(yx)

2.3 隐层单元的适当记忆与遗忘
  1. 除了新颖的模型架构,我们还提出了一种新型隐层单元(公式(1)中的ff),受LSTM单元的启发但计算和实现要简单得多。图2显示了该隐藏单元的图形描述。
  2. image-20211128141237956
  3. 在公式中,当复位门接近0时,隐层状态将会强制忽略前一个状态并且只复位当前输入。这允许隐层状态可有效地丢弃在将来会被发现不相关的信息,从而使表示更加紧凑。
  4. 另一方面,更新门控制有多少信息可以从前状态转移到当前状态。这类似于LSTM网络中的存储单元(memory cell),并帮助RNN记住long-term的信息。此外,这可以被认为是leaky-integration unit的变体。
  5. 由于每个隐藏单元具有单独的复位和更新门,每个隐层单元将学习捕获不同时间范围的依赖关系。学习捕获短期依赖关系的单元往往会有定期活跃的复位门,但捕获长期依赖关系的单元将具有经常活跃的更新门。
    在我们的初步实验中,我们发现使用这种具有门控单元的新单元是至关重要的。没有gating,用 tanhtanh将得不到任何有意义的结果。

多头注意力机制

参考1

题目:nlp中的Attention注意力机制+Transformer详解

地址:https://zhuanlan.zhihu.com/p/53682800

  1. 为什么要引入Attention机制?

    1. 可以借助人脑处理信息过载的方式,例如Attention机制可以提高神经网络处理信息的能力
  2. 注意力机制的分类

    1. 聚焦式(focus)注意力:自上而下的有意识的注意力,主动注意——是指有预定目的、依赖任务的、主动有意识地聚焦于某一对象的注意力;
    2. 显著性(saliency-based)注意力:自下而上的有意识的注意力,被动注意——基于显著性的注意力是由外界刺激驱动的注意,不需要主动干预,也和任务无关;可以将max-pooling和门控(gating)机制来近似地看作是自下而上的基于显著性的注意力机制。
  3. 计算流程和实质

    1. Attention机制的实质其实就是一个寻址(addressing)的过程,如上图所示:给定一个和任务相关的查询Query向量 q,通过计算与Key的注意力分布并附加在Value上,从而计算Attention Value,这个过程实际上是Attention机制缓解神经网络模型复杂度的体现:不需要将所有的N个输入信息都输入到神经网络进行计算,只需要从X中选择一些和任务相关的信息输入给神经网络。

    2. 三步:

      1. 信息输入:用 X = [ x 1 , . . . , x N ] X=[x1,...,xN] X=[x1,...,xN]表示N个输入信息
      2. 注意力分布计算,令Key=Value=X,则可以给出注意力分布

      a i = s o f t m a x ( s ( k e y i , q ) ) = s o f t m a x ( s ( X i , q ) ) a_i = softmax(s(key_i,q))=softmax(s(X_i,q)) ai=softmax(s(keyi,q))=softmax(s(Xi,q))

      我们将 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0Nkalfiw-1638263704262)(https://www.zhihu.com/equation?tex=%5Calpha_i)] 称之为注意力分布(概率分布),[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jjVq1nGg-1638263704263)(https://www.zhihu.com/equation?tex=s%28X_i%2Cq%29)] 为注意力打分机制,有几种打分机制:

      ​ 加性模型 点积模型 缩放点积模型(本文) 双线性模型

      1. 信息加权平均:注意力分布 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n6VGbtIa-1638263704264)(https://www.zhihu.com/equation?tex=%5Calpha_i)] 可以解释为在上下文查询q时,第i个信息受关注的程度,采用一种“软性”的信息选择机制对输入信息X进行编码为:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y3kzsw7l-1638263704265)(https://www.zhihu.com/equation?tex=att%28q%2CX%29%3D%5Csum_%7Bi%3D1%7D%5E%7BN%7D%7B%5Calpha_iX_i%7D)]
      2. 这种编码方式为软性注意力机制(soft Attention),软性注意力机制有两种:普通模式(Key=Value=X)和键值对模式(Key!=Value)。
  4. Attention机制的变种有哪些

    1. 硬性注意力
    2. 键值对注意力
    3. 多头注意力(本文)
    4. 多头注意力(multi-head attention)是利用多个查询Q = [q1, · · · , qM],来平行地计算从输入信息中选取多个信息。每个注意力关注输入信息的不同部分,然后再进行拼接:

    img

参考2

题目:深度学习中的“注意力机制”

地址:https://rdc.hundsun.com/portal/article/922.html

地址:https://blog.csdn.net/aaalswaaa1/article/details/103942346

  1. 深度学习中的注意力机制从本质上讲和人类的选择性机制类似,核心目标也是从众多信息中选择出对当前任务目标更关键的信息。

  2. 许多表现良好的神经序列变换模型都使用编码器-解码器架构,其中编码器实现了从符号输入序列(x1,x2,…xN)到连续表征序列(x1,x2,…xN)的映射。对于任一给定的z,解码器在每一个时间步中生成一个输出符号,在经过 m 个时间步之后形成输出序列(x1,x2,…x)。在每一步中,模型都自动向前回滚,把之前生成的符号作为额外输入来生成下一步的序列输出符号。

  3. 注意力机制本身是一个函数,该函数实现了从query和一系列键值对(key-value pair)到输出output的映射,其中querykeyvalue都是向量。输出结果output的计算通过对value进行加权求和来得到,而每一个value所对应的权值是由query和key通过一个相容性函数来计算获取。

  4. 本文所使用的注意力机制称为"伸缩注意力机制",输入有Query、key、Value,维度都为d,先用Query和所有的key做点积,然后除以d,然后再通过softmax函数来获得每一个value的权值。

  5. query归集到Q矩阵中,用于注意力函数的计算,key和value也分别归集到矩阵k和矩阵v中,在这种归集下,我们计算得到结果矩阵可以表示为: A t t e n t i o n ( Q , K . V ) = s o f t m a x ( Q K T d K ) V Attention(Q,K.V) = softmax(\frac{QK^T}{\sqrt{d_K}})V Attention(Q,K.V)=softmax(dK QKT)V

    其中 1 d \frac{1}{\sqrt{d}} d 1表示伸缩因子

  6. 相对于单一注意力机制只对d维的 keys、values 和 queries 进行注意力计算,研究发现通过使用模型学习到的多种映射器,分别对 queries、keys 和 values 的各个维度进行h 次线性映射,效果更佳。在这h 次的映射中,我们对每一次映射得到的queries、keys 和values,我们并行地执行注意力函数,生成d维的输出value。然后把得到的h个d的输出 value 拼接在一起,再一次的进行注意力映射,得到最终的value 输出值。通过多头注意力机制,我们的模型能够使用不同序列位置的不同子空间的表征信息来进行序列数据处理。而在单一注意力机制中,这些不同位置不同子空间的表征信息由于取均值操作的存在,而将被模型丢失。

M u l t i H r a d ( Q , K , V ) = C o n c a t ( h e a d 1 , . . . , h e a d k ) W 0 h e a d i = A t t e n t i o n ( Q W i Q , K W i K , V W i V ) MultiHrad(Q,K,V)=Concat(head_1,...,head_k)W^0\\ head_i=Attention(QW_i^Q,KW^K_i,VW_i^V) MultiHrad(Q,K,V)=Concat(head1,...,headk)W0headi=Attention(QWiQ,KWiK,VWiV)


自我提升

  1. 循环神经网络和多头注意机制可用到RFID系统中
  2. Tag的追踪和定位问题需要解决
  3. 端口ID和RSSI可用于判断阅读器与标签之间的距离和方向与速度
  4. 多普勒频移和相位也可以用于定位
  5. 对标签分组和定位,可实现虚拟购物车和购物行为挖掘等功能
  6. 收集信息读数采用的是传统的方法?
  7. 循环神经网络和主义机制以及一些函数还需重点渗透和理解

目录

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SoaringW

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值