本申请总体上涉及数据处理,并且更具体地涉及使用多任务学习来提取特征的计算机实现的方法、系统和计算机程序产品。
背景技术:
在现代,人工智能(ai)被广泛用于处理数据。在大数据场景中,通常会提取数据的特征以减少冗余,通常表示为特征向量。期望要提取的特征包含数据的相关信息,从而可以通过使用此简化表示代替完整数据来执行所需任务,例如分类任务或聚类任务。
特征提取在各个技术领域中可能是有价值的,例如,分析gps和其他车辆传感器数据对于远程信息处理和车辆互联解决方案至关重要。确定谁在驾驶汽车以及他如何驾驶对于分析和记录以供日后使用非常有用。例如,汽车保险公司提出的一项关键要求是对驾驶员的驾驶风格进行建模以识别驾驶员,因此识别结果在基于使用的保险(ubi)中可能非常有用,这是一种新兴汽车保险,成本取决于所用车辆的类型,并根据时间、距离、驾驶行为和地点来衡量。需求背后的问题是如何获得可用于根据驾驶员的驾驶行为来区分不同驾驶员的良好特征表示。
典型的模型过去依赖于原始数据的手工制作的特征,并且严重依赖于人员领域的知识和经验。对人员领域知识和经验的这种依赖并不总是可靠的,而且通常也不总是完整的。
另外,现有方法主要使用分类框架来学习特征表示。但是,在实践中,很难为任何新数据收集带有标签的足够的训练数据,这使得现有方法在新数据上无法很好地工作。
技术实现要素:
根据一个实施例,提供了一种用于训练神经网络的计算机实现的方法。根据该方法,可以通过深度神经网络(dnn)获取训练数据,深度神经网络首先包括至少一个隐藏层。然后可以从至少一个隐藏层的指定隐藏层获取训练数据的特征,指定隐藏层分别连接到用于分类任务的监督分类网络和用于重建任务的基于自动编码器的重建网络。最后,基于获取的特征可以将dnn、监督分类网络和重建网络作为整体进行训练,训练以分类任务和重建任务为指导。
根据本发明的另一个实施例,提供了一种用于训练神经网络的计算机系统。该计算机系统包括处理器和耦合到处理器的计算机可读存储器。存储器包括可由处理器执行的指令。处理器可操作以执行一个或多个以下动作。首先,可以通过深度神经网络(dnn)获取训练数据,深度神经网络包括至少一个隐藏层。然后可以从至少一个隐藏层的指定隐藏层获取训练数据的特征,指定隐藏层分别连接到用于分类任务的监督分类网络和用于重建任务的基于自动编码器的重建网络。最后,基于获取的特征可以将dnn、监督分类网络和重建网络作为整体进行训练,训练以分类任务和重建任务为指导。
根据本发明的又一个实施例,提供了一种计算机程序产品。所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质具有在其上体现的程序指令,所述程序指令可由处理器执行以使所述处理器执行一个或多个以下动作。首先,可以通过深度神经网络(dnn)获取训练数据,深度神经网络包括至少一个隐藏层。然后可以从至少一个隐藏层的指定隐藏层获取训练数据的特征,指定隐藏层分别连接到用于分类任务的监督分类网络和用于重建任务的基于自动编码器的重建网络。最后,基于获取的特征可以将dnn、监督分类网络和重建网络作为整体进行训练,训练以分类任务和重建任务为指导。
下面参考附图详细描述各种实施例的其他特征以及结构和操作。在附图中,相同的附图标记表示相同或功能相似的元件。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1表示根据本发明一实施例的云计算节点。
图2表示根据本发明一实施例的云计算环境。
图3表示根据本发明一实施例的抽象模型层。
图4是示出根据本发明实施例的用于训练用于提取特征的神经网络模型的方法的流程图。
图5是根据本发明实施例的多任务学习系统的结构图。
图6是根据本发明实施例的现有自动编码器网络的示例架构。
图7是示出根据本发明实施例的用于整体上调节整个神经网络的方法700的流程图。
图8是示出根据本发明实施例的用于测试训练的神经网络以确定训练是否完成的方法800的流程图。
图9描绘了示出根据本发明实施例的用于通过使用训练的神经网络进行聚类的方法900的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整的传达给本领域的技术人员。
首先应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案的实现却不限于云计算环境,而是能够结合现在已知或以后开发的任何其它类型的计算环境而实现。
云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
特征包括:
按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理pda)对云的使用。
资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。
迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。
可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。
服务模型如下:
软件即服务(saas):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
平台即服务(paas):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。
基础架构即服务(iaas):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。
部署模型如下:
私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。
共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。
公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。
现在参考图1,其中显示了云计算节点的一个例子。图1显示的云计算节点10仅仅是适合的云计算节点的一个示例,不应对本发明实施例的功能和使用范围带来任何限制。总之,云计算节点10能够被用来实现和/或执行以上所述的任何功能。
云计算节点10具有计算机系统/服务器12,还可以适于描绘便携式电子设备(例如通信设备)的示例性示例,该示例性示例适用于实现本发明的实施例,其可与众多其它通用或专用计算系统环境或配置一起操作。众所周知,适于与计算机系统/服务器12一起操作的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任意系统的分布式云计算技术环境,等等。
计算机系统/服务器12旨在表示可以在部署/实现本文中叙述的教导时实现的任何类型的计算机系统/服务器。计算机系统/服务器12可以在由计算机系统执行的计算机系统/服务器可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。在该特定示例中,计算机系统/服务器12可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
如图1所示,云计算节点10中的计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(isa)总线,微通道体系结构(mac)总线,增强型isa总线、视频电子标准协会(vesa)局域总线以及外围组件互连(pci)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是能够被计算机系统/服务器12访问的任意可获得的介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质(例如vcr,dvr,raid阵列,usb硬盘驱动器,光盘记录器,闪存设备和/或任何其他用于存储和/或处理数据的数据处理和存储元件)。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd-rom,dvd-rom或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40作为示例(但不限于)可以存储在存储器28中。存储器28还可以包括操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(lan)、广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,其它硬件和/或软件模块可以与计算机系统/服务器12一起操作,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
现在参考图2,其中显示了示例性的云计算环境50。如图所示,云计算环境50包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点10,本地计算设备例如可以是个人数字助理(pda)或移动电话54a,台式电脑54b、笔记本电脑54c和/或汽车计算机系统54n。云计算节点10之间可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计算节点10进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境50提供的基础架构即服务(iaas)、平台即服务(paas)和/或软件即服务(saas)。应当理解,图2显示的各类计算设备54a-n仅仅是示意性的,云计算节点10以及云计算环境50可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。
现在参考图3,其中显示了云计算环境50(图2)提供的一组功能抽象层。首先应当理解,图3所示的组件、层以及功能都仅仅是示意性的,本发明的实施例不限于此。如图3所示,提供下列层和对应功能:
硬件和软件层60包括硬件和软件组件。硬件组件的例子包括:主机61;基于risc(精简指令集计算机)体系结构的服务器62;服务器63;刀片服务器64;存储设备65;网络和网络组件66。软件组件的例子包括:网络应用服务器软件67以及数据库软件68。
虚拟层70提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器71、虚拟存储72、虚拟网络73(包括虚拟私有网络)、虚拟应用和操作系统74,以及虚拟客户端75。
在一个示例中,管理层80可以提供下述功能:资源供应功能81:提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能82:在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,该资源可以包括应用软件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户门户功能83:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能84:提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(sla)计划和履行功能85:为根据sla预测的对云计算资源未来需求提供预先安排和供应。
工作负载层90提供云计算环境可能实现的功能的示例。在该层中,可提供的工作负载或功能的示例包括:地图绘制与导航91;软件开发及生命周期管理92;虚拟教室的教学提供93;数据分析处理94;交易处理95;以及模型训练96。
本公开针对一种用于训练基于深度神经网络的模型以使用多任务学习来提取特征的计算机系统和计算机实现的方法。由训练有素的基于深度神经网络的模型提取的特征可以准确地用于聚类/分类。
如本文所使用,术语“包括”及其变体应被理解为开放术语,其意指“包括但不限于”。术语“基于”应理解为“至少部分基于”。术语“一个实施例”应被理解为“至少一个实施例”。术语“另一实施例”应被理解为“至少一个其他实施例”。其他定义(显式和隐式)可以包括在下面。
下面将参考图4详细讨论本发明的实施例,图4描绘了示出根据本发明的实施例的用于训练用于提取特征的神经网络的方法的流程图。
在步骤410中,可以通过深度神经网络(dnn)获取训练数据。
在一个实施例中,训练数据可以来自任何种类的原始数据,包括但不限于行程数据、图像数据、语音数据和文本数据等。为了获取深度神经网络使用的训练数据,需要对原始数据进行预处理,并以所需的格式输出到dnn,例如多维数组,即训练数据为预处理后的原始数据。应当注意,对于本领域技术人员而言显而易见的是,可以采用各种现有的预处理方法来处理原始数据,并且为了简化起见将不对其进行详细讨论。在下文中,将以行程作为原始数据和训练数据来讨论本发明的实施例,典型地,行程数据包括多个行程,每个行程包括至少一个分段。对于本领域技术人员而言显而易见的是,可以使用所有其他类型的数据。
众所周知,dnn是具有多个隐藏层的神经网络。在dnn中,每个隐藏层都确定前一层的非线性变换。dnn的训练可以被认为是一个非凸问题,可以将其示为一个图,一个非凸函数(例如,神经网络的损失被视为其权重的函数)可以具有很多局部极小值。在一个实施例中,卷积神经网络(cnn)或递归神经网络(rnn)或其他类型的基于神经网络的dnn架构可用于从输入的训练数据中提取特征。基于dnn的神经网络可以在图4的过程中应用多任务学习来形成经过训练的基于dnn的神经模型。
在步骤420中,可以从dnn的至少一个隐藏层中的指定隐藏层获取训练数据的特征。根据本发明的一个实施例,指定隐藏层分别连接到用于分类任务的监督分类网络和用于重建任务的基于自动编码器的重建网络。下面,将参照图5描述上述结构。
如上所述,指定隐藏层分别连接到监督分类网络和重建网络,该监督分类网络和重建网络一起构成根据本发明实施例的图5所示的多任务学习系统500。如图5所示,dnn530中的指定隐藏层540可以使用神经元之间的加权连接分别连接到两个不同的神经网络以用于不同的学习任务。根据本发明的实施例,两个不同的神经网络可以是用于分类任务的监督分类网络510,以及用于重建任务的基于自动编码器的重建网络520。由于监督分类网络510和基于自动编码器的重建网络520都与指定隐藏层540连接,因此它们可以经由指定隐藏层540彼此交互,该指定隐藏层540可以用作共享的隐藏层。在多任务学习系统500的训练期间,监督分类网络510和重建网络520都可能需要捕获深度神经网络530中指定隐藏层540的运行时输出“x”。
在一个实施例中,dnn530的指定隐藏层540可以用作特征提取接口,用于输出从训练数据获取的特征,训练数据也将被分类网络和重建网络捕获。应当注意,对于dnn,每个隐藏层都可以用作输出获取特征的接口,通常,较高的隐藏层输出的特征可能比较低的隐藏层输出的特征更抽象。在一个实施例中,可以选择最后的隐藏层作为连接分类网络和重建网络两者的用于各自的学习任务的指定的隐藏层。在下文中,出于说明的目的,将以最后的隐藏层作为特定的隐藏层来讨论本发明的实施例,但是对于本领域技术人员应该清楚的是,最后的隐藏层仅是示例,任何其他隐藏层都可以用作指定隐藏层。
根据本发明的实施例,监督分类网络可以是基于softmax的分类器。softmax是logistic函数的众所周知的一般化方法,它将任意实数值的k维向量z映射到(0,1)范围内的实数的k维向量σ(z),它们的总和为1。通常,softmax函数可用作分类任务的输出层中的激活函数,以确保输出分类是概率。在下文中,将基于基于softmax的分类器作为监督分类网络来讨论本发明的实施例,但是对于本领域技术人员应该清楚的是,可以利用任何其他现有的监督分类网络。
在一些实施例中,如本领域技术人员所知,基于自动编码器的重建网络520是用于有效编码的无监督学习的人工神经网络。重建网络520的目的是学习通常用于降维的一组数据的表示(编码)。因此,可以通过重建共享层输出而不是像现有的自动编码器通常所做的整个网络输入那样来获取比共享隐藏层低的特征提取层。在更详细的实施例中,重建任务在运行时重建共享隐藏层的动态输出,因此,应基于共享隐藏层输出的动态目标x来确定其重建损失。
图6是根据本发明的实施例的现有自动编码器网络600的示例架构。在架构上,如图6所示,典型的自动编码器是前馈非递归神经网络–具有输入层(用x表示),输出层(用x'表示)和一个或多个完全连接的隐藏层(图6所示的示例自动编码器具有3个完全连接的隐藏层,其中一层用z表示)–但是输出层的节点数与输入层的数目相同,并且目的在于重构其自身的输入,因此,自动编码器是无监督的学习模型。即,特征层(由z表示)重建网络600的输入(由x表示),然后,z可以被用作输入x的压缩表示。
返回到图4,在步骤430中,可以基于所获取的特征对深度神经网络、监督分类网络和重建网络进行整体训练,即,可以在监督分类网络510中的分类任务和基于自动编码器的重建网络520中的重建任务的指导下对整个神经网络进行训练。在一个实施例中,通过使用反向传播(bp)算法,可以接受误差或损失并从这两个任务反向传播,可以在多任务学习期间调整整个神经网络的权重,稍后将参考图7描述在多任务学习期间如何整体调整神经网络的细节。
为了充分理解训练,可以首先在以下段落中描述分类网络的分类损失和重建网络的重建损失的概念。
在一个实施例中,可以根据训练数据的标签来定义分类损失。以行程数据为例,可以通过给定行程段的标签(即,驾驶员id)定义驾驶员分类损失作为指导分类任务的监督信息。
在以预处理的行程数据作为训练数据,并且将基于softmax的分类器作为监督分类网络的实施例中,分类损失可以通过基于softmax回归输出和给定监督信息的交叉熵来定义,例如,训练段的标签(即驾驶员id)。因此,softmax分类器将使训练期间估计的分类概率与实际分类概率之间的交叉熵最小。
在以预处理的行程数据作为训练数据的一个实施例中,重建损失包含误差项,该误差项是基于从指定隐藏层输出的特征来确定的。
在以上实施例的基础上,在又一实施例中,基于自动编码器的重构网络的重构损耗可以由下面的公式1定义,因此,可以将驾驶风格特征层用于提取低维和稀疏特征,例如:
公式1:
公式1是重建任务的重建损失函数的示例,损失函数量化了预测偏离实际值的量。从公式1可以看出,损失函数包含两个项,一个项对应于误差项
xi表示的数据是从dnn的指定隐藏层输入的,xi'是基于自动编码器的重建网络的输出,并且si对应于图6所示的现有自动编码器体系结构的代码层“z”,该特征s的空间比输入x的维数低,则特征向量s可以视为输入x的压缩表示。
在以上示出的公式1的实施例中,l2范数例如
在替代实施例中,l1-范数损失函数可以被认为是损失函数的误差项。l1-范数损失函数被称为最小绝对偏差(lad)或最小绝对误差(lae),其基本上最小化目标值xi与估计值xi'之间的绝对差之和。注意,可以使用其他类型的误差函数。
在公式1的实施例中,可以使用范数正则项来使特征输出接口的输出稀疏。除了使输出稀疏之外,正则化也是机器学习中防止过度拟合的一项非常重要的技术,也就是说,从数学上讲,可以添加正则化项以防止系数非常适合过度拟合。
在正则化项的一个实施例中,可以将损失函数与l1范数正则化项相加,该l1范数正则化项也称为套索(lasso)正则化。l1范数可用于使特征稀疏,也就是说,在一个示例性实施例中,l1范数可作为正则项添加到基于自动编码器的重建任务的损失函数中。值得注意的是,l1范数和l0范数都可以用来使特征稀疏,相对而言,l1范数由于具有比l0范数更好的促进优化解的特性而被广泛使用。参照公式1的例子,,λ‖si‖1是将l1范数应用于本发明的重建任务的重建损失的特定正则化实现,通过使用特定的l1范数正则化,s可以成为x的稀疏紧凑表示,以后可以用于更好的聚类。
同时,在正则项的另一替代实施例中,l2正则项也可以应用于损失函数。
图7是示出根据本发明的实施例的用于整体上调节整个神经网络的方法700的流程图。
在步骤710中,可以基于训练数据中的标记数据来确定分类网络的分类损失。在一个实施例中,训练数据包括标记的数据和未标记的数据,标记的数据是指已经用有意义的信息(例如类别信息)标记的数据。
在步骤720中,可以经由分类损失的反向传播(bp)来调整监督分类网络和dnn,以获取第一调整后的dnn和第一调整后的分类网络。因此,可以基于标记的训练数据来初始化和调整监督分类网络和深度学习网络的权重。它用作学习另一个任务(即重建任务)的信息源,可以根据监督分类任务提供的信息启动该任务。
在步骤730中,可以基于所有训练数据和第一调整后的分类网络来确定分类网络的分类损失和重建网络的重建损失。由于上面已经描述了如何确定分类损失和重构损失的细节,因此,为了简洁起见,无需重复说明。注意,除了以上公开的方式之外,本领域技术人员可以采用确定分类损失和重建损失的其他方式。
在一个实施例中,可以通过有监督的分类网络再次获取训练数据中的标记数据,并且可以基于调整后的有监督的分类网络再次确定分类损失。同时,可以通过基于自动编码器的重建网络来获取训练数据中的未标记数据,并且可以确定重建损失。
在步骤740中,可以经由分类损失和重建损失的bp来调整第一调整后的分类网络、第一调整后的dnn、基于自动编码器的重建网络,以获取第二调整后的dnn和第二调整后的监督分类网络和基于调整后的自动编码器的重建网络。然后,可以基于包括标记的训练数据和未标记的训练数据两者在内的所有种类的训练数据来调整整个神经网络的权重。在一个实施例中,权重可以被顺序地调整。在另一个实施例中,可以同时调整权重,也就是说,可以基于来自不同任务的bp的调整值的总和来调整每个权重。
现在再次参考图5,可以在训练期间捕获dnn530的指定隐藏层540的动态输出x,因此,捕获的动态输出x可用于计算重建损失。对于每个输入x,可以计算基于自动编码器的重建网络520中的重建任务的所有隐藏层的激活,然后可以在输出层获取输出x',该输出层可以是重建网络520的最后一层,如图5图所示。可以基于输出x'与输入x的偏差来确定重建损失。所确定的重建损失可以通过图5所示的整个神经网络反向传播,并且可以在批次之间执行整个神经网络权重更新。由于神经网络可以整体上进行调整,因此重建目标(即共享的指定隐藏层540输出x)在调整过程中会随着神经网络权重的变化而变化,也就是说,即使使用相同的网络输入,重建目标x'被改变。因此,应该基于dnn530的指定隐藏层540输出的动态目标x计算重建损失。在一个实施例中,指定的隐藏层可以是dnn530的最后一个隐藏层。
在另一个实施例中,可以逐批进行训练,并且可以基于经验确定每批的大小。在一个批次内,网络权重可能是固定的,但权重会在批次之间进行更新,并且共享的隐藏层输出x可能会在下一个批次中使用最新的净权重进行更新。
总之,与从单个监督分类网络或单个基于自动编码器的重建网络学习到的特征相比,这种重建任务保证了学习到的特征在看不见的数据上具有更好的泛化性能。
在一个实施例中,方法400可以被迭代预定时间,这可以根据本领域技术人员的经验来确定。在神经网络已经被迭代训练了预定时间之后,图8所示的方法800可以用于测试训练后的神经网络是否合格,例如,训练是否完成。如果训练完成,则特征输出接口的输出可以是提取的特征。在一个实施例中,再次参考图6,特征输出接口选自以下组成的组:dnn530的一个或多个隐藏层之一,重建网络520的中间隐藏层。
图8是示出根据本发明的实施例的用于测试用于提取特征的神经网络的方法800的流程图。在步骤810中,可以通过dnn获取测试数据,该测试数据与训练数据不同。在步骤820,可以从特征输出接口获取测试数据的特征。在步骤830中,可以基于所获取的测试数据的特征来执行包括聚类/分类的至少一项操作。可以通过常规的聚类/分类方法来实现聚类/分类,从而可以获取学习的聚类/分类结果。
在步骤840中,可以计算至少一个包括测试数据的聚类精度/分类精度的精度值。通常,可以基于实际分类和学习到的分类结果来确定精度值。类似地,可以基于实际聚类标签信息和估计的聚类结果来评估聚类精度。如何基于实际标签和估计结果来计算特定值对于本领域技术人员而言可能是显而易见的,为了简明起见,可以省略其细节。
在步骤850中,可以响应于聚类/分类精度值中的至少一个大于预定阈值来确定训练已完成。在这里,训练后的网络包括训练后的深度神经网络,训练后的监督分类网络和训练后的基于自动编码器的重构网络,训练后的网络的输出是特征输出接口的输出。
为了训练合格的特征提取器,可以定义聚类精度或分类精度的预定阈值,以检查神经网络的训练是否已经完成。
在行程数据的实现中,训练数据可以包括行程数据,每个行程都包括至少一个片段,并且该方法可以包括通过dnn获取至少一个片段作为训练数据。
图9描绘了示出根据本发明的实施例的用于通过使用经训练的神经网络进行聚类的方法900的流程图。
参考图9,在步骤910中,可以将要聚类的实际行程数据预处理为训练后的深度神经网络所需的格式,要聚类的预处理的实际行程数据可以与训练行程数据。在一个实施例中,如果训练行程数据包括多个训练行程,则测试行程数据可以包括多个测试行程,则训练后的dnn可以用于从预处理的实际行程数据中提取特征,并因此从预处理的数据中提取特征。可以基于预处理后的实际行程数据的提取特征来对要聚类的实际行程数据进行聚类。
步骤910与图4中的步骤410相似,因此在此省略对该步骤910的详细描述。
在步骤920中,可以从特征输出接口获取要聚类的预处理后的实际行程数据的特征。
在一个实施例中,一旦已经根据上述方法400训练了整个神经网络,就可以确定特征输出接口,该特征输出接口选自以下组成的组:一个或多个隐藏层深度神经网络或重构网络的中间隐藏层的概念。
在一个实施例中,经训练的深度神经网络的一个或多个隐藏层之一,例如最后一个隐藏层,可以被用作特征输出接口,与传统的单任务训练网络相比,提取的特征可以具有更好的分类/聚类性能。但是,与下面的另一个实施例相比,从深度神经网络的一个或多个隐藏层(例如指定的共享层)中选择的特征输出接口可能不是一个很好的表示,因为指定的共享层直接连接到监控信息,对于看不见的驾驶员旅行,这些功能不能很好地推广。
在另一个实施例中,可以将代码层,即基于自动编码器的重构网络的中间隐藏层,用作提取驾驶风格特征的输出接口。如上所述,通过将不同类型的学习任务桥接在一起,与dnn的指定隐藏层输出的特征相比,可以学习低维和稀疏的驾驶风格特征表示,所学习的特征可以具有更好的分类或聚类性能,尤其是对于看不见的驾驶员的群集。
在步骤930中,基于从特征输出接口获取的特征,由任何聚类网络对实际行程数据进行聚类。
在包括要被聚类的多个行程的要聚类的数据的实施例中,可以基于提取的驾驶风格特征将至少一个行程编码为固定长度的特征向量。
在一个实施例中,主题建模/词袋(bow)策略可用于编码旅行。主题建模/单词袋(bow)是自然语言处理和信息检索(ir)中使用的简化表示。如果将主题建模/词袋建模应用于本发明,则可以将每个旅程视为文章,并将旅程的每个片段视为段落。具体而言,首先,学习到的特征可以用于对旅行的片段进行编码,即,通过使用主题建模/词袋(bow)策略,可以获取每个片段的主题来对该片段进行编码。然后,行程的所有编码段可以被求和,并且可以进一步应用归一化,并且可以产生固定长度的特征向量来对行程进行编码,最后,可以将固定长度的特征向量视为每次旅行的主题。
在一个实施例中,使用编码的行程可以执行驾驶员聚类,即,给定一组未标记的行程,可以确定多少驾驶员产生这些行程。行程聚类可以在行程特征空间中执行,即,每个行程可以被视为特征空间中的一个点。在一个实施例中,可以通过使用亲和传播,k-均值或其他聚类算法来对行程进行聚类,因此,可以从聚类的数量中推断出驾驶员的数量。在特定情况下,一辆汽车出行的聚类结果还可以用于推断有多少驾驶员共享汽车,这可以为保险公司制定汽车保险定价提供重要信息。
在使用行程特征的另一实施例中,提供了驾驶员识别方法,即,给定一个或多个已知驾驶员的历史行程,如果可以确定是否由这些已知驾驶员之一驾驶新行程。具体而言,至少一个已知驾驶员的行程可以通过使用行程特征进行编码,并且进一步地,基于相似度的算法(例如最近邻居)可以用于通过在新行程和特征空间中已知驾驶员的行程之间执行相似度计算来确定输入行程的标签。
尽管已经参考行程数据场景描述了方法900的实施例的实现的细节,但是该原理也适用于其他种类的场景,例如图像数据、文本数据、语音数据等。
要理解的是,尽管本公开包括关于云计算的详细描述,但是本文叙述的教导的实施方式不限于云计算环境。相反,本发明的实施例能够与现在已知或以后开发的任何其他类型的计算环境结合实现。
本发明可以是系统,方法和/或计算机程序产品。计算机程序产品可以包括其上具有用于使处理器执行本发明的方面的计算机可读程序指令的计算机可读存储介质。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据,或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如java、smalltalk、c 等,以及传统的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
1.一种方法,包括:
通过深度神经网络(dnn)获取训练数据,所述深度神经网络包括至少一个隐藏层;
从至少一个隐藏层的指定隐藏层中获取训练数据的特征,指定隐藏层分别连接至用于分类任务的监督分类网络和用于重建任务的基于自动编码器的重建网络;和
基于获取的特征将dnn、监督分类网络和重建网络作为整体进行训练,训练以分类任务和重建任务为指导。
2.根据权利要求1所述的方法,还包括:
确定特征输出接口,该特征输出接口选自以下各项:深层神经网络的隐藏层之一,或重构网络的中间一个隐藏层。
3.根据权利要求2所述的方法,还包括:
通过深度神经网络获取测试数据,测试数据与训练数据不同;
从特征输出接口获取测试数据的特征;
基于获取的测试数据的特征,进行包括聚类和分类的操作的至少一种;
计算包括聚类精度和测试数据的分类精度的至少一个精度值;和
响应于精度大于预定阈值,确定训练已完成,其中训练后的网络包括训练后的深度神经网络、训练后的监督分类网络和训练后的基于自动编码器的重构网络,并且训练后的网络的输出为特征输出接口的输出。
4.根据权利要求1所述的方法,其中所述训练包括:
基于训练数据中的标签数据确定监督分类网络的分类损失;
经由分类损失的后向传播(bp),对监督分类网络和dnn进行调整,得到第一调整后的dnn和第一调整后的监督分类网络;
基于所有训练数据和第一调整后的监督分类网络,确定监督分类网络的分类损失和基于自动编码器的重建网络的重建损失;和
通过分类损失和重建损失的bp,调整第一调整后的监督分类网络、第一调整后的dnn、基于自动编码器的重建网络,以获取第二调整后的dnn和第二调整后的监督分类网络以及调整后的基于自动编码器的重建网络。
5.根据权利要求4所述的方法,其中所述分类损失是根据训练数据的标签定义的,并且所述重建损失包含基于从所述指定隐藏层输出的特征确定的误差项。
6.根据权利要求5所述的方法,其中所述重建损失还包括正则项,所述正则项基于l1范数确定。
7.根据权利要求3所述的方法,其中所述训练数据包括行程数据,每个行程包括至少一个分段,所述方法还包括:
通过dnn获取至少一个片段作为训练数据。
8.根据权利要求7所述的方法,其中所述测试数据包括行程数据,每个行程包括至少一个分段,所述方法还包括:
通过dnn获取至少一个片段作为测试数据。
9.一种计算机系统,包括:
处理器;
与处理器耦合的计算机可读存储器,该存储器包括指令,指令在由处理器执行时执行以下操作:
通过深度神经网络(dnn)获取训练数据,所述深度神经网络包括至少一个隐藏层;
从至少一个隐藏层的指定隐藏层中获取训练数据的特征,指定隐藏层分别连接至用于分类任务的监督分类网络和用于重建任务的基于自动编码器的重建网络;和
基于获取的特征将dnn、监督分类网络和重建网络作为整体进行训练,训练以分类任务和重建任务为指导。
10.根据权利要求9所述的系统,其中处理器还执行:
确定特征输出接口,该特征输出接口选自以下各项:深层神经网络的隐藏层之一,或重构网络的中间一个隐藏层。
11.根据权利要求10所述的系统,其中处理器还执行:
通过深度神经网络获取测试数据,测试数据与训练数据不同;
从特征输出接口获取测试数据的特征;
基于获取的测试数据的特征,进行包括聚类和分类的操作的至少一种;
计算包括聚类精度和测试数据的分类精度的至少一个精度值;和
响应于精度大于预定阈值,确定训练已完成,其中训练后的网络包括训练后的深度神经网络、训练后的监督分类网络和训练后的基于自动编码器的重构网络,并且训练后的网络的输出为特征输出接口的输出。
12.根据权利要求10所述的系统,其中所述训练包括:
基于训练数据中的标签数据确定监督分类网络的分类损失;
经由分类损失的后向传播(bp),对监督分类网络和dnn进行调整,得到第一调整后的dnn和第一调整后的监督分类网络;
基于所有训练数据和第一调整后的监督分类网络,确定监督分类网络的分类损失和基于自动编码器的重建网络的重建损失;和
通过分类损失和重建损失的bp,调整第一调整后的监督分类网络、第一调整后的dnn、基于自动编码器的重建网络,以获取第二调整后的dnn和第二调整后的监督分类网络以及调整后的基于自动编码器的重建网络。
13.根据权利要求12所述的系统,其中所述分类损失是根据训练数据的标签定义的,并且所述重建损失包含基于从所述指定隐藏层输出的特征确定的误差项。
14.根据权利要求13所述的系统,其中所述重建损失还包括正则项,所述正则项基于l1范数确定。
15.根据权利要求11所述的系统,其中所述训练数据包括行程数据,每个行程包括至少一个分段,所述方法还包括:
通过dnn获取至少一个片段作为训练数据。
16.根据权利要求15所述的系统,其中所述测试数据包括行程数据,每个行程包括至少一个分段,所述方法还包括:
通过dnn获取至少一个片段作为测试数据。
17.一种计算机程序产品,包括计算机可读存储介质,具有体现在其上的程序指令,程序指令可由处理器执行以使处理器执行以下操作:
通过深度神经网络(dnn)获取训练数据,所述深度神经网络包括至少一个隐藏层;
从至少一个隐藏层的指定隐藏层中获取训练数据的特征,指定隐藏层分别连接至用于分类任务的监督分类网络和用于重建任务的基于自动编码器的重建网络;和
基于获取的特征将dnn、监督分类网络和重建网络作为整体进行训练,训练以分类任务和重建任务为指导。
18.根据权利要求17所述的计算机程序产品,其中程序指令可由处理器执行以使处理器还执行以下操作:
确定特征输出接口,该特征输出接口选自以下各项:深层神经网络的隐藏层之一,或重构网络的中间一个隐藏层。
19.根据权利要求17所述的计算机程序产品,其中程序指令可由处理器执行以使处理器还执行以下操作:
通过深度神经网络获取测试数据,测试数据与训练数据不同;
从特征输出接口获取测试数据的特征;
基于获取的测试数据的特征,进行包括聚类和分类的操作的至少一种;
计算包括聚类精度和测试数据的分类精度的至少一个精度值;和
响应于精度大于预定阈值,确定训练已完成,其中训练后的网络包括训练后的深度神经网络、训练后的监督分类网络和训练后的基于自动编码器的重构网络,并且训练后的网络的输出为特征输出接口的输出。
20.根据权利要求17所述的计算机程序产品,其中程序指令可由处理器执行以使处理器还执行以下操作:
基于训练数据中的标签数据确定监督分类网络的分类损失;
经由分类损失的后向传播(bp),对监督分类网络和dnn进行调整,得到第一调整后的dnn和第一调整后的监督分类网络;
基于所有训练数据和第一调整后的监督分类网络,确定监督分类网络的分类损失和基于自动编码器的重建网络的重建损失;和
通过分类损失和重建损失的bp,调整第一调整后的监督分类网络、第一调整后的dnn、基于自动编码器的重建网络,以获取第二调整后的dnn和第二调整后的监督分类网络以及调整后的基于自动编码器的重建网络。
21.根据权利要求20所述的计算机程序产品,其中所述分类损失是根据训练数据的标签定义的,并且所述重建损失包含基于从所述指定隐藏层输出的特征确定的误差项。
22.根据权利要求21所述的计算机程序产品,其中所述重建损失还包括正则项,所述正则项基于l1范数确定。
23.根据权利要求19所述的计算机程序产品,其中所述训练数据包括行程数据,每个行程包括至少一个分段,所述方法还包括:
通过dnn获取至少一个片段作为训练数据。
24.根据权利要求23所述的计算机程序产品,其中所述测试数据包括行程数据,每个行程包括至少一个分段,所述方法还包括:
通过dnn获取至少一个片段作为测试数据。
25.一种方法,包括:
通过深度神经网络(dnn)获取训练数据,所述深度神经网络包括至少一个隐藏层;
从至少一个隐藏层的指定隐藏层中获取训练数据的特征,指定隐藏层分别连接至用于分类任务的监督分类网络和用于重建任务的基于自动编码器的重建网络;和
基于获取的特征将dnn、监督分类网络和重建网络作为整体进行训练,训练以分类任务和重建任务为指导。
技术总结