一种用户行为识别方法及移动终端
技术领域
本发明涉及移动终端数据处理技术领域,尤其涉及一种用户行为识别方法及移动终端。
背景技术
随着移动互联网行业的发展和智能移动终端的不断进化,现在主流的移动终端,特别是智能手机上都搭载了很多类型的传感器,比如加速度传感器、陀螺仪、重力传感器、磁场传感器,以及温度、气压传感器等。
移动终端的传感器所提供的数据与当前携带该移动终端的用户的行为具有较强的相关性。采用传感器数据样本来训练机器学习模型(例如随机森林、神经网络等),然后采用训练好的机器学习模型对实时传感器数据进行分析,可以识别出用户当前的行为类型。
某些传感器可以采集多项数据(例如加速度传感器可以采集xyz轴的加速度信息),同一个传感器所采集到的多项数据往往存在较大的线性相关性,这意味着传感器采集到的数据存在大量的信息冗余,这会影响模型训练的收敛速度以及最终的泛化性能,降低用户行为识别的准确性。此外,由于移动终端的存储和运算能力有限,因此需要提供一种复杂度低、运行速度快、准确性高的用户行为识别方法。
发明内容
为此,本发明提供一种用户行为识别方法及移动终端,以力图解决或至少缓解上面存在的问题。
根据本发明的第一个方面,提供一种用户行为识别方法,在移动终端中执行,所述移动终端包括至少一个传感器,所述传感器适于采集所述移动终端的多项状态信息,所述方法包括:按照预定频率获取预定时长内的多组传感器数据,每组传感器数据包括所述至少一个传感器所采集的多项状态信息;将所述多组传感器数据输入预设的用户行为识别模型,以确定用户行为类型,其中,所述用户行为识别模型包括去相关模块和分类模块,所述去相关模块适于对所述多组传感器数据进行去相关处理,以消除每组传感器数据中的各项状态信息的相关性,得到目标数据,所述分类模块适于对所述目标数据进行处理,以确定用户行为类型。
可选地,在根据本发明的用户行为识别方法中,传感器包括加速度传感器和陀螺仪,所述每组传感器数据包括:所述加速度传感器采集的所述移动终端在xyz三个坐标轴方向上的加速度信息;以及所述陀螺仪采集的所述移动终端绕xyz三个坐标轴旋转的角速度信息。
可选地,在根据本发明的用户行为识别方法中,去相关模块适于按照以下步骤对所述多组传感器数据进行去相关处理:对所述多组传感器数据进行中心化处理,使处理后的每项状态信息的均值为0,得到中心化数据;确定所述中心化数据的变换矩阵,将所述中心化数据与所述变换矩阵相乘,以得到目标数据,其中,所述变换矩阵使得所述目标数据的协方差矩阵为单位矩阵,从而消除各项状态信息的相关性。
可选地,在根据本发明的用户行为识别方法中,变换矩阵按照以下步骤确定:计算所述中心化数据的协方差矩阵Σ;对所述协方差矩阵Σ进行奇异值分解,将协方差矩阵Σ转化成第一矩阵U、第二矩阵S和第一矩阵U的转置矩阵UT的乘积,其中,第一矩阵U为协方差矩阵Σ的特征向量所组成的矩阵,第二矩阵S为协方差矩阵Σ的特征值所组成的对角矩阵;将矩阵U、S-1/2、UT的乘积作为变换矩阵,其中,S-1/2中各元素的值为第二矩阵S中相应位置的元素的平方根的倒数。
可选地,在根据本发明的用户行为识别方法中,去相关模块包括批标准化层,适于调整所述目标数据中的各项状态信息的均值和方差。
可选地,在根据本发明的用户行为识别方法中,分类模块包括多个卷积处理单元,每个卷积处理单元包括两个深度分离卷积层,其中,第一深度分离卷积层的卷积步长为1;第二深度分离卷积层的输入为所述第一深度分离卷积层的输出,且所述第二深度分离卷积层的步长大于1。
可选地,在根据本发明的用户行为识别方法中,用户行为识别模型根据标注了用户行为类型的传感器数据训练得出。
可选地,在根据本发明的用户行为识别方法中,用户行为识别模型在训练设备中进行训练,训练完成后,将训练好的用户识别模型部署至所述移动终端。
可选地,在根据本发明的用户行为识别方法中,用户行为类型包括:静止、行走、跑步、骑行、乘公交车、乘地铁、乘小型汽车。
根据本发明的第二个方面,提供一种移动终端,包括:至少一个处理器;和存储有程序指令的存储器,当所述程序指令被所述处理器读取并执行时,使得所述移动终端执行如上所述的用户行为识别方法。
根据本发明的第三个方面,提供一种存储有程序指令的可读存储介质,当所述程序指令被移动终端读取并执行时,使得所述移动终端执行如上所述的用户行为识别方法。
根据本发明的技术方案,用户行为识别模型包括去相关模块,去相关模块适于消除每组传感器数据中的各项状态信息的相关性,从而大大减少了原始传感器数据中的冗余信息,加快了模型收敛速度,提高了模型泛化能力,使得模型能够准确识别用户行为。
分类模块由多个卷积处理单元组成,每个卷积处理单元包括两个深度分离卷积层,其中,第一深度分离卷积层的卷积步长为1,第二深度分离卷积层的卷积步长大于1。深度分离卷积层相较于传统的卷积层来说,需要训练的参数的数量大大减少,降低了模型的复杂度,提高了模型的运行速度。大于1的卷积步长设置替代了传统神经网络模型中的池化层,相较于设置池化层来说,大于1的卷积步长在几乎不影响模型准确性的前提下,避免了池化造成的大量信息丢失,降低了模型复杂度和过拟合的风险,提高了模型的运行速度。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个实施例的计算系统100的示意图;
图2示出了根据本发明一个实施例的机身坐标系的示意图;
图3示出了根据本发明一个实施例的移动终端200的示意图;
图4示出了根据本发明一个实施例的用户行为识别方法400的流程图;
图5示出了根据本发明一个实施例的用户行为识别模型500的结构图;
图6示出了多组传感器数据中的各项状态信息的相关性的示意图;
图7示出了对图6中的传感器数据进行去相关处理后,各项状态信息的相关性的示意图;以及
图8示出了根据本发明另一个实施例的用户行为识别模型800的结构图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的计算系统100的示意图。如图1所示,计算系统100包括训练设备110和移动终端200。
移动终端200可以是任意类型的能够被用户随身携带的终端设备,包括但不限于手机、平板电脑、游戏机、智能可穿戴设备、视听播放设备等。移动终端200中部署有至少一个传感器,传感器用于采集移动终端所处的环境和状态信息。移动终端200中部署的传感器可以是任意类型,包括但不限于加速度传感器、陀螺仪(即角速度传感器)、磁场传感器、温度传感器、湿度传感器、气压传感器等。
在移动终端200所包括的传感器中,某些传感器仅可以采集一项状态信息,而某些传感器可以采集多项状态信息。例如,移动终端200中部署有加速度传感器、陀螺仪、温度传感器、湿度传感器等。其中,加速度传感器、陀螺仪均可以采集至少三项状态信息,加速度传感器可以采集移动终端200的机身坐标系的xyz三个坐标轴上的加速度信息,陀螺仪可以采集移动终端200绕机身坐标系的xyz三个坐标轴旋转的角速度信息。图2示出了根据本发明一个实施例的机身坐标系的示意图。如图2所示,机身坐标系的原点为移动终端屏幕的中心,x轴在屏幕平面内水平指向右,y轴在屏幕平面内垂直指向上,z轴分别垂直于x轴、y轴,并向外指向屏幕上方。温度传感器、湿度传感器均仅可以采集一项状态信息,二者所采集的状态信息分别为移动终端200移动终端所处环境的温度和湿度。
在移动终端200所包括的传感器中,有些传感器用于采集移动终端的运动状态信息,这些传感器所采集到的数据即图1中所示的传感器数据260,与当前携带移动终端200的用户的行为具有较强的相关性,因此传感器数据260可用于识别用户当前的行为类型。这些传感器包括加速度传感器、陀螺仪等,相应地,传感器数据260包括加速度传感器采集到的移动终端200在xyz三个坐标轴上的加速度信息,以及陀螺仪所采集到的移动终端200绕xyz三个坐标轴旋转的角速度信息等。
将传感器数据260输入预设的用户行为识别模型500,用户行为识别模型500对传感器数据260进行一系列处理后,即可输出传感器数据260所对应的用户行为类型。在本发明的实施例中,用户行为识别模型500为预先训练好的卷积神经网络模型。
移动终端200具有便携性,但其通常体积较小,运算和存储能力有限。因此,根据一种优选的实施例,用户行为识别模型500在训练设备110中进行训练,而不是在移动终端200中训练。当训练设备110完成模型训练后,再将训练好的用户行为识别模型500部署至移动终端200。
训练设备110为存储和运算能力优于移动终端200的计算设备,其例如可以是桌面计算机、笔记本计算机等个人配置的计算机,或者是服务器、工作站等,但不限于此。
如图1所示,训练设备110包括模型训练器114,其使用诸如误差的反向传播等各种训练或学习技术来训练用户行为识别模型500。在一些实施例中,执行误差的反向传播可以包括执行通过时间截断的反向传播(truncated backpropagation through time)。模型训练器114可以执行多种泛化技术(例如,权重衰减、丢失等)以改进正在训练的模型的泛化能力。
具体地,模型训练器114可以基于训练数据112的集合来训练用户行为识别模型500。在本发明的实施例中,训练数据112是标注了用户行为类型的传感器数据。在用户行为识别模型500训练完成后,可以在训练设备110中将模型500转化为TFLite格式的模型文件(TensorFlow Lite文件,其中模型参数被量化为8位的整数类型,即int8)。将该文件部署于移动终端200中,这样,移动终端200便可以使用用户行为识别模型500来实时识别用户行为类型了。
在本发明的实施例中,为了提高用户行为识别模型500训练速度和泛化能力,提高用户行为识别的准确性,本发明对用户行为识别模型500的结构做了优化,并且提供了一种基于优化后的用户行为识别模型500的用户行为识别方法400。用户行为识别模型500的结构以及用户行为识别方法400的流程步骤将于下文中详述。
图3示出了根据本发明一个实施例的移动终端200的示意图。如图3所示,移动终端200可以包括存储器接口202、一个或多个数据处理器、图像处理器和/或中央处理单元204,以及外围接口206。
存储器接口202、一个或多个处理器204和/或外围接口206既可以是分立元件,也可以集成在一个或多个集成电路中。在移动终端200中,各种元件可以通过一条或多条通信总线或信号线来耦合。传感器、设备和子系统可以耦合到外围接口206,以便帮助实现多种功能。
例如,加速度传感器210、陀螺仪212和磁场传感器214可以耦合到外围接口206,加速度传感器210可以采集在机身坐标系的三个坐标轴方向上的加速度数据,陀螺仪212可以采集绕机身坐标系的三个坐标轴旋转的角速度数据,磁场传感器214可以采集在机身坐标系的三个坐标轴方向上的磁场数据(磁感应强度)。其他传感器216同样可以与外围接口206相连,例如定位系统(例如GPS接收机)、温度传感器、生物测定传感器或其他感测设备,由此可以帮助实施相关的功能。
相机子系统220和光学传感器222可以用于方便诸如记录照片和视频剪辑的相机功能的实现,其中所述相机子系统和光学传感器例如可以是电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS)光学传感器。可以通过一个或多个无线通信子系统224来帮助实现通信功能,其中无线通信子系统可以包括射频接收机和发射机和/或光(例如红外)接收机和发射机。无线通信子系统224的特定设计和实施方式可以取决于移动终端200所支持的一个或多个通信网络。例如,移动终端200可以包括被设计成支持LTE、3G/4G/5G网络、GPRS网络、EDGE网络、Wi-Fi或WiMax网络以及BlueboothTM网络的通信子系统224。
音频子系统226可以与扬声器228以及麦克风230相耦合,以便帮助实施启用语音的功能,例如语音识别、语音复制、数字记录和电话功能。I/O子系统240可以包括触摸屏控制器242和/或一个或多个其他输入控制器244。触摸屏控制器242可以耦合到触摸屏246。举例来说,该触摸屏246和触摸屏控制器242可以使用多种触摸感测技术中的任何一种来检测与之进行的接触和移动或是暂停,其中感测技术包括但不局限于电容性、电阻性、红外和表面声波技术。一个或多个其他输入控制器244可以耦合到其他输入/控制设备248,例如一个或多个按钮、摇杆开关、拇指旋轮、红外端口、USB端口、和/或指示笔之类的指点设备。所述一个或多个按钮(未显示)可以包括用于控制扬声器228和/或麦克风230音量的向上/向下按钮。
存储器接口202可以与存储器250相耦合。该存储器250可以包括内部存储器和外部存储器,内部存储器例如可以是静态随机存取存储器(SRAM)、非易失性存储器(NVRAM)等,但不限于此;外部存储器例如可以是硬盘、可移动硬盘、U盘等,但不限于此。存储器250可以存储程序指令,程序指令例如可以包括操作系统252和应用254。操作系统252例如可以是Android、iOS、Windows Phone等,其包括用于处理基本系统服务以及执行依赖于硬件的任务的程序指令。存储器250还可以存储应用254,应用254可以包括用于实现各种用户期望的功能的程序指令。应用254可以是独立于操作系统提供的,也可以是操作系统自带的。另外,应用254被安装到移动终端200中时,也可以向操作系统添加驱动模块。在移动设备运行时,会从存储器250中加载操作系统252,并且由处理器204执行。应用254在运行时,也会从存储器250中加载,并由处理器204执行。应用254运行在操作系统之上,利用操作系统以及底层硬件提供的接口实现各种用户期望的功能,如即时通信、网页浏览、图片管理、运动休闲等。
在上述各种应用254中,其中的一种应用为用于执行本发明的用户行为识别方法400的指令,该指令可以指示处理器204执行确定移动终端应用场景的方法400,获取移动终端传感器所采集到的传感器数据260,并据此识别出用户行为类型。根据一种实施例,用户行为类型包括静止、行走、跑步、骑行、乘公交车、乘地铁、乘小型汽车(例如出租车、私家车等)等,但不限于此。
图4示出了根据本发明一个实施例的用户行为识别方法400的流程图。方法400在移动终端(例如前述移动终端200)中执行,用于实时识别用户行为。如图4所示,方法400始于步骤S410。
在步骤S410中,按照预定频率获取预定时长内的多组传感器数据,每组传感器数据包括至少一个传感器所采集的多项状态信息。
应当指出,预定频率以及预定时长的值可以由本领域技术人员根据实际情况自行设置。优选地,将预定频率设置为较小的数值,从而降低对传感器数据订阅的需求,降低耗电量;同时,将预定时长也设置为一个较小的合适的数值,从而在保证的用户行为识别的准确性的同时降低延时,增加响应的灵敏度。在一个实施例中,可以将预定频率设置为20Hz(即获取传感器数据的间隔时间为50ms),预定时长设置为6400ms,那么步骤S410相当于以50ms的时间间隔获取128组传感器数据,随后,在步骤S420中,根据获取到的这128组传感器数据来确定用户行为类型。
在步骤S410中,每组传感器数据包括至少一个传感器所采集到的多项状态信息。应当理解,移动终端200中部署有多个传感器,不同传感器采集到的状态信息的种类和数量不同。步骤S410中仅获取那些用于采集移动终端的运动状态信息的传感器数据,例如加速度传感器、陀螺仪等所采集到的数据;而不获取那些用于采集静态环境状态信息的传感器数据,例如温湿度传感器、气压传感器等所采集到的数据。
需要说明的是,本发明对每组传感器数据所涉及到的传感器的数量和类型,以及每个传感器所采集到的状态信息的数量和类型不做限制。根据一种实施例,传感器数据由加速度传感器和陀螺仪采集,每组传感器数据包括加速度传感器采集的移动终端在xyz三个坐标轴方向上的加速度信息,以及陀螺仪采集的移动终端绕xyz三个坐标轴旋转的角速度信息。例如,在预定频率为20Hz、预定时长为6400ms时,获取到的128组传感器数据d1~d128如下表1所示:
表1.状态数据示例
在表1中,每一行对应于一组传感器数据,每一组传感器数据包括x轴加速度信息、y轴加速度信息、z轴加速度信息、x轴角速度信息、y轴角速度信息、z轴角速度信息六项状态信息。
在步骤S420中获取到多组传感器数据,执行步骤S420。
随后,在步骤S420中,将多组传感器数据输入预设的用户行为识别模型,以确定用户行为类型。
图5示出了根据本发明一个实施例的用户行为识别模型500的结构图。如图5所示,用户行为识别模型500包括去相关模块5100和分类模块5200。
去相关模块5100适于对多组传感器数据进行去相关处理,以消除每组传感器数据中的各项状态信息的相关性,得到目标数据。
同一个传感器所采集到的多项数据往往存在较大的线性相关性,例如,加速度传感器所采集到的xyz轴的加速度信息三者之间存在较大的相关性,陀螺仪所采集到的xyz轴的角速度信息三者之间存在较大的相关性。图6以矩阵的形式示出了多组传感器数据中的各项状态信息的相关性,其中,编号0~5分别表示x轴加速度信息、y轴加速度信息、z轴加速度信息、x轴角速度信息、y轴角速度信息、z轴角速度信息,矩阵中第i行第j列的元素表示编号i对应的信息与编号j对应的信息的相关性(协方差),相关性的绝对值越接近1,表示两种信息的相关性越强,相关性的绝对值越接近0,表示两种信息的相关性越弱。相关性为正数,表示两种信息正相关;相关性为负数,表示两种信息负相关。
图6右侧示出了相关性与灰度值的对应关系图例,以更直观地展示各项状态信息的相关性,灰度越浅,表示两种信息的相关性越强;灰度越深,表示两种信息的相关性越弱。在图6左侧所示的相关性矩阵中,相关性较强的部分(即浅色部分)位于矩阵的左上角和右下角,即加速度传感器所采集到的xyz轴的加速度信息三者之间存在较大的相关性,陀螺仪所采集到的xyz轴的角速度信息三者之间存在较大的相关性。
传感器采集到的信息的相关性意味着传感器所采集到的原始数据中存在大量的信息冗余,会影响模型训练的收敛速度和泛化性能,降低用户行为识别的准确性。因此,在本发明的用户行为识别模型中设置了去相关模块5100,用于对多组传感器数据进行去相关处理,以提高用户行为识别的准确性。
根据一种实施例,去相关模块5100适于按照以下步骤S422~S424对多组传感器数据进行去相关处理:
在步骤S422中,对多组传感器数据进行中心化处理,使处理后的每项状态信息的均值为0,得到中心化数据。
具体地,多组传感器数据可以组成原始数据矩阵,原始数据矩阵中的每一行表示一组传感器数据,每一列表示一项状态信息。例如,前述表1中的128组传感器数据可以组成128*6的数据矩阵D,即:
原始数据矩阵D的每一行表示一组传感器数据,每一列对应于一项状态信息,每列对应的状态信息分别为x轴加速度信息、y轴加速度信息、z轴加速度信息、x轴角速度信息、y轴角速度信息、z轴角速度信息。
对于原始数据矩阵D,求其中每一列的均值,得到均值向量
中心化数据C即为原始数据矩阵D与均值向量E(D)的差,即:
随后,在步骤S424中,确定中心化数据的变换矩阵,将中心化数据与变换矩阵相乘,以得到目标数据,其中,变换矩阵使得目标数据的协方差矩阵为单位矩阵,从而消除各项状态信息的相关性。
根据一种实施例,变换矩阵按照以下步骤确定:
首先,计算所述中心化数据的协方差矩阵Σ,有:
其中,m为传感器数据的组数,以表1所示的传感器数据为例,有m=128。
随后,对协方差矩阵Σ进行奇异值分解,将协方差矩阵Σ转化成第一矩阵U、第二矩阵S和第一矩阵U的转置矩阵UT的乘积,其中,第一矩阵U为协方差矩阵Σ的特征向量所组成的矩阵,第二矩阵S为协方差矩阵Σ的特征值所组成的对角矩阵。即,协方差矩阵Σ的奇异值分解结果为:
∑=USUT
随后,将矩阵U、S-1/2、UT的乘积作为变换矩阵,其中,S-1/2中各元素的值为第二矩阵S中相应位置的元素的平方根的倒数。即,变换矩阵W为:
在确定了变换矩阵W后,将中心化数据C与变换矩阵W相乘,得到目标数据Z,即:
Z=CW
由上可见,目标数据Z的协方差矩阵为对角线元素为1,其他元素均为0的单位矩阵I。也就是说,在目标数据Z中,不同状态信息之间的协方差均为0,从而消除了各项状态信息之间的相关性。
图7示出了经去相关模块5100处理后,各项状态信息的相关性(协方差)。在图7所示的相关性矩阵中,除对角线元素值为1之外,其他位置的元素值均非常小,达到10^(-6)、10^(-7)数量级,几乎为0,表明各项状态信息之间的相关性被消除。
根据一种实施例,去相关模块5100还包括批标准化层(Batch Normalization),适于调整目标数据Z中的各项状态信息的均值和方差,以使目标数据Z处于最适于进行模型训练的状态,提高模型训练效率和后续分类效果。将调整后的数据记为Z’,则批标准化层所进行的处理如下:
Z'=γZ+β
其中,γ、β为可训练的参数,其值通过训练来确定。
在去相关模块5100得到消除了状态信息相关性的目标数据后,将目标数据输入分类模块5200进行处理。
分类模块5200适于对目标数据进行处理,以确定用户行为类型并输出。
如图5所示,分类模块5200包括多个卷积处理单元5220-1~5220-N。每个卷积处理单元包括两个深度分离卷积层5221和5222。其中,第一深度分离卷积层的卷积步长(stride)为1,第二深度分离卷积层的卷积步长大于1,例如,第二深度分离卷积层的卷积步长可以是2或者其他数值。
深度分离卷积层相较于传统的卷积层来说,参数的数量大大减少,降低了模型的复杂度,从而提高了模型的运行速度。大于1的卷积步长设置替代了传统神经网络模型中的池化层,相较于设置池化层来说,大于1的卷积步长在几乎不影响模型准确性的前提下,避免了池化造成的大量信息丢失,降低了模型复杂度和过拟合的风险,提高了模型的运行速度。
图8示出了根据本发明另一个实施例的用户行为识别模型800的结构图。如图8所示,用户行为识别模型800包括去相关模块8100和分类模块8200。
去相关模块8100适于对输入的多组传感器数据进行去相关处理,以消除每组传感器数据中的各项状态信息的相关性,得到目标数据。
输入的多组传感器数据组成128*6的原始数据矩阵(共有128组传感器数据,每组传感器数据包括6维状态信息),经过去相关模块8100的处理后,得到128*6的目标数据,目标数据中,各项状态信息之间的相关性被消除。
随后,目标数据被输入分类模块8200。分类模块8200对目标数据进行一系列处理,最终输出用户行为类型。
如图8所示,分类模块8200包括三个卷积处理单元,每个卷积处理单元均包括一个第一深度分离卷积层和一个第二深度分离卷积层。其中,第一深度分离卷积层的卷积步长(stride)为1,第二深度分离卷积层的卷积步长为2。并且,所有深度分离卷积层的卷积核尺寸(kernel size)均为5,即5*1,输出通道数(filters)均为16。并且,深度分离卷积层均采用ReLu激活函数(激活层未在图8中示出),且卷积核只有权重(weight),没有偏置(bias)。
需要说明的是,以上所示的各项参数(包括深度分离卷积层的卷积步长、卷积核尺寸、输出通道数、激活函数、是否有偏置)均仅为示例,本领域技术人员可以根据实际情况来调整用户行为识别模型的各个处理层的参数,本发明对此不做限制。
在图8所示的用户行为识别模型中,第一深度分离卷积层1对128*6的目标数据进行卷积处理,输出128*16的特征图;
第二深度分离卷积层1对第一深度分离卷积层1输出的128*16的特征图进行卷积处理,输出64*16的特征图;
第一深度分离卷积层2对第二深度分离卷积层1输出的64*16的特征图进行卷积处理,输出64*16的特征图;
第二深度分离卷积层2对第一深度分离卷积层2输出的64*16的特征图进行卷积处理,输出32*16的特征图;
第一深度分离卷积层3对第二深度分离卷积层2输出的32*16的特征图进行卷积处理,输出32*16的特征图;
第二深度分离卷积层3对第一深度分离卷积层3输出的32*16的特征图进行卷积处理,输出16*16的特征图;
扁平化层对第二深度分离卷积层3输出的16*16的特征图进行扁平化处理,输出一个256维的特征向量;
全连接softmax层对扁平化层输出的256维的特征向量进行全连接,判断特征向量属于各用户行为类型的概率,将概率最大的用户行为类型作为分类结果进行输出。
在图8所示的模型结构中,第二深度分离卷积层的卷积步长为2,实现了特征数据的下采样,其替代了传统神经网络模型中的池化层。相较于设置池化层来说,将卷积步长设置为大于1的数值可以在几乎不影响模型准确性的前提下,避免了池化造成的大量信息丢失,降低了模型复杂度和过拟合的风险,提高了模型的运行速度。
另外,深度分离卷积层相较于传统的卷积层来说,需要训练的参数的数量大大减少,降低了模型的复杂度,提高了模型的运行速度。
以下以图8中的第一深度分离卷积层1为例,来说明深度分离卷积层相较于传统卷积层的技术效果。
目标数据Z为128*6的数据矩阵,如下表2所示:
表2
z<sub>11</sub> |
z<sub>12</sub> |
z<sub>13</sub> |
z<sub>14</sub> |
z<sub>15</sub> |
z<sub>16</sub> |
z<sub>21</sub> |
z<sub>22</sub> |
z<sub>23</sub> |
z<sub>24</sub> |
z<sub>25</sub> |
z<sub>26</sub> |
z<sub>31</sub> |
z<sub>32</sub> |
z<sub>33</sub> |
z<sub>34</sub> |
z<sub>35</sub> |
z<sub>36</sub> |
z<sub>41</sub> |
z<sub>42</sub> |
z<sub>43</sub> |
z<sub>44</sub> |
z<sub>45</sub> |
z<sub>46</sub> |
z<sub>51</sub> |
z<sub>52</sub> |
z<sub>53</sub> |
z<sub>54</sub> |
z<sub>55</sub> |
z<sub>56</sub> |
z<sub>61</sub> |
z<sub>62</sub> |
z<sub>63</sub> |
z<sub>64</sub> |
z<sub>65</sub> |
z<sub>66</sub> |
… |
… |
… |
… |
|
… |
z<sub>128,1</sub> |
z<sub>128,2</sub> |
z<sub>128,3</sub> |
z<sub>128,4</sub> |
z<sub>128,5</sub> |
z<sub>128,6</sub> |
如图8所示,第一深度分离卷积层1的参数为:卷积步长stride为1,卷积核尺寸kernel size为5,即5*1,输出通道数filters为16。
在第一深度分离卷积层1对上述目标数据Z的处理过程为:
将目标数据Z中的每一列状态信息作为一个输入通道,则目标数据Z的输入通道数为6。
首先,设置与输入通道数相同数量的尺寸为5*1的卷积核,分别对每个输入通道进行卷积。即,设置6个5*1的卷积核,每个5*1的卷积核用于对目标数据Z中的一列数据进行卷积。每个5*1的卷积核对目标数据Z中的一列数据进行卷积处理后(设置了填充padding),将得到一个128*1的向量,即得到一列数据。6个卷积核完成卷积处理后,将得到6列128*1的数据,即得到尺寸为128*6的特征图F,如下表3所示。在该步骤中,6个5*1的卷积核待训练的参数为卷积核中各个位置的权重,共有6*5*1=30个(该示例中卷积核无偏置)。
表3
f<sub>11</sub> |
f<sub>12</sub> |
f<sub>13</sub> |
f<sub>14</sub> |
f<sub>15</sub> |
f<sub>16</sub> |
f<sub>21</sub> |
f<sub>22</sub> |
f<sub>23</sub> |
f<sub>24</sub> |
f<sub>25</sub> |
f<sub>26</sub> |
f<sub>31</sub> |
f<sub>32</sub> |
f<sub>33</sub> |
f<sub>34</sub> |
f<sub>35</sub> |
f<sub>36</sub> |
f<sub>41</sub> |
f<sub>42</sub> |
f<sub>43</sub> |
f<sub>44</sub> |
f<sub>45</sub> |
f<sub>46</sub> |
f<sub>51</sub> |
f<sub>52</sub> |
f<sub>53</sub> |
f<sub>54</sub> |
f<sub>55</sub> |
f<sub>56</sub> |
f<sub>61</sub> |
f<sub>62</sub> |
f<sub>63</sub> |
f<sub>64</sub> |
f<sub>65</sub> |
f<sub>66</sub> |
… |
… |
… |
… |
|
… |
f<sub>128,1</sub> |
f<sub>128,2</sub> |
f<sub>128,3</sub> |
f<sub>128,4</sub> |
f<sub>128,5</sub> |
f<sub>128,6</sub> |
随后,设置与输出通道数相同的尺寸为1*输入通道数的卷积核,分别对上一步骤得到的特征图的每一行数据进行卷积。即,设置16个尺寸为1*6的卷积核,每个卷积核分别对特征图F进行卷积。以一个1*6的卷积核[w1,w2,w3,w4,w5,w6]为例,该卷积核依次对特征图F的每一行进行卷积处理,对第一行进行处理后,得到一个数值p1,即f11w1+f12w2+f13w3+f14w4+f15w5+f16w6=p1。类似地,对特征图F的128行数据进行卷积处理,将得到128个数值p1~p128,这128个数值组成一个128*1的列向量。
每个1*6的卷积核对特征图F进行卷积处理,均可以得到一个128*1的列向量。相应地,16个1*6的卷积核对特征图F进行卷积处理,将得到16个128*1的列向量,即得到一个128*16的特征图。在该步骤中,16个1*6的卷积核中待训练的参数为卷积核中各个位置的权重,共有16*1*6=96个(该示例中卷积核无偏置)。
因此,在第一深度分离卷积层1中,需要训练的参数共有30+96=126个。
如果采用传统的卷积层对128*6的目标数据Z进行卷积处理,按照图8中设置的卷积核尺寸5*1和输出通道数16,处理过程如下:
设置16个5*1的卷积核,输入通道数为6,那么每个卷积核也需要有6个通道,即卷积核的深度为6,相当于设置了16个5*1*6的卷积核。每个5*1*6的卷积核对目标数据Z的6个输入通道进行卷积,得到1个128*1的特征向量,相应地,16个5*1*6的卷积核将得到16个128*1的特征向量,即得到一个128*16的特征图。在该过程中,需要训练的参数为卷积核中各个位置的权重(该示例中卷积核无偏置),共有16*5*1*6=480个。
由上可见,采用深度分离卷积层来对目标数据Z进行卷积处理,需要训练的参数为126个;而采用传统卷积层处理,需要训练的参数为480个。深度分离卷积层相较于传统的卷积层来说,需要训练的参数的数量大大减少,降低了模型的复杂度,提高了模型的运行速度。
A11、一种存储有程序指令的可读存储介质,当所述程序指令被移动终端读取并执行时,使得所述移动终端执行如权利要求1-9中任一项所述的用户行为识别方法。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、U盘、软盘、CD-ROM或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,移动终端一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的用户行为识别方法。
以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。
在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的而非限制性的,本发明的范围由所附权利要求书限定。