CN108364068B - 基于有向图的深度学习神经网络构建方法和机器人系统 - Google Patents

基于有向图的深度学习神经网络构建方法和机器人系统 Download PDF

Info

Publication number
CN108364068B
CN108364068B CN201810010058.2A CN201810010058A CN108364068B CN 108364068 B CN108364068 B CN 108364068B CN 201810010058 A CN201810010058 A CN 201810010058A CN 108364068 B CN108364068 B CN 108364068B
Authority
CN
China
Prior art keywords
input
node
hidden layer
nodes
layer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810010058.2A
Other languages
English (en)
Other versions
CN108364068A (zh
Inventor
朱定局
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
South China Normal University
Original Assignee
South China Normal University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by South China Normal University filed Critical South China Normal University
Priority to CN201810010058.2A priority Critical patent/CN108364068B/zh
Publication of CN108364068A publication Critical patent/CN108364068A/zh
Application granted granted Critical
Publication of CN108364068B publication Critical patent/CN108364068B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Image Analysis (AREA)

Abstract

本发明提供一种基于有向图的深度学习神经网络构建方法和机器人系统,该方法包括:获取初始深度学习神经网络的每个输入节点对应的输入变量之间的连接关系,得到有向图;确定各个输入节点与待改造隐层的隐层节点之间的匹配关系;根据有向图的所述匹配关系确定待改造隐层的各个隐层节点之间的连接关系,得到目标深度学习神经网络。此外,还提供了一种深度学习神经网络构建装置、一种机器人系统和计算机可读存储介质。

Description

基于有向图的深度学习神经网络构建方法和机器人系统
技术领域
本发明涉及机器学习领域,特别是涉及一种深度学习神经网络构建方法、装置、机器人系统和存储介质。
背景技术
循环神经网络(Recurrent Neural Networks,简写为RNNs)是神经网络家族中的一员,擅长于解决序列化相关的问题,与传统的神经网络模型不同的是,传统的神经网络模型是从输入层到隐层再到输出层,层与层之间是全连接的,而每层之间的节点是无连接的,即输入节点与输入节点之间是无连接的,隐层与隐层节点之间也是无连接。而循环神经网络是一个序列当前的输出与前面的输出有关,即隐层的节点之间不再是无连接的而是有连接的。
传统技术中,循环神经网络只能对简单的时序序列进行处理,但是遇到更为复杂的时空关系及其他关系形成的序列,则无法用循环神经网络处理,因为循环神经网络只能处理简单的序列,从而限制了神经网络及深度学习在面对复杂的序列的应用。
发明内容
基于此,有必要针对上述问题,提供一种解决了复杂的时序序列无法在深度学习神经网络中应用的深度学习神经网络构建方法、装置、机器人系统和存储介质。
一种深度学习神经网络构建方法,该方法包括:
获取初始深度学习神经网络的每个输入节点对应的输入变量之间的连接关系,得到有向图;
确定各个输入节点与待改造隐层的隐层节点之间的匹配关系;
根据有向图的所述匹配关系确定待改造隐层的各个隐层节点之间的连接关系,得到目标深度学习神经网络。
在其中一个实施例中,获取初始深度学习神经网络的每个输入节点对应的输入变量之间的连接关系,得到有向图,包括:获取初始深度学习神经网络的输入节点对应的初始输入变量;根据每个初始输入变量查找与所述初始输入变量连接有关系的目标输入变量;将目标输入变量与所述初始输入变量进行有向连接,得到有向图。
在其中一个实施例中,将目标输入变量与所述初始输入变量进行有向连接,得到有向图,包括:将目标输入变量作为始点,初始输入变量作为终点,初始输入变量与目标输入变量之间的有向连接为从始点指向终点,得到有向图。
在其中一个实施例中,确定各个输入节点与待改造隐层的隐层节点之间的匹配关系,包括:获取待改造隐层;当待改造隐层的隐层节点与输入节点不是全连接时,将各个输入节点与一一对应的待改造隐层的隐层节点进行匹配。
在其中一个实施例中,确定各个输入节点与待改造隐层的隐层节点之间的匹配关系,还包括:当待改造隐层的隐层节点与所述输入节点是全连接时,统计输入节点和所述待改造隐层的隐层节点的数量;根据输入节点的数量与隐层节点的数量的比值取整,得到匹配数值;根据匹配数值将相应数量的输入节点与对应的待改造隐层的隐层节点进行匹配。
在其中一个实施例中,根据有向图的所述匹配关系确定所述待改造隐层的各个隐层节点之间的连接关系,得到目标深度学习神经网络,包括:获取有向图中各个所述输入节点之间的匹配关系;根据各个输入节点与对应的隐层节点之间的匹配关系,将各个隐层节点根据有向图中的所述匹配关系进行有向连接,得到目标深度学习神经网络。
一种深度学习神经网络构建装置,该装置包括:
有向图生成模块,用于获取初始深度学习神经网络的每个输入节点对应的输入变量之间的连接关系,得到有向图;
匹配模块,用于确定各个输入节点与待改造隐层的隐层节点之间的匹配关系;
目标深度学习神经网络确定模块,用于根据有向图的所述匹配关系确定待改造隐层的各个隐层节点之间的连接关系,得到目标深度学习神经网络。
在其中一个实施例中,该有向图生成模块包括:
获取单元,用于获取初始深度学习神经网络的输入节点对应的初始输入变量;
查找单元,用于根据每个初始输入变量查找与初始输入变量连接的目标输入变量;
连接单元,用于将目标输入变量与初始输入变量进行有向连接,得到有向图。
一种机器人系统,包括存储器、处理器及存储在存储器上并可在处理器上运行的机器人程序,该处理器执行所述程序时实现以下步骤:
获取初始深度学习神经网络的每个输入节点对应的输入变量之间的关系,得到有向图;
确定各个输入节点与待改造隐层的隐层节点之间的匹配关系;
根据有向图的所述匹配关系确定待改造隐层的各个隐层节点之间的连接关系,得到目标深度学习神经网络。
一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:
获取初始深度学习神经网络的每个输入节点对应的输入变量之间的连接关系,得到有向图;
确定各个输入节点与待改造隐层的隐层节点之间的匹配关系;
根据有向图的所述匹配关系确定待改造隐层的各个隐层节点之间的连接关系,得到目标深度学习神经网络。
上述深度学习神经网络构建方法、装置、机器人系统和存储介质,通过获取初始深度学习神经网络的所有输入节点对应的输入变量之间的连接关系,得到有向图,确定各个输入节点与待改造隐层的隐层节点之间的匹配关系,根据有向图的匹配关系确定待改造隐层的各个隐层节点之间的连接。通过对初始深度学习神经网络的隐层进行改造,将初始深度学习神经网络隐层的隐层节点之间的拓扑采用能体现输入节点对应的输入变量之间的有向图来代替,得到目标深度学习神经网络,因为有向图能够体现输入变量之间的复杂序列关系,因此最终得到的目标深度学习神经网络能够处理类似有向图中的复杂序列关系。
附图说明
图1为一个实施例中深度学习神经网络构建方法的应用环境图;
图2为一个实施例中机器人系统的内部结构图;
图3为一个实施例中深度学习神经网络构建方法的流程图;
图4为一个实施例中获取初始深度学习神经网络的每个输入节点对应的输入变量之间的连接关系,得到有向图的流程图;
图5为一个实施例中确定各个输入节点与待改造隐层的隐层节点之间的匹配关系的流程图;
图6为一个实施例中根据有向图的所述匹配关系确定待改造隐层的各个隐层节点之间的连接关系,得到目标深度学习神经网络的流程图;
图7为另一个实施例中深度学习神经网络构建方法的流程图;
图8a为一个实施例中全连接的示意图;
图8b为一个实施例中非全连接的示意图;
图8c为一个实施例中有向图的结构图;
图9为一个实施例中获取输入变量的示意图;
图10为另一个实施例中有向图的结构图;
图11a为一个实施例中与图8c中有向图对应的深度学习神经网络的示意图;
图11b为一个实施例中深度学习神经网络构建方法的示意图;
图11c为一个实施例中深度学习神经网络构建方法的示意图;
图11d为一个实施例中深度学习神经网络构建方法的示意图;
图12a为一个实施例中深度学习神经网络构建方法的示意图;
图12b为一个实施例中深度学习神经网络构建方法的示意图;
图13a为一个实施例中深度学习神经网络构建方法的示意图;
图13b为一个实施例中深度学习神经网络构建方法的示意图;
图14a为一个实施例中深度学习神经网络构建方法的示意图;
图14b为一个实施例中深度学习神经网络构建方法的示意图;
图15a为一个实施例中深度学习神经网络构建方法的示意图;
图15b为一个实施例中深度学习神经网络构建方法的示意图;
图16a为一个实施例中深度学习神经网络构建方法的示意图;
图16b为一个实施例中深度学习神经网络构建方法的示意图;
图16c为一个实施例中深度学习神经网络构建方法的示意图;
图17a为一个实施例中深度学习神经网络构建方法的示意图;
图17b为一个实施例中深度学习神经网络构建方法的示意图;
图17c为一个实施例中深度学习神经网络构建方法的示意图;
图18为一个实施例中深度学习神经网络构建装置的结构框图;
图19为一个实施例中有向图生成模块的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1示出了一个实施例中深度学习神经网络构建方法的应用环境图。参照图1,该深度学习神经网络构建方法可应用于深度学习神经网络构建方法的系统中,该系统包括多个终端110和服务器120,终端110通过网络与服务器120连接。终端110可以是但不限于各种能运行游戏应用的个人计算机、笔记本电脑、个人数字助理、智能手机、平板电脑等。服务器120可以是实现单一功能的服务器,也可以是实现多种功能的服务器,具体可以是独立的物理服务器,也可以是物理服务器集群。终端110上可通过特定的应用显示数据输入界面,服务器120可接收终端110发送的改造隐层的请求,根据请求获取初始深度学习神经网络的每个输入节点对应的输入变量之间的连接关系,得到有向图,确定各个输入节点与待改造隐层的隐层节点之间的匹配关系,根据有向图的匹配关系确定待改造隐层的各个隐层节点之间的连接关系,得到目标深度学习神经网络。具体的,获取初始深度学习神经网络的每个输入节点对应的输入变量之间的连接关系,得到有向图;确定各个输入节点与待改造隐层的隐层节点之间的匹配关系;根据有向图的匹配关系确定待改造隐层的各个隐层节点之间的连接关系,得到目标深度学习神经网络。除此以外,终端110也能够接收改造隐层的请求,根据请求获取初始深度学习神经网络的每个输入节点对应的输入变量之间的连接关系,得到有向图,确定各个输入节点与待改造隐层的隐层节点之间的匹配关系,根据有向图的匹配关系确定待改造隐层的各个隐层节点之间的连接关系,得到目标深度学习神经网络。
图2为一个实施例中机器人系统的内部结构示意图。该机器人系统具体可以是如图1中的服务器120。如图2所示,机器人系统包括通过系统总线连接的处理器、存储介质、内存储器、网络接口、显示屏和输入神经网络系统。其中,该处理器用于提供计算和控制能力,支撑整个终端的运行。机器人系统的存储介质存储有操作系统以及计算机程序,该计算机程序被处理器执行时,使得处理器实现一种深度学习神经网络构建方法。机器人系统中的内存储器也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行一种深度学习神经网络构建方法。机器人系统的网络接口用于与服务器120通信。机器人系统的输入装置可以是显示屏上覆盖的触摸层,也可以是外接的键盘、触控板或鼠标等,输入装置可获取用户使用手指对显示屏显示的操作界面产生的指令。显示屏可用于显示输入界面或输出变量的数据结果。
本领域技术人员可以理解,图2中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的服务器的限定,具体的服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
如图3所示,在一个实施例中,提供了一种深度学习神经网络构建方法,该方法以应用于如图1所示的服务器或终端中进行举例说明。包括:
步骤302,获取初始深度学习神经网络的每个输入节点对应的输入变量之间的连接关系,得到有向图。
具体地,节点是用于创建初始深度学习神经网络的神经元,即输入层的神经元可称为输入节点。输入变量是指需要输入的变量,即初始深度学习神经网络通常要使用的变量。由于初始深度学习神经网络是通过输入变量去选择输入节点的,则输入层的各个输入节点都有对应的输入变量。由于初始深度学习神经网络是循环神经网络中的其中一种,则输入层的输入节点之间是无连接,但输入节点对应的输入变量之间是有连接关系的,也可称为依赖关系。这里的有向图是表示输入变量与输入变量之间的关系,用一个圆点来表示一个变量,用一条线来表示一个关系,即有向图看起来是由一些小圆点(称为顶点或节点)和连接这些圆点的直线或曲线组成的,给每条线规定一个方向,则得到的图称为有向图,也可称为有向边。具体的,可用一个小圆点来代表一个输入节点,将用直线或曲线来连接代表输入节点的小圆点,最终形成有向图。
步骤304,确定各个输入节点与待改造隐层的隐层节点之间的匹配关系。
具体地,待改造隐层是指对初始深度学习神经网络的其中一层的隐层进行改造。由于初始深度学习神经网络的输入节点不止一个,同样的,待改造隐层的隐层节点也不止一个,因此,需要根据输入节点的数量与待改造隐层的隐层节点的数量确认进行匹配。其中,包括但不限于单个输入节点可以与待改造隐层的单个隐层节点一一对应,如输入节点A与隐层节点M进行匹配,输入节点B与隐层节点N进行匹配。或多个输入节点与待改造隐层的单个隐层节点进行匹配,如输入节点A和输入节点B与隐层节点X进行匹配,输入节点C、输入节点D、输入节点F与隐层节点Y进行匹配。或单个输入节点与待改造隐层的多个隐层节点进行匹配,如输入节点A与隐层节点X和隐层节点Y进行匹配,输入节点B与隐层节点M、隐层节点N以及隐层节点M1进行匹配。
步骤306,根据有向图的匹配关系确定待改造隐层的各个隐层节点之间的连接关系,得到目标深度学习神经网络。
具体地,有向图中的匹配关系指的是有向图中输入变量之间的连接关系,也可称为依赖关系。如包括但不限于,在有向图中输入节点A对应的输入变量A指向输入节点B对应的输入变量B和输入节点C对应的输入变量C,则获取有向图中的各个输入节点对应的输入变量之间的匹配关系,再将各个输入节点对应的待改造隐层的隐层节点按照获取到的有向图中各个输入节点对应的输入变量之间的匹配关系进行连接,最后得到目标深度学习神经网络。如包括但不限于,隐层节点X与输入节点A连接,输入节点B与隐层节点Y连接,输入节点C与隐层节点M连接,由于有向图中输入节点A对应的输入变量A指向输入节点B对应的输入变量B和输入节点C对应的输入变量C,则隐层节点X与隐层节点Y连接,隐层节点X与隐层节点M连接,则成功对初始深度学习神经网络的待改造隐层进行改造,得到最后的目标深度学习神经网络。
本实施例中,通过获取初始深度学习神经网络的所有输入节点对应的输入变量之间的连接关系,得到有向图,确定各个输入节点与待改造隐层的隐层节点之间的匹配关系,根据有向图的匹配关系确定待改造隐层的各个隐层节点之间的连接。通过对初始深度学习神经网络的隐层进行改造,将初始深度学习神经网络的隐层的拓扑采用输入变量之间的有向图来代替,得到目标深度学习神经网络,因为有向图能够体现输入变量之间的复杂序列关系,因此最终得到的目标深度学习神经网络能够处理类似有向图中的复杂序列关系。
如图4所示,在一个实施例中,获取初始深度学习神经网络的每个输入节点对应的输入变量之间的连接关系,得到有向图,包括:
步骤402,获取初始深度学习神经网络的输入节点对应的初始输入变量。
步骤404,根据每个初始输入变量查找与初始输入变量连接的目标输入变量。
步骤406,将目标输入变量与初始输入变量进行有向连接,得到有向图。
其中,输入变量是指深度学习神经网络的输入层的输入节点对应的变量,也可以理解为深度学习神经网络中通常需要使用的变量。初始输入变量是指深度学习神经网络中输入层的输入节点一开始对应的输入变量,目标输入变量是指与深度学习神经网络的输入节点对应的初始输入变量连接的输入变量,也可以理解为目标输入变量是指与深度学习神经网络的输入节点对应的初始输入变量相互依赖的输入变量。如深度学习神经网络中输入层的输入节点对应的初始输入变量为A地前天的气象、B地前天的气象、C地前天的气象、A地昨天的气象、B地昨天的气象、C地昨天的气象,那么由于A地与B地相邻,B地与C地相邻,则A地某天气象与B地该天气象相互依赖,B地某天气象与C地该天气象相互依赖,C地某天气象与A地该天气象相互依赖。则初始输入变量为A地前天的气象对应的目标输入变量为B地前天的气象,初始输入变量为B地前天的气象对应的目标输入变量为C地前天的气象。具体地,由于初始深度学习神经网络的输入层的输入节点之间是无连接的,但是各个输入节点之间的输入变量之间是有连接关系的,也可称为依赖关系。因此,获取初始深度学习神经网络的输入层的输入节点对应的初始输入变量,根据获取到的初始输入变量去查找与初始输入变量连接的目标输入变量,将目标输入变量与初始输入变量进行有向连接,得到有向图。其中,该有向图可以是一维图,即多点在一条线上,点与点之间通过有向线段进行连接,或者二维图,即多点在一个面上,点与点之间通过有向线段进行连接,或者三维图,即多点在一个体上,点与点之间通过有向线段进行连接,以及更高维图,如超图。其中,有向图中的每一个节点就代表一个输入节点对应的,有向图中的有向线段就代表输入节点对应的变量之间的关系。
在一个实施例中,将目标输入变量与初始输入变量进行有向连接,得到有向图,包括:将目标输入变量作为始点,初始输入变量作为终点,初始输入变量与目标输入变量之间的关系为从始点指向终点进行连接,得到有向图。
由于目标输入量与初始输入变量之间有直接依赖的连接关系用有方向的线段来体现,则将目标输入变量作为终点,初始变量作为终点,用线连接始点与终点,箭头指向终点,即得到有向图。例如,将昨天的价格作为终点,将昨天的价格直接依赖的前天的价格作为起点,用线连接始点与终点,箭头指向终点。将今天的价格作为终点,将今天的价格直接依赖的昨天的价格作为起点,用线连接始点与终点,箭头指向终点。
如图5所示,在一个实施例中,确定各个输入节点与待改造隐层的隐层节点之间的匹配关系,包括:
步骤502,获取待改造隐层。
步骤504,判断待改造隐层的隐层节点与输入节点是否是全连接,若是,则进入步骤506,反之,则进入步骤512。
由于通过隐层之间建立与各个输入节点对应的输入变量之间的关系一致的连接,以使各个隐层节点之间的连接关系可通过隐层进行传递。具体的,获取到待改造隐层,由于初始深度学习神经网络的隐层不止只有一层,因此需对待改造隐层的层数进行判断,若待改造隐层的层数是第1层,则对待改造隐层的隐层节点与输入节点之间的连接是否是全连接进行判断,但若待改造隐层的层数是大于1时,则待改造隐层的隐层节点与输入节点的连接需要根据与前一层的隐层节点之间的连接来对输入节点与隐层节点之间进行判断是否是全连接。其中,当待改造隐层的层数为1时,全连接是指输入节点与待改造隐层的隐层节点之间直接连接;当待改造隐层的层数大于1时,全连接是指输入节点到待改造隐层的隐层节点虽然没有直接连接,但是可通过多个隐层之间的连接实现连接。当这两种情况输入节点与待改造隐层的隐层节点之间判断为全连接时,则进入步骤506,反之,进入步骤512。
步骤506,统计输入节点和待改造隐层的隐层节点的数量。
步骤508,根据输入节点的数量与隐层节点的数量的比值取整,得到匹配数值。
当待改造隐层的隐层节点与输入节点之间是全连接时,对输入层的输入节点的数量以及待改造隐层的隐层节点的数量进行统计,根据统计到的输入节点的数量以及待改造隐层的隐层节点的数量的比值取整,得到体现输入节点与待改造隐层节点之间的匹配关系的匹配数值。例如,当待改造隐层是隐层第一层时,统计输入层节点的数量为M、隐层第一层节点的数量为N,如果M等于N,那么从i=1到N,输入层第i个输入节点对应隐层第一层第i个隐层节点,如当i=2时,即输入层的第2个输入节点对应隐层第一层的第2个隐层节点。如果M大于N(例如M=12,N=5),说明输入节点的数量比待改造隐层的隐层节点的数量要多,那么将M除以N并向下取整得到K(12/5=2.4,向下取整为2),则K=2为匹配数值。如果M小于N(例如N=12,M=5),说明输入节点的数量比待改造隐层的隐层节点的数量要少,则将N除以M并向下取整得到K(12/5=2.4,向下取整为2),则K=2为匹配数值。
步骤510,根据匹配数值将相应数量的输入节点与对应的待改造隐层的隐层节点进行匹配。
在根据输入节点的数量与隐层节点的数量的比值取整,得到匹配数值后,需根据匹配数值将相应数量的输入节点与对应的待改造隐层的隐层节点进行匹配,再根据匹配数值分配好的输入节点与隐层节点数量之间的关系进行匹配。
例如,当待改造隐层是隐层第一层时,如果输入层节点的数量为M、隐层第一层节点的数量为N,M大于N(例如M=12,N=5),说明输入层的输入节点的数量比待改造隐层的隐层节点的数量多,那么将M除以N并向下取整得到K(12/5=2.4,向下取整为2),则K=2为匹配数值,那么输入层第1、2个节点对应隐层第一层第1个节点;输入层第3、4个节点对应隐层第一层第2个节点;输入层第5、6个节点对应隐层第一层第3个节点;输入层第7、8个节点对应隐层第一层第4个节点;输入层第9、10、11、12个节点对应隐层第一层第5个节点。
当如果M小于N(例如N=12,M=5),说明输入层的输入节点的数量比待改造隐层的隐层节点的数量少,那么将N除以M并向下取整得到K(12/5=2.4,向下取整为2),那么隐层第一层第1、2个节点对应输入层第1个节点;隐层第一层第3、4个节点对应输入层第2个节点;隐层第一层第5、6个节点对应输入层第3个节点;隐层第一层第7、8个节点对应输入层第4个节点;隐层第一层第9、10、11、12个节点对应输入层第5个节点。
步骤512,将各个输入节点与一一对应的待改造隐层的隐层节点进行匹配。
当待改造隐层的隐层节点与输入节点是非全连接时,由于初始深度学习神经网络的隐层不止只有一层,所以待改造隐层的隐层可能是隐层第一层,也可能是隐层第i层(i>1)。
当待改造隐层的隐层是隐层第一层时,则获取初始深度学习神经网络的输入层的各个输入节点之间的连接关系,也可称为依赖关系,再根据该连接关系对待改造隐层的隐层节点进行匹配。如果输入层节点X对应的变量直接依赖输入层节点Y对应的变量,则将输入层节点X连接的每一个隐层第一层节点作为终点,将输入层节点Y连接的每一个隐层第一层节点作为始点,用线连接始点与终点,箭头从始点指向终点。其中,X、Y为输入层每2个不同节点。再例如,输入层节点X连接隐层第一层A、B、C节点,输入层节点Y连接隐层第一层D、E节点,则用线连接D与A,箭头从D指向A;用线连接E与A,箭头从E指向A;用线连接D与B,箭头从D指向B;用线连接E与B,箭头从E指向B;用线连接D与C,箭头从D指向C;用线连接E与C,箭头从E指向C。
当待改造隐层的隐层不是隐层第一层时,则获取初始深度学习神经网络的输入层的各个输入节点之间的连接关系,也可称为依赖关系,再根据该连接关系对待改造隐层的隐层节点进行匹配。例如,如果输入层节点X对应的变量直接依赖输入层节点Y对应的变量,则将输入层节点X连通的每一个隐层第i层节点作为终点,将输入层节点Y连通的每一个隐层第i层节点作为始点,用线连接始点与终点,箭头从始点指向终点。其中,X、Y为输入层每2个不同节点。其中,连通指的是虽然从输入层节点到隐层第i层节点没有直接的连接,但通过多个层次之间的连接实现连通,例如i=2时,输入层节点X连接隐层第1层节点S,隐层第1层节点S连接隐层第2层节点A,则输入层节点X连通隐层第2层节点A。再例如,输入层节点X连通隐层第i层A、B、C节点,输入层节点Y连通隐层第i层D、E节点,则用线连接D与A,箭头从D指向A;用线连接E与A,箭头从E指向A;用线连接D与B,箭头从D指向B;用线连接E与B,箭头从E指向B;用线连接D与C,箭头从D指向C;用线连接E与C,箭头从E指向C。
当待改造隐层的隐层是隐层多个层,则对其中每个层根据其层数执行上述步骤,其层数为隐层第1层时执行当待改造隐层的隐层是隐层第1层时的步骤,其层数为隐层第i层时执行当待改造隐层的隐层是隐层第i层的步骤。
如图6所示,在一个实施例中,根据有向图的所述匹配关系确定待改造隐层的各个隐层节点之间的连接关系,得到目标深度学习神经网络,包括:
步骤602,获取有向图中各个输入变量之间的匹配关系。
步骤604,根据各个输入变量对应的输入节点与相应的隐层节点之间的匹配关系,将各个隐层节点根据有向图中的匹配关系进行有向连接,得到目标深度学习神经网络。
由于有向图是表示输入变量与输入变量之间的关系的方法,用一个圆点来表示一个输入变量,用一条线来表示一个关系,有向图看起来是由一些小圆点(称为顶点或者节点)和连接这些圆点的之间或曲线组成的,如图8c所示,图8c示出有向图的结构图,获取有向图中各个输入节点对应的输入变量之间的匹配关系,由于各个输入变量有对应的输入节点,则根据输入节点与相应的隐层节点之间的匹配关系,对待改造隐层的隐层节点根据匹配关系进行有向连接,最终得到目标深度学习神经网络。其中,匹配关系可根据输入节点的数量与隐层节点的数量比值取整,得到匹配数值,在根据匹配数值进行分配相应数量的输入节点对应隐层节点的对应关系,有向连接为与标记为终点的输入变量对应的输入节点连接的隐层节点作为终点,与标记为始点的输入变量对应的输入节点连接的隐层节点作为终点,用线将始点指向终点建立连接。
如图7所示,在一个实施例中,提供了一种深度学习神经网络构建方法,该方法以应用于如图1所示的服务器或终端中进行举例说明。包括:
步骤702,获取初始深度学习神经网络的输入节点对应的初始输入变量。
由于初始深度学习神经网络的结构分别为:输入层、隐层以及输出层,其中,输入层的输入节点都设置有对应的输入变量。因输入节点之间是无连接的,但是输入节点对应的输入变量之间是有连接关系,因此获取初始深度学习神经网络的输入节点对应的初始输入变量。如图9所示,例如,输入变量包括:前天A地的气象、前天B地的气象、前天C地的气象、昨天A地的气象、昨天B地的气象、昨天C地的气象、今天A地的气象、今天B地的气象、今天C地的气象;输出变量是A、B、C的明天气象预报。获取A地、B地、C地以及D地的所有天气,即初始输入变量。
步骤704,根据每个初始输入变量查找与初始输入变量连接的目标输入变量。
由于初始深度学习神经网络的输入节点对应的输入变量直接是有连接关系,也可称为依赖关系,则可根据获取到的多个初始输入变量去查找与初始输入变量连接的目标输入变量变量。例如,例如,前天A地的气象、前天B地的气象、前天C地的气象、昨天A地的气象、昨天B地的气象、昨天C地的气象、今天A地的气象、今天B地的气象、今天C地的气象。昨天某地的气象直接依赖前天该地的气象,今天某地的气象直接依赖昨天该地的气象。同时,因为A地与B地相邻,B地与C地相邻,C地与A地相邻,所以A地某天气象与B地该天气象相互依赖,B地某天气象与C地该天气象相互依赖,C地某天气象与A地该天气象相互依赖。
步骤706,将目标输入变量作为始点,初始输入变量作为终点,从始点向终点进行连接,得到有向图。
在获取到初始深度学习神经网络的输入节点对应的初始输入变量,并根据初始输入变量查找与初始输入变量有依赖关系的目标输入变量,将查找到的目标输入变量与初始输入变量进行有向连接,获取能体现目标输入变量与初始输入变量之间的连接关系的有向图。如图10所示,例如,将昨天的气象作为终点,将昨天的气象直接依赖的前天的气象作为起点,用线连接始点与终点,箭头指向终点。将今天的气象作为终点,将今天的气象直接依赖的昨天的气象作为起点,用线连接始点与终点,箭头指向终点,最终得到能体现A地、B地、C地以及D地气象的有向图。
步骤708,获取待改造隐层。
步骤710,判断待改造隐层的隐层节点与输入节点是否是全连接,若是,则进入步骤712,反之,则进入步骤718。
由于需要对初始深度学习神经网络的隐层进行改造,可对第一层隐层进行改造,也可对除了第一层的其他隐层进行改造,由于初始深度学习神经网络是循环神经网络的一种,所以隐层之间的隐层之间是有连接的。具体的,获取待改造隐层,通过对获取待改造隐层的层数,如图8a所示,若待改造的隐层为第1层时,则判断输入节点与隐层第一层的隐层节点之间是不是全连接的,如输入节点有A、B,隐层节点有M、N以及M1,由于输入节点A连接隐层节点M、N以及M1,输入节点B连接隐层节点M、N以及M1,则可判断待改造隐层的隐层节点与输入节点的连接是全连接。如图8b所示,若待改造的隐层为第2层时,例如输入节点有A、B,第1层隐层节点有M、N、M1、C以及D,第2层隐层节点有X和Y,由于输入节点A连接第1层的隐层节点MN以及M1,输入节点B连接第1层的隐层节点C和D,第2层的隐层节点X连接第1层的隐层节点M、N以及M1,第2层的隐层节点Y连接第1层的隐层节点C和D,则可判定隐层节点X与输入节点A是连接,隐层节点Y与输入节点B是连接,但隐层节点X与输入节点B没有连接、隐层节点Y与输入节点A没有连接,所以最终可判断待改造隐层的隐层节点与输入节点的连接不是全连接。当判断待改造隐层的隐层节点与输入节点的连接是全连接时,进入步骤712,反之,进入步骤718。
步骤712,统计输入节点和待改造隐层的隐层节点的数量。
当判断待改造隐层的隐层节点与输入节点的连接是全连接时,由于输入节点的数量可能比待改造隐层的隐层节点的数量大,也有可能比待改造隐层的隐层节点的数量小或者有可能是与待改造隐层的隐层节点的数量一样多,则需统计输入层的输入节点和待改造隐层的隐层节点的数量。
步骤714,根据输入节点的数量与隐层节点的数量的比值取整,得到匹配数值。
在统计输入节点和待改造隐层的隐层节点的数量后,如上所示,由于可能会存在三种情况,因此需根据输入节点的数量与隐层节点的数量的比值取整,得到输入节点与隐层节点的数量的匹配值。
步骤716,根据匹配数值将相应数量的输入节点与对应的待改造隐层的隐层节点进行匹配。
在计算得到匹配数值后,则根据得到的匹配数值将相应数量的输入节点与待改造隐层的隐层节点进行匹配。例如,输入节点的数量为M,隐层节点的数量为N,三种情况分别为:
当M等于N时,则输入层的第1个输入节点对应待改造隐层的第1个隐层节点进行匹配,第2个输入节点对应待改造隐层的第2个隐层节点进行匹配,以此类推。
当M大于N时,如M为12,N为5,那么将M除以N并取整得到匹配值为2,则将输入节点的第1、2个节点对应待改造隐层第1个节点;输入层第3、4个节点对应待改造隐层第2个节点;输入层第5、6个节点对应待改造隐层第3个节点;输入层第7、8个节点对应待改造隐层第4个节点;输入层第9、10、11、12个节点对应待改造隐层第5个节点。
当M小于N时,如M为5,N为12,那么将M除以N并取整得到匹配值为2,则将待改造隐层第1、2个节点对应输入层第1个节点;待改造隐层第3、4个节点对应输入层第2个节点;待改造隐层第5、6个节点对应输入层第3个节点;待改造隐层第7、8个节点对应输入层第4个节点;待改造隐层第9、10、11、12个节点对应输入层第5个节点。
步骤718,将各个输入节点与一一对应的待改造隐层的隐层节点进行匹配。
当判断待改造隐层的隐层节点与输入节点的连接不是全连接时,则将初始深度学习神经网络的输入层的各个输入节点与一一对应的待改造隐层的隐层节点进行匹配。如,
待改造隐层为隐层第1层时,输入节点X连接待改造隐层的隐层节点A、隐层节点B、隐层节点C,输入节点Y连接待改造隐层的隐层节点D、隐层节点E,则输入层的输入节点X与第1层隐层的隐层节点A、隐层节点B、隐层节点C进行匹配,输入层的输入节点Y与第1层隐层的隐层节点D和隐层节点E进行匹配。当待改造隐层不是隐层第1层时,而是待改造隐层为第2层时,输入层的输入节点X连接隐层第1层的隐层节点S,隐层第1层的隐层节点S连接隐层第2层的隐层节点A,则输入层的输入节点X与隐层第2层的隐层节点A进行匹配。
步骤720,获取有向图中各个输入节点之间的匹配关系。
由于有向图是体现初始深度学习神经网络中输入层各个输入节点对应的输入变量之间的关系,如输入节点A指向输入节点B、输入节点C、输入节点D。
步骤722,根据各个输入节点与对应的隐层节点之间的匹配关系,将各个隐层节点根据有向图中的匹配关系进行有向连接,得到目标深度学习神经网络。
在将各个输入节点与对应的隐层节点之间进行匹配后,又获得有向图中各个输入节点之间的匹配关系,则对待改造隐层的隐层节点之间的连接关系进行改造。具体的,将有向图中各个输入节点对应的隐层节点按照有向图中的匹配关系进行连接,得到最终的目标深度学习神经网络。如:输入节点A与待改造隐层的隐层节点X和隐层节点Y进行匹配,输入节点B与待改造隐层的隐层节点M和隐层节点N进行匹配,而输入节点A与输入节点B之间的匹配关系为:输入节点A对应的输入变量A作为始点,输入节点B对应的输入变量B作为终点,从输入变量A指向输入变量B,则最终目标深度学习神经网络的待改造隐层的隐层节点的结构为:隐层节点X指向隐层节点M和隐层节点N,隐层节点Y指向隐层节点M和隐层节点N。
其中,可能会出现一种特殊的情况为:输入节点A和输入节点B都与待改造隐层的隐层节点M进行匹配,而在有向图中输入节点A与输入节点B之间的匹配关系为:输入节点A对应的输入变量A作为始点,输入节点B对应的输入变量B作为终点,从输入变量A指向输入变量B,则需在输入层的输入节点A和输入节点B与待改造隐层之间插入一个虚拟节点A’和B’。其中,输入节点A对应虚拟节点A’,输入节点B对应虚拟节点B’,则将虚拟节点A’指向虚拟节点B’,即A’→B’,通过建立虚拟节点对应的隐层得到最终的目标神经网络。
上述实施例中,通过将隐层的拓扑采用输入变量变之间的有向图代替,来体现出输入量之间的有向图关系,从而能够利用神经网络和深度学习来有效处理有向图类复杂序列数据,大大拓展了传统循环神经网络的使用范围,除了能够处理时序数据,还能处理更为复杂的序列数据,数据间的复杂序列关系可以体现在隐层节点构成的有向图中。
在一个实施例中,获取预设深度学习神经网络,其中,预设深度学习神经网络是事先构建好的,预设深度学习神经网络的各层节点及其连接关系已经确定,预设深度学习神经网络的各输入节点对应的变量已经确定。其中各层包括输入层、隐层各层、输出层。预设深度学习神经网络可以是未经训练或测试的,也可以是已经训练或测试的。
如果没有预设深度学习神经网络,则根据现有深度学习神经网络技术进行预设深度学习神经网络的构建。具体构建步骤如以下步骤:
步骤1,获取预设深度学习神经网络的各输入节点对应的变量之间的关系,形成有向图。
具体地,该有向图可以是一维的(多点在一条线上,点与点之间通过有向线段连接)、二维(多点在一个面上,点与点之间通过有向线段连接)、三维的(多点在一个体上,点与点之间通过有向线段连接)、更高维的(如超图)。图中每一个节点就代表一个输入节点对应的变量,图中有向边就代表输入节点对应的变量之间的关系。其中如果是无向图,或图中有无向边,则将其中每条无向边转化为2条方向相反的有向边,从而可以转化为有向图。深度学习神经网络的各输入节点对应的变量之间的关系形成的有向图。
如图8c所示,图8c示出有向图的示意图。有向图一个图是表示变量与变量之间的关系的方法,用一个圆点来表示一个变量,用一条线来表示一个关系,一个图看起来是由一些小圆点(称为顶点或结点)和连结这些圆点的直线或曲线(称为边)组成的。如果需给图的每条边规定一个方向,那么得到的图称为有向图,其边也称为有向边。在有向图中,与一个节点相关联的边有出边和入边之分,箭头指向点的边是入边,箭尾连接点的边是出边,而与一个有向边关联的两个点也有始点和终点之分,箭尾所在点是始点,箭头所在点是终点。
其中有向图的具体形成过程,具体行程过程如以下步骤:
1.1获取深度学习神经网络的所有输入变量
如图9所示,获取深度学习神经网络的所有输入变量,其中输入变量包括:前天A地的气象、前天B地的气象、前天C地的气象、昨天A地的气象、昨天B地的气象、昨天C地的气象、今天A地的气象、今天B地的气象、今天C地的气象;输出变量是A、B、C的明天气象预报。
1.2获取所述深度学习神经网络的每一变量所直接依赖的其他变量
如图10所示,例如,前天A地的气象、前天B地的气象、前天C地的气象、昨天A地的气象、昨天B地的气象、昨天C地的气象、今天A地的气象、今天B地的气象、今天C地的气象昨天某地的气象直接依赖前天该地的气象,今天某地的气象直接依赖昨天该地的气象。同时,因为A地与B地相邻,B地与C地相邻,C地与A地相邻,所以A地某天气象与B地该天气象相互依赖,B地某天气象与C地该天气象相互依赖,C地某天气象与A地该天气象相互依赖。
1.3这种依赖关系如果用有向图表示,则为将每一变量作为终点,将该每一变量所直接依赖的变量作为始点,用线连接始点与终点,箭头指向终点。
将昨天的价格作为终点,将昨天的价格直接依赖的前天的价格作为起点,用线连接始点与终点,箭头指向终点。将今天的价格作为终点,将今天的价格直接依赖的昨天的价格作为起点,用线连接始点与终点,箭头指向终点。
步骤2,将每一输入节点的对应隐层节点有向连接到有向图中该一输入节点有向连接到的每一输入节点对应的隐层节点。
如图11a所示,具体地,通过在隐层节点之间建立与各输入节点对应的变量之间的关系一致的连接,使得这种节点之间的依赖关系通过隐藏层进行传递,从而实现复杂序列的关系表示,进而可以应用于复杂时序的预测等应用。其中,面向有向图复杂序列的深度学习神经网络的隐层状态生成公式为:
ht=f(h(…),…,h(…),xt;θ),
其中h为隐藏层,用于保存上下文信息即状态,f是激活函数。h(…),…,h(…)是在有向图中通过一条有向边指向编号为t的输入节点的每一输入节点对应的隐藏节点的状态。ht是编号为t的隐藏节点的状态。xt是编号为t的输入节点对应的输入项数据。
其中步骤2又可以分为以下步骤:
2.1获取输入层每2个输入节点对应的变量之间的关系。
2.2获取待改造的隐层层数
2.3如果待改造的隐层层数是隐层第一层,则执行步骤2.3.1;如果待改造的隐层层数是隐层第i层,其中i大于1,则执行步骤2.3.2
2.3.1如果输入层节点X对应的变量直接依赖输入层节点Y对应的变量,则将输入层节点X连接的每一个隐层第一层节点作为终点,将输入层节点Y连接的每一个隐层第一层节点作为始点,用线连接始点与终点,箭头从始点指向终点。其中,X、Y为输入层每2个不同节点。
例如,输入层节点X连接隐层第一层A、B、C节点,输入层节点Y连接隐层第一层D、E节点,则用线连接D与A,箭头从D指向A;用线连接E与A,箭头从E指向A;用线连接D与B,箭头从D指向B;用线连接E与B,箭头从E指向B;用线连接D与C,箭头从D指向C;用线连接E与C,箭头从E指向C。
2.3.2如果输入层节点X对应的变量直接依赖输入层节点Y对应的变量,则将输入层节点X连通的每一个隐层第i层节点作为终点,将输入层节点Y连通的每一个隐层第i层节点作为始点,用线连接始点与终点,箭头从始点指向终点。其中,X、Y为输入层每2个不同节点。其中,连通指的是虽然从输入层节点到隐层第i层节点没有直接的连接,但通过多个层次之间的连接实现连通,例如i=2时,输入层节点X连接隐层第1层节点S,隐层第1层节点S连接隐层第2层节点A,则输入层节点X连通隐层第2层节点A。
例如,输入层节点X连通隐层第i层A、B、C节点,输入层节点Y连通隐层第i层D、E节点,则用线连接D与A,箭头从D指向A;用线连接E与A,箭头从E指向A;用线连接D与B,箭头从D指向B;用线连接E与B,箭头从E指向B;用线连接D与C,箭头从D指向C;用线连接E与C,箭头从E指向C。
2.3.1和2.3.2是改造一个隐层的情况。如果待改造的隐层层数是隐层多个层层数,则对其中每个层根据其层数执行步骤(1)或(2),其层数为隐层第1层时执行步骤(1),其层数为隐层第2层时执行步骤(2)
其中步骤2.3.1具体实现如下(待改造的隐层以隐层第一层为例):
有向图总是可以分解为两个节点之间的有向连接的集合,如图11b所示,假如输入层节点A与输入层节点B之间有一个有向连接从A指向B,即A→B。
如图11c所示,假如输入层节点A连接隐层第一层1个节点例如M,输入层节点B连接隐层第一层1个节点例如N,M与N是不同节点,将一个节点的值记为value(该个节点),此时
Value(M)=f1(value(A));
Value(N)=f2(value(B));
其中,f1、f2是代表其连接关系的函数。
如图11d所示,如果待改造的隐层层数是隐层第一层,,将与A连接的隐层第一层节点连接到与B连接的隐层第一层节点,即在M、N之间建立与A、B之间连接相对应的连接,即M→N。此时
Value(M)=f1(value(A));
Value(N)=c1(f2(value(B)),s1(Value(M)))=c1(f2(value(B)),s1(f1(value(A)));
其中,f1、f2、s1是代表两个节点之间连接关系的函数,c1代表多个节点有向连接到同一个节点时进行归并的函数。
如图12a所示,假如输入层节点A连接隐层第一层多个节点例如M1、M2,输入层节点B连接隐层第一层1个节点例如N,M1、M2、N是不同节点,将一个节点的值记为value(该个节点)此时
Value(M1)=f1(value(A));
Value(M2)=f2(value(A));
Value(N)=f3(value(B));
其中,f1、f2、f3是代表其连接关系的函数,这些函数会在神经网络初始化时进行参数设定,再神经网络训练时进行参数调整。
如图12b所示,如果待改造的隐层层数是隐层第一层,将与A连接的隐层第一层多个节点中每个节点分别连接到与B连接的隐层第一层节点,即在M1、M2、N之间建立与A、B之间连接相对应的连接,即M1→N;M2→N。此时
Value(M1)=f1(value(A));
Value(M2)=f2(value(A));
Value(N)=c1(f3(value(B)),s1(Value(M1)),s2(Value(M2)))=c1(f2(value(B)),s1(f1(value(A)),s2(f2(value(A)));
其中,f1、f2、s1、s2是代表两个节点之间连接关系的函数,c1代表多个节点有向连接到同一个节点时进行归并的函数,这些函数会在神经网络初始化时进行参数设定,再神经网络训练时进行参数调整。
如图13a所示,假如输入层节点A连接隐层第一层一个节点例如M,输入层节点B连接隐层第一层多个节点例如N1、N2,M、N1、N2是不同节点,将一个节点的值记为value(该个节点)此时
Value(M)=f1(value(A));
Value(N1)=f2(value(B));
Value(N2)=f3(value(B));
其中,f1、f2、f3是代表其连接关系的函数,这些函数会在神经网络初始化时进行参数设定,再神经网络训练时进行参数调整。
如图13b所示,如果待改造的隐层层数是隐层第一层,将与A连接的隐层第一层节点分别连接到与B连接的隐层第多个节点中每个节点,即在M、N1、N2之间建立与A、B之间连接相对应的连接,即M→N1;M→N2。此时
Value(M)=f1(value(A));
Value(N1)=c1(f2(value(B)),s1(Value(M)))=c1(f2(value(B)),s1(f1(value(A)));
Value(N2)=c2(f3(value(B)),s2(Value(M)))=c1(f2(value(B)),s2(f1(value(A)));
其中,f1、f2、f3、s1、s2是代表两个节点之间连接关系的函数,c1、c2代表多个节点有向连接到同一个节点时进行归并的函数,这些函数会在神经网络初始化时进行参数设定,再神经网络训练时进行参数调整。
如图14a所示,假如输入层节点A连接隐层第一层多个节点例如M1、M2,输入层节点B连接隐层第一层多个节点例如N1、N2,M1、M2、N1、N2是不同节点,将一个节点的值记为value(该个节点)。此时
Value(M1)=f1(value(A));
Value(M2)=f2(value(A));
Value(N1)=f3(value(B));
Value(N2)=f4(value(B));
其中,f1、f2、f3、f4是代表其连接关系的函数,这些函数会在神经网络初始化时进行参数设定,再神经网络训练时进行参数调整。
如图14b所示,如果待改造的隐层层数是隐层第一层,将与A连接的隐层第一层多个节点中每个节点分别连接到与B连接的隐层第多个节点中每个节点,即在M1、M2、N1、N2之间建立与A、B之间连接相对应的连接,即M1→N1;M2→N1;M1→N2;M2→N2。此时
Value(M1)=f1(value(A));
Value(M2)=f2(value(A));
Value(N1)=c1(f3(value(B)),s1(Value(M1)),s2(Value(M2)))=c1(f2(value(B)),s1(f1(value(A)),s2(f2(value(A)));
Value(N2)=c2(f4(value(B)),s3(Value(M1)),s4(Value(M2)))=c2(f2(value(B)),s3(f1(value(A)),s4(f2(value(A)));
其中,f1、f2、f3、f4、s1、s2、s3、s4是代表两个节点之间连接关系的函数,c1、c2代表多个节点有向连接到同一个节点时进行归并的函数,这些函数会在神经网络初始化时进行参数设定,再神经网络训练时进行参数调整。
当多个输入层节点连接到隐层同一个节点时,要么在隐层该同一个节点上不再考虑这多个输入层节点之间的关系,并将隐层该同一个节点视为与所述多个输入层节点中任一个对应的节点,
如图15a所示,假如输入层节点A连接隐层第一层1个节点例如M,输入层节点B连接隐层第一层节点M和其他一个或多个节点例如N,将一个节点的值记为value(该个节点)此时
Value(M)=c1(f1(value(A)),f2(value(B)));
Value(N)=f3(value(B);
其中,f1、f2、f3是代表其连接关系的函数,c1代表多个节点有向连接到同一个节点时进行归并的函数,这些函数会在神经网络初始化时进行参数设定,再神经网络训练时进行参数调整。
如图15b所示,如果待改造的隐层层数是隐层第一层,M对应A或B,N对应B。当M对应A,N对应B时,在M、N之间建立与A、B之间关系一致的连接;当M对应B,N对应B时,M、N之间无需连接;综合起来需要在M、N之间建立与A、B之间关系一致的连接。此时
Value(M)=c1(f1(value(A)),f2(value(B)));
Value(N)=c2(s1(M),f3(value(B)_)=c2(s1(c1(f1(value(A)),
f2(value(B)))),f3(value(B)_);
当多个输入层节点连接到隐层同一个节点时,如果在隐层该同一个节点上仍然考虑这多个输入层节点之间的关系,就需要引入虚拟节点:
如图16a所示,假如输入层节点A连接隐层第一层1个节点例如M,输入层节点B也连接隐层第一层同1个节点例如M,将一个节点的值记为value(该个节点)。此时
Value(M)=c1(f1(value(A)),f2(value(B)));
其中,f1、f2是代表其连接关系的函数,c1代表多个节点有向连接到同一个节点时进行归并的函数,这些函数会在神经网络初始化时进行参数设定,再神经网络训练时进行参数调整。
如图16b所示,如果待改造的隐层层数是隐层第一层,在A、B与M的连接中间插入与A、B对应的虚拟节点A’、B’,此时
Value(A’)=f1(value(A);
Value(B’)=f2(value(B);
Value(M)=c1(Value(A’)),Value(B’))=c1(f1(value(A)),f2(value(B)));
可见,插入虚拟节点没有改变原神经网络的性质,此时为中间生成的结构,下一步将生成待改造的结构。
如图16c所示,下一步将与A连接的虚拟节点A’连接到与B连接的虚拟节点B’,即在虚拟节点A’、B’之间建立与A、B之间连接相对应的连接,即A’→B’。此时,
Value(A’)=f1(value(A);
Value(B’)=c2(s1(Value(A’)).f2(value(B))=c2(s1(f1(value(A)).f2(value(B));
Value(M)=c1(Value(A’)),Value(B’))=c1(f1(value(A)),c2(s1(f1(value(A)).f2(value(B)));
其中,f1、f2、s1是代表两个节点之间连接关系的函数,c1、c2代表多个节点有向连接到同一个节点时进行归并的函数
如图17a所示,假如输入层节点A连接隐层第一层1个节点例如M,输入层节点B连接隐层第一层节点M和其他一个或多个节点例如N,将一个节点的值记为value(该个节点)。此时
Value(M)=c1(f1(value(A)),f2(value(B)));
Value(N)=f3(value(B);
其中,f1、f2、f3是代表其连接关系的函数,c1代表多个节点有向连接到同一个节点时进行归并的函数,这些函数会在神经网络初始化时进行参数设定,再神经网络训练时进行参数调整。
如图17b所示,如果待改造的隐层层数是隐层第一层,在A、B与M的连接中间插入与A、B对应的虚拟节点A’、B’,
此时
Value(A’)=f1(value(A);
Value(B’)=f2(value(B);
Value(M)=c1(Value(A’)),Value(B’))=c1(f1(value(A)),f2(value(B)));
Value(N)=f3(value(B);
可见,插入虚拟节点没有改变原神经网络的性质,此时为中间生成的结构,下一步将生成待改造的结构。
如图17c所示,下一步将与A连接的虚拟节点A’分别连接到与B连接的虚拟节点B’、N,即在虚拟节点A’、B’之间、A’、N之间建立与A、B之间连接相对应的连接,即A’→B’;A’→N。此时
Value(A’)=f1(value(A);
Value(B’)=c2(s1(Value(A’)).f2(value(B))=c2(s1(f1(value(A)).f2(value(B));
Value(M)=c1(Value(A’)),Value(B’))=c1(f1(value(A)),c2(s1(f1(value(A)).f2(value(B)));
Value(N)=c3(s2(Value(A’)).f3(value(B))=c3(s2(f1(value(A)),f3(value(B));
其中,f1、f2、s1是代表两个节点之间连接关系的函数,c1、c2代表多个节点有向连接到同一个节点时进行归并的函数
在一个实施例中,该实施例是优选的方案,但只适用于全连接或全连通的情况:
2.4.1如果输入节点与隐层第一层节点之间的连接是全接连(全连连的定义:如果输入节点与隐层第一层节点之间的连接是全接连,即每一个输入节点与每一个隐层第一层节点之间都有连接),则有一种更优选的方法来降低计算复杂度,可以作为2.3.1的替代,具体步骤如下:
统计输入层节点的数量M、隐层第一层节点的数量N,
如果M等于N,那么从i=1到N,输入层第i个节点对应隐层第一层第i个节点。
如果M大于N(例如M=12,N=5),那么将M除以N并向下取整得到K(12/5=2.4,向下取整为2),那么输入层第1、2个节点对应隐层第一层第1个节点;输入层第3、4个节点对应隐层第一层第2个节点;输入层第5、6个节点对应隐层第一层第3个节点;输入层第7、8个节点对应隐层第一层第4个节点;输入层第9、10、11、12个节点对应隐层第一层第5个节点。即从i=1到N-1,输入层第K×(i-1)+1、K×(i-1)+2、…、K×i个节点对应隐层第一层第i个节点;当i=N,输入层第K×(i-1)+1、K×(i-1)+2、…、M个节点对应隐层第一层第i个节点。
如果M小于N(例如N=12,M=5),那么将N除以M并向下取整得到K(12/5=2.4,向下取整为2),那么隐层第一层第1、2个节点对应输入层第1个节点;隐层第一层第3、4个节点对应输入层第2个节点;隐层第一层第5、6个节点对应输入层第3个节点;隐层第一层第7、8个节点对应输入层第4个节点;隐层第一层第9、10、11、12个节点对应输入层第5个节点。即从i=1到N-1,隐层第一层第K×(i-1)+1、K×(i-1)+2、…、K×i个节点对应输入层第i个节点;当i=N,隐层第一层第K×(i-1)+1、K×(i-1)+2、…、M个节点对应输入层第i个节点。
如果输入层节点X对应的变量直接依赖输入层节点Y对应的变量,则将输入层节点X对应的每一个隐层第一层节点作为终点,将输入层节点Y对应的每一个隐层第一层节点作为始点,用线连接始点与终点,箭头从始点指向终点。其中,X、Y为输入层每2个不同节点。
2.4.2如果输入节点与隐层第i层节点之间的连通是全接通(全连通的定义:如果输入节点与隐层第i层节点之间的连接是全接通,即每一个输入节点与每一个隐层第i层节点之间都有连通),则有一种更优选的方法来降低计算复杂度,可以作为2.3.2的替代,具体步骤如下:
统计输入层节点的数量M、隐层第i层节点的数量N,
如果M等于N,那么从j=1到N,输入层第j个节点对应隐层第i层第j个节点。
如果M大于N(例如M=12,N=5),那么将M除以N并向下取整得到K(12/5=2.4,向下取整为2),那么输入层第1、2个节点对应隐层第i层第1个节点;输入层第3、4个节点对应隐层第i层第2个节点;输入层第5、6个节点对应隐层第i层第3个节点;输入层第7、8个节点对应隐层第i层第4个节点;输入层第9、10、11、12个节点对应隐层第i层第5个节点。即从j=1到N-1,输入层第K×(j-1)+1、K×(j-1)+2、…、K×j个节点对应隐层第i层第j个节点;当j=N,输入层第K×(j-1)+1、K×(j-1)+2、…、M个节点对应隐层第i层第j个节点。
如果M小于N(例如N=12,M=5),那么将N除以M并向下取整得到K(12/5=2.4,向下取整为2),那么隐层第i层第1、2个节点对应输入层第1个节点;隐层第i层第3、4个节点对应输入层第2个节点;隐层第i层第5、6个节点对应输入层第3个节点;隐层第i层第7、8个节点对应输入层第4个节点;隐层第i层第9、10、11、12个节点对应输入层第5个节点。即从j=1到N-1,隐层第i层第K×(j-1)+1、K×(j-1)+2、…、K×j个节点对应输入层第j个节点;当j=N,隐层第i层第K×(j-1)+1、K×(j-1)+2、…、M个节点对应输入层第j个节点。
如果输入层节点X对应的变量直接依赖输入层节点Y对应的变量,则将输入层节点X对应的每一个隐层第i层节点作为终点,将输入层节点Y对应的每一个隐层第i层节点作为始点,用线连接始点与终点,箭头从始点指向终点。其中,X、Y为输入层每2个不同节点。
如图18所示,提供了一种深度学习神经网络构建装置,该装置包括:有向图生成模块1102、匹配模块1104以及目标深度学习神经网络确定模块1106。其中:
有向图生成模块1102,用于获取初始深度学习神经网络的每个输入节点对应的输入变量之间的连接关系,得到有向图。
匹配模块1104,用于确定各个输入节点与待改造隐层的隐层节点之间的匹配关系。
目标深度学习神经网络确定模块1106,用于根据有向图的所述匹配关系确定待改造隐层的各个隐层节点之间的连接关系,得到目标深度学习神经网络。
在一个实施例中,如图19所示,有向图生成模块1102包括:获取单元1202、查找单元1204以及连接单元1206。其中:
获取单元1202,用于获取初始深度学习神经网络的输入节点对应的初始输入变量。
查找单元1204,用于根据每个初始输入变量查找与初始输入变量连接的目标输入变量。
连接单元1206,用于将目标输入变量与初始输入变量进行有向连接,得到有向图。
在一个实施例中,连接单元1206还用于将目标输入变量作为始点,初始输入变量作为终点,初始输入变量与所述目标输入变量之间的有向连接为从始点指向终点,得到有向图。
在一个实施例中,匹配模块1104还包括隐层获取单元(图中未示出)和第一检测单元(图中未示出),其中:
隐层获取单元,用于获取待改造隐层。
第一检测单元,用于当待改造隐层的隐层节点与输入节点不是全连接时,将各个输入节点与一一对应的待改造隐层的隐层节点进行匹配。
在一个实施例中,匹配模块1104还包括第二检测单元(图中未示出)、计算单元(图中未示出)以及分配单元(图中未示出),其中:
第二检测单元,当待改造隐层的隐层节点与输入节点是全连接时,统计输入节点和待改造隐层的隐层节点的数量。
计算单元,根据输入节点的数量与隐层节点的数量的比值取整,得到匹配数值。
分配单元,根据匹配数值将相应数量的输入节点与对应的待改造隐层的隐层节点进行匹配。
在一个实施例中,目标深度学习神经网络确定模块1106还用于获取有向图中各个所述输入变量之间的匹配关系;根据各个输入变量对应的输入节点与相应的隐层节点之间的匹配关系,将各个隐层节点根据所述有向图中的所述匹配关系进行有向连接,得到目标深度学习神经网络。
在一个实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:获取初始深度学习神经网络的每个输入节点对应的输入变量之间的连接关系,得到有向图;确定各个输入节点与待改造隐层的隐层节点之间的匹配关系;根据有向图的所述匹配关系确定待改造隐层的各个隐层节点之间的连接关系,得到目标深度学习神经网络。
在一个实施例中,获取初始深度学习神经网络的每个输入节点对应的输入变量之间的连接关系,得到有向图,包括:获取初始深度学习神经网络的输入节点对应的初始输入变量;根据每个初始输入变量查找与所述初始输入变量连接有关系的目标输入变量;将目标输入变量与所述初始输入变量进行有向连接,得到有向图。
在一个实施例中,将目标输入变量与所述初始输入变量进行有向连接,得到有向图,包括:将目标输入变量作为始点,初始输入变量作为终点,初始输入变量与目标输入变量之间的有向连接为从始点指向终点,得到有向图。
在一个实施例中,确定各个输入节点与待改造隐层的隐层节点之间的匹配关系,包括:获取待改造隐层;当待改造隐层的隐层节点与输入节点不是全连接时,将各个输入节点与一一对应的待改造隐层的隐层节点进行匹配。
在一个实施例中,确定各个输入节点与待改造隐层的隐层节点之间的匹配关系,还包括:当待改造隐层的隐层节点与所述输入节点是全连接时,统计输入节点和所述待改造隐层的隐层节点的数量;根据输入节点的数量与隐层节点的数量的比值取整,得到匹配数值;根据匹配数值将相应数量的输入节点与对应的待改造隐层的隐层节点进行匹配。
在一个实施例中,根据有向图的所述匹配关系确定所述待改造隐层的各个隐层节点之间的连接关系,得到目标深度学习神经网络,包括:获取有向图中各个所述输入节点之间的匹配关系;根据各个输入节点与对应的隐层节点之间的匹配关系,将各个隐层节点根据有向图中的所述匹配关系进行有向连接,得到目标深度学习神经网络。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性的计算机可读取存储介质中,如本发明实施例中,该程序可存储于计算机系统的非易失性存储介质中,并被该计算机系统中的至少一个处理器执行,以实现包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种深度学习神经网络构建方法,其特征在于,所述方法包括:
获取初始深度学习神经网络的每个输入节点对应的输入变量之间的连接关系,根据每个输入变量之间的连接关系得到有向图,所述初始深度学习神经网络的每个输入节点对应的输入变量分别为多个地理位置相邻的地区在多个相邻时间段对应的气象数据;
确定各个输入节点与待改造隐层的隐层节点之间的匹配关系;
获取所述有向图中各个所述输入变量之间的匹配关系;
根据各个所述输入变量对应的输入节点与相应的隐层节点之间的匹配关系和所述有向图中各个所述输入变量之间的匹配关系确定所述待改造隐层中各个隐层节点之间的目标连接关系,将所述待改造隐层中各个隐层节点根据所述目标连接关系进行有向连接,得到目标深度学习神经网络,所述目标深度学习神经网络用于预测所述多个地理位置相邻的地区在目标时间段对应的气象数据。
2.根据权利要求1所述的方法,其特征在于,所述获取初始深度学习神经网络的每个输入节点对应的输入变量之间的连接关系,得到有向图,包括:
获取初始深度学习神经网络的输入节点对应的初始输入变量;
根据每个所述初始输入变量查找与所述初始输入变量有关系的目标输入变量;
将所述目标输入变量与所述初始输入变量进行有向连接,得到有向图。
3.根据权利要求2所述的方法,其特征在于,所述将所述目标输入变量与所述初始输入变量进行有向连接,得到有向图,包括:
将所述目标输入变量作为始点,所述初始输入变量作为终点,所述初始输入变量与所述目标输入变量之间的有向连接为从始点指向终点,得到有向图。
4.根据权利要求1所述的方法,其特征在于,所述确定各个输入节点与待改造隐层的隐层节点之间的匹配关系,包括:
获取待改造隐层;
当所述待改造隐层的隐层节点与所述输入节点是非全连接时,将各个输入节点与一一对应的待改造隐层的隐层节点进行匹配。
5.根据权利要求1所述的方法,其特征在于,所述确定各个输入节点与待改造隐层的隐层节点之间的匹配关系,包括:
当所述待改造隐层的隐层节点与所述输入节点是全连接时,统计所述输入节点和所述待改造隐层的隐层节点的数量;
根据所述输入节点的数量与所述隐层节点的数量的比值取整,得到匹配数值;
根据所述匹配数值将相应数量的输入节点与对应的所述待改造隐层的隐层节点进行匹配。
6.一种深度学习神经网络构建装置,其特征在于,所述装置包括:
有向图生成模块,用于接收终端发送的改造隐层的请求,根据所述改造隐层的请求获取初始深度学习神经网络的每个输入节点对应的输入变量之间的连接关系,根据每个输入变量之间的连接关系得到有向图,所述初始深度学习神经网络的每个输入节点对应的输入变量分别为多个地理位置相邻的地区在多个相邻时间段对应的气象数据;
匹配模块,用于确定各个输入节点与待改造隐层的隐层节点之间的匹配关系;
目标深度学习神经网络确定模块,用于获取所述有向图中各个所述输入变量之间的匹配关系;根据各个所述输入变量对应的输入节点与相应的隐层节点之间的匹配关系和所述有向图中各个所述输入变量之间的匹配关系确定所述待改造隐层中各个隐层节点之间的目标连接关系,将所述待改造隐层中各个隐层节点根据所述目标连接关系进行有向连接,得到目标深度学习神经网络,所述目标深度学习神经网络用于预测所述多个地理位置相邻的地区在目标时间段对应的气象数据。
7.根据权利要求6所述的装置,其特征在于,所述有向图生成模块包括:
获取单元,用于获取初始深度学习神经网络的输入节点对应的初始输入变量;
查找单元,用于根据每个所述初始输入变量查找与所述初始输入变量连接的目标输入变量;
连接单元,用于将所述目标输入变量与所述初始输入变量进行有向连接,得到有向图。
8.根据权利要求7所述的装置,其特征在于,所述连接单元还用于将目标输入变量作为始点,初始输入变量作为终点,初始输入变量与所述目标输入变量之间的有向连接为从始点指向终点,得到有向图。
9.一种机器人系统,包括存储器、处理器及存储在存储器上并可在处理器上运行的机器人程序,其特征在于,所述处理器执行所述程序时实现权利要求1-5任意一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1-5任意一项所述方法的步骤。
CN201810010058.2A 2018-01-05 2018-01-05 基于有向图的深度学习神经网络构建方法和机器人系统 Active CN108364068B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810010058.2A CN108364068B (zh) 2018-01-05 2018-01-05 基于有向图的深度学习神经网络构建方法和机器人系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810010058.2A CN108364068B (zh) 2018-01-05 2018-01-05 基于有向图的深度学习神经网络构建方法和机器人系统

Publications (2)

Publication Number Publication Date
CN108364068A CN108364068A (zh) 2018-08-03
CN108364068B true CN108364068B (zh) 2021-04-13

Family

ID=63010929

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810010058.2A Active CN108364068B (zh) 2018-01-05 2018-01-05 基于有向图的深度学习神经网络构建方法和机器人系统

Country Status (1)

Country Link
CN (1) CN108364068B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109472342B (zh) * 2018-10-25 2020-09-11 中国人民解放军国防科技大学 一种自优化的仿生自修复硬件故障重构机制设计
CN111325311B (zh) * 2018-12-14 2024-03-29 深圳云天励飞技术有限公司 用于图像识别的神经网络模型生成方法及相关设备
CN109685204B (zh) * 2018-12-24 2021-10-01 北京旷视科技有限公司 图像处理方法及装置、存储介质及电子设备
CN110032450B (zh) * 2019-04-17 2021-04-20 中山大学 一种基于固态盘扩展内存的大规模深度学习方法及系统
CN111291663B (zh) * 2020-01-22 2023-06-20 中山大学 一种利用时空信息的快速视频目标物体分割方法
CN111340661B (zh) * 2020-02-21 2020-12-01 电子科技大学 一种基于图神经网络的应用题自动解题方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103426026A (zh) * 2013-09-10 2013-12-04 信阳师范学院 一种混合神经网络预测及识别景区气象要素的方法
CN106919977A (zh) * 2015-12-25 2017-07-04 科大讯飞股份有限公司 一种前馈序列记忆神经网络及其构建方法和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100820723B1 (ko) * 2006-05-19 2008-04-10 인하대학교 산학협력단 은닉노드 목표값을 가진 2 개층 신경망을 이용한 분리 학습시스템 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103426026A (zh) * 2013-09-10 2013-12-04 信阳师范学院 一种混合神经网络预测及识别景区气象要素的方法
CN106919977A (zh) * 2015-12-25 2017-07-04 科大讯飞股份有限公司 一种前馈序列记忆神经网络及其构建方法和系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《智能神经网络在时序信号预测上的应用》;汪成亮;《重庆大学学报》;20030131;第26卷(第1期);第34-37页 *
《神经网络中隐含层的确定》;田国钰;《信息技术》;20101231(第10期);第79-81页 *

Also Published As

Publication number Publication date
CN108364068A (zh) 2018-08-03

Similar Documents

Publication Publication Date Title
CN108364068B (zh) 基于有向图的深度学习神经网络构建方法和机器人系统
Bianchi et al. A coordinate descent primal-dual algorithm and application to distributed asynchronous optimization
Liu et al. Graph-based method for face identification from a single 2D line drawing
Wong et al. Rainfall prediction model using soft computing technique
CN112163601B (zh) 图像分类方法、系统、计算机设备及存储介质
CN109685204B (zh) 图像处理方法及装置、存储介质及电子设备
US11568212B2 (en) Techniques for understanding how trained neural networks operate
CN110807379B (zh) 一种语义识别方法、装置、以及计算机存储介质
US20180293486A1 (en) Conditional graph execution based on prior simplified graph execution
US20230334893A1 (en) Method for optimizing human body posture recognition model, device and computer-readable storage medium
CN112529068B (zh) 一种多视图图像分类方法、系统、计算机设备和存储介质
CN111400555A (zh) 图数据查询任务处理方法、装置、计算机设备和存储介质
CN113553159B (zh) 基于可视化的模型调度方法、设备和存储介质
CN111160049A (zh) 文本翻译方法、装置、机器翻译系统和存储介质
CN112817560B (zh) 一种基于表函数的计算任务处理方法、系统及计算机可读存储介质
CN114118403A (zh) 神经网络架构搜索方法、装置、存储介质及电子设备
CN111639523B (zh) 目标检测方法、装置、计算机设备和存储介质
CN117853706A (zh) 旋转目标检测方法、装置、设备及介质
CN111914809A (zh) 目标对象定位方法、图像处理方法、装置和计算机设备
CN113591969B (zh) 面部相似度评测方法、装置、设备以及存储介质
Biehl et al. Action and perception for spatiotemporal patterns
CN116579380A (zh) 一种数据处理方法以及相关设备
CN111382834B (zh) 一种置信度比较方法及装置
CN116243974A (zh) 量子程序的执行方法和量子程序的编译方法
US11393069B2 (en) Image processing apparatus, image processing method, and computer readable recording medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant