CN111226235B - 神经网络的生成方法、训练方法和使用方法 - Google Patents
神经网络的生成方法、训练方法和使用方法 Download PDFInfo
- Publication number
- CN111226235B CN111226235B CN201980005126.9A CN201980005126A CN111226235B CN 111226235 B CN111226235 B CN 111226235B CN 201980005126 A CN201980005126 A CN 201980005126A CN 111226235 B CN111226235 B CN 111226235B
- Authority
- CN
- China
- Prior art keywords
- action
- neural network
- value
- state
- actions
- 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
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 169
- 238000000034 method Methods 0.000 title claims abstract description 103
- 238000012549 training Methods 0.000 title claims abstract description 70
- 230000009471 action Effects 0.000 claims abstract description 239
- 230000006870 function Effects 0.000 claims description 92
- 239000013598 vector Substances 0.000 claims description 35
- 239000011159 matrix material Substances 0.000 claims description 12
- 238000005259 measurement Methods 0.000 claims description 11
- 238000004422 calculation algorithm Methods 0.000 claims description 6
- 239000000523 sample Substances 0.000 description 36
- 230000008569 process Effects 0.000 description 19
- 238000004891 communication Methods 0.000 description 15
- 230000002787 reinforcement Effects 0.000 description 11
- 230000004913 activation Effects 0.000 description 8
- 239000008186 active pharmaceutical agent Substances 0.000 description 5
- 230000001413 cellular effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000012886 linear function Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 241000764238 Isis Species 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000010248 power generation Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000009891 weiqi Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/0088—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/217—Validation; Performance evaluation; Active pattern learning techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2413—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
- G06F18/24133—Distances to prototypes
- G06F18/24143—Distances to neighbourhood prototypes, e.g. restricted Coulomb energy networks [RCEN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/776—Validation; Performance evaluation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
- G06V10/95—Hardware or software architectures specially adapted for image or video understanding structured as a network, e.g. client-server architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/56—Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
-
- G—PHYSICS
- G08—SIGNALLING
- G08G—TRAFFIC CONTROL SYSTEMS
- G08G1/00—Traffic control systems for road vehicles
- G08G1/16—Anti-collision systems
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0257—Control of position or course in two dimensions specially adapted to land vehicles using a radar
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/56—Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
- G06V20/58—Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
- G06V20/586—Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads of parking space
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Business, Economics & Management (AREA)
- Algebra (AREA)
- Game Theory and Decision Science (AREA)
- Aviation & Aerospace Engineering (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Automation & Control Theory (AREA)
- Traffic Control Systems (AREA)
- Control Of Driving Devices And Active Controlling Of Vehicle (AREA)
- Feedback Control In General (AREA)
Abstract
本发明提供了一种生成训练神经网络的训练数据的方法、训练神经网络的方法和利用神经网络进行自主操作的方法,以及相关设备和系统。一种训练用于环境中对象的自主操作的神经网络的方法,包括:基于样本数据集生成策略值;基于所述策略值生成近似动作值函数;通过所述近似动作值函数为所述样本数据集中的所有状态以及所有可能动作生成近似策略值集;基于近似策略值计算所述神经网络的训练目标;计算训练误差作为所述训练目标和所述样本数据集中对应的状态动作对的策略值之间的差值;更新所述神经网络的至少一些参数以最小化所述训练误差。
Description
相关申请案交叉申请
本申请要求于2018年1月17日递交的发明名称为“生成训练神经网络的训练数据的方法、训练神经网络的方法和利用神经网络进行自主操作的方法”的第15/873,609号美国专利申请案和于2019年1月15日递交的发明名称为“生成训练神经网络的训练数据的方法、训练神经网络的方法和利用神经网络进行自主操作的方法”的第16/248,543号美国专利申请案的在先申请优先权,该两在先申请的内容以引入的方式并入本文。
技术领域
本发明涉及神经网络,尤其涉及一种生成训练神经网络的训练数据的方法、训练神经网络的方法和利用神经网络进行自主操作的方法,以及相关设备和系统。
背景技术
车辆驾驶辅助系统提高了人类驾驶员的意识和安全,而自主驾驶车辆增加了驾驶员的安全和便利。自主停车和自主驾驶是自主驾驶车辆的重要方面。但是,和自主驾驶车辆的其它方面一样,自主停车和自主驾驶等自主操作仍在发展,改进自主停车和自主驾驶是必要的。
基于深度强化学习的人工智能(artificial intelligence,简称AI)系统需要大量的数据和训练时间。例如,深度Q学习网络(deep Q-learning network,简称DQN)是基于深度强化学习的AI系统中最常用的算法之一。所述DQN由Google DeepMindTM开发,并于2016年在AlphaGo中战胜了人类围棋冠军。但是,所述DQN的学习速度很慢,需要大量数据来学习一个良好的策略。在深度强化学习中,策略是在给定状态下选择动作的规则。所述策略可以定义为一组状态到一组动作的映射。所述DQN还需要大量的训练时间和计算才能收敛。DeepMind的研究显示,即使对于很简单的比赛,所述DQN需要数百万个训练样本来学习一个很简单的策略。原因在于所述DQN就像随机梯度更新,所述DQN计算出的目标在训练迭代过程中变化太快。所述DQN也不能保证收敛,输出策略可能很差。对于基于AI的车辆驾驶辅助和车辆自动化,需要改进神经网络和训练方法。
发明内容
本文提供了一种基于深度强化的学习方法,该方法可以用于高级驾驶辅助系统(advanced driver-assistance system,简称ADAS)或自主无人驾驶车辆,以及其它潜在应用。一方面,本发明提供了一种在共享过程中定位停车点和停车的方法。现有的停车辅助系统需要两个单独的过程:识别停车点和停车。通常的做法是利用计算机视觉技术基于停车标志识别停车点,执行启发式的基于规则的计算机程序来将车辆停放和移动到目标停车点。这种做法的局限性在于,固定的基于规则的停车性能差,通常需要人类驾驶员将车辆靠近停车点停放,以使车辆控制系统更容易执行停车过程。本发明的方法可以用于各种停车场景(例如前进、后退和并行等),可以同时定位停车点和停车。还应想到,本发明的方法可以用于自主驾驶。
根据本发明的一方面,提供了一种训练用于环境中对象的自主操作的神经网络的方法,包括:基于样本数据集生成策略值;基于所述策略值生成近似动作值函数;通过所述近似动作值函数为所述样本数据集中的所有状态以及所有可能动作生成近似策略值集;基于近似策略值计算所述神经网络的训练目标;计算训练误差作为所述训练目标和所述样本数据集中对应的状态动作对的策略值之间的差值;更新所述神经网络的至少一些参数以最小化所述训练误差。
根据本发明的另一方面,提供了一种训练用于环境中对象的自主操作的神经网络的方法,包括:所述神经网络接收样本数据集D,即{(si,ai,si+1,ri)},其中,si是环境中对象的当前状态,ai是为所述当前状态选择的动作,si+1是所述对象和所述环境的后续状态,ri是在状态si下执行动作ai的奖励值,所述奖励值的值根据奖励函数确定;通过表示为Q函数的动作值函数为所述样本数据集D,即{(si,ai,si+1,ri)},中的每个状态动作对si,ai生成第一策略值Q(si,ai)集;通过所述Q函数为所述样本数据集D中所有元组(si,ai,si+1,ri)的每个后续状态si+1和所有可能动作集中的每个动作生成第二策略值Q(si+1,a)集;生成表示为Q*函数的近似动作值函数,其中,基于所述当前状态si和为所述当前状态si选择的所述动作ai的所述第一策略值Q(si,ai)集以及所选动作ai之后的所述后续状态si+1的所述第二策略值Q(si+1,a)集生成所述近似动作值函数;通过所述Q*函数为所述神经网络生成训练目标;计算训练误差作为所述训练目标和所述样本数据集D中对应的状态动作对的策略值Q(si,ai)之间的差值;更新所述神经网络的至少一些参数以最小化所述训练误差。
根据本发明的又一方面,提供了一种系统,包括:处理器和存储器,所述存储器耦合至所述处理器,并存储可执行指令。当所述可执行指令由所述处理器执行时,使得所述处理器接收样本数据集D,即{(si,ai,si+1,ri)},其中,si是环境中对象的当前状态,ai是为所述当前状态选择的动作,si+1是所述对象和所述环境的后续状态,ri是在状态si下执行动作ai的奖励值,所述奖励值的值根据奖励函数确定。当所述可执行指令由所述处理器执行时,使得所述处理器将多层神经网络应用于所述样本数据集,其中,所述多层神经网络中的每一层包括多个节点,每一层中的每个节点有对应权重,以执行下文所述的操作:通过表示为Q函数的动作值函数为所述样本数据集D,即{(si,ai,si+1,ri)},中的每个状态动作对si,ai生成第一策略值Q(si,ai)集;通过所述Q函数为所述样本数据集D中所有元组(si,ai,si+1,ri)的每个后续状态si+1和所有可能动作集中的每个动作生成第二策略值Q(si+1,a)集;生成表示为Q*函数的近似动作值函数,其中,基于所述当前状态si和为所述当前状态si选择的所述动作ai的所述第一策略值Q(si,ai)集以及所选动作ai之后的所述后续状态si+1的所述第二策略值Q(si+1,a)集生成所述近似动作值函数;通过所述Q*函数为所述神经网络生成训练目标;计算训练误差作为所述训练目标和所述样本数据集D中对应的状态动作对的策略值Q(si,ai)之间的差值;更新所述神经网络的至少一些参数以最小化所述训练误差。
根据本发明的又一方面,提供了一种车辆控制系统。所述车辆控制系统包括多个传感器,用于感知对象的当前状态和所述对象位于的环境。所述车辆控制系统还包括多层神经网络,所述多层神经网络耦合至所述多个传感器。所述多层神经网络中的每一层包括多个节点,每一层中的每个节点有对应权重。所述神经网络用于根据从所述多个传感器接收到的传感器数据,对表示所述环境中车辆的当前状态进行编码。所述神经网络用于:接收多个可能的动作;基于所述多个可能动作中每个可能动作的当前状态,确定所述环境中所述车辆的预测后续状态;针对所述多个可能动作中的每个动作,通过根据策略值函数、所述预测后续状态和所述多个可能动作中的所述动作确定策略值,对所述预测后续状态进行评估;从确定的所述多个可能动作中选择动作,以生成最大策略值。
在上述部分或全部内容中,所述车辆控制系统使所述车辆执行所选动作。
在上述部分或全部内容中,每个可能动作由动作向量定义,所述动作向量包括转向单元的转向角、节流单元的节流值和制动单元的制动值。
在上述部分或全部内容中,所述策略函数最大化与所述预测后续状态相关的奖励。
在上述部分或全部内容中,所述神经网络用于:接收多个可能动作序列,其中,每个可能动作序列包括一个或多个动作;针对每个可能动作序列:基于所述可能动作序列中每个可能动作的所述当前状态,确定所述环境中所述车辆的一个或多个预测后续状态;通过根据策略值函数、所述预测后续状态和所述可能动作序列中的所述动作确定策略值,对所述一个或多个预测后续状态的每个预测后续状态进行评估;从确定的所述多个可能动作序列中选择动作序列,以生成最大策略值。
在上述部分或全部内容中,所述神经网络用于:针对每个可能动作序列,在执行所述可能动作序列中的每个可能动作序列之后,预测多个状态序列,其中,每个状态序列包括所述环境中所述车辆的多个预测后续状态。
在上述部分或全部内容中,状态序列中的每个预测后续状态基于先前观察到或预测到的状态和所述可能动作序列中的可能动作。
在上述部分或全部内容中,所述策略函数基于每个可能动作序列的一个或多个预测后续状态中的每个预测后续状态最大化奖励。
在上述部分或全部中,所述动作序列是停车操作或驾驶操作。
在上述部分或全部内容中,所述奖励基于与所述动作序列的最佳性能的接近度。
根据本发明的又一方面,提供了一种执行车辆的自主操作的方法,包括:根据从多个传感器接收到的传感器数据,对表示环境中车辆的当前状态进行编码;接收多个可能动作;基于所述多个可能动作中每个可能动作的所述当前状态,确定所述环境中所述车辆的预测后续状态;针对所述多个可能动作中的每个动作,通过根据策略值函数、所述预测后续状态和所述多个可能动作中的所述动作确定策略值,对所述预测后续状态进行评估;从确定的所述多个可能动作中选择动作,以生成最大策略值。
根据本发明的又一方面,提供了一种对象的控制系统。所述控制系统包括:处理器;多个传感器,耦合至所述处理器,用于感知对象的当前状态和所述对象位于的环境;存储器,耦合至所述处理器。所述存储器存储可执行指令,当所述处理器执行所述可执行指令时,使得所述处理器执行上文和本文所述方法的至少一部分。所述控制系统还可以包括神经网络。在一些示例中,所述对象是车辆,所述控制系统是车辆控制系统。
根据本发明的又一方面,提供了一种车辆,包括:机械系统,用于移动所述车辆;驱动控制系统,耦合至所述机械系统,用于控制所述机械系统;车辆控制系统,耦合至所述驱动控制系统。所述车辆控制系统具有上文和本文所述的特征。
根据本发明的再一方面,提供了一种多层神经网络,所述多层神经网络中的每一层包括多个节点,每一层中的每个节点有对应权重,所述神经网络用于执行上文和本文所述方法的至少一部分。
根据本发明的再一方面,提供了一种非瞬时性机器可读介质,有形地存储由计算设备的至少一个处理器执行的可执行指令。当所述至少一个处理器执行所述可执行指令时,使得所述计算设备执行上文和本文所述方法的至少一部分。
附图说明
图1A和图1B是适于实践本发明示例实施例的通信系统的示意图;
图2是本发明一示例实施例提供的包含车辆控制系统的车辆的框图;
图3是本发明一示例实施例提供的车辆控制系统的神经网络的示意图;
图4是神经网络中节点之间关系的示意图;
图5A是本发明一示例实施例提供的训练神经网络的示例方法的流程图;
图5B是本发明一示例实施例提供的用于图5A方法的示例近似策略迭代(approximate policy iteration,简称API)过程的流程图;
图6是本发明一示例实施例提供的利用神经网络进行对象的自主操作的示例方法的流程图。
具体实施方式
本发明参考附图进行,在所述附图中示出实施例。然而,可以使用许多不同的实施例,因此不应将描述视为仅限于本文描述的实施例。相反,提供这些实施例是为了使本发明透彻和完整。在全文中,相同的数字表示相同的元件,在可替代实施例中,加撇符号用于表示类似的元件、操作或步骤。所示系统和设备的功能元件的单独的框或所示的分离不一定需要此类功能的物理分离,因为在没有任何此类物理分离的情况下,此类元件之间的通信可以通过消息传递、功能调用、共享存储器空间等方式进行。这样,功能不必在物理上或逻辑上分离的平台中实现,尽管为了便于此处的解释而分别示出了这些功能。不同的设备可以具有不同的设计,使得尽管一些设备在固定功能硬件中实现一些功能,但其它设备可以在可编程处理器中利用从机器可读介质获得的代码来实现此类功能。
为方便起见,本发明参考汽车、卡车、公共汽车、船只或船舶、潜艇、飞机、仓储设备、施工设备、拖拉机或其它农场设备等机动车辆描述了示例实施例。本发明的理念不限于车辆或任何特定类型的车辆,并且可以应用于其它真实或虚拟的对象,以及不运载乘客的车辆和运载乘客的车辆。本发明的理念还可以在非车辆移动机器人中实现,所述非车辆移动机器人包括但不限于自动真空吸尘器、探测车、割草机、无人飞行载具(unmanned aerialvehicle,简称UAV)和其它真实或虚拟的对象。
图1A是本发明一示例实施例提供的通信系统100的所选组件的示意图。所述通信系统100包括用户设备,所述用户设备以车辆控制系统115的形式内嵌于车辆105(图1A仅示出其中一辆)。所述车辆控制系统115包括神经网络104(图2)。所述神经网络104包括神经网络控制器(未示出),该神经网络控制器包括至少一个处理器。或者,所述神经网络104可以远程定位和无线访问,例如通过服务器240,而不是作为所述车辆控制系统115的一部分位于所述车辆105中。
所述车辆控制系统115耦合至所述车辆105的驱动控制系统150(图2)和机械系统190(图2),如下所述。所述车辆控制系统115允许所述车辆105在完全自主、半自主或完全用户控制模式下操作。
所述车辆控制系统115包括位于所述车辆105周围的多个传感器110和一个或多个无线收发器130,每个无线收发器130耦合至所述车辆控制系统115的控制器,例如处理器102(图2)。所述多个传感器110包括一个或多个数字摄像头112、一个或多个LIDAR单元114、一个或多个雷达单元,例如,一个或多个合成孔径雷达(synthetic aperture radar,简称SAR)单元116、惯性测量单元(inertial measurement unit,简称IMU)118、电子罗盘119和其它可能的传感器120。所述传感器110在激活时会重复(例如,定期)感知信息并将感知到的信息实时或近似实时地提供给所述车辆控制系统115。
所述摄像头112可以捕获包括一系列连续帧的静态图像或视频。所述摄像头112可以是二维(two-dimensional,简称2D)摄像头或立体或三维(three-dimensional,简称3D)摄像头,可以感知所述车辆105周围环境的深度和三维结构。所述摄像头112可以捕获可见光和/或红外线。所述IMU 118通过加速计和陀螺仪的组合感知所述车辆的比力和角速度。所述传感器110可以用于感知所述车辆105周围环境的三维结构。
所述车辆控制系统115通过所述传感器110收集关于所述车辆105的局部环境(例如,任何紧邻的障碍物)的信息以及来自更大范围的信息(例如,所述LIDAR单元114和所述SAR单元116可以从所述车辆105周围半径达100m的区域收集信息)。所述车辆控制系统115还可以通过所述传感器110,例如所述IMU 118,收集关于所述车辆105的位置和方向的信息。所述车辆控制系统115可以通过所述IMU 118和其它可能的传感器120确定所述车辆105的线速度(例如里程表)、角速度、加速度、轮胎抓地力等。
在所示实施例中,有四个传感器单元125分别位于所述车辆105的前侧、后侧、左侧和右侧。在其它实施例中,所述传感器单元125的数量和位置可能不同。例如,图1B示出了另一个实施例,所述传感器单元125位于外壳135内,例如固定或旋转传送带,所述外壳135安装或以其它方式放置于所述车辆105顶部(例如车顶)。所述传感器单元125分别位于所述外壳135(以及所述车辆105)的前侧、后侧、左侧和右侧,以扫描所述车辆105的前侧、后侧、左侧和右侧的环境。在所描述的实施例中,所述传感器单元125放置在四个不同方向上以扫描所述车辆105的前侧、后侧、左侧和右侧的环境。
所述传感器单元125包括以下一种或任意组合:摄像头112、LIDAR单元114和SAR单元116。所述传感器单元125安装或以其它方式放置,以获得相邻传感器单元125之间的不同视场(field of view,简称FOV),从而捕获所述车辆105的周围环境。所述不同FOV可以重叠。
所述无线收发器130使所述车辆控制系统115能够与所述通信系统100的无线广域网(wide area network,简称WAN)210交换数据以及可选地进行语音通信。所述车辆控制系统115可以利用所述无线WAN 210通过一个或多个通信网络220,例如互联网,来访问所述服务器240,例如驾驶辅助服务器。所述服务器240可以实现为一个或多个服务器模块,并且通常位于防火墙230后面。所述服务器240连接到网络资源250,例如可以由所述车辆控制系统115,例如所述神经网络104,使用的补充数据资源。
所述通信系统100包括卫星网络260,除了所述WAN 210,所述卫星网络260还包括多个卫星。所述车辆控制系统115包括卫星接收器132(图2),所述卫星接收器132可以利用所述卫星接收器132从所述卫星网络260中的所述多个卫星接收到的信号,以确定车辆位置。所述卫星网络260通常包括多个卫星,所述多个卫星是至少一个全球导航卫星系统(Global Navigation Satellite System,简称GNSS)的一部分,所述GNSS在全球范围内提供自主地理空间定位。例如,所述卫星网络260可以是一群GNSS卫星。示例GNSS包括美国NAVSTAR全球定位系统(Global Positioning System,简称GPS)或俄罗斯全球导航卫星系统(Russian Global Navigation Satellite System,简称GLONASS)。已经部署或正在开发的其它卫星导航系统包括欧盟的伽利略定位系统、中国的北斗导航卫星系统(BeiDouNavigation Satellite System,简称BDS)、印度区域卫星导航系统和日本卫星导航系统。
接下来参考图2,该图示出了本发明一示例实施例提供的车辆105的所选组件。如上所述,所述车辆105包括连接到驱动控制系统150的车辆控制系统115和机械系统190。所述车辆105还包括各种结构元件,例如框架、门、面板、座椅、窗户、镜子等,这些元件为本领域熟知但从本发明中省略,从而避免模糊化本发明的理念。处理器102经由通信总线(未示出)耦合至多个组件,所述通信总线提供所述组件与所述处理器102之间的通信路径。所述处理器102耦合至所述驱动控制系统150、随机存取存储器(Random Access Memory,简称RAM)122、只读存储器(Read-Only Memory,简称ROM)124、永久性(非易失性)存储器126,例如闪存可擦除可编程只读存储器(erasable programmable read-only memory,简称EPROM)(闪存)、一个或多个用于与无线网络210交换射频信号的无线收发器130、用于从包括作为全球或区域卫星导航系统一部分的多个卫星的卫星网络260接收卫星信号的卫星接收器132、实时时钟(real-time clock,简称RTC)134和触摸屏136。在一些实施例中,神经网络控制器(未示出)可以是所述处理器102的一部分。
所述无线收发器130可以包括一个或多个蜂窝(RF)收发器,用于通过不同的无线数据通信协议和标准与多个不同的无线接入网(例如蜂窝网络)进行通信。所述车辆控制系统115可以与其地理覆盖范围内的所述无线WAN 210(例如蜂窝网络)的多个固定收发器基站(图1示出其中一个)中的任何一个通信。所述无线收发器130可以通过所述无线WAN 210发送和接收信号。所述无线收发器130可以包括支持多个射频频带的多频带蜂窝收发器。
所述无线收发器130还可以包括无线局域网(wireless local area network,简称WLAN)收发器,用于经由WLAN接入点(access point,简称AP)与WLAN(未示出)进行通信。所述WLAN可以包括符合IEEE 802.11x标准(有时称为)或其它通信协议的Wi-Fi无线网络。
所述无线收发器130还可以包括短距离无线收发器,例如收发器,用于与智能手机或平板电脑等移动计算设备进行通信。所述无线收发器130还可以包括其它短距离无线收发器,包括但不限于近距离无线通信(Near Field Communication,简称NFC)、IEEE 802.15.3a(也称为超宽带(UltraWideband,简称UWB))、Z-Wave、ZigBee、ANT/ANT+或红外线(例如,国际红外数据协会(Infrared Data Association,简称IrDA)通信)。
所述RTC 134通常包括提供准确实时信息的晶体振荡器,例如由Atmel公司提供的晶体振荡器。
所述触摸屏136包括显示屏,例如彩色液晶显示屏(liquid crystal display,简称LCD)、发光二极管(light-emitting diode,简称LED)显示屏或主动矩阵有机发光二极管(active-matrix organic light-emitting diode,简称AMOLED)显示屏,具有连接到电子控制器的触敏输入表面或叠加层。还可以提供耦合至所述处理器102的其它输入设备(未示出),包括按钮、开关和刻度盘。
所述车辆控制系统115还包括一个或多个扬声器138、一个或多个麦克风140和一个或多个数据端口142,例如串行数据端口(例如,通用串行总线(Universal Serial Bus,简称USB)数据端口)。所述车辆控制系统115还可以包括其它传感器120,例如轮胎压力传感器(tire pressure sensor,简称TPS)、车门接触开关、光线传感器、接近传感器等。
所述驱动控制系统150用于控制所述车辆105的操作。所述驱动控制系统150包括转向单元152、制动单元154和节流(或加速)单元156,每个单元可以实现为所述驱动控制系统150内的控制块或包含处理器可执行指令的软件模块。当处于完全自主或半自主驾驶模式时,所述转向单元152、所述制动单元154和所述节流单元156处理存储在所述车辆控制系统115的所述存储器126中的从路径规划系统174接收到的路径信息,并生成控制信号以分别控制所述车辆105的转向、制动和节流,从而使车辆按照规划路径行驶。所述驱动控制系统150可以包括用于控制所述车辆105的其它方面的其它组件,例如包括控制转向信号和制动灯。
所述机械系统190从所述驱动控制系统150接收控制信号以操作所述车辆105的机械组件。所述机械系统190实现所述车辆105的物理操作。所述机械系统190包括发动机192、变速器194和车轮196。例如,所述发动机192可以是汽油发动机、电池供电发动机或混合发动机。所述机械系统190中可以包括其它组件,例如包括转向信号、制动灯、风扇和车窗。
所述车辆控制系统115的图形用户界面(graphical user interface,简称GUI)由所述处理器102呈现并显示在所述触摸屏136上。用户可以通过所述触摸屏和可选的其它输入设备(例如,按钮和刻度盘)与所述GUI交互以显示相关信息,例如导航信息、驾驶信息、停车信息、媒体播放器信息、气候控制信息等。所述GUI可以包括一系列可遍历的内容特定菜单。
除了所述GUI,所述车辆控制系统115的所述存储器126存储有包含由所述处理器102执行的处理器可执行指令的操作系统软件160以及许多软件应用162。所述软件应用162包括车辆定位应用164、停车辅助应用166、自主停车应用168、用于半自主驾驶的驾驶辅助应用170、用于完全自主驾驶的自主驾驶应用172以及路径规划应用174。每个应用包括能够被所述处理器102执行的处理器可执行指令。其它软件应用162也可以存储在所述存储器126中,例如映射应用、导航应用、气候控制应用、媒体播放器应用、电话应用、消息应用等。所述处理器102执行存储在所述存储器126中的一个或多个所述软件应用162的所述处理器可执行指令,使本文所述方法的操作得以执行。
虽然示为包含处理器可执行指令的单独的应用,在其它实施例中,所述车辆定位应用164、所述停车辅助应用166、所述自主停车应用168、用于半自主驾驶的所述驾驶辅助应用170、所述自主驾驶应用172以及所述路径规划应用174中的全部或部分可以与一个或多个其它软件应用结合。在其它实施例中,所述车辆定位应用164、所述停车辅助应用166、所述自主停车应用168、用于半自主驾驶的所述驾驶辅助应用170、所述自主驾驶应用172以及所述路径规划应用174可以是作为自主车辆操作应用的一部分的单独的软件模块。在本实施例中,每个软件模块包含处理器可执行指令,所述处理器102能够执行所述处理器可执行指令以使本文所述方法的操作得以执行。
所述存储器126还存储各种数据180。所述数据180可以包括所述传感器110感知到的传感器数据182、包括用户偏好、设置以及可选的个人媒体文件(例如音乐、视频、说明等)的用户数据184和包括通过所述无线收发器130下载的数据的下载缓存186。所述传感器数据182包括表示摄像头112捕获的图像和所述摄像头112提供给所述存储器126的图像的图像数据312、来自LIDAR单元114的LIDAR数据314、RADAR数据316,例如从SAR单元116接收到的SAR数据,以及从IMU 118等其它传感器120接收到的其它可能传感器数据318。可以定期删除所述下载缓存186,例如,在预定时间之后。系统软件、软件模块、特定设备应用或其部分可以临时加载到易失性存储器中,例如所述RAM 122,所述易失性存储器用于存储运行时数据变量和其它类型的数据或信息。所述车辆控制系统115接收到的数据也可以存储在所述RAM 122中。尽管描述了各种类型的存储器的特定功能,但这仅仅是一个示例,还可以使用不同的方式将功能分配给各种类型的存储器。
接下来参考图3,该图示出了本发明一示例实施例提供的神经网络104。所述神经网络104包括多层,包括输入层320、多个中间(隐藏)层330和输出层350。所述神经网络104的所述层320、330和350中的每一层包括多个节点(或神经元)。所述层320、330和350的节点通常以串联的方式相连接。在不同的实施例中,所述层320、330和350的节点之间的连接的性质可能不同。在一些实施例中,所述层320、330和350中的每一层的节点可以独立于其它节点运行,允许并行计算。
为了说明所述神经网络104的节点之间的关系,现参考图4,该图以示意图的形式示出了所述神经网络104的配置的简单示例。所述输入层320、所述中间(隐藏)层330(图4仅示出其中一个)和所述输出层350中的每一层包括多个节点402(图4仅标记了其中一个)。给定层中每个节点402的输出和后续层中一个或多个节点402的输出相连接,如连接404(图4仅标记了其中一个)所示。每个节点402是包含处理器可执行指令的逻辑编程单元,当一个或多个处理器执行所述处理器可执行指令时,所述节点402执行激活函数(也称为传递函数),用于基于其输入、权重(如果有)和偏差系数(如果有)转换或处理数据,以生成输出。所述输入、权重和偏差系数在所述神经网络104的各层中的各节点402之间和所述神经网络104的各层之间有所不同。每个节点402的激活函数响应于特定输入、权重和偏差系数生成特定输出。每个节点402的输入可以是标量、矢量、矩阵、对象、数据结构和/或其它项目或其引用。每个节点402可以独立于其它节点402存储其各自的激活函数、权重(如果有)和偏差系数(如果有)。
激活函数的示例包括数学函数(即加、减、乘、除等)、对象操作函数(即创建对象、修改对象、删除对象、追加对象等)、数据结构操作函数(即创建数据结构、修改数据结构、删除数据结构、创建数据字段、修改数据字段、删除数据字段等),和/或其它取决于输入类型的转换函数。在一些示例中,所述激活函数包括求和函数和/或映射函数。
再次参考图3,所述输入层320的每个节点接收传感器单元125获取的传感器数据182作为输入。所述传感器数据182通常由处理器102从所述传感器单元125接收,并存储于存储器126供所述神经网络104后续使用。或者,所述传感器数据182可以直接由所述神经网络104从处理器102接收,或者甚至可以直接从传感器单元125接收,而不经过处理器102。在这种替代方案中,所述传感器数据182通常通过并行进程(可能通过并行通信路径)存储于所述存储器126,以便之后可以访问所述传感器数据182,例如为了诊断、检查或其它目的。如上所述,所述传感器数据182包括来自摄像头112的图像数据312、来自LIDAR单元114的LIDAR数据314、RADAR数据316,例如来自SAR单元116的SAR数据,以及来自IMU118等其它传感器120的其它可能传感器数据318。所述数据312、314、316和318包括捕获或测量的数据,例如,取决于数据类型,所述数据可以是向量、矩阵或标量形式。在所示实施例中,所述图像数据312由相应的输入层322接收,所述LIDAR数据314由相应的输入层324接收,所述RADAR数据316由相应的输入层326接收,所述其它传感器数据318由相应的输入层328接收。
可以为所述神经网络104的所述输入层320的每个节点和所述中间层330和所述输出层350的后续节点设置权重。权重通常是0到1之间的数值,指示一层中节点与后一层中节点之间的连接强度。也可以为所述神经网络104的所述输入层320的每个输入和所述中间层330和所述输出层350的后续节点设置偏移(或偏差)。
确定每个输入层320的输入的标量乘积、其对应权重和偏差系数(如果有)并输出到第一中间层330的对应节点,所述第一中间层330接收所述标量乘积作为输入。将每个标量乘积级联成另一向量,并且确定所述第一中间层330的输入的另一标量乘积、其对应权重和偏差系数(如果有)并输出到第二中间层330的节点,所述第二中间层330接收所述标量乘积作为输入。该过程从每个中间层330到所述输出层350依次重复。
中间层330的数量、所述层320、330和350中每一层的节点数量以及每层的节点之间的连接可能会基于输入(例如传感器数据)和到物理系统(即由车辆105的可控元件确定的车辆控制系统115)的输出在不同实施例之间有所不同。通过下面描述的强化学习过程,确定每个节点的权重和偏差系数(如果有),甚至可能确定所述神经网络104的节点的激活函数,以实现自主停车或自主驾驶等自主操作的最佳性能。
在所示示例中,所述中间层330包括从所述输入层320的节点接收数据的深层332和334以及浅层336和338。所述深层332从输入层332接收图像数据,所述深层334从输入层334接收LIDAR数据,所述浅层336从输入层336接收RADAR数据,所述浅层338从输入层338接收其它传感器数据。所述中间层330还包括与所述输出层350相连接的合并层340。所述合并层340通过级联所述深层332和334以及所述浅层336和338的输出(例如向量)来合并所述深层332和334以及所述浅层336和338的输出,并将结果输出到所述输出层350。尽管在所示实施例中,所述深层332和334以及所述浅层336和338通过所述合并层340间接连接到所述输出层350,但要补充的是,在其它实施例中,除了或代替通过所述合并层340间接连接到所述输出层350,所述深层332和334以及所述浅层336和338可以直接连接到所述输出层350。
所述合并层340是映射φ(s),所述映射φ(s)接受任何状态s作为输入以生成输出到所述神经网络104的最后一层350的向量。所述映射φ(s)是基于状态s的传感器数据的编码状态表示输出。基于表示为π的策略(或策略函数),所述最后一层350的输出包括许多策略值,表示为针对每个动作a的给定状态s的Q(s,a)。所述策略值是所述神经网络104输出的实际值。所述策略函数π由所述输出层350的节点(例如,激活函数、权重和偏差系数)表示。能够通过动作查找表或线性函数从所述输出层350输出的多个策略值Q(s,a)中确定任一给定动作ai的策略值Q(s,ai)。第二映射通过φ(s)以及线性函数或查找表等表格动作,将状态动作对(s,a)映射到实际值Q(s,a)的对应向量。所述第二映射可以用于近似策略迭代(approximate policy iteration,简称API)过程,如下所述。
应理解,所述神经网络104接收环境中所述车辆105的状态作为输入。所述神经网络104对该状态进行编码并输出多个策略值Q(s,a),每个策略值表示在给定状态s下执行给定动作a的策略值Q。这样,通过在所述神经网络104的单个正向传递中查找有最佳结果的动作就能够从所述多个策略值Q(s,a)中确定最佳动作,而不是在所述神经网络104接收状态和动作同时作为输入的情况下通过进行多个正向传递。
每个动作有多个维度。在所描述的示例中,每个动作有三个维度:转向单元152的转向角、节流单元156的节流值和制动单元154的制动值。应理解,在一些场景中,所述转向角、节流值和制动值的值可以为零。在同一时间t,所述状态s不仅包括所述车辆的状态还包括所述环境的状态(例如,所述车辆105相对于所述环境的测量值)。例如,在时间t,所述状态s包括:
·传感器数据182,包括表示安装在所述车辆105上的所有摄像头112的当前视图(即图像)的图像数据312、指示当前LIDAR测量值的LIDAR数据314、
指示当前RADAR测量值的RADAR数据316以及指示传感器测量值的其它传感器数据318,例如来自卫星接收器的当前GNSS数据、当前罗盘读数、
当前IMU读数和速度表的当前速度读数等;
·从当前和/或先前其它传感器数据318中得出的数据,包括从车辆中心到车道轴线的当前距离、当车道不可用时从车辆中心到预定义路径的当前距离、从车辆中心到中心车道线、左车道线和右车道线的当前距离、到其它环境参照物等的当前距离、当前速度或速率(例如,基于当前和先前传感器读数之间GNSS数据的变化)等。
动作选择器360可以用于基于所述输出层350输出的所述策略值Q(s,a)选择最佳动作。误差计算器370用于至少在所述神经网络104的训练期间,计算所述神经网络104的误差(如果有)。
所述输入层320的节点通常没有激活函数。所述输入层320的节点通常只是对输入数据进行简单加权和求和的占位符。所述深层332编码从所述摄像头112接收到的图像数据312,所述深层334编码从所述LIDAR单元114接收到的LIDAR数据314,所述浅层336编码从所述SAR单元116接收到的RADAR数据316,所述浅层338编码从其它传感器120接收到的其它任何传感器数据318。由于处理较简单的输入数据和/或计算(例如RADAR和IMU数据),所述浅层336、338通常只有一个隐藏层。由于处理较复杂的输入数据和/或计算(例如图像和LIDAR数据),所述深层333和334通常具有各种类型的几个隐藏层,例如完全连接层和卷积层。在其它实施例中,所述中间层330可以采用不同配置。
参考图5A,描述本发明一个示例实施例提供的训练神经网络104的示例方法500。所述方法500的至少一部分由处理器执行的软件执行,例如神经网络控制器或车辆控制系统115的处理器102。所述方法500通常离线执行。
在所述方法的步骤502中,响应于操作员(例如人类驾驶员)在各种停车(或驾驶)场景中,例如公路、停车场、交叉口、住宅小区和环岛等,反复停放(或驾驶)车辆105,所述车辆控制系统115获取样本数据集。所述样本数据集D包括许多(si,ai,si+1,ri)形式的元组,其中,si是环境中所述车辆105的当前状态,ai是停放(或驾驶)所述车辆105的操作员为所述当前状态选择的动作,si+1是所选动作ai之后所述环境中所述车辆105的后续状态,ri是在当前状态si下执行所选动作ai的奖励值,ri的值根据奖励函数计算。需要说明的是,所述状态si和si+1基于来自所述环境中所述车辆105的传感器单元125的测量值,所选动作ai是由操作员,例如人类驾驶员,而不是所述神经网络104执行的。在所述样本数据集D中,所述环境中所述车辆105的所述当前状态si、停放(或驾驶)所述车辆105的操作员为所述当前状态选择的所述动作ai以及所选动作ai之后所述环境中所述车辆的所述后续状态si+1是停放(或驾驶)所述车辆105的所述操作员通过所述传感器单元125测量的。
所述样本数据集D,即{(si,ai,si+1,ri)},的所述奖励值ri是表示在所述状态si下所选动作ai的结果的等级或得分的数值。所述样本数据集D可以包括不同数量的元组。在一示例中,元组的数量可以是10000。在另一示例中,元组的数量可以是100000。在又一示例中,元组的数量可以是1000000或更多。所述奖励值是一系列动作,例如样本收集期间停车或驾驶操作中的一系列动作,的所有未来奖励的总和。所述奖励值可以基于与所述一系列动作的最佳性能的接近度。用于计算所述奖励值的所述奖励函数可以是线性的或非线性的。所述奖励函数可以由神经网络设计者定义。在一些实施例中,所述奖励函数可以由公式定义。所述奖励函数可以由表格或矩阵定义。所述车辆控制系统115或其它计算设备收集样本之后,通过所述奖励函数计算所述奖励值。
在步骤504中,使用所述神经网络设计者设置的随机或任意权重初始化所述神经网络104。
在步骤506中,所述神经网络104接收所述样本数据集D,即{(si,ai,si+1,ri)},作为输入。
在步骤510中,所述神经网络104通过表示为Q函数的动作值函数,为所述样本数据集D,即{(si,ai,si+1,ri)},中所有元组(si,ai,si+1,ri)的每个状态动作对si,ai计算多个策略值Q(si,ai)。所述Q函数提供了在给定状态s下执行给定动作a并在此后遵循最佳策略时的预期效用的度量。表示为π的策略是代理人在当前状态选择动作时遵循的规则。学习动作值函数时,可以通过简单地选择每个状态中取值最高的动作来构造最佳策略。所述神经网络104使用Q学习技术预定义或预学习所述Q函数。
在步骤512中,所述神经网络104通过所述Q函数为所述样本数据集D,即{(si,ai,si+1,ri)},中所有元组(si,ai,si+1,ri)的每个后续状态si+1和所有可能动作(a∈A)集中的每个动作计算多个策略值Q(si+1,a)。如上所述,每个动作有三个维度:转向角、节流值和制动值。尽管可能有很多个可能动作,但可能动作的数量是有限的和可确定的。相反,可能状态的数量是无限的。所述神经网络104可以预先确定和提前计算或按需计算所述所有可能动作集。
在步骤514中,生成表示为Q*函数的近似动作值函数,所述近似动作值函数遵循最佳策略函数π近似状态动作对(s,a)的策略值。所述神经网络104基于所述当前状态si和为所述当前状态si选择的动作ai的第一策略值Q(si,ai)集以及所选动作ai之后的所述后续状态si+1的第二策略值Q(si+1,a)集通过近似策略迭代(approximate policy iteration,简称API)过程530生成所述Q*函数,图5B示出了所述近似策略迭代过程530,如下所述。
现参考图5B,在步骤532中,所述神经网络104初始化矩阵A和向量b。在步骤534中,针对所述样本数据集D,即{(si,ai,si+1,ri)}中(si,ai,si+1,ri)形式的元组t,所述神经网络104从所述所有可能动作集中选择使Q(si+1,a)达到最大值的动作a*(a*=argmaxaQ(si+1,a))。
在步骤536中,所述神经网络104通过φ(s)和线性函数或查找表等表格动作从所述神经网络104的输出层生成向量和所述向量表示一个嵌入的特征向量,其对应于实际值Q(s,a)的向量。
在步骤538中,所述神经网络104通过以下公式和使用Q(si,ai)和Q(si+1,a*)更新所述矩阵A和所述向量b的值:
其中,γ是由所述神经网络设计者设置的0到1之间的折扣系数。折扣系数为0时,只考虑当前奖励,而折扣系数接近1时,会强调未来奖励。
在步骤540中,所述神经网络104判断所述样本数据集D中是否还有更多元组未分析。当还有更多元组要处理时,回到步骤534。当没有元组要处理时,进行步骤542,所述神经网络104根据以下公式基于所述矩阵A和所述向量b计算权重向量ω:
ω=-A-1b。(4)
所述权重向量ω表示所述神经网络104的所述输出层350的节点的权重。所述权重向量ω确定后,操作530结束。通过所述API过程学习的所述Q*函数是的线性函数,如下所述。所述Q*函数能够用于生成状态动作对的Q值的近似值。针对输入状态s,可以多次调用通过所述API过程学习的所述Q*函数以生成多个值每个动作有一个值 值可以作为所述神经网络104的训练目标。下面描述了利用所述Q*函数训练所述神经网络104。
在步骤516中,针对所述样本数据集D,即{(si,ai,si+1,ri)},中(si,ai,si+1,ri)形式的元组t,所述神经网络104从所述所有可能动作集中选择使达到最大值的动作
在步骤518中,所述神经网络104将所述神经网络104的训练目标设置为其中,a*是所述所有可能动作集中使达到最大值的动作。
在步骤520中,计算训练误差作为所述训练目标和从所述样本数据集D,即{(si,ai,si+1,ri)},中获得的计算的策略值Q(s,a)之间的差值。
在步骤522中,所述神经网络104将计算的误差作为误差信号反向传输至所述神经网络104的中间层330,即所述神经网络104的深层332和334、浅层336和338、合并层340和输出层350,以更新所述神经网络104的参数(例如权重和偏差系数等),从而减少所述误差。在所描述的实施例中,更新所述神经网络104的参数以最小化所述训练目标,即基于样本数据集的近似Q值(即)),和利用所述样本数据集D获得的对应Q值(即策略值Q(s,a))之间的均方误差(mean square error,简称MSE)。在一些示例中,通过最小均方(leastmean square,简称LMS)算法最小化所述MSE。在一些示例中,所述神经网络104通过所述LMS算法最小化所述训练目标和利用所述样本数据集D获得的对应Q值(即策略值Q(s,a))之间的所述MSE。在一些示例中,利用梯度下降最小化所述MSE。在一些示例中,根据以下公式定义所述MSE:
其中,n是所述样本数据集D中元组的数量,是所述训练目标,Q(si,ai)是所述样本数据集D中对应的状态动作对的策略值,先对所述样本数据集中的状态求和,然后对所有动作求和。
在步骤524中,所述神经网络104判断所述样本数据集D中是否还有更多元组未分析。当还有更多元组要处理时,回到步骤516。当没有元组要处理时,进行步骤526,所述神经网络104递增计数器的值。在第一次迭代中所述计数器的值初始化为1,在步骤516至524的每次迭代中所述计数器的值按1递增。
在步骤528中,所述神经网络104判断当前迭代中所述计数器的值是否小于n,其中,n是要执行的迭代次数,由所述神经网络设计者设置。在一示例中,迭代次数是5。在另一示例中,迭代次数是10。在又一示例中,迭代次数是100。在又一示例中,迭代次数是1000。当前迭代中所述计数器的值小于n时,回到步骤514,重新计算所述Q*函数。当所述计数器的值为n时,神经网络104训练完成,所述方法500结束。应理解,经过多次迭代,所述神经网络104的参数进行了更新以最小化所述训练误差。
所述方法500的输出是训练好的神经网络104,表示为θ。θ是指所述训练好的神经网络104的参数的集合,而ω是指通过所述方法500学习到的所述训练好的神经网络104的输出层350的权重向量。所述神经网络104训练好后,可以用于实时自主操作,例如本文所述的所述车辆105的自主驾驶或自主停车操作,用于选择自主操作中的动作。
下面提供了根据所述方法500训练所述神经网络104的示例算法:
输入:所述样本数据集D={si,ai,si+1,ri}中状态的集合
输出:所述训练好的神经网络θ
使用随机权重初始化所述神经网络104
所述神经网络104的输出层350的输出是Q:为所述样本数据集D,即{si,ai,si+1,ri},中每个状态动作对(si,ai)计算Q(si,ai)
为所述样本数据集D,即{(si,ai,si+1,ri)},中所有元组(si,ai,si+1,ri)和所有可能动作(a∈A)集中的每一个动作计算Q(si,a)
针对t,其中,t=1…n,执行以下操作:
初始化矩阵A和向量b
针对D中的(si,ai,si+1,ri),执行以下操作:
选择a*=argmaxaQ(si+1,a)
从所述神经网络的输出层生成向量和
更新所述矩阵A和所述向量b:
结束
计算权重向量ω=-A-1b
针对D中的(si,ai,si+1,ri),执行以下操作:
选择
对执行梯度下降步骤
结束
结束
参考图6,描述本发明一个示例实施例提供的利用神经网络执行车辆的自主操作(例如,自主停车或自主驾驶)的示例方法600。所述方法600由车辆控制系统115在自主模式下启动,所述自主模式可以响应于来自用户的输入启动,还可以在检测到一个或多个触发时无需来自用户的输入而自动启动。所述方法600可以由处理器执行的软件执行,例如神经网络控制器或所述车辆控制系统115的处理器102。
在步骤602中,所述车辆控制系统115通过传感器110感知车辆的状态和所述车辆105的环境,以获取提供给神经网络104的传感器数据182。所述神经网络104接收从摄像头112接收到的原始输入中获得的图像数据312、从LIDAR单元114接收到的原始输入中获得的LIDAR数据、从SAR单元116接收到的原始输入中获得的RADAR数据以及从其它传感器120获得的测量值中获得的其它传感器数据318。在步骤604中,所述神经网络104使用所述传感器数据182对表示所述环境中所述车辆105的状态s进行编码。
在步骤606中,所述神经网络104从所述车辆控制系统115接收至少一个动作。在一些示例中,从所述车辆控制系统115接收多个动作序列,每个动作序列包括一个或多个动作,表示为a1、a2、……、ak。每个动作a由动作向量定义,所述动作向量包括转向单元152的转向角、节流单元156的节流值和制动单元154的制动值。应理解,在一些场景中,所述转向角、节流值和制动值的值可以为零。
在步骤608中,所述神经网络104利用当前状态s和所述至少一个动作确定所述环境中所述车辆105的至少一个预测后续状态s'。在一些示例中,所述神经网络104利用每个动作序列的动作a1、a2、……、ak中每个动作的所述当前状态确定所述环境中所述车辆105的预测后续状态s'。在此类示例中,在从每个动作序列的所述当前状态s开始执行完k个动作中的每个动作之后,所述神经网络104预测多个状态序列,所述状态序列包括所述车辆105的多个后续状态s'。所述神经网络104利用已编码状态s和来自特定动作序列的第一个动作a1为该动作序列确定所述环境中所述车辆的第一预测后续状态s′ a1。所述神经网络104利用所述第一预测后续状态s′ a1和所述特定动作序列的第二个动作a2确定所述环境中所述车辆的第二预测后续状态s′ a2,并依次类推直到第k个动作,每个动作序列都是如此。
在步骤610中,所述神经网络104基于所述当前状态s并通过确定所述当前状态s与每个可能动作a或每个动作序列(视情况而定)的策略值函数的策略值Q(s,a)评估可能的结果。在一些示例中,所述神经网络104基于所述当前状态和一个或多个预测后续状态s'序列,例如状态序列s″a1,s′ a2,s′ ak,并通过确定多个策略值Q(s,a)(每个动作或每个动作序列(视情况而定)中的每个动作有一个策略值Q(s,a))评估可能的结果。
在步骤612中,所述神经网络104通过选择最大化所述策略函数的值最大化的动作(或动作序列),例如,对应于Q(s,a)最大值的动作(或动作序列),选择预测会得到最佳结果的动作(或动作序列)。
在614中,所述车辆105执行所选动作或所选动作序列a1,a2,…,ak。如上所述,每个动作有多个维度,在所描述的示例中,每个动作包括转向单元152的转向角、节流单元156的节流值和制动单元154的制动值。应理解,在一些场景中,所述转向角、节流值和制动值的值可以为零。
在步骤616中,所述车辆控制系统115判断是否继续所述方法600,即自主模式是否保持开启。所述车辆控制系统115重复步骤602至614直到所述自主模式关闭。
在所述神经网络104远程定位的示例中,所述方法600还包括:向所述神经网络104发送步骤602中传感器单元125获取的所述传感器数据182;从所述神经网络104接收所述车辆控制系统115要执行的所选动作(或动作序列)。当所述神经网络104位于所述车辆105中,例如作为所述车辆控制系统115的一部分,不执行这些步骤。
本发明提供了一种训练神经网络的方法。该方法在训练神经网络执行停车操作等自主操作时尤其有用。在停车操作期间,环境是动态的,经常变化,而且有时变化很大。线性编程和启发式的贪婪局部搜索方法都无法实时解决这些问题,因此不考虑其它排除全局最佳方案的选择或可能方案了。
本发明提供的强化学习提供了一种机制,用于定义可以在动态环境中使用的策略。通过强化学习的模拟用于为给定状态制定策略,为所述状态关联会得出最佳结果的动作。恰当的动作可以是在某种情形中最有效的、最优选的或最合适的动作。因此,可以确定一个最佳策略,以使自主操作(例如停车操作)可以顺利完成。
对于停车操作,可以训练所述神经网络应对许多不同类型的停车场景,例如前进、后退、并行或驾驶等场景。在强化学习过程中,为环境中车辆的每个可能状态制定策略。将状态的恰当动作(例如优选动作)确定为策略的一部分。
本发明的方法可以在通过强化学习实现停车操作的过程中模拟所采取的可能动作,持续优化在自主操作(例如停车或驾驶)期间所述车辆控制系统115要执行的动作的选择。该方法是动态的和迭代的,该方法的步骤不应被视为限于以任何特定顺序执行。
本发明提供了一种方法和系统,所述方法和系统利用神经网络基于来自摄像头、LIDAR、RADAR和其它传感器中的一个或多个的传感器数据以及多个动作,预测观察到的状态的策略值。通过近似策略迭代过程确定状态动作对的目标策略值,所述近似策略迭代过程使用样本数据集和来自所述神经网络的最后一层(即输出层)的特征映射。当所述神经网络训练好时,可以用于同时寻找停车点和执行停车,或者进行其它自主操作。本发明的理念提供了一种基于深度强化学习的基于学习的停车方案。与DQN等其它深度强化学习方法相比,本发明的方法增加了训练过程产生可以用于车辆驾驶辅助和/或车辆自动化的可靠策略的可能性,和DQN相比在更短的时间内提供了这样的策略。至少由于这些原因,相信本发明的方法可以在训练用于执行车辆驾驶辅助和/或车辆自动化时,提供更稳定的车辆控制和性能。
尽管本发明是在自主驾驶或自主停车操作的示例方法中描述的,但是应想到,本文所述方法可以用于其它AI应用以利用神经网络和通过为对象选择动作来预测另一种类型的对象及其环境(可以是真实的或虚拟的)的后续状态。例如,本发明的方法可以用于游戏或其它模拟CGI应用、工业机器人或无人机导航。
此外,应理解,本文所公开的方法和装置可以用于任何车辆之外其它易于形成“状态-动作-后续状态”动态的应用,例如机器人应用。示例包括工业机械、摄影、办公设备、发电和输电。
对于本发明,所描述的用于执行上述方法的软件编码在本领域普通技术人员的范围内。用于执行上述方法的一个或多个相应设备的一个或多个处理器执行的机器可读代码可以存储于机器可读介质中,例如所述车辆控制系统115的所述存储器126或神经网络控制器(未示出)的存储器。本文所述流程图和附图中步骤和/或操作仅出于示例目的。在不脱离本发明的理念的情况下,这些步骤和/或操作可能会有很多变化。例如,可以按照不同的顺序执行所述步骤,或者可以添加、删除或修改所述步骤。
本文还公开了在所公开范围内的所有值和子范围。此外,尽管本文中所公开和示出的系统、设备和过程可能包括特定数量的元件/组件,但是所述系统、设备和组件可以进行修改以包括更多或更少的此类元件/组件。例如,尽管所公开的任何元件/组件可能引用为单数,但是本文中所公开的实施例可以进行修改以包括多个此类元件/组件。本文所描述的主题意在涵盖和包含技术上的所有适当更改。
尽管本发明在方法方面至少部分地进行了描述,但是本领域普通技术人员将理解,本发明也针对用于执行所述方法的至少一些方面和特征的各种组件,无论是通过硬件(DSP、ASIC或FPGA)、软件还是其组合。相应地,本发明的技术方案可以体现在非易失性或非瞬时性机器可读介质(例如光盘、闪存等)中,在其上有形地存储有可执行指令,所述可执行指令使得处理设备(例如车辆控制系统)能够执行本文中所公开的方法的示例。
在不脱离权利要求书的主题的情况下,本发明可以以其它特定形式来体现。所描述的示例实施例在各方面都仅仅是示意性的,而不是限制性的。本发明意在涵盖和包含技术上的所有适当更改。因此,本发明的范围通过所附的权利要求书而不是通过以上描述进行描述。权利要求书的范围不应受所述示例中阐述的实施例的限制,而应给出与所述描述整体一致的最广泛的解释。
Claims (32)
1.一种系统,其特征在于,包括:
处理器;
存储器,耦合至所述处理器,其中,所述存储器存储可执行指令,当所述可执行指令由所述处理器执行时,使得所述处理器执行以下操作:
接收样本数据集D,即{(si,ai,si+1,ri)},其中,si是环境中对象的当前状态,ai是为所述当前状态选择的动作,si+1是所述环境中所述对象的后续状态,ri是在状态si下执行动作ai的奖励值,所述奖励值的值根据奖励函数确定;
将多层神经网络应用于所述样本数据集,其中,所述多层神经网络中每一层包括多个节点,每一层中的每个节点有对应权重,所述神经网络用于:
(i)通过表示为Q函数的动作值函数为所述样本数据集D中的每个状态动作对si,ai生成第一策略值Q(si,ai)集;
(ii)通过所述Q函数为所述样本数据集D中所有元组(si,ai,si+1,ri)的每个后续状态si+1和所有可能动作集中的每个动作生成第二策略值Q(si+1,a)集;
(iii)生成表示为Q*函数的近似动作值函数,其中,基于所述当前状态si和为所述当前状态si选择的所述动作ai的所述第一策略值Q(si,ai)集以及所选动作ai之后的所述后续状态si+1的所述第二策略值Q(si+1,a)集生成所述近似动作值函数;
(iv)通过所述Q*函数为所述神经网络生成训练目标;
(v)计算训练误差作为所述训练目标和所述样本数据集D中对应的状态动作对的策略值Q(si,ai)之间的差值;
(vi)更新所述神经网络的至少一些参数以最小化所述训练误差;
所述神经网络还用于:
接收多个可能动作;
基于所述多个可能动作中每个可能动作的当前状态,确定所述环境中所述对象的预测后续状态,所述对象包括车辆、机器人和无人机;
针对所述多个可能动作中的每个动作,通过根据策略值函数、所述预测后续状态和所述多个可能动作中的所述动作确定策略值,对所述预测后续状态进行评估;
从确定的所述多个可能动作中选择动作,以生成最大策略值。
2.根据权利要求1所述的系统,其特征在于,针对所述样本数据集D中的每个元组(si,ai,si+1,ri)重复操作(iii)至(vi)。
3.根据权利要求1或2所述的系统,其特征在于,所述神经网络用于通过以下方式生成所述Q*函数:
初始化矩阵A和向量b;
针对所述样本数据集D中的每个元组(si,ai,si+1,ri):
从所述所有可能动作集中选择使Q(si+1,a)达到最大值的动作a*(a*=argmaxaQ(si+1,a));通过φ(s)和查找表动作从所述神经网络的输出层生成向量和
通过以下公式更新所述矩阵A和所述向量b的值:
其中,γ是0到1之间的折扣系数;
根据以下公式计算权重向量ω:
ω=-A-1b。
4.根据权利要求3所述的系统,其特征在于,所述权重向量ω表示所述神经网络的所述输出层的节点的权重。
5.根据权利要求1至4任一项所述的系统,其特征在于,所述神经网络用于通过以下方式生成所述训练目标:
从所述所有可能动作集中选择使达到最大值的动作
将所述神经网络的所述训练目标设置为
6.根据权利要求1至5任一项所述的系统,其特征在于,通过梯度下降更新所述神经网络的所述至少一些参数,所述梯度下降最小化所述训练目标和所述样本数据集D中对应的状态动作对的策略值Q(si,ai)之间的均方误差(mean square error,简称MSE)。
7.根据权利要求6所述的系统,其特征在于,通过最小均方(least mean square,简称LMS)算法最小化所述MSE。
8.根据权利要求6所述的系统,其特征在于,根据以下公式定义所述MSE:
其中,n是所述样本数据集D中元组的数量,是所述训练目标,Q(si,ai)是所述样本数据集D中对应的状态动作对的策略值,先对所述样本数据集中的状态求和,然后对所有动作求和。
9.根据权利要求1至8任一项所述的系统,其特征在于,通过摄像头、LIDAR和RADAR中的一个或多个感知所述环境中所述对象的所述状态,通过图像、LIDAR测量值和RADAR测量值中的一个或多个描述所述环境中所述对象的所述当前状态。
10.根据权利要求1至9任一项所述的系统,其特征在于,所述动作包括转向单元的转向角、节流单元的节流值和制动单元的制动值中的任意一个或组合。
11.一种训练神经网络的方法,其特征在于,包括:
(i)通过表示为Q函数的动作值函数为样本数据集D,即{(si,ai,si+1,ri)}中的每个状态动作对si,ai生成第一策略值Q(si,ai)集,其中,si是环境中对象的当前状态,ai是为所述当前状态选择的动作,si+1是所述环境中所述对象的后续状态,ri是在状态si下执行动作ai的奖励值,所述奖励值的值根据奖励函数确定;
(ii)通过所述Q函数为所述样本数据集D中所有元组(si,ai,si+1,ri)的每个后续状态si+1和所有可能动作集中的每个动作生成第二策略值Q(si+1,a)集;
(iii)生成表示为Q*函数的近似动作值函数,其中,基于所述当前状态si和为所述当前状态si选择的所述动作ai的所述第一策略值Q(si,ai)集以及所选动作ai之后的所述后续状态si+1的所述第二策略值Q(si+1,a)集生成所述近似动作值函数;
(iv)通过所述Q*函数为所述神经网络生成训练目标;
(v)计算训练误差作为所述训练目标和所述样本数据集D中对应的状态动作对的策略值Q(si,ai)之间的差值;
(vi)更新所述神经网络的至少一些参数以最小化所述训练误差;
所述神经网络还用于:
接收多个可能动作;
基于所述多个可能动作中每个可能动作的当前状态,确定所述环境中所述对象的预测后续状态,所述对象包括车辆、机器人和无人机;
针对所述多个可能动作中的每个动作,通过根据策略值函数、所述预测后续状态和所述多个可能动作中的所述动作确定策略值,对所述预测后续状态进行评估;
从确定的所述多个可能动作中选择动作,以生成最大策略值。
12.根据权利要求11所述的方法,其特征在于,针对所述样本数据集D中的每个元组(si,ai,si+1,ri)重复操作(iii)至(vi)。
13.根据权利要求11或12所述的方法,其特征在于,所述生成Q*函数包括:
初始化矩阵A和向量b;
针对所述样本数据集D中的每个元组(si,ai,si+1,ri):
从所述所有可能动作集中选择使Q(si+1,a)达到最大值的动作a*(a*=argmaxaQ(si+1,a));通过φ(s)和查找表动作从所述神经网络的输出层生成向量和
通过以下公式更新所述矩阵A和所述向量b的值:
其中,γ是0到1之间的折扣系数;
根据以下公式计算权重向量ω:
ω=-A-1b。
14.根据权利要求13所述的方法,其特征在于,所述权重向量ω表示所述神经网络的所述输出层的节点的权重。
15.根据权利要求11至14任一项所述的方法,其特征在于,所述生成训练目标包括:
从所述所有可能动作集中选择使达到最大值的动作
将所述神经网络的所述训练目标设置为
16.根据权利要求11至15任一项所述的方法,其特征在于,通过梯度下降更新所述神经网络的所述至少一些参数,所述梯度下降最小化所述训练目标和所述样本数据集D中对应的状态动作对的策略值Q(si,ai)之间的均方误差(mean square error,简称MSE)。
17.根据权利要求16所述的方法,其特征在于,通过最小均方(least mean square,简称LMS)算法最小化所述MSE。
18.根据权利要求16所述的方法,其特征在于,根据以下公式定义所述MSE:
其中,n是所述样本数据集D中元组的数量,是所述训练目标,Q(si,ai)是所述样本数据集D中对应的状态动作对的策略值,先对所述样本数据集中的状态求和,然后对所有动作求和。
19.根据权利要求11至18任一项所述的方法,其特征在于,通过摄像头、LIDAR和RADAR中的一个或多个感知所述环境中所述对象的所述状态,通过图像、LIDAR测量值和RADAR测量值中的一个或多个描述所述环境中所述对象的所述当前状态。
20.根据权利要求11至19任一项所述的方法,其特征在于,所述动作包括转向单元的转向角、节流单元的节流值和制动单元的制动值中的任意一个或组合。
21.一种非瞬时性机器可读介质,有形地存储由计算设备的处理器执行的可执行指令,其特征在于,当所述可执行指令时由所述计算设备的所述处理器执行时,使得所述计算设备执行权利要求11至20任一项所述的方法。
22.一种车辆控制系统,其特征在于,包括:
多个传感器,用于感知对象的当前状态和所述对象位于的环境;
处理器,耦合至所述多个传感器,其中,所述处理器用于:
根据从所述多个传感器接收到的传感器数据,对表示所述环境中车辆的当前状态进行编码;神经网络,耦合至所述处理器,其中,根据权利要求11至20任一项所述的方法训练所述神经网络,所述神经网络用于:
接收多个可能动作;
基于所述多个可能动作中每个可能动作的当前状态,确定所述环境中所述车辆的预测后续状态;
针对所述多个可能动作中的每个动作,通过根据策略值函数、所述预测后续状态和所述多个可能动作中的所述动作确定策略值,对所述预测后续状态进行评估;
从确定的所述多个可能动作中选择动作,以生成最大策略值。
23.根据权利要求22所述的车辆控制系统,其特征在于,所述车辆控制系统使所述车辆执行所选动作。
24.根据权利要求22或23所述的车辆控制系统,其特征在于,每个可能动作由动作向量定义,所述动作向量包括转向单元的转向角、节流单元的节流值和制动单元的制动值。
25.根据权利要求22至24任一项所述的车辆控制系统,其特征在于,所述策略值函数最大化与所述预测后续状态相关的奖励。
26.根据权利要求22至25任一项所述的车辆控制系统,其特征在于,所述神经网络用于:接收多个可能动作序列,其中,每个可能动作序列包括一个或多个动作;
针对每个可能动作序列:
根据所述可能动作序列中每个可能动作的所述当前状态,确定所述环境中所述车辆的一个或多个预测后续状态;
通过根据策略值函数、所述预测后续状态和所述可能动作序列中的所述动作确定策略值,对所述一个或多个预测后续状态的每个预测后续状态进行评估;
从确定的所述多个可能动作序列中选择动作序列,以生成最大策略值。
27.根据权利要求26所述的车辆控制系统,其特征在于,所述神经网络用于:
针对每个可能动作序列,在执行完所述可能动作序列中的每个可能动作序列之后,预测多个状态序列,其中,每个状态序列包括所述环境中所述车辆的多个预测后续状态。
28.根据权利要求26所述的车辆控制系统,其特征在于,状态序列中的每个预测后续状态基于先前观察到或预测到的状态和所述可能动作序列中的可能动作。
29.根据权利要求26所述的车辆控制系统,其特征在于,所述策略值函数基于每个可能动作序列的一个或多个预测后续状态中的每个预测后续状态最大化奖励。
30.根据权利要求26所述的车辆控制系统,其特征在于,所述动作序列是停车操作或驾驶操作。
31.根据权利要求26所述的车辆控制系统,其特征在于,所述奖励基于与所述动作序列的最佳性能的接近度。
32.一种执行车辆的自主操作的方法,其特征在于,包括:
根据从多个传感器接收到的传感器数据,对表示环境中车辆的当前状态进行编码;
在根据权利要求11至20任一项所述的方法训练的神经网络中:
接收多个可能动作;
基于所述多个可能动作中每个可能动作的当前状态,确定所述环境中所述车辆的预测后续状态;
针对所述多个可能动作中的每个动作,通过根据策略值函数、所述预测后续状态和所述多个可能动作中的所述动作确定策略值,对所述预测后续状态进行评估;
从确定的所述多个可能动作中选择动作,以生成最大策略值。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/873,609 | 2018-01-17 | ||
US15/873,609 US20190220737A1 (en) | 2018-01-17 | 2018-01-17 | Method of generating training data for training a neural network, method of training a neural network and using neural network for autonomous operations |
US16/248,543 | 2019-01-15 | ||
US16/248,543 US11688160B2 (en) | 2018-01-17 | 2019-01-15 | Method of generating training data for training a neural network, method of training a neural network and using neural network for autonomous operations |
PCT/CN2019/072049 WO2019141197A1 (en) | 2018-01-17 | 2019-01-16 | Method of generating training data for training neural network, method of training neural network and using neural network for autonomous operations |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111226235A CN111226235A (zh) | 2020-06-02 |
CN111226235B true CN111226235B (zh) | 2024-04-09 |
Family
ID=67212924
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980005126.9A Active CN111226235B (zh) | 2018-01-17 | 2019-01-16 | 神经网络的生成方法、训练方法和使用方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11688160B2 (zh) |
CN (1) | CN111226235B (zh) |
WO (1) | WO2019141197A1 (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102016213495A1 (de) * | 2016-07-22 | 2018-01-25 | Robert Bosch Gmbh | Fahrassistenzverfahren, Fahrassistenzsystem und Fahrzeug |
US10695911B2 (en) * | 2018-01-12 | 2020-06-30 | Futurewei Technologies, Inc. | Robot navigation and object tracking |
US10990096B2 (en) * | 2018-04-27 | 2021-04-27 | Honda Motor Co., Ltd. | Reinforcement learning on autonomous vehicles |
WO2020009139A1 (ja) * | 2018-07-04 | 2020-01-09 | 株式会社Preferred Networks | 学習方法、学習装置、学習システム及びプログラム |
US20200241542A1 (en) * | 2019-01-25 | 2020-07-30 | Bayerische Motoren Werke Aktiengesellschaft | Vehicle Equipped with Accelerated Actor-Critic Reinforcement Learning and Method for Accelerating Actor-Critic Reinforcement Learning |
US10817777B2 (en) * | 2019-01-31 | 2020-10-27 | StradVision, Inc. | Learning method and learning device for integrating object detection information acquired through V2V communication from other autonomous vehicle with object detection information generated by present autonomous vehicle, and testing method and testing device using the same |
GB201912145D0 (en) * | 2019-08-23 | 2019-10-09 | Five Ai Ltd | Performance testing for robotic systems |
CN110865403B (zh) * | 2019-10-18 | 2024-03-05 | 尚元智行(宁波)科技有限公司 | 一种基于神经网络预学习和轮式里程计融合的定位方法 |
JP6744598B1 (ja) * | 2019-10-18 | 2020-08-19 | トヨタ自動車株式会社 | 車両用制御システム、車両用制御装置、および車両用学習装置 |
CN111275170B (zh) * | 2020-01-19 | 2023-11-24 | 腾讯科技(深圳)有限公司 | 一种模型训练方法和相关装置 |
CN111340184B (zh) * | 2020-02-12 | 2023-06-02 | 北京理工大学 | 基于径向基函数的可变形反射镜面形控制方法及装置 |
WO2020143848A2 (en) * | 2020-04-02 | 2020-07-16 | Alipay (Hangzhou) Information Technology Co., Ltd. | Determining action selection policies of an execution device |
JP7365967B2 (ja) * | 2020-05-27 | 2023-10-20 | 株式会社 日立産業制御ソリューションズ | 行動選択システム及び行動選択方法 |
DE102020210465A1 (de) * | 2020-08-18 | 2022-02-24 | Volkswagen Aktiengesellschaft | Verfahren und Vorrichtung zum Unterstützen einer Manöverplanung für ein zumindest teilautomatisiert fahrendes Fahrzeug oder einen Roboter |
CN112113566B (zh) * | 2020-09-24 | 2022-04-08 | 电子科技大学 | 一种基于神经网络的惯性导航数据修正方法 |
US20220097690A1 (en) * | 2020-09-30 | 2022-03-31 | Toyota Motor Engineering & Manufacturing North America, Inc. | Optical sense-compute solution for real-time navigation involving multiple vehicles |
CN112861269B (zh) * | 2021-03-11 | 2022-08-30 | 合肥工业大学 | 一种基于深度强化学习优先提取的汽车纵向多态控制方法 |
GB202106969D0 (en) * | 2021-05-14 | 2021-06-30 | Samsung Electronics Co Ltd | Method and apparatus for improving model efficiency |
CN113612692B (zh) * | 2021-08-11 | 2022-06-07 | 西安电子科技大学 | 基于dqn算法的集中式光片上网络自适应路由规划方法 |
CN113872198B (zh) * | 2021-09-29 | 2022-09-13 | 电子科技大学 | 一种基于强化学习方法的主动配电网故障恢复方法 |
CN116701888B (zh) * | 2023-08-09 | 2023-10-17 | 国网浙江省电力有限公司丽水供电公司 | 清洁能源企业的辅助模型数据处理方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105137967A (zh) * | 2015-07-16 | 2015-12-09 | 北京工业大学 | 一种深度自动编码器与q学习算法相结合的移动机器人路径规划方法 |
CN107367929A (zh) * | 2017-07-19 | 2017-11-21 | 北京上格云技术有限公司 | 更新q值矩阵的方法、存储介质和终端设备 |
CN108027897A (zh) * | 2015-07-24 | 2018-05-11 | 渊慧科技有限公司 | 利用深度强化学习的连续控制 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69904181D1 (de) | 1998-06-23 | 2003-01-09 | Intellix As Frederiksberg | Klassifizierungssystem und -verfahren mit n-tuple- oder ram-basiertem neuralem netzwerk |
US7113636B2 (en) | 2002-08-30 | 2006-09-26 | Lockheed Martin Corporation | Method and computer program product for generating training data for a new class in a pattern recognition classifier |
US8374974B2 (en) | 2003-01-06 | 2013-02-12 | Halliburton Energy Services, Inc. | Neural network training data selection using memory reduced cluster analysis for field model development |
US8626565B2 (en) | 2008-06-30 | 2014-01-07 | Autonomous Solutions, Inc. | Vehicle dispatching method and system |
US20130325774A1 (en) * | 2012-06-04 | 2013-12-05 | Brain Corporation | Learning stochastic apparatus and methods |
US9679258B2 (en) | 2013-10-08 | 2017-06-13 | Google Inc. | Methods and apparatus for reinforcement learning |
US20170032245A1 (en) * | 2015-07-01 | 2017-02-02 | The Board Of Trustees Of The Leland Stanford Junior University | Systems and Methods for Providing Reinforcement Learning in a Deep Learning System |
US20170061283A1 (en) * | 2015-08-26 | 2017-03-02 | Applied Brain Research Inc. | Methods and systems for performing reinforcement learning in hierarchical and temporally extended environments |
US9443192B1 (en) | 2015-08-30 | 2016-09-13 | Jasmin Cosic | Universal artificial intelligence engine for autonomous computing devices and software applications |
US20170076199A1 (en) | 2015-09-14 | 2017-03-16 | National Institute Of Information And Communications Technology | Neural network system, and computer-implemented method of generating training data for the neural network |
EP3400419A2 (en) * | 2016-01-05 | 2018-11-14 | Mobileye Vision Technologies Ltd. | Trained navigational system with imposed constraints |
US20170293844A1 (en) | 2016-04-06 | 2017-10-12 | Massachusetts Institute Of Technology | Human-machine collaborative optimization via apprenticeship scheduling |
US10460747B2 (en) | 2016-05-10 | 2019-10-29 | Google Llc | Frequency based audio analysis using neural networks |
CN107168303A (zh) * | 2017-03-16 | 2017-09-15 | 中国科学院深圳先进技术研究院 | 一种汽车的自动驾驶方法及装置 |
CN107229973B (zh) * | 2017-05-12 | 2021-11-19 | 中国科学院深圳先进技术研究院 | 一种用于车辆自动驾驶的策略网络模型的生成方法及装置 |
-
2019
- 2019-01-15 US US16/248,543 patent/US11688160B2/en active Active
- 2019-01-16 CN CN201980005126.9A patent/CN111226235B/zh active Active
- 2019-01-16 WO PCT/CN2019/072049 patent/WO2019141197A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105137967A (zh) * | 2015-07-16 | 2015-12-09 | 北京工业大学 | 一种深度自动编码器与q学习算法相结合的移动机器人路径规划方法 |
CN108027897A (zh) * | 2015-07-24 | 2018-05-11 | 渊慧科技有限公司 | 利用深度强化学习的连续控制 |
CN107367929A (zh) * | 2017-07-19 | 2017-11-21 | 北京上格云技术有限公司 | 更新q值矩阵的方法、存储介质和终端设备 |
Also Published As
Publication number | Publication date |
---|---|
US11688160B2 (en) | 2023-06-27 |
CN111226235A (zh) | 2020-06-02 |
WO2019141197A1 (en) | 2019-07-25 |
US20190220744A1 (en) | 2019-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111226235B (zh) | 神经网络的生成方法、训练方法和使用方法 | |
CN111542836B (zh) | 一种使用神经网络为对象选择动作的方法 | |
WO2019140772A1 (en) | Method of generating training data for training a neural network, method of training a neural network and using neural network for autonomous operations | |
US10997491B2 (en) | Method of prediction of a state of an object in the environment using an action model of a neural network | |
US11346950B2 (en) | System, device and method of generating a high resolution and high accuracy point cloud | |
CN110366710B (zh) | 用于控制自动驾驶车辆操作以确定规划路径的规划系统和方法 | |
US11694356B2 (en) | Methods and systems for joint pose and shape estimation of objects from sensor data | |
WO2021004437A1 (en) | Method and system for predictive control of vehicle using digital images | |
EP3835908B1 (en) | Automatic driving method, training method and related apparatuses | |
US20200363800A1 (en) | Decision Making Methods and Systems for Automated Vehicle | |
US11110917B2 (en) | Method and apparatus for interaction aware traffic scene prediction | |
US20200402246A1 (en) | Method and apparatus for predicting depth completion error-map for high-confidence dense point-cloud | |
CN107450593A (zh) | 一种无人机自主导航方法和系统 | |
CN111301425A (zh) | 用于自动驾驶车辆的利用动态模型的有效最优控制 | |
CN111208814B (zh) | 用于自动车辆的、利用动态模型的、基于记忆的最优运动规划 | |
CN113063425B (zh) | 车辆定位方法、装置、电子设备及存储介质 | |
US11226206B2 (en) | Electronic apparatus and method for implementing simultaneous localization and mapping (SLAM) | |
CN115187952A (zh) | 一种车道线检测方法、装置、电子设备及存储介质 | |
US20230085296A1 (en) | Systems and methods for predicting trajectories of multiple vehicles | |
WO2021052383A1 (en) | Methods and systems for observation prediction in autonomous vehicles | |
KR102368734B1 (ko) | 드론 및 드론 제어 방법 | |
EP4313713A1 (en) | Method, system, and computer program product for iterative warping of maps for autonomous vehicles and simulators | |
KR20230124835A (ko) | 차량용 전자 장치 및 그 동작 방법 | |
CN117769511A (zh) | 用于概率滤波的对象检测的时间去相关的系统和方法 | |
CN118397203A (zh) | 室内俯视建图多无人机仿真方法及装置 |
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 |