WO2017189859A1 - Methods and apparatus for pruning experience memories for deep neural network-based q-learning - Google Patents

Methods and apparatus for pruning experience memories for deep neural network-based q-learning Download PDF

Info

Publication number
WO2017189859A1
WO2017189859A1 PCT/US2017/029866 US2017029866W WO2017189859A1 WO 2017189859 A1 WO2017189859 A1 WO 2017189859A1 US 2017029866 W US2017029866 W US 2017029866W WO 2017189859 A1 WO2017189859 A1 WO 2017189859A1
Authority
WO
WIPO (PCT)
Prior art keywords
experience
experiences
robot
memory
action
Prior art date
Application number
PCT/US2017/029866
Other languages
French (fr)
Inventor
Matthew Luciw
Original Assignee
Neurala, Inc.
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 Neurala, Inc. filed Critical Neurala, Inc.
Priority to EP17790438.0A priority Critical patent/EP3445539A4/en
Priority to KR1020187034384A priority patent/KR20180137562A/en
Priority to JP2018556879A priority patent/JP2019518273A/en
Priority to CN201780036126.6A priority patent/CN109348707A/en
Publication of WO2017189859A1 publication Critical patent/WO2017189859A1/en
Priority to US16/171,912 priority patent/US20190061147A1/en

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/0265Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion
    • G05B13/027Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion using neural networks only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/008Artificial life, i.e. computing arrangements simulating life based on physical entities controlled by simulated intelligence so as to replicate intelligent life forms, e.g. based on robots replicating pets or humans in their appearance or behaviour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • 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
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • 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
    • G06N3/084Backpropagation, e.g. using gradient descent

Definitions

  • an agent interacts with an environment. During the course of its interactions with the environment, the agent collects experiences.
  • a neural network associated with the agent can use these experiences to learn a behavior policy. That is, the neural network that is associated with or controls the agent can use the agent's collection of experiences to learn how the agent should act in the environment.
  • the agent stores the collected experiences in a memory, either locally or connected via a network. Storing all experiences to train a neural network associated with the agent can prove useful in theory. However, hardware constraints make storing all of the experiences impractical or even impossible as the number of experiences grows.
  • Pruning experiences stored in the agent's memory can relieve constraints on collecting and storing experiences. But naive pruning, such as weeding out old experiences in a first-in first-out manner, can lead to "catastrophic forgetting." Catastrophic forgetting means that new learning can cause previous learning to be undone and is caused by the distributed nature of backpropagation-based learning. Due to catastrophic forgetting, continual re-training of experiences is necessary to prevent the neural network from "forgetting" how to respond to the situations represented by those experiences.
  • Embodiments of the present technology include methods for generating an action for a robot.
  • An example computer-implemented method comprises collecting a first experience for the robot.
  • the first experience represents a first state of the robot at a first time, a first action taken by the robot at the first time, a first reward received by the robot in response to the first action, and a second state of the robot in response to the first action at a second time after the first time.
  • a degree of similarity between the first experience and plurality of experiences can be determined.
  • the plurality of experiences can be stored in a memory for the robot.
  • the method also comprises pruning the plurality of experiences in the memory based on the degree of similarity between the first experience and the plurality of experiences to form a pruned plurality of experiences stored in the memory.
  • a neural network associated with the robot can be trained with the pruned plurality of experiences and a second action for the robot can be generated using the neural network.
  • the pruning further comprises computing a distance from the first experience for each experience in the plurality of experiences. For each experience in the plurality of experiences, the distance to another distance of that experience from each other experience in the plurality of experiences can be compared. A second experience can be removed from the memory based on the comparison. The second experience can be at least one of the first experience and an experience from the plurality of experiences. The second experience can be removed from the memory based on a probability that the distance of the second experience from the first experience and each experience in the plurality of experiences is less than a user-defined threshold.
  • the pruning can further include ranking the first experience and each experience in the plurality of experiences.
  • Ranking the first experience and each experience in the plurality of experiences can include creating a plurality of clusters based at least in part on synaptic weights and automatically discarding the first experience upon determining that the first experience fits one of the plurality of clusters.
  • the first experience and each experience in the plurality of experiences can be encoded.
  • the encoded experiences can be compared to the plurality of clusters.
  • the neural network generates an output at a first input state based at least in part on the pruned plurality of experiences.
  • the pruned plurality of experiences can include a diverse set of states of the robot.
  • generating the second action for the robot can include determining that the robot is in the first state and selecting the second action to be different than the first action.
  • the method can also comprise collecting a second experience for the robot.
  • the second experience represents a second state of the robot, the second action taken by the robot in response to the second state, a second reward received by the robot in response to the second action, and a third state of the robot in response to the second action.
  • a degree of similarity between the second experience and the pruned plurality of experiences can be determined.
  • the method can also comprise pruning the pruned plurality of experiences in the memory based on the degree of similarity between the second experience and the pruned plurality of experiences.
  • An example system for generating a second action for a robot comprises an interface to collect a first experience for the robot.
  • the first experience represents a first state of the robot at a first time, a first action taken by the robot at the first time, a first reward received by the robot in response to the first action, and a second state of the robot in response to the first action at a second time after the first time.
  • the system also comprises a memory to store at least one of a plurality of experiences and a pruned plurality of experiences for the robot.
  • the system also comprises a processor that is in digital communication with the interface and the memory. The processor can determine a degree of similarity between the first experience and the plurality of experiences stored in the memory.
  • the processor can prune the plurality of experiences in the memory based on the degree of similarity between the first experience and the plurality of experiences to form the pruned plurality of experiences.
  • the memory can be updated by the processor to store the pruned plurality of experiences.
  • the processor can train a neural network associated with the robot with the pruned plurality of experiences.
  • the processor can generate the second action for the robot using the neural network.
  • the system can further comprise a cloud brain that is in digital communication with the processor and the robot to transmit the second action to the robot.
  • the processor is configured to compute a distance from the first experience for each experience in the plurality of experiences.
  • the processor can compare the distance to another distance of that experience from each other experience in the plurality of experiences for each experience in the plurality of experiences.
  • a second experience can be removed from the memory via the processor based on the comparison.
  • the second experience can be at least one of the first experience and an experience from the plurality of experiences.
  • the processor can be configured to remove the second experience from the memory based on a probability
  • the processor can also be configured to prune the memory based on ranking the first experience and each experience in the plurality of experiences.
  • the processor can create a plurality of clusters based at least in part on synaptic weights, rank the first experience and the plurality of experiences based on the plurality of clusters, and can automatically discard the first experience upon determination that the first experience fits one of the plurality of clusters.
  • the processor can encode each experience in the plurality of experiences, encode the first experience, and compare the encoded experiences to the plurality of clusters.
  • the neural network can generate an output at a first input state based at least in part on the pruned plurality of experiences.
  • An example computer-implemented method for updating a memory comprises receiving a new experience from a computer-based application.
  • the memory stores a plurality of experiences received from the computer-based application.
  • the method also comprises determining a degree of similarity between the new experience and the plurality of experiences.
  • the new experience can be added based on the degree of similarity.
  • At least one of the new experience and an experience from the plurality of experiences can be removed based on the degree of similarity.
  • the method comprises sending an updated version of the plurality of experiences to the computer-based application.
  • Embodiments of the present technology include method for improving sample queue management in deep reinforcement learning systems that use experience replay to boost their learning. More particularly, the present technology involves efficiently and effectively training neural networks, deep networks, and in general optimizing learning in parallel distributed systems of equations controlling autonomous cars, drones, or other robots in real time.
  • the present technology can accelerate and improve convergence in reinforcement learning in such systems, namely and more so as the size of the experience queue decreases. More particularly, the present technology involves sampling of the queue for experience replaying in neural network and deep network systems for better selecting the data samples to replay to the system during the so-called "experience replay.”
  • the present technology is useful for, but is not limited to, neural network systems controlling movement, motors, and steering commands in self-driving cars, drones, ground robots, and underwater robots, or in any resource-limited device that controls online and real-time reinforcement learning.
  • FIG. 1 is a flow diagram depicting actions, states, responses, and rewards that form an experience for an agent.
  • FIG. 2 is a flow diagram depicting a neural network operating in feedforward mode, e.g., used for the greedy behavior policy of an agent.
  • FIG. 3 is a flow diagram depicting an experience replay memory, which new experiences are added to, and from which a sample of experiences are drawn with which to train a neural network.
  • FIG. 4 shows flow diagrams depicting three dissimilarity-based pruning processes for storing experiences in a memory.
  • FIG. 5 illustrates an example match-based pruning process for storing experiences in a memory for an agent.
  • FIG. 6 is a flow diagram depicting an alternative representation of the pruning process in FIG. 5.
  • FIG. 7 is a system diagram of a system that uses deep reinforcement learning and experience replay from a memory storing a pruned experience queue.
  • FIG. 8 illustrates a self-driving car that acquires experiences with a camera, LIDAR, and/or other data sources, uses pruning to curate experiences stored in a memory, and deep reinforcement learning and experience replay of the pruned experiences to improve self-driving performance.
  • the present technology provides ways to selectively replace experiences in a memory by determining a degree of similarity between an incoming experience and the experiences already stored in the memory. As a result, old experiences that may contribute towards learning are not forgotten and experiences that are highly correlated may be removed to make space for dissimilar/more varied experiences in the memory.
  • the present technology is useful for, but is not limited to, neural network systems that control movements, motors, and steering commands in self-driving cars, drones, ground robots, and underwater robots.
  • experiences characterizing speed and steering angle for obstacles encountered along a path can be collected dynamically. These experiences can be stored in a memory. As new experiences are collected, a processor determines a degree of similarity between the new experience and the previously stored experiences.
  • the processor prunes (removes) a similar experience from the memory (e.g., one of the experiences relating to obstacle A) and inserts the new experience relating to obstacle B.
  • the neural network for the self-driving car is trained based on the experiences in the pruned memory, including the new experience about obstacle B.
  • the memory is pruned based on experience similarity, can be small enough to sit "on the edge" - e.g., on the agent, which may be a self-driving car, drone, or robot - instead of being located remotely and connected to the agent via a network connection. And because the memory is on the edge, it can be used to train the agent on the edge. This reduces or eliminates the need for a network connection, enhancing the reliability and robustness of both experience collection and neural network training.
  • These memories may be harvested as desired (e.g., periodically, when upstream bandwidth is available, etc.) and aggregated at a server. The aggregated data may be sampled and distributed to existing and/or new agents for better performance at the edge.
  • the present technology can also be useful for video games and other simulated environments.
  • agent behavior in video games can be developed by collecting and storing experiences for agents in the game while selectively pruning the memory based on a degree of similarity.
  • learning from vision involves experiences that include high-dimensional images, and so a large amount of storage can be saved using the present technology.
  • Optimally storing a sample of experiences in the memory can improve and accelerate convergence in reinforcement learning, especially learning on resource-limited devices "at the edge".
  • the present technology provides inventive methods for faster learning while implementing techniques for using less memory. Therefore, using the present technology a smaller memory size can be used to achieve a given learning performance goal.
  • FIG. 1 is a flow diagram depicting actions, states, responses, and rewards that form an experience 100 for an agent.
  • the agent observes a (first) state st-i at a (first) time t-1.
  • the agent may observe this state with an image sensor, microphone, antenna, accelerometer, gyroscope, or any other suitable sensor. It may read settings on a clock, encoder, actuator, or navigation unit (e.g., an inertial measurement unit).
  • the data representing the first state can include information about the agent's environment, such as pictures, sounds, or time. It can also include information about the agent, including its speed, heading, internal state (e.g., battery life), or position.
  • the agent takes an action ⁇ 3 ⁇ 4-i (e.g., at 104).
  • This action may involve actuating a wheel, rotor, wing flap, or other component that controls the agent's speed, heading, orientation, or position.
  • the action may involve changing the agent's internal settings, such as putting certain components into a sleep mode to conserve battery life.
  • the action may affect the agent's environment and/or objects within the environment, for example, if the agent is in danger of colliding with one of those objects. Or it may involve acquiring or transmission data, e.g., taking a picture and transmitting it to a server.
  • the agent receives a reward m for the action at-i.
  • the reward may be predicated on a desired outcome, such as avoiding an obstacle, conserving power, or acquiring data. If the action yields the desired outcome (e.g., avoiding the obstacle), the reward is high; otherwise, the reward may be low.
  • the reward can be binary or may fall on or within a range of values.
  • the agent observes a following (second) state St.
  • This state stis observed at a following (second) time t.
  • the state st-i, action reward and the following state st collectively form an experience et 100 at time t.
  • the agent has observed a state taken action gotten reward rt-i and observed outcome state St.
  • the observed state action and observed outcome state A collectively form an
  • RL Reinforcement Learning
  • an agent collects experiences as it interacts with its environment and tries to learn how to act such that it gets as much reward as possible.
  • P(a ⁇ s)
  • an optimal (desired) behavior policy corresponds to the optimal value function, such as the action-value function, typically denoted Q,
  • is a discount factor that controls the influence of temporally distant outcomes on the action-value function.
  • Q* (s, a) assigns a value to any state action pair. If Q* is known, to follow the associated optimal behavior policy, the agent then just has to take the action with the highest value for each current observation s.
  • Deep Neural Networks can be used to approximate the optimal action-value functions (the Q* function) of reinforcement learning agents with high-dimensional state inputs, such as raw pixels of video.
  • the action-value function Q(s, a; ⁇ ) ⁇ Q* (s, a) is parameterized by the network parameters ⁇ (such as the weights).
  • FIG. 2 is a flow diagram depicting a neural network 200 that operates as the behavior policy ⁇ in the feedforward mode.
  • the neural network 200 Given an input state 202, the neural network 200 outputs a vector of action values 204 (e.g., braking and steering values for a self-driving car) via a set of Q-values associated with potential actions.
  • This vector is computed using neural network weights that are set or determined by training the neural network with data representing simulated or previously acquired experiences.
  • the Q-values can be converted into probabilities through standard methods (e.g., parameterized softmax), and then to actions 204.
  • the feedforward mode is how the agent gets the Q-values for potential actions, and how it chooses the most valuable actions.
  • the network is trained, via backpropagation, to learn (to approximate) the optimal action- value function by converting the agent's experiences into training samples (x, y), where x is the network input and y are the network targets.
  • the targets ⁇ are set to maintain the consistency,
  • the targets can be set to
  • Eq. 3 can be improved by introducing a second, target network, with parameters 9 ⁇ , which is used to find the most valuable actions (and their values), but is not necessarily updated incrementally. Instead, another network (the "online" network) has its parameters updated.
  • the online network parameters ⁇ replaces the target network parameters ⁇ ⁇ every ⁇ time steps.
  • Double DQN decouples the selection and evaluation, as follows:
  • Decoupled selection and evaluation reduces the chances that the max operator will use the same values to both select and evaluate an action, which can cause a biased overestimation of values. In practice, it leads to accelerated convergence rates and better eventual policies compared to standard DQN.
  • back-propagation-trained neural networks should draw training samples in an i. i.d. fashion.
  • the samples are collected as the agent interacts with an environment, so the samples are highly biased if they are trained in the order they arrive.
  • a second issue is, due to the well-known forgetting problem of backpropagation-trained nets, the more recent experiences are better represented in the model, while older experiences are forgotten, thus preventing true convergence if the neural network is trained in this fashion.
  • FIG. 3 is a flow diagram depicting experience replay process 300 for training a neural network. As depicted in step 302, at each time step, such as experience 100 in FIG. 1, is
  • memory 304 includes a collection of previously collected experiences.
  • a set SD ⁇ (e.g., set 308) of training samples are drawn from the experience memory 304. That is, when the neural network is to be updated, a set of training samples 308 are drawn as a minibatch of experiences from 304. Each experience in the minibatch can be drawn from the memory 304 in such a way that there are reduced correlations in the training data (e.g., uniformly), which may potentially accelerate learning, but this does not address the size and the contents (bias) of the experience memory Di itself.
  • the set of training samples 308 are used to train the neural network. Training a network with a good mix of experiences from the memory can reduce temporal correlations, allowing the network to learn in a much more stable way, and in some cases is essential for the network to learn anything useful at all.
  • Eqs. 3, 4, and 5 are not tied to the sample of the current time step: they can apply to whatever sample ej is drawn from the replay memory (e.g., set of training samples 308 in FIG. 3).
  • the system uses a strategy for which experiences to replay (e.g., prioritization; how to sample from experience memory D) and which experiences to store in experience memory D (and which experiences not to store).
  • experiences to replay e.g., prioritization; how to sample from experience memory D
  • experiences to store e.g., D (and which experiences not to store).
  • Prioritizing experiences in model-based reinforcement learning can accelerate convergence to the optimal policy. Prioritizing involves assigning a probability to each experience in the memory, which determines the chance the experience is drawn from the memory into the sample for network training. In the model-based case, experiences are prioritized based on the expected change in the value function if they are executed, in other words, the expected learning progress. In the model-free case, an approximation of expected learning progress is the temporal difference (TD) error,
  • prioritization by dissimilarity Probabilistically choosing to train the network preferentially with experiences that are dissimilar to others can break imbalances in the dataset. Such imbalances emerge in RL when the agent cannot explore its environment in a truly uniform (unbiased) manner.
  • the entirety of D may be biased in favor of certain experiences over others, which may have been forgotten (removed from D). In this case, it may not be possible to truly remove bias, as the memories have been eliminated.
  • a prioritization method can also be applied to pruning the memory. Instead of preferentially sampling the experiences with the highest priorities from experience memory D, the experiences with the lowest priorities are preferentially removed from experience memory D. Erasing memories is more final than assigning priorities, but can be necessary depending on the application.
  • FIG. 4 is a flow diagram depicting three dissimilarity-based pruning processes - process 400, process 402, and process 404 - as described in detail below.
  • the general idea is to maintain a list of neighbors for each experience, where a neighbor is another experience with distance less than some threshold. The number of neighbors an experience has determines its probability of removal.
  • the pruning mechanism uses a one-time initialization with quadratic cost, in process 400, which can be done, e.g., when the experience memory reaches capacity for the first time. Other costs are of linear in complexity. Further, the only additional storage required is number of neighbors and list of neighbors for each experience (much smaller than an all-pairs distance matrix).
  • the probabilities are generated from the stored neighbor counts, and the pruned experience
  • a distance from an experience to another experience is computed.
  • One distance metric that can be used is Euclidean distance, e.g., on one of the experience elements only, such as state, or on any weighted combination of state, next state, action, and reward. Any other reasonable distance metric can be used.
  • process 400 there is a one-time quadratic all-pairs distance computation (lines 5-11, 406 in Fig 4).
  • each experience is coupled with a counter m that contains its number of neighbors to experiences currently in the memory, initially set in line 8 of process 400.
  • Each experience stores a set of the identities of its neighboring experiences, initially set in line 9 of process 400. Note an experience will always be its own neighbor (e.g., line 3 in process 400). Lines 8 and 9 constitute box 408 in Figure 4.
  • process 402 a new experience is added to the memory. If the distance for the experience to any other experience currently in the memory (box 410) is less than the user-set parameter ⁇ , the counters for each are incremented (lines 8 and 9), and the neighbor sets updated to contain each other (lines 10 and 11). This is shown in boxes 412 and 414.
  • Process 404 shows how an experience is to be removed.
  • the probability of removal is the number of neighbors divided by the total number of neighbors for all experiences (line 4 and box 416).
  • SelectExperienceToRemove is a probabilistic draw to determine the experience o to remove.
  • the actual removal involves deletion from memory (line 7, box 418), and removal of that experience o from all neighbor lists and decrementing neighbor counts accordingly (lines 8- 13, box 418).
  • a final bookkeeping step might be necessary to adjust
  • indices i.e., all indices > o are decreased by one.
  • Processes 402 and 404 may happen iteratively and perhaps intermittently (depending on implementation) as the agent gathers new experiences. A requirement is that, for all newly gathered experiences, process 402 must occur before process 404 can occur.
  • An additional method for prioritizing (or pruning) experiences is based on the concept of match-based learning.
  • the general idea is to assign each experience to one of a set of clusters, and compute distances for the purpose of pruning based on only the cluster centers.
  • an input vector (e.g., a one-dimensional array of input values) is multiplied by a set of synaptic weights and results in a best match, which can be represented as the single neuron (or node) whose set of synaptic weights most closely matches the current input vector.
  • the single neuron also codes for clusters, that is, it can encode not only single patterns, but average, or cluster, sets of inputs.
  • the degree of similarity between the input pattern and the synaptic weights, which controls whether the new input is to be assigned to the same cluster, can be set by a user-defined parameter.
  • FIG. 5 illustrates an example match-based pruning process 500.
  • an input vector 504a is multiplied by a set of synaptic weights, for example, 506a, 506b, 506c, 506d, 506e, and 506f (collectively, synaptic weights 506).
  • This results in a best match which is then represented as a single neuron (e.g., node 502), whose set of synaptic weights 506 closely matches the current input vector 504a.
  • the node 502 represents cluster 508a. That is, node 502 can encode not only single patterns, but represent, or cluster, sets of inputs.
  • input vectors 504 For other input vectors, for example, 504b and 504c (collectively, input vectors 504), the input vectors are multiplied by the synaptic weights 506 to determine a degree of similarity.
  • the best match of 504b and 504c is node 2, representing cluster 508b.
  • there is a 2/3 chance cluster 2 will be selected, at which point one of the two experiences is selected at random for pruning.
  • an incoming input pattern is encoded within an existing cluster (namely, the match satisfies the user-defined gain control parameter) can be used to automatically select (or discard) the experience to be stored in the memory.
  • Inputs that fits existing clusters can be discarded, as they do not necessarily add additional discriminative information to the sample memories, whereas inputs that do not fit with existing clusters are selected because they represent information not previously encoded by the system.
  • An advantage of such a method is that the distance calculation is an efficient operation since only distances to the cluster centers need to be computed.
  • FIG. 6 is a flow diagram depicting an alternative representation 600 of the cluster-based pruning process 500 of FIG. 5.
  • Clustering eliminates the need to compute either distances or store elements.
  • process 600 at 602, clusters are created such that the distance of the cluster center for every cluster k to each other cluster center is no more than ⁇ .
  • Each experience in experience memory D is assigned to a growing set of K ⁇ ⁇ N cluster.
  • each cluster is weighted according to the number of members (lines 17-21 in pseudocode Process 600). Clusters with more members have a higher weight, and a greater chance of having experiences removed from them.
  • Process 600 introduces an "encoding" function ⁇ , which converts an experience ⁇ x/, ⁇ ,; ⁇ , Xj+i ⁇ into a vector.
  • the basic encoding function simply concatenates and properly weights the values.
  • Another encoding function is discussed in the section below.
  • each experience in the experience memory D is encoded.
  • the distance of an encoded experience to each existing cluster center is computed.
  • the computed distances are compared with all existing cluster centers. If the most similar cluster center is not within ⁇ then at 614, a new cluster center is created with experience . However, if the most similar cluster center is within ⁇ , at 612, experience is assigned to the cluster that is most similar.
  • experience is assigned to a cluster with a cluster center that is at a minimum distance from experience compared to other cluster centers.
  • the clusters are reweighted according to the number of members and at 618, one or more experience is removed based on a probabilistic determination. Once an experience is removed (line 23 in pseudocode Process 600), the clusters are reweighted accordingly (line 25 in pseudocode Process 600). In this manner, process 600 preferentially removes a set of Z experiences from the clusters with most members.
  • Process 600 does not let the cluster centers adapt over time. Nevertheless, it can be modified so that the cluster centers do adapt over time, e.g., by adding the following updating function in between line 15 and line 16.
  • IncSFA as an encoder involves updating a set of slow features with each sample as the agent observes it, and, when the time comes to prune the memory, use the slow features as the encoding function ⁇ .
  • the details to IncSFA are found in Kompella et a!., “Incremental slow feature analysis: Adaptive low-complexity slow feature updating from high-dimensional input streams," Neural Computation, 24(11):2994— 3024, 2012, which is incorporated herein by reference.
  • Process 4 An example process, for double DQN, using an online encoder is shown in Process 4 (below). Although this process was conceived with IncSFA in mind, it applies to many different encoders.
  • one or more agents either in a virtual, or simulated environment, or physical agents (e.g., a robot, a drone, a self-driving car, or a toy) interact with their surroundings and other agents in a real environment 701.
  • agents and the modules can be implemented by appropriate processors or processing systems, including, for example, graphics processing units (GPUs) operably coupled to memory, sensors, etc.
  • GPUs graphics processing units
  • An interface collects information about the environment 701 and the agents using sensors, for example, 709a, 709b, and 709c (collectively, sensors 709).
  • Sensors 709 can be any type of sensor, such as image sensors, microphones, and other sensors.
  • the states experienced by the sensors 709, actions, and rewards are fed into an online encoder module 702 included in a processor 708.
  • the processor 708 can be in digital communication with the interface.
  • the processor 708 can include the online encoder module 702, a DNN 704, and a queue maintainer 705.
  • Information collected at the interface is transmitted to the optional online encoder module 702, where it is processed and compressed.
  • the Online Encoder module 702 reduces the data dimensionality via Incremental Slow Feature Analysis, Principal Component Analysis, or another suitable technique.
  • the compressed information from the Online Encoder module 702, or the non-encoded uncompressed input if an online encoder is not used, is fed to a Queue module 703 included in a memory 707.
  • the memory 707 is in digital communication with the processor 708.
  • the queue module 703 in turn feeds experiences to be replayed to the DNN module 704.
  • the Queue Maintainer (Pruning) module 705 included in the processor 708 is bidirectionally connected to the Queue module 703. It acquires information about compressed experiences, and manages what experiences are kept and which one are discarded in the Queue module 703. In other words, the queue maintainer 705 prunes the memory 707 using on pruning methods such as process 300 in FIG. 3, process 400 and 402 in FIG. 4, process 500 in FIG. 5, and process 600 in FIG. 6. Memories from the Queue module 703 are then fed to the
  • DNN/Neural Network module 704 during the training process.
  • the state information from the environment is also provided from the agent(s) 701, and this DNN/Neural Network module 704 then generates actions and controls the agent in the environment701, closing the perception/action loop.
  • FIG. 8 illustrates a self-driving car 800 that that uses deep RL and Experience Replay for navigation and steering.
  • Experiences for the self-driving car 800 are collected using sensors, such as camera 809a and LIDAR 809b coupled to the self-driving car 800.
  • the self-driving car 800 may also collect data from the speedometer and sensors that monitor the engine, brakes, and steering wheel. The data collected by these sensors represents the car's state and action(s).
  • the data for an experience for the self-driving car can include speed and/or steering angle (equivalent to action) for the self-driving car 800 as well as the distance of the car 800 to an obstacle (or some other equivalent to state).
  • the reward for the speed and/or steering angle may be based on the car's safety mechanisms via Lidar. Said another way, the reward may be depend on the car's observed distance from an obstacle before and after an action. The car's steering angle and/or a speed after the action may also affect the reward, which higher distances and lower speeds earning higher rewards and collisions or collision courses earning lower rewards.
  • the experience, including the initial state, action, reward, and final state are fed into an online encoder module 802 that processes and compresses the information and in turn feeds the experiences to the queue module 803.
  • the Queue Maintainer (Pruning) module 805 is bidirectionally connected to the Queue module 803.
  • the queue maintainer 805 prunes the experiences stored in the queue module 803 using methods such as process 300 in FIG.3, process 400 and 402 in FIG. 4, process 500 in FIG. 5, and process 600 in FIG. 6. Similar experiences are removed and non-similar experiences are stored in the queue module 803.
  • the queue module 803 may include speeds and/or steering angles for the self-driving car 800 for different obstacles and distances from the obstacles, both before and after actions taken with respect to the obstacles. Experiences from the queue module 803 are then used to train to the DNN/Neural Network module 804.
  • the DNN module 804 When the self-driving car 800 provides a distance of the car 800 from a particular obstacle (i.e., state) to the DNN module 804, the DNN module 804 generates a speed and/or steering angle for that state based on the experiences from the queue module 803.
  • inventive embodiments are presented by way of example only and that, within the scope of the appended claims and equivalents thereto, inventive embodiments may be practiced otherwise than as specifically described and claimed.
  • inventive embodiments of the present disclosure are directed to each individual feature, system, article, material, kit, and/or method described herein.
  • a computer may be embodied in any of a number of forms, such as a rack-mounted computer, a desktop computer, a laptop computer, or a tablet computer. Additionally, a computer may be embedded in a device not generally regarded as a computer but with suitable processing capabilities, including a Personal Digital Assistant (PDA), a smart phone or any other suitable portable or fixed electronic device.
  • PDA Personal Digital Assistant
  • a computer may have one or more input and output devices. These devices can be used, among other things, to present a user interface. Examples of output devices that can be used to provide a user interface include printers or display screens for visual presentation of output and speakers or other sound generating devices for audible presentation of output.
  • Examples of input devices that can be used for a user interface include keyboards, and pointing devices, such as mice, touch pads, and digitizing tablets.
  • a computer may receive input information through speech recognition or in other audible format.
  • Such computers may be interconnected by one or more networks in any suitable form, including a local area network or a wide area network, such as an enterprise network, and intelligent network (IN) or the Internet.
  • networks may be based on any suitable technology and may operate according to any suitable protocol and may include wireless networks, wired networks or fiber optic networks.
  • the various methods or processes may be coded as software that is executable on one or more processors that employ any one of a variety of operating systems or platforms. Additionally, such software may be written using any of a number of suitable programming languages and/or programming or scripting tools, and also may be compiled as executable machine language code or intermediate code that is executed on a framework or virtual machine.
  • inventive concepts may be embodied as a computer readable storage medium (or multiple computer readable storage media) (e.g., a computer memory, one or more floppy discs, compact discs, optical discs, magnetic tapes, flash memories, circuit configurations in Field Programmable Gate Arrays or other semiconductor devices, or other non- transitory medium or tangible computer storage medium) encoded with one or more programs that, when executed on one or more computers or other processors, perform methods that implement the various embodiments of the invention discussed above.
  • the computer readable medium or media can be transportable, such that the program or programs stored thereon can be loaded onto one or more different computers or other processors to implement various aspects of the present invention as discussed above.
  • program or “software” are used herein in a generic sense to refer to any type of computer code or set of computer-executable instructions that can be employed to program a computer or other processor to implement various aspects of embodiments as discussed above. Additionally, it should be appreciated that according to one aspect, one or more computer programs that when executed perform methods of the present invention need not reside on a single computer or processor, but may be distributed in a modular fashion amongst a number of different computers or processors to implement various aspects of the present invention.
  • Computer-executable instructions may be in many forms, such as program modules, executed by one or more computers or other devices.
  • program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types.
  • functionality of the program modules may be combined or distributed as desired in various embodiments.
  • data structures may be stored in computer-readable media in any suitable form.
  • data structures may be shown to have fields that are related through location in the data structure. Such relationships may likewise be achieved by assigning storage for the fields with locations in a computer-readable medium that convey relationship between the fields.
  • any suitable mechanism may be used to establish a relationship between information in fields of a data structure, including through the use of pointers, tags or other mechanisms that establish relationship between data elements.
  • inventive concepts may be embodied as one or more methods, of which an example has been provided.
  • the acts performed as part of the method may be ordered in any suitable way. Accordingly, embodiments may be constructed in which acts are performed in an order different than illustrated, which may include performing some acts simultaneously, even though shown as sequential acts in illustrative embodiments.
  • a reference to "A and/or B", when used in conjunction with open-ended language such as “comprising” can refer, in one embodiment, to A only (optionally including elements other than B); in another embodiment, to B only (optionally including elements other than A); in yet another embodiment, to both A and B (optionally including other elements); etc.
  • “or” should be understood to have the same meaning as “and/or” as defined above.
  • the phrase "at least one,” in reference to a list of one or more elements, should be understood to mean at least one element selected from any one or more of the elements in the list of elements, but not necessarily including at least one of each and every element specifically listed within the list of elements and not excluding any combinations of elements in the list of elements.
  • This definition also allows that elements may optionally be present other than the elements specifically identified within the list of elements to which the phrase "at least one" refers, whether related or unrelated to those elements specifically identified.
  • At least one of A and B can refer, in one embodiment, to at least one, optionally including more than one, A, with no B present (and optionally including elements other than B); in another embodiment, to at least one, optionally including more than one, B, with no A present (and optionally including elements other than A); in yet another embodiment, to at least one, optionally including more than one, A, and at least one, optionally including more than one, B (and optionally including other elements); etc.

Landscapes

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

Abstract

The present technology involves collecting a new experience by an agent, comparing the new experience to experiences stored in the agent's memory, and either discarding the new experience or overwriting an experience in the memory with the new experience based on the comparison. For instance, the agent or an associated processor may determine how similar the new experience is to the stored experiences. If the new experience is too similar, the agent discards it; otherwise, the agent stores it in the memory and discards a previously stored experience instead. Collecting and selectively storing experiences based on the experiences' similarity to previously stored experiences addresses technological problems and yields a number of technological improvements. For instance, relieves memory size constraints, reduces or eliminates the chances of catastrophic forgetting by a neural network, and improves neural network performance.

Description

Methods and Apparatus for Pruning Experience Memories for Deep Neural
Network-Based Q-Learning
CROSS-REFERENCE TO RELATED APPLICATION(S)
[0001] This application claims the priority benefit, under 35 U.S.C. § 119(e), of U.S. Application No. 62/328,344, entitled "Methods and Apparatus for Pruning Experience Memories for Deep Neural Network-Based Q-Learning," filed on April 27, 2016. This application is incorporated herein by reference in its entirety.
BACKGROUND
[0002] In reinforcement learning, an agent interacts with an environment. During the course of its interactions with the environment, the agent collects experiences. A neural network associated with the agent can use these experiences to learn a behavior policy. That is, the neural network that is associated with or controls the agent can use the agent's collection of experiences to learn how the agent should act in the environment.
[0003] In order to be able to learn from past experiences, the agent stores the collected experiences in a memory, either locally or connected via a network. Storing all experiences to train a neural network associated with the agent can prove useful in theory. However, hardware constraints make storing all of the experiences impractical or even impossible as the number of experiences grows.
[0004] Pruning experiences stored in the agent's memory can relieve constraints on collecting and storing experiences. But naive pruning, such as weeding out old experiences in a first-in first-out manner, can lead to "catastrophic forgetting." Catastrophic forgetting means that new learning can cause previous learning to be undone and is caused by the distributed nature of backpropagation-based learning. Due to catastrophic forgetting, continual re-training of experiences is necessary to prevent the neural network from "forgetting" how to respond to the situations represented by those experiences. Said another way, by weeding out experiences in a first-in first-out manner, the most recent experiences will be better represented in the neural network and the older experiences will be forgotten, making it more difficult for the neural network to respond to situations represented by the older experiences. Catastrophic forgetting can be avoided by simply re-learning the complete set of experiences, including the new ones, but re-learning the entire history of the agent's experience can take too long to be practical, especially with a large set of experiences that grows at a rapid rate.
SUMMARY
[0005] Embodiments of the present technology include methods for generating an action for a robot. An example computer-implemented method comprises collecting a first experience for the robot. The first experience represents a first state of the robot at a first time, a first action taken by the robot at the first time, a first reward received by the robot in response to the first action, and a second state of the robot in response to the first action at a second time after the first time. A degree of similarity between the first experience and plurality of experiences can be determined. The plurality of experiences can be stored in a memory for the robot. The method also comprises pruning the plurality of experiences in the memory based on the degree of similarity between the first experience and the plurality of experiences to form a pruned plurality of experiences stored in the memory. A neural network associated with the robot can be trained with the pruned plurality of experiences and a second action for the robot can be generated using the neural network.
[0006] In some cases, the pruning further comprises computing a distance from the first experience for each experience in the plurality of experiences. For each experience in the plurality of experiences, the distance to another distance of that experience from each other experience in the plurality of experiences can be compared. A second experience can be removed from the memory based on the comparison. The second experience can be at least one of the first experience and an experience from the plurality of experiences. The second experience can be removed from the memory based on a probability that the distance of the second experience from the first experience and each experience in the plurality of experiences is less than a user-defined threshold.
[0007] In some cases, the pruning can further include ranking the first experience and each experience in the plurality of experiences. Ranking the first experience and each experience in the plurality of experiences can include creating a plurality of clusters based at least in part on synaptic weights and automatically discarding the first experience upon determining that the first experience fits one of the plurality of clusters. The first experience and each experience in the plurality of experiences can be encoded. The encoded experiences can be compared to the plurality of clusters.
[0008] In some cases, the neural network generates an output at a first input state based at least in part on the pruned plurality of experiences. The pruned plurality of experiences can include a diverse set of states of the robot. In some cases, generating the second action for the robot can include determining that the robot is in the first state and selecting the second action to be different than the first action.
[0009] The method can also comprise collecting a second experience for the robot. The second experience represents a second state of the robot, the second action taken by the robot in response to the second state, a second reward received by the robot in response to the second action, and a third state of the robot in response to the second action. A degree of similarity between the second experience and the pruned plurality of experiences can be determined. The method can also comprise pruning the pruned plurality of experiences in the memory based on the degree of similarity between the second experience and the pruned plurality of experiences.
[0010] An example system for generating a second action for a robot comprises an interface to collect a first experience for the robot. The first experience represents a first state of the robot at a first time, a first action taken by the robot at the first time, a first reward received by the robot in response to the first action, and a second state of the robot in response to the first action at a second time after the first time. The system also comprises a memory to store at least one of a plurality of experiences and a pruned plurality of experiences for the robot. The system also comprises a processor that is in digital communication with the interface and the memory. The processor can determine a degree of similarity between the first experience and the plurality of experiences stored in the memory. The processor can prune the plurality of experiences in the memory based on the degree of similarity between the first experience and the plurality of experiences to form the pruned plurality of experiences. The memory can be updated by the processor to store the pruned plurality of experiences. The processor can train a neural network associated with the robot with the pruned plurality of experiences. The processor can generate the second action for the robot using the neural network. [0011] In some cases, the system can further comprise a cloud brain that is in digital communication with the processor and the robot to transmit the second action to the robot.
[0012] In some cases, the processor is configured to compute a distance from the first experience for each experience in the plurality of experiences. The processor can compare the distance to another distance of that experience from each other experience in the plurality of experiences for each experience in the plurality of experiences. A second experience can be removed from the memory via the processor based on the comparison. The second experience can be at least one of the first experience and an experience from the plurality of experiences. The processor can be configured to remove the second experience from the memory based on a probability
determination of the distance of the second experience from the first experience and each experience in the plurality of experiences being less than a user-defined threshold.
[0013] The processor can also be configured to prune the memory based on ranking the first experience and each experience in the plurality of experiences. The processor can create a plurality of clusters based at least in part on synaptic weights, rank the first experience and the plurality of experiences based on the plurality of clusters, and can automatically discard the first experience upon determination that the first experience fits one of the plurality of clusters. The processor can encode each experience in the plurality of experiences, encode the first experience, and compare the encoded experiences to the plurality of clusters. In some cases, the neural network can generate an output at a first input state based at least in part on the pruned plurality of experiences.
[0014] An example computer-implemented method for updating a memory comprises receiving a new experience from a computer-based application. The memory stores a plurality of experiences received from the computer-based application. The method also comprises determining a degree of similarity between the new experience and the plurality of experiences. The new experience can be added based on the degree of similarity. At least one of the new experience and an experience from the plurality of experiences can be removed based on the degree of similarity. The method comprises sending an updated version of the plurality of experiences to the computer-based application.
[0015] Embodiments of the present technology include method for improving sample queue management in deep reinforcement learning systems that use experience replay to boost their learning. More particularly, the present technology involves efficiently and effectively training neural networks, deep networks, and in general optimizing learning in parallel distributed systems of equations controlling autonomous cars, drones, or other robots in real time.
[0016] Compared to other technology, the present technology can accelerate and improve convergence in reinforcement learning in such systems, namely and more so as the size of the experience queue decreases. More particularly, the present technology involves sampling of the queue for experience replaying in neural network and deep network systems for better selecting the data samples to replay to the system during the so-called "experience replay." The present technology is useful for, but is not limited to, neural network systems controlling movement, motors, and steering commands in self-driving cars, drones, ground robots, and underwater robots, or in any resource-limited device that controls online and real-time reinforcement learning.
[0017] It should be appreciated that all combinations of the foregoing concepts and additional concepts discussed in greater detail below (provided such concepts are not mutually inconsistent) are contemplated as being part of the inventive subject matter disclosed herein. In particular, all combinations of claimed subject matter appearing at the end of this disclosure are contemplated as being part of the inventive subject matter disclosed herein. It should also be appreciated that terminology explicitly employed herein that also may appear in any disclosure incorporated by reference should be accorded a meaning most consistent with the particular concepts disclosed herein.
BRIEF DESCRIPTIONS OF THE DRAWINGS
[0018] The skilled artisan will understand that the drawings primarily are for illustrative purposes and are not intended to limit the scope of the inventive subject matter described herein. The drawings are not necessarily to scale; in some instances, various aspects of the inventive subject matter disclosed herein may be shown exaggerated or enlarged in the drawings to facilitate an understanding of different features. In the drawings, like reference characters generally refer to like features (e.g., functionally similar and/or structurally similar elements).
[0019] FIG. 1 is a flow diagram depicting actions, states, responses, and rewards that form an experience for an agent. [0020] FIG. 2 is a flow diagram depicting a neural network operating in feedforward mode, e.g., used for the greedy behavior policy of an agent.
[0021] FIG. 3 is a flow diagram depicting an experience replay memory, which new experiences are added to, and from which a sample of experiences are drawn with which to train a neural network.
[0022] FIG. 4 shows flow diagrams depicting three dissimilarity-based pruning processes for storing experiences in a memory.
[0023] FIG. 5 illustrates an example match-based pruning process for storing experiences in a memory for an agent.
[0024] FIG. 6 is a flow diagram depicting an alternative representation of the pruning process in FIG. 5.
[0025] FIG. 7 is a system diagram of a system that uses deep reinforcement learning and experience replay from a memory storing a pruned experience queue.
[0026] FIG. 8 illustrates a self-driving car that acquires experiences with a camera, LIDAR, and/or other data sources, uses pruning to curate experiences stored in a memory, and deep reinforcement learning and experience replay of the pruned experiences to improve self-driving performance.
DETAILED DESCRIPTION
[0027] In Deep Reinforcement Learning (RL), experiences collected by an agent are provided to a neural network associated with the agent in order to train the neural network to produce actions or the values of potential actions such that the agent can act to increase or maximize expected future reward. Since it may be impractical or impossible to store all experiences collected by the agent in a memory due to limits on the memory's size, reinforcement learning systems implement techniques for storage reduction. One approach to implementing storage reduction is to selectively remove experiences from the memory. However, neural networks that are trained by merely weeding out old experiences in a first-in first-out manner encounter forgetting problems. That is, old experiences that may contribute towards learning are forgotten since they are removed from the memory. Another disadvantage of merely removing old experiences is that it does not address experiences that are highly correlated and redundant. Training a neural network with a set of highly correlated and similar experiences may be inefficient and can slow the learning process.
[0028] The present technology provides ways to selectively replace experiences in a memory by determining a degree of similarity between an incoming experience and the experiences already stored in the memory. As a result, old experiences that may contribute towards learning are not forgotten and experiences that are highly correlated may be removed to make space for dissimilar/more varied experiences in the memory.
[0029] The present technology is useful for, but is not limited to, neural network systems that control movements, motors, and steering commands in self-driving cars, drones, ground robots, and underwater robots. For instance, for a self-driving car, experiences characterizing speed and steering angle for obstacles encountered along a path can be collected dynamically. These experiences can be stored in a memory. As new experiences are collected, a processor determines a degree of similarity between the new experience and the previously stored experiences. For instance, if experiences stored in the memory include speed and steering angles for obstacle A and if the new experience characterizes speed and steering angle for obstacle B, which is vastly different from obstacle A, the processor prunes (removes) a similar experience from the memory (e.g., one of the experiences relating to obstacle A) and inserts the new experience relating to obstacle B. The neural network for the self-driving car is trained based on the experiences in the pruned memory, including the new experience about obstacle B.
[0030] Because the memory is pruned based on experience similarity, can be small enough to sit "on the edge" - e.g., on the agent, which may be a self-driving car, drone, or robot - instead of being located remotely and connected to the agent via a network connection. And because the memory is on the edge, it can be used to train the agent on the edge. This reduces or eliminates the need for a network connection, enhancing the reliability and robustness of both experience collection and neural network training. These memories may be harvested as desired (e.g., periodically, when upstream bandwidth is available, etc.) and aggregated at a server. The aggregated data may be sampled and distributed to existing and/or new agents for better performance at the edge. [0031] The present technology can also be useful for video games and other simulated environments. For instance, agent behavior in video games can be developed by collecting and storing experiences for agents in the game while selectively pruning the memory based on a degree of similarity. In such environments, learning from vision involves experiences that include high-dimensional images, and so a large amount of storage can be saved using the present technology.
[0032] Optimally storing a sample of experiences in the memory can improve and accelerate convergence in reinforcement learning, especially learning on resource-limited devices "at the edge". Thus, the present technology provides inventive methods for faster learning while implementing techniques for using less memory. Therefore, using the present technology a smaller memory size can be used to achieve a given learning performance goal.
[0033] EXPERIENCE COLLECTION AND REINFORCEMENT LEARNING
[0034] FIG. 1 is a flow diagram depicting actions, states, responses, and rewards that form an experience 100 for an agent. At 102, the agent observes a (first) state st-i at a (first) time t-1. The agent may observe this state with an image sensor, microphone, antenna, accelerometer, gyroscope, or any other suitable sensor. It may read settings on a clock, encoder, actuator, or navigation unit (e.g., an inertial measurement unit). The data representing the first state can include information about the agent's environment, such as pictures, sounds, or time. It can also include information about the agent, including its speed, heading, internal state (e.g., battery life), or position.
[0035] During the state st-i, the agent takes an action <¾-i (e.g., at 104). This action may involve actuating a wheel, rotor, wing flap, or other component that controls the agent's speed, heading, orientation, or position. The action may involve changing the agent's internal settings, such as putting certain components into a sleep mode to conserve battery life. The action may affect the agent's environment and/or objects within the environment, for example, if the agent is in danger of colliding with one of those objects. Or it may involve acquiring or transmission data, e.g., taking a picture and transmitting it to a server.
[0036] At 106, the agent receives a reward m for the action at-i. The reward may be predicated on a desired outcome, such as avoiding an obstacle, conserving power, or acquiring data. If the action yields the desired outcome (e.g., avoiding the obstacle), the reward is high; otherwise, the reward may be low. The reward can be binary or may fall on or within a range of values.
[0037] At 108, in response to the action at-i, the agent observes a following (second) state St. This state stis observed at a following (second) time t. The state st-i, action reward and
Figure imgf000011_0005
Figure imgf000011_0006
the following state st collectively form an experience et 100 at time t. At each time step t the agent has observed a state taken action gotten reward rt-i and observed outcome state St.
Figure imgf000011_0004
The observed state action and observed outcome state A collectively form an
Figure imgf000011_0002
Figure imgf000011_0003
experience 100 as shown in FIG. 1.
[0038] In Reinforcement Learning (RL), an agent collects experiences as it interacts with its environment and tries to learn how to act such that it gets as much reward as possible. The agent' s goal is to use all of its experiences to learn a behavior policy π = P(a\s), that it will use to select actions, which, when followed, will enable the agent to collect the maximum cumulative reward, in expectation, out of all such policies. In value-based RL, an optimal (desired) behavior policy corresponds to the optimal value function, such as the action-value function, typically denoted Q,
Figure imgf000011_0001
where γ is a discount factor that controls the influence of temporally distant outcomes on the action-value function. Q* (s, a) assigns a value to any state action pair. If Q* is known, to follow the associated optimal behavior policy, the agent then just has to take the action with the highest value for each current observation s.
[0039] Deep Neural Networks (DNNs) can be used to approximate the optimal action-value functions (the Q* function) of reinforcement learning agents with high-dimensional state inputs, such as raw pixels of video. In this case, the action-value function Q(s, a; Θ) ~ Q* (s, a) is parameterized by the network parameters Θ (such as the weights).
[0040] FIG. 2 is a flow diagram depicting a neural network 200 that operates as the behavior policy π in the feedforward mode. Given an input state 202, the neural network 200 outputs a vector of action values 204 (e.g., braking and steering values for a self-driving car) via a set of Q-values associated with potential actions. This vector is computed using neural network weights that are set or determined by training the neural network with data representing simulated or previously acquired experiences. The Q-values can be converted into probabilities through standard methods (e.g., parameterized softmax), and then to actions 204. The feedforward mode is how the agent gets the Q-values for potential actions, and how it chooses the most valuable actions.
[0041] The network is trained, via backpropagation, to learn (to approximate) the optimal action- value function by converting the agent's experiences into training samples (x, y), where x is the network input and y are the network targets. The network input is x = <j)(s) where φ is some function that preprocesses the observations to make them more suitable for the network. In order to progress towards the optimal action-value function, the targets^ are set to maintain the consistency,
Figure imgf000012_0002
[0042] Following this, in a basic case, the targets can be set to
Figure imgf000012_0003
[0043] Eq. 3 can be improved by introducing a second, target network, with parameters 9~, which is used to find the most valuable actions (and their values), but is not necessarily updated incrementally. Instead, another network (the "online" network) has its parameters updated. The online network parameters θ replaces the target network parameters θ~ every τ time steps.
Replacing Eq. 3 by
Figure imgf000012_0001
yields the target used in the Deep Q-Network (DQN) algorithm of Mnih et al., "Human-level control through deep reinforcement learning," Nature, 518(7540): 529— 533, 2015, which is incorporated herein by reference in its entirety. [0044] An improved version of DQN, called Double DQN, decouples the selection and evaluation, as follows:
Figure imgf000013_0001
Decoupled selection and evaluation reduces the chances that the max operator will use the same values to both select and evaluate an action, which can cause a biased overestimation of values. In practice, it leads to accelerated convergence rates and better eventual policies compared to standard DQN.
[0045] EXPERIENCE REPLAY
[0046] In order to keep the model bias down, back-propagation-trained neural networks should draw training samples in an i. i.d. fashion. In a conventional approach, the samples are collected as the agent interacts with an environment, so the samples are highly biased if they are trained in the order they arrive. A second issue is, due to the well-known forgetting problem of backpropagation-trained nets, the more recent experiences are better represented in the model, while older experiences are forgotten, thus preventing true convergence if the neural network is trained in this fashion.
[0047] To mitigate such issues, a technique called experience replay is used. FIG. 3 is a flow diagram depicting experience replay process 300 for training a neural network. As depicted in step 302, at each time step, such as experience 100 in FIG. 1, is
Figure imgf000013_0002
stored in experience memory 304 expressed as Thus, the experience
Figure imgf000013_0003
memory 304 includes a collection of previously collected experiences. At 306, a set SD^ (e.g., set 308) of training samples are drawn from the experience memory 304. That is, when the neural network is to be updated, a set of training samples 308 are drawn as a minibatch of experiences from 304. Each experience in the minibatch can be drawn from the memory 304 in such a way that there are reduced correlations in the training data (e.g., uniformly), which may potentially accelerate learning, but this does not address the size and the contents (bias) of the experience memory Di itself. At 310, the set of training samples 308 are used to train the neural network. Training a network with a good mix of experiences from the memory can reduce temporal correlations, allowing the network to learn in a much more stable way, and in some cases is essential for the network to learn anything useful at all.
[0048] As the network does not (and should not) have to be trained on samples as they arrive, Eqs. 3, 4, and 5 are not tied to the sample of the current time step:
Figure imgf000014_0002
they can apply to whatever sample ej is drawn from the replay memory (e.g., set of training samples 308 in FIG. 3).
[0049] With an experience memory, the system uses a strategy for which experiences to replay (e.g., prioritization; how to sample from experience memory D) and which experiences to store in experience memory D (and which experiences not to store).
[0050] Which Experiences to Replay
[0051] Prioritizing experiences in model-based reinforcement learning can accelerate convergence to the optimal policy. Prioritizing involves assigning a probability to each experience in the memory, which determines the chance the experience is drawn from the memory into the sample for network training. In the model-based case, experiences are prioritized based on the expected change in the value function if they are executed, in other words, the expected learning progress. In the model-free case, an approximation of expected learning progress is the temporal difference (TD) error,
Figure imgf000014_0001
[0052] Using TD-error as the basis for prioritization for Double DQN increases learning efficiency and eventual performance.
[0053] However, other prioritization methods could be used, such as prioritization by dissimilarity. Probabilistically choosing to train the network preferentially with experiences that are dissimilar to others can break imbalances in the dataset. Such imbalances emerge in RL when the agent cannot explore its environment in a truly uniform (unbiased) manner. However, when the memory size of D is limited due to resource constraints, the entirety of D may be biased in favor of certain experiences over others, which may have been forgotten (removed from D). In this case, it may not be possible to truly remove bias, as the memories have been eliminated.
[0054] Which Experiences to Store
[0055] Storing all memories is, in theory, useful. An old experience, which may not have contributed to learning when it was collected, can suddenly become useful once the agent has accumulated enough knowledge to know what to do with it. But unlimited experience memories can quickly grow too large for modern hardware, especially when the inputs are high- dimensional, such as images. Instead of storing everything, a sliding window is typically used, in other words, a first-in first-out queue, and the size of the replay memory set to some maximum number of experiences N. A large memory (e.g., one that stores one million experiences) has become fairly standard in state-of-the-art systems. As a byproduct of this, the storage requirements for the experience memory have become much larger than the storage requirements for the network itself. A method for reducing the size of the replay memory, without effecting the learning efficiency, is useful when storage is an issue.
[0056] A prioritization method can also be applied to pruning the memory. Instead of preferentially sampling the experiences with the highest priorities from experience memory D, the experiences with the lowest priorities are preferentially removed from experience memory D. Erasing memories is more final than assigning priorities, but can be necessary depending on the application.
[0057] PRUNING EXPERIENCE MEMORIES
[0058] The following processes focus on pruning experience memories. But these processes can also apply to prioritization, if the outcome probabilities, which are used to select which experience(s) to remove, are inverted and used as priorities.
[0059] Similarity-Based Pruning
[0060] FIG. 4 is a flow diagram depicting three dissimilarity-based pruning processes - process 400, process 402, and process 404 - as described in detail below. The general idea is to maintain a list of neighbors for each experience, where a neighbor is another experience with distance less than some threshold. The number of neighbors an experience has determines its probability of removal. The pruning mechanism uses a one-time initialization with quadratic cost, in process 400, which can be done, e.g., when the experience memory reaches capacity for the first time. Other costs are of linear in complexity. Further, the only additional storage required is number of neighbors and list of neighbors for each experience (much smaller than an all-pairs distance matrix). When an experience is added (process 402), the distance from it to other experiences is computed, and the neighbor counts/lists updated. When an experience is to be pruned (process 404), the probabilities are generated from the stored neighbor counts, and the pruned experience
Figure imgf000016_0001
chose via probabilistic draw. Then, the experiences which had the removed experience as their neighbor remove it from their neighbor lists, and decrement their neighbor count. In processes 400 and 402, a distance from an experience to another experience is computed. One distance metric that can be used is Euclidean distance, e.g., on one of the experience elements only, such as state, or on any weighted combination of state, next state, action, and reward. Any other reasonable distance metric can be used. In process 400, there is a one-time quadratic all-pairs distance computation (lines 5-11, 406 in Fig 4).
[0061] If the distance for an experience to another is less than a user-set parameter β, the experiences are considered neighbors. Each experience is coupled with a counter m that contains its number of neighbors to experiences currently in the memory, initially set in line 8 of process 400. Each experience stores a set of the identities of its neighboring experiences, initially set in line 9 of process 400. Note an experience will always be its own neighbor (e.g., line 3 in process 400). Lines 8 and 9 constitute box 408 in Figure 4.
[0062] In process 402, a new experience is added to the memory. If the distance for the experience to any other experience currently in the memory (box 410) is less than the user-set parameter β, the counters for each are incremented (lines 8 and 9), and the neighbor sets updated to contain each other (lines 10 and 11). This is shown in boxes 412 and 414.
[0063] Process 404 shows how an experience is to be removed. The probability of removal is the number of neighbors divided by the total number of neighbors for all experiences (line 4 and box 416). SelectExperienceToRemove is a probabilistic draw to determine the experience o to remove. The actual removal involves deletion from memory (line 7, box 418), and removal of that experience o from all neighbor lists and decrementing neighbor counts accordingly (lines 8- 13, box 418). Depending on implementation, a final bookkeeping step (line 14) might be necessary to adjust
Figure imgf000017_0001
indices (i.e., all indices > o are decreased by one).
Figure imgf000018_0001
[0064] Processes 402 and 404 may happen iteratively and perhaps intermittently (depending on implementation) as the agent gathers new experiences. A requirement is that, for all newly gathered experiences, process 402 must occur before process 404 can occur.
[0065] Match-Based Pruning
[0066] An additional method for prioritizing (or pruning) experiences is based on the concept of match-based learning. The general idea is to assign each experience to one of a set of clusters, and compute distances for the purpose of pruning based on only the cluster centers.
[0067] In such online learning systems, an input vector (e.g., a one-dimensional array of input values) is multiplied by a set of synaptic weights and results in a best match, which can be represented as the single neuron (or node) whose set of synaptic weights most closely matches the current input vector. The single neuron also codes for clusters, that is, it can encode not only single patterns, but average, or cluster, sets of inputs. The degree of similarity between the input pattern and the synaptic weights, which controls whether the new input is to be assigned to the same cluster, can be set by a user-defined parameter.
[0068] FIG. 5 illustrates an example match-based pruning process 500. In an online learning system, an input vector 504a is multiplied by a set of synaptic weights, for example, 506a, 506b, 506c, 506d, 506e, and 506f (collectively, synaptic weights 506). This results in a best match, which is then represented as a single neuron (e.g., node 502), whose set of synaptic weights 506 closely matches the current input vector 504a. The node 502 represents cluster 508a. That is, node 502 can encode not only single patterns, but represent, or cluster, sets of inputs. For other input vectors, for example, 504b and 504c (collectively, input vectors 504), the input vectors are multiplied by the synaptic weights 506 to determine a degree of similarity. In this case, the best match of 504b and 504c is node 2, representing cluster 508b. In this simple case, there are two experiences in cluster 2 and one in cluster 1, and the probability of removal is weighted accordingly. E.g., there is a 2/3 chance cluster 2 will be selected, at which point one of the two experiences is selected at random for pruning.
[0069] Further, whether an incoming input pattern is encoded within an existing cluster (namely, the match satisfies the user-defined gain control parameter) can be used to automatically select (or discard) the experience to be stored in the memory. Inputs that fits existing clusters can be discarded, as they do not necessarily add additional discriminative information to the sample memories, whereas inputs that do not fit with existing clusters are selected because they represent information not previously encoded by the system. An advantage of such a method is that the distance calculation is an efficient operation since only distances to the cluster centers need to be computed.
Figure imgf000020_0001
[0070] FIG. 6 is a flow diagram depicting an alternative representation 600 of the cluster-based pruning process 500 of FIG. 5. Clustering eliminates the need to compute either distances or store elements. In process 600, at 602, clusters are created such that the distance of the cluster center for every cluster k to each other cluster center is no more than β. Each experience in experience memory D is assigned to a growing set of K < < N cluster. After the experiences have been assigned to clusters, at 604, each cluster is weighted according to the number of members (lines 17-21 in pseudocode Process 600). Clusters with more members have a higher weight, and a greater chance of having experiences removed from them.
[0071] Process 600 introduces an "encoding" function Γ, which converts an experience {x/, α,; η, Xj+i } into a vector. The basic encoding function simply concatenates and properly weights the values. Another encoding function is discussed in the section below. At 606, each experience in the experience memory D, is encoded. At 608, the distance of an encoded experience to each existing cluster center is computed. At 610, the computed distances are compared with all existing cluster centers. If the most similar cluster center is not within β then at 614, a new cluster center is created with experience . However, if the most similar cluster center is within β, at 612, experience is assigned to the cluster that is most similar. That is, experience is assigned to a cluster with a cluster center that is at a minimum distance from experience compared to other cluster centers. At 616, the clusters are reweighted according to the number of members and at 618, one or more experience is removed based on a probabilistic determination. Once an experience is removed (line 23 in pseudocode Process 600), the clusters are reweighted accordingly (line 25 in pseudocode Process 600). In this manner, process 600 preferentially removes a set of Z experiences from the clusters with most members.
[0072] Process 600 does not let the cluster centers adapt over time. Nevertheless, it can be modified so that the cluster centers do adapt over time, e.g., by adding the following updating function in between line 15 and line 16.
Figure imgf000021_0001
[0073] Encoder-Based Pruning
[0074] When the input dimension is high (as in the case of raw pixels), Euclidean distance tends to be a poor metric. It may not be easy or even possible to find a suitable β. Fortunately, there are an abundance of methods to reduce the dimensionality and potentially find an appropriate low- dimensional manifold, upon which Euclidean distance will make more sense. Examples include Principal Component Analysis, Isomap, Autoencoders, etc. A particularly appealing encoder is Slow Feature Analysis (SFA), which is well-suited for reinforcement learning. This is (broadly) because SFA takes into account how the samples change over time, making it well-suited to sequential decision problems. Further, there is a recently developed incremental method for updating a set of slow features (IncSFA), having linear computational and space complexities.
[0075] Using IncSFA as an encoder involves updating a set of slow features with each sample as the agent observes it, and, when the time comes to prune the memory, use the slow features as the encoding function Γ. The details to IncSFA are found in Kompella et a!., "Incremental slow feature analysis: Adaptive low-complexity slow feature updating from high-dimensional input streams," Neural Computation, 24(11):2994— 3024, 2012, which is incorporated herein by reference.
[0076] An example process, for double DQN, using an online encoder is shown in Process 4 (below). Although this process was conceived with IncSFA in mind, it applies to many different encoders.
Figure imgf000023_0001
[0077] A System that Uses Deep Reinforcement Learning and Experience Replay
[0078] In FIG. 7, one or more agents, either in a virtual, or simulated environment, or physical agents (e.g., a robot, a drone, a self-driving car, or a toy) interact with their surroundings and other agents in a real environment 701. These agents and the modules (including those listed below) to which they are connected or include can be implemented by appropriate processors or processing systems, including, for example, graphics processing units (GPUs) operably coupled to memory, sensors, etc.
[0079] An interface (not shown) collects information about the environment 701 and the agents using sensors, for example, 709a, 709b, and 709c (collectively, sensors 709). Sensors 709 can be any type of sensor, such as image sensors, microphones, and other sensors. The states experienced by the sensors 709, actions, and rewards are fed into an online encoder module 702 included in a processor 708.
[0080] The processor 708 can be in digital communication with the interface. In some inventive aspects, the processor 708 can include the online encoder module 702, a DNN 704, and a queue maintainer 705. Information collected at the interface is transmitted to the optional online encoder module 702, where it is processed and compressed. In other words, the Online Encoder module 702 reduces the data dimensionality via Incremental Slow Feature Analysis, Principal Component Analysis, or another suitable technique. The compressed information from the Online Encoder module 702, or the non-encoded uncompressed input if an online encoder is not used, is fed to a Queue module 703 included in a memory 707.
[0081] The memory 707 is in digital communication with the processor 708. The queue module 703 in turn feeds experiences to be replayed to the DNN module 704.
[0082] The Queue Maintainer (Pruning) module 705 included in the processor 708 is bidirectionally connected to the Queue module 703. It acquires information about compressed experiences, and manages what experiences are kept and which one are discarded in the Queue module 703. In other words, the queue maintainer 705 prunes the memory 707 using on pruning methods such as process 300 in FIG. 3, process 400 and 402 in FIG. 4, process 500 in FIG. 5, and process 600 in FIG. 6. Memories from the Queue module 703 are then fed to the
DNN/Neural Network module 704 during the training process. During the performance / behavior process, the state information from the environment is also provided from the agent(s) 701, and this DNN/Neural Network module 704 then generates actions and controls the agent in the environment701, closing the perception/action loop.
[0083] Pruning, Deep Reinforcement Learning, and Experience Reply for Navigation
[0084] FIG. 8 illustrates a self-driving car 800 that that uses deep RL and Experience Replay for navigation and steering. Experiences for the self-driving car 800 are collected using sensors, such as camera 809a and LIDAR 809b coupled to the self-driving car 800. The self-driving car 800 may also collect data from the speedometer and sensors that monitor the engine, brakes, and steering wheel. The data collected by these sensors represents the car's state and action(s). [0085] Collectively, the data for an experience for the self-driving car can include speed and/or steering angle (equivalent to action) for the self-driving car 800 as well as the distance of the car 800 to an obstacle (or some other equivalent to state). The reward for the speed and/or steering angle may be based on the car's safety mechanisms via Lidar. Said another way, the reward may be depend on the car's observed distance from an obstacle before and after an action. The car's steering angle and/or a speed after the action may also affect the reward, which higher distances and lower speeds earning higher rewards and collisions or collision courses earning lower rewards. The experience, including the initial state, action, reward, and final state are fed into an online encoder module 802 that processes and compresses the information and in turn feeds the experiences to the queue module 803.
[0086] The Queue Maintainer (Pruning) module 805 is bidirectionally connected to the Queue module 803. The queue maintainer 805 prunes the experiences stored in the queue module 803 using methods such as process 300 in FIG.3, process 400 and 402 in FIG. 4, process 500 in FIG. 5, and process 600 in FIG. 6. Similar experiences are removed and non-similar experiences are stored in the queue module 803. For instance, the queue module 803 may include speeds and/or steering angles for the self-driving car 800 for different obstacles and distances from the obstacles, both before and after actions taken with respect to the obstacles. Experiences from the queue module 803 are then used to train to the DNN/Neural Network module 804. When the self-driving car 800 provides a distance of the car 800 from a particular obstacle (i.e., state) to the DNN module 804, the DNN module 804 generates a speed and/or steering angle for that state based on the experiences from the queue module 803.
[0087] Conclusion
[0088] While various inventive embodiments have been described and illustrated herein, those of ordinary skill in the art will readily envision a variety of other means and/or structures for performing the function and/or obtaining the results and/or one or more of the advantages described herein, and each of such variations and/or modifications is deemed to be within the scope of the inventive embodiments described herein. More generally, those skilled in the art will readily appreciate that all parameters, dimensions, materials, and configurations described herein are meant to be exemplary and that the actual parameters, dimensions, materials, and/or configurations will depend upon the specific application or applications for which the inventive teachings is/are used. Those skilled in the art will recognize, or be able to ascertain using no more than routine experimentation, many equivalents to the specific inventive embodiments described herein. It is, therefore, to be understood that the foregoing embodiments are presented by way of example only and that, within the scope of the appended claims and equivalents thereto, inventive embodiments may be practiced otherwise than as specifically described and claimed. Inventive embodiments of the present disclosure are directed to each individual feature, system, article, material, kit, and/or method described herein. In addition, any combination of two or more such features, systems, articles, materials, kits, and/or methods, if such features, systems, articles, materials, kits, and/or methods are not mutually inconsistent, is included within the inventive scope of the present disclosure.
[0089] The above-described embodiments can be implemented in any of numerous ways. For example, embodiments of designing and making the technology disclosed herein may be implemented using hardware, software or a combination thereof. When implemented in software, the software code can be executed on any suitable processor or collection of processors, whether provided in a single computer or distributed among multiple computers.
[0090] Further, it should be appreciated that a computer may be embodied in any of a number of forms, such as a rack-mounted computer, a desktop computer, a laptop computer, or a tablet computer. Additionally, a computer may be embedded in a device not generally regarded as a computer but with suitable processing capabilities, including a Personal Digital Assistant (PDA), a smart phone or any other suitable portable or fixed electronic device.
[0091] Also, a computer may have one or more input and output devices. These devices can be used, among other things, to present a user interface. Examples of output devices that can be used to provide a user interface include printers or display screens for visual presentation of output and speakers or other sound generating devices for audible presentation of output.
Examples of input devices that can be used for a user interface include keyboards, and pointing devices, such as mice, touch pads, and digitizing tablets. As another example, a computer may receive input information through speech recognition or in other audible format.
[0092] Such computers may be interconnected by one or more networks in any suitable form, including a local area network or a wide area network, such as an enterprise network, and intelligent network (IN) or the Internet. Such networks may be based on any suitable technology and may operate according to any suitable protocol and may include wireless networks, wired networks or fiber optic networks.
[0093] The various methods or processes (e.g., of designing and making the technology disclosed above) outlined herein may be coded as software that is executable on one or more processors that employ any one of a variety of operating systems or platforms. Additionally, such software may be written using any of a number of suitable programming languages and/or programming or scripting tools, and also may be compiled as executable machine language code or intermediate code that is executed on a framework or virtual machine.
[0094] In this respect, various inventive concepts may be embodied as a computer readable storage medium (or multiple computer readable storage media) (e.g., a computer memory, one or more floppy discs, compact discs, optical discs, magnetic tapes, flash memories, circuit configurations in Field Programmable Gate Arrays or other semiconductor devices, or other non- transitory medium or tangible computer storage medium) encoded with one or more programs that, when executed on one or more computers or other processors, perform methods that implement the various embodiments of the invention discussed above. The computer readable medium or media can be transportable, such that the program or programs stored thereon can be loaded onto one or more different computers or other processors to implement various aspects of the present invention as discussed above.
[0095] The terms "program" or "software" are used herein in a generic sense to refer to any type of computer code or set of computer-executable instructions that can be employed to program a computer or other processor to implement various aspects of embodiments as discussed above. Additionally, it should be appreciated that according to one aspect, one or more computer programs that when executed perform methods of the present invention need not reside on a single computer or processor, but may be distributed in a modular fashion amongst a number of different computers or processors to implement various aspects of the present invention.
[0096] Computer-executable instructions may be in many forms, such as program modules, executed by one or more computers or other devices. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Typically the functionality of the program modules may be combined or distributed as desired in various embodiments. [0097] Also, data structures may be stored in computer-readable media in any suitable form. For simplicity of illustration, data structures may be shown to have fields that are related through location in the data structure. Such relationships may likewise be achieved by assigning storage for the fields with locations in a computer-readable medium that convey relationship between the fields. However, any suitable mechanism may be used to establish a relationship between information in fields of a data structure, including through the use of pointers, tags or other mechanisms that establish relationship between data elements.
[0098] Also, various inventive concepts may be embodied as one or more methods, of which an example has been provided. The acts performed as part of the method may be ordered in any suitable way. Accordingly, embodiments may be constructed in which acts are performed in an order different than illustrated, which may include performing some acts simultaneously, even though shown as sequential acts in illustrative embodiments.
[0099] All definitions, as defined and used herein, should be understood to control over dictionary definitions, definitions in documents incorporated by reference, and/or ordinary meanings of the defined terms.
[00100] The indefinite articles "a" and "an," as used herein in the specification and in the claims, unless clearly indicated to the contrary, should be understood to mean "at least one."
[00101] The phrase "and/or," as used herein in the specification and in the claims, should be understood to mean "either or both" of the elements so conjoined, i.e., elements that are conjunctively present in some cases and disjunctively present in other cases. Multiple elements listed with "and/or" should be construed in the same fashion, i.e., "one or more" of the elements so conjoined. Other elements may optionally be present other than the elements specifically identified by the "and/or" clause, whether related or unrelated to those elements specifically identified. Thus, as a non-limiting example, a reference to "A and/or B", when used in conjunction with open-ended language such as "comprising" can refer, in one embodiment, to A only (optionally including elements other than B); in another embodiment, to B only (optionally including elements other than A); in yet another embodiment, to both A and B (optionally including other elements); etc. [00102] As used herein in the specification and in the claims, "or" should be understood to have the same meaning as "and/or" as defined above. For example, when separating items in a list, "or" or "and/or" shall be interpreted as being inclusive, i.e., the inclusion of at least one, but also including more than one, of a number or list of elements, and, optionally, additional unlisted items. Only terms clearly indicated to the contrary, such as "only one of or "exactly one of," or, when used in the claims, "consisting of," will refer to the inclusion of exactly one element of a number or list of elements. In general, the term "or" as used herein shall only be interpreted as indicating exclusive alternatives (i.e. "one or the other but not both") when preceded by terms of exclusivity, such as "either," "one of," "only one of," or "exactly one of." "Consisting essentially of," when used in the claims, shall have its ordinary meaning as used in the field of patent law.
[00103] As used herein in the specification and in the claims, the phrase "at least one," in reference to a list of one or more elements, should be understood to mean at least one element selected from any one or more of the elements in the list of elements, but not necessarily including at least one of each and every element specifically listed within the list of elements and not excluding any combinations of elements in the list of elements. This definition also allows that elements may optionally be present other than the elements specifically identified within the list of elements to which the phrase "at least one" refers, whether related or unrelated to those elements specifically identified. Thus, as a non-limiting example, "at least one of A and B" (or, equivalently, "at least one of A or B," or, equivalently "at least one of A and/or B") can refer, in one embodiment, to at least one, optionally including more than one, A, with no B present (and optionally including elements other than B); in another embodiment, to at least one, optionally including more than one, B, with no A present (and optionally including elements other than A); in yet another embodiment, to at least one, optionally including more than one, A, and at least one, optionally including more than one, B (and optionally including other elements); etc.
[00104] In the claims, as well as in the specification above, all transitional phrases such as "comprising," "including," "carrying," "having," "containing," "involving," "holding,"
"composed of," and the like are to be understood to be open-ended, i.e., to mean including but not limited to. Only the transitional phrases "consisting of and "consisting essentially of shall be closed or semi-closed transitional phrases, respectively, as set forth in the United States Patent Office Manual of Patent Examining Procedures, Section 211 1.03.

Claims

1. A computer-implemented method for generating an action for a robot, the method comprising:
collecting a first experience for the robot, the first experience representing:
a first state of the robot at a first time,
a first action taken by the robot at the first time,
a first reward received by the robot in response to the first action, and a second state of the robot in response to the first action at a second time after the first time;
determining a degree of similarity between the first experience and a plurality of experiences stored in a memory for the robot;
pruning the plurality of experiences in the memory based on the degree of similarity between the first experience and the plurality of experiences to form a pruned plurality of experiences stored in the memory;
training a neural network associated with the robot with the pruned plurality of experiences; and
generating a second action for the robot using the neural network.
2. The computer-implemented method of claim 1, wherein the pruning further comprises:
for each experience in the plurality of experiences:
computing a distance from the first experience; and
comparing the distance to another distance of that experience from each other experience in the plurality of experiences; and
removing a second experience from the memory based on the comparison, the second experience being at least one of the first experience and an experience from the plurality of experiences.
3. The computer-implemented method of claim 2, further comprising removing the second experience from the memory based on a probability that the distance of the second experience from the first experience and each experience in the plurality of experiences is less than a user- defined threshold.
4. The computer-implemented method of claim 1, where the pruning further includes ranking the first experience and each experience in the plurality of experiences.
5. The computer-implemented method of claim 4, wherein the ranking includes creating a plurality of clusters based at least in part on synaptic weights and automatically discarding the first experience upon determining that the first experience fits one of the plurality of clusters.
6. The computer-implemented method of claim 5, wherein the ranking includes encoding each experience in the plurality of experiences, encoding the first experience, and comparing the encoded experiences to the plurality of clusters.
7. The computer-implemented method of claim 1, wherein at a first input state the neural network generates an output based at least in part on the pruned plurality of experiences.
8. The computer-implemented method of claim 1, wherein the pruned plurality of experiences includes a diverse set of states of the robot.
9. The computer-implemented method of claim 1, wherein the generating the second action for the robot includes determining that the robot is in the first state and selecting the second action to be different than the first action.
10. The computer-implemented method of claim 9, further comprising:
receiving a second reward by the robot in response to the second action.
11. The computer-implemented method of claim 1, further comprising:
collecting a second experience for the robot, the second experience representing:
a second state of the robot,
the second action taken by the robot in response to the second state, a second reward received by the robot in response to the second action, and a third state of the robot in response to the second action;
determining a degree of similarity between the second experience and the pruned plurality of experiences; and
pruning the pruned plurality of experiences in the memory based on the degree of similarity between the second experience and the pruned plurality of experiences.
12. A system for generating a second action for a robot, the system comprising:
an interface to collect a first experience for the robot, the first experience representing: a first state of the robot at a first time,
a first action taken by the robot at the first time,
a first reward received by the robot in response to the first action, and a second state of the robot in response to the first action at a second time after the first time;
a memory to store at least one of a plurality of experiences and a pruned plurality of experiences for the robot;
a processor, in digital communication with the interface and the memory, to:
determine a degree of similarity between the first experience and the plurality of experiences stored in the memory;
prune the plurality of experiences in the memory based on the degree of similarity between the first experience and the plurality of experiences to form the pruned plurality of experiences;
update the memory to store the pruned plurality of experiences;
train a neural network associated with the robot with the pruned plurality of experiences; and
generate the second action for the robot using the neural network.
13. The system of claim 12, further comprising:
a cloud brain in digital communication with the processor and the robot to transmit the second action to the robot.
14. The system of claim 12, wherein the processor is further configured to:
for each experience in the plurality of experiences:
compute a distance from the first experience; and
compare the distance to another distance of that experience from each other experience in the plurality of experiences; and
remove a second experience from the memory based on the comparison, the second experience being at least one of the first experience and an experience from the plurality of experiences.
15. The system of claim 14, wherein the processor is configured to remove the second experience from the memory based on a probability determination of the distance of the second experience from the first experience and each experience in the plurality of experiences being less than a user-defined threshold.
16. The system of claim 12, wherein the processor is configured to prune the memory based on ranking the first experience and each experience in the plurality of experiences.
17. The system of claim 16, wherein the processor is further configured to:
create a plurality of clusters based at least in part on synaptic weights;
rank the first experience and the plurality of experiences based on the plurality of clusters; and
automatically discard the first experience upon determination that the first experience fits one of the plurality of clusters.
18. The system of claim 17, wherein the processor is further configured to encode each experience in the plurality of experiences, encode the first experience, and compare the encoded experiences to the plurality of clusters.
19. The system of claim 13, wherein at a first input state the neural network generates an output based at least in part on the pruned plurality of experiences.
20. A computer-implemented method for updating a memory, the memory storing a plurality of experiences received from a computer-based application, the method comprising:
receiving a new experience from the computer-based application;
determining a degree of similarity between the new experience and the plurality of experiences;
adding the new experience based on the degree of similarity;
removing at least one of the new experience and an experience from the plurality of experiences based on the degree of similarity; and
sending an updated version of the plurality of experiences to the computer-based application.
PCT/US2017/029866 2016-04-27 2017-04-27 Methods and apparatus for pruning experience memories for deep neural network-based q-learning WO2017189859A1 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
EP17790438.0A EP3445539A4 (en) 2016-04-27 2017-04-27 Methods and apparatus for pruning experience memories for deep neural network-based q-learning
KR1020187034384A KR20180137562A (en) 2016-04-27 2017-04-27 Method and apparatus for pruning experience memories for depth-based neural network based cue-learning
JP2018556879A JP2019518273A (en) 2016-04-27 2017-04-27 Method and apparatus for pruning deep neural network based Q-learning empirical memory
CN201780036126.6A CN109348707A (en) 2016-04-27 2017-04-27 For the method and apparatus of the Q study trimming experience memory based on deep neural network
US16/171,912 US20190061147A1 (en) 2016-04-27 2018-10-26 Methods and Apparatus for Pruning Experience Memories for Deep Neural Network-Based Q-Learning

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201662328344P 2016-04-27 2016-04-27
US62/328,344 2016-04-27

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/171,912 Continuation US20190061147A1 (en) 2016-04-27 2018-10-26 Methods and Apparatus for Pruning Experience Memories for Deep Neural Network-Based Q-Learning

Publications (1)

Publication Number Publication Date
WO2017189859A1 true WO2017189859A1 (en) 2017-11-02

Family

ID=60160131

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2017/029866 WO2017189859A1 (en) 2016-04-27 2017-04-27 Methods and apparatus for pruning experience memories for deep neural network-based q-learning

Country Status (6)

Country Link
US (1) US20190061147A1 (en)
EP (1) EP3445539A4 (en)
JP (1) JP2019518273A (en)
KR (1) KR20180137562A (en)
CN (1) CN109348707A (en)
WO (1) WO2017189859A1 (en)

Cited By (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108848561A (en) * 2018-04-11 2018-11-20 湖北工业大学 A kind of isomery cellular network combined optimization method based on deeply study
JP2019087096A (en) * 2017-11-08 2019-06-06 本田技研工業株式会社 Action determination system and automatic driving control device
WO2019190476A1 (en) * 2018-03-27 2019-10-03 Nokia Solutions And Networks Oy Method and apparatus for facilitating resource pairing using a deep q-network
WO2019199759A1 (en) * 2018-04-09 2019-10-17 Diveplane Corporation Computer based reasoning and artificial intelligence system
CN110450153A (en) * 2019-07-08 2019-11-15 清华大学 A kind of mechanical arm article active pick-up method based on deeply study
KR20200010982A (en) * 2018-06-25 2020-01-31 군산대학교산학협력단 Method and apparatus of generating control parameter based on reinforcement learning
CN110764093A (en) * 2019-09-30 2020-02-07 苏州佳世达电通有限公司 Underwater biological identification system and method thereof
CN110883776A (en) * 2019-11-29 2020-03-17 河南大学 Robot path planning algorithm for improving DQN under quick search mechanism
CN110901656A (en) * 2018-09-17 2020-03-24 长城汽车股份有限公司 Experimental design method and system for autonomous vehicle control
WO2020111647A1 (en) * 2018-11-30 2020-06-04 Samsung Electronics Co., Ltd. Multi-task based lifelong learning
WO2020159016A1 (en) * 2019-01-29 2020-08-06 주식회사 디퍼아이 Method for optimizing neural network parameter appropriate for hardware implementation, neural network operation method, and apparatus therefor
US10816981B2 (en) 2018-04-09 2020-10-27 Diveplane Corporation Feature analysis in computer-based reasoning models
US10816980B2 (en) 2018-04-09 2020-10-27 Diveplane Corporation Analyzing data for inclusion in computer-based reasoning models
JP2020190854A (en) * 2019-05-20 2020-11-26 ヤフー株式会社 Learning device, learning method, and learning program
WO2020236255A1 (en) * 2019-05-23 2020-11-26 The Trustees Of Princeton University System and method for incremental learning using a grow-and-prune paradigm with neural networks
CN112218744A (en) * 2018-04-22 2021-01-12 谷歌有限责任公司 System and method for learning agile movement of multi-legged robot
US11037063B2 (en) 2017-08-18 2021-06-15 Diveplane Corporation Detecting and correcting anomalies in computer-based reasoning systems
US11092962B1 (en) 2017-11-20 2021-08-17 Diveplane Corporation Computer-based reasoning system for operational situation vehicle control
US11176465B2 (en) 2018-11-13 2021-11-16 Diveplane Corporation Explainable and automated decisions in computer-based reasoning systems
US11205126B1 (en) 2017-10-04 2021-12-21 Diveplane Corporation Evolutionary programming techniques utilizing context indications
US11216001B2 (en) 2019-03-20 2022-01-04 Honda Motor Co., Ltd. System and method for outputting vehicle dynamic controls using deep neural networks
US11262742B2 (en) 2018-04-09 2022-03-01 Diveplane Corporation Anomalous data detection in computer based reasoning and artificial intelligence systems
US11385633B2 (en) 2018-04-09 2022-07-12 Diveplane Corporation Model reduction and training efficiency in computer-based reasoning and artificial intelligence systems
US11454939B2 (en) 2018-04-09 2022-09-27 Diveplane Corporation Entropy-based techniques for creation of well-balanced computer based reasoning systems
US11494669B2 (en) 2018-10-30 2022-11-08 Diveplane Corporation Clustering, explainability, and automated decisions in computer-based reasoning systems
CN115793465A (en) * 2022-12-08 2023-03-14 广西大学 Self-adaptive control method of spiral climbing pruner
US11625625B2 (en) 2018-12-13 2023-04-11 Diveplane Corporation Synthetic data generation in computer-based reasoning systems
US11640561B2 (en) 2018-12-13 2023-05-02 Diveplane Corporation Dataset quality for synthetic data generation in computer-based reasoning systems
US11657294B1 (en) 2017-09-01 2023-05-23 Diveplane Corporation Evolutionary techniques for computer-based optimization and artificial intelligence systems
US11669769B2 (en) 2018-12-13 2023-06-06 Diveplane Corporation Conditioned synthetic data generation in computer-based reasoning systems
US11676069B2 (en) 2018-12-13 2023-06-13 Diveplane Corporation Synthetic data generation using anonymity preservation in computer-based reasoning systems
EP4155856A4 (en) * 2020-06-09 2023-07-12 Huawei Technologies Co., Ltd. Self-learning method and apparatus for autonomous driving system, device, and storage medium
US11727286B2 (en) 2018-12-13 2023-08-15 Diveplane Corporation Identifier contribution allocation in synthetic data generation in computer-based reasoning systems
US11763176B1 (en) 2019-05-16 2023-09-19 Diveplane Corporation Search and query in computer-based reasoning systems
WO2023212808A1 (en) * 2022-05-06 2023-11-09 Ai Redefined Inc. Systems and methods for managing interaction records between ai agents and human evaluators
US11823080B2 (en) 2018-10-30 2023-11-21 Diveplane Corporation Clustering, explainability, and automated decisions in computer-based reasoning systems
US11880775B1 (en) 2018-06-05 2024-01-23 Diveplane Corporation Entropy-based techniques for improved automated selection in computer-based reasoning systems
US11941542B2 (en) 2017-11-20 2024-03-26 Diveplane Corporation Computer-based reasoning system for operational situation control of controllable systems
WO2024068841A1 (en) * 2022-09-28 2024-04-04 Deepmind Technologies Limited Reinforcement learning using density estimation with online clustering for exploration
CN118014054A (en) * 2024-04-08 2024-05-10 西南科技大学 Mechanical arm multitask reinforcement learning method based on parallel recombination network
JP7572348B2 (en) 2018-07-06 2024-10-23 イーグル エアロスペース,リミテッド Adaptive Braking and Directional Control System (ABADCS)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11188821B1 (en) * 2016-09-15 2021-11-30 X Development Llc Control policies for collective robot learning
KR102399535B1 (en) * 2017-03-23 2022-05-19 삼성전자주식회사 Learning method and apparatus for speech recognition
US10695911B2 (en) * 2018-01-12 2020-06-30 Futurewei Technologies, Inc. Robot navigation and object tracking
US10737717B2 (en) * 2018-02-14 2020-08-11 GM Global Technology Operations LLC Trajectory tracking for vehicle lateral control using neural network
US11580384B2 (en) 2018-09-27 2023-02-14 GE Precision Healthcare LLC System and method for using a deep learning network over time
CN109803344B (en) * 2018-12-28 2019-10-11 北京邮电大学 A kind of unmanned plane network topology and routing joint mapping method
KR102471514B1 (en) * 2019-01-25 2022-11-28 주식회사 딥바이오 Method for overcoming catastrophic forgetting by neuron-level plasticity control and computing system performing the same
CN109933086B (en) * 2019-03-14 2022-08-30 天津大学 Unmanned aerial vehicle environment perception and autonomous obstacle avoidance method based on deep Q learning
CN110069064B (en) * 2019-03-19 2021-01-29 驭势科技(北京)有限公司 Method for upgrading automatic driving system, automatic driving system and vehicle-mounted equipment
US11681916B2 (en) * 2019-07-24 2023-06-20 Accenture Global Solutions Limited Complex system for knowledge layout facilitated analytics-based action selection
CN114761965A (en) * 2019-09-13 2022-07-15 渊慧科技有限公司 Data driven robot control
US20210103286A1 (en) * 2019-10-04 2021-04-08 Hong Kong Applied Science And Technology Research Institute Co., Ltd. Systems and methods for adaptive path planning
CN110958135B (en) * 2019-11-05 2021-07-13 东华大学 Method and system for eliminating DDoS (distributed denial of service) attack in feature self-adaptive reinforcement learning
US11525596B2 (en) 2019-12-23 2022-12-13 Johnson Controls Tyco IP Holdings LLP Methods and systems for training HVAC control using simulated and real experience data
CN112015174B (en) * 2020-07-10 2022-06-28 歌尔股份有限公司 Multi-AGV motion planning method, device and system
US11994395B2 (en) * 2020-07-24 2024-05-28 Bayerische Motoren Werke Aktiengesellschaft Method, machine readable medium, device, and vehicle for determining a route connecting a plurality of destinations in a road network, method, machine readable medium, and device for training a machine learning module
US11842260B2 (en) 2020-09-25 2023-12-12 International Business Machines Corporation Incremental and decentralized model pruning in federated machine learning
CN112347961B (en) * 2020-11-16 2023-05-26 哈尔滨工业大学 Intelligent target capturing method and system for unmanned platform in water flow
CN112469103B (en) * 2020-11-26 2022-03-08 厦门大学 Underwater sound cooperative communication routing method based on reinforcement learning Sarsa algorithm
KR102437750B1 (en) * 2020-11-27 2022-08-30 서울대학교산학협력단 Pruning method for attention head in transformer neural network for regularization and apparatus thereof
CN112698933A (en) * 2021-03-24 2021-04-23 中国科学院自动化研究所 Method and device for continuous learning in multitask data stream
TWI774411B (en) * 2021-06-07 2022-08-11 威盛電子股份有限公司 Model compression method and model compression system
CN113543068B (en) * 2021-06-07 2024-02-02 北京邮电大学 Forest area unmanned aerial vehicle network deployment method and system based on hierarchical clustering
WO2023009803A1 (en) 2021-07-30 2023-02-02 Epiphany Systems, Inc. Graphics processing unit optimization
CN114084450B (en) * 2022-01-04 2022-12-20 合肥工业大学 Exoskeleton robot production optimization and power-assisted control method
EP4273636A1 (en) * 2022-05-05 2023-11-08 Siemens Aktiengesellschaft Method and device for controlling a machine

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5172253A (en) * 1990-06-21 1992-12-15 Inernational Business Machines Corporation Neural network model for reaching a goal state
US8392346B2 (en) * 2008-11-04 2013-03-05 Honda Motor Co., Ltd. Reinforcement learning system
US20140032461A1 (en) * 2012-07-25 2014-01-30 Board Of Trustees Of Michigan State University Synapse maintenance in the developmental networks
US20150127149A1 (en) * 2013-11-01 2015-05-07 Brain Corporation Apparatus and methods for online training of robots
US9031692B2 (en) * 2010-08-24 2015-05-12 Shenzhen Institutes of Advanced Technology Chinese Academy of Science Cloud robot system and method of integrating the same
US20150134232A1 (en) * 2011-11-22 2015-05-14 Kurt B. Robinson Systems and methods involving features of adaptive and/or autonomous traffic control
US9177246B2 (en) * 2012-06-01 2015-11-03 Qualcomm Technologies Inc. Intelligent modular robotic apparatus and methods
US20160075017A1 (en) * 2014-09-17 2016-03-17 Brain Corporation Apparatus and methods for removal of learned behaviors in robots
US20160096270A1 (en) * 2014-10-02 2016-04-07 Brain Corporation Feature detection apparatus and methods for training of robotic navigation

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9147155B2 (en) * 2011-08-16 2015-09-29 Qualcomm Incorporated Method and apparatus for neural temporal coding, learning and recognition
US9440352B2 (en) * 2012-08-31 2016-09-13 Qualcomm Technologies Inc. Apparatus and methods for robotic learning
US9679258B2 (en) * 2013-10-08 2017-06-13 Google Inc. Methods and apparatus for reinforcement learning
CN104317297A (en) * 2014-10-30 2015-01-28 沈阳化工大学 Robot obstacle avoidance method under unknown environment
CN104932264B (en) * 2015-06-03 2018-07-20 华南理工大学 The apery robot stabilized control method of Q learning frameworks based on RBF networks
CN105137967B (en) * 2015-07-16 2018-01-19 北京工业大学 The method for planning path for mobile robot that a kind of depth autocoder is combined with Q learning algorithms
CN117910543A (en) * 2015-11-12 2024-04-19 渊慧科技有限公司 Training neural networks using prioritized empirical memories

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5172253A (en) * 1990-06-21 1992-12-15 Inernational Business Machines Corporation Neural network model for reaching a goal state
US8392346B2 (en) * 2008-11-04 2013-03-05 Honda Motor Co., Ltd. Reinforcement learning system
US9031692B2 (en) * 2010-08-24 2015-05-12 Shenzhen Institutes of Advanced Technology Chinese Academy of Science Cloud robot system and method of integrating the same
US20150134232A1 (en) * 2011-11-22 2015-05-14 Kurt B. Robinson Systems and methods involving features of adaptive and/or autonomous traffic control
US9177246B2 (en) * 2012-06-01 2015-11-03 Qualcomm Technologies Inc. Intelligent modular robotic apparatus and methods
US20140032461A1 (en) * 2012-07-25 2014-01-30 Board Of Trustees Of Michigan State University Synapse maintenance in the developmental networks
US20150127149A1 (en) * 2013-11-01 2015-05-07 Brain Corporation Apparatus and methods for online training of robots
US20160075017A1 (en) * 2014-09-17 2016-03-17 Brain Corporation Apparatus and methods for removal of learned behaviors in robots
US20160096270A1 (en) * 2014-10-02 2016-04-07 Brain Corporation Feature detection apparatus and methods for training of robotic navigation

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BERENSON ET AL.: "A robot path planning framework that leams from experience", IEEE INTERNATIONAL CONFERENCE ON ROBOTICS AND AUTOMATION, 2012, pages 1 - 8, XP032450473, Retrieved from the Internet <URL:http://users.wpi.edu/ ~dberenson/lightning.pdf> [retrieved on 20170615] *
See also references of EP3445539A4 *

Cited By (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11037063B2 (en) 2017-08-18 2021-06-15 Diveplane Corporation Detecting and correcting anomalies in computer-based reasoning systems
US11748635B2 (en) 2017-08-18 2023-09-05 Diveplane Corporation Detecting and correcting anomalies in computer-based reasoning systems
US11657294B1 (en) 2017-09-01 2023-05-23 Diveplane Corporation Evolutionary techniques for computer-based optimization and artificial intelligence systems
US11853900B1 (en) 2017-10-04 2023-12-26 Diveplane Corporation Evolutionary programming techniques utilizing context indications
US11586934B1 (en) 2017-10-04 2023-02-21 Diveplane Corporation Evolutionary programming techniques utilizing context indications
US11205126B1 (en) 2017-10-04 2021-12-21 Diveplane Corporation Evolutionary programming techniques utilizing context indications
JP2019087096A (en) * 2017-11-08 2019-06-06 本田技研工業株式会社 Action determination system and automatic driving control device
US11941542B2 (en) 2017-11-20 2024-03-26 Diveplane Corporation Computer-based reasoning system for operational situation control of controllable systems
US11092962B1 (en) 2017-11-20 2021-08-17 Diveplane Corporation Computer-based reasoning system for operational situation vehicle control
WO2019190476A1 (en) * 2018-03-27 2019-10-03 Nokia Solutions And Networks Oy Method and apparatus for facilitating resource pairing using a deep q-network
US11528720B2 (en) 2018-03-27 2022-12-13 Nokia Solutions And Networks Oy Method and apparatus for facilitating resource pairing using a deep Q-network
US11454939B2 (en) 2018-04-09 2022-09-27 Diveplane Corporation Entropy-based techniques for creation of well-balanced computer based reasoning systems
US11262742B2 (en) 2018-04-09 2022-03-01 Diveplane Corporation Anomalous data detection in computer based reasoning and artificial intelligence systems
US10816980B2 (en) 2018-04-09 2020-10-27 Diveplane Corporation Analyzing data for inclusion in computer-based reasoning models
US10817750B2 (en) 2018-04-09 2020-10-27 Diveplane Corporation Data inclusion in computer-based reasoning models
US10816981B2 (en) 2018-04-09 2020-10-27 Diveplane Corporation Feature analysis in computer-based reasoning models
US11385633B2 (en) 2018-04-09 2022-07-12 Diveplane Corporation Model reduction and training efficiency in computer-based reasoning and artificial intelligence systems
US12001177B2 (en) 2018-04-09 2024-06-04 Howso Incorporated Entropy-based techniques for creation of well-balanced computer based reasoning systems
WO2019199759A1 (en) * 2018-04-09 2019-10-17 Diveplane Corporation Computer based reasoning and artificial intelligence system
CN108848561A (en) * 2018-04-11 2018-11-20 湖北工业大学 A kind of isomery cellular network combined optimization method based on deeply study
CN112218744A (en) * 2018-04-22 2021-01-12 谷歌有限责任公司 System and method for learning agile movement of multi-legged robot
US11880775B1 (en) 2018-06-05 2024-01-23 Diveplane Corporation Entropy-based techniques for improved automated selection in computer-based reasoning systems
KR20200010982A (en) * 2018-06-25 2020-01-31 군산대학교산학협력단 Method and apparatus of generating control parameter based on reinforcement learning
KR102124553B1 (en) * 2018-06-25 2020-06-18 군산대학교 산학협력단 Method and apparatus for collision aviodance and autonomous surveillance of autonomous mobile vehicle using deep reinforcement learning
JP7572348B2 (en) 2018-07-06 2024-10-23 イーグル エアロスペース,リミテッド Adaptive Braking and Directional Control System (ABADCS)
CN110901656A (en) * 2018-09-17 2020-03-24 长城汽车股份有限公司 Experimental design method and system for autonomous vehicle control
US11494669B2 (en) 2018-10-30 2022-11-08 Diveplane Corporation Clustering, explainability, and automated decisions in computer-based reasoning systems
US11823080B2 (en) 2018-10-30 2023-11-21 Diveplane Corporation Clustering, explainability, and automated decisions in computer-based reasoning systems
US11741382B1 (en) 2018-11-13 2023-08-29 Diveplane Corporation Explainable and automated decisions in computer-based reasoning systems
US12067467B2 (en) 2018-11-13 2024-08-20 Howso Incorporated Explainable and automated decisions in computer-based reasoning systems
US11176465B2 (en) 2018-11-13 2021-11-16 Diveplane Corporation Explainable and automated decisions in computer-based reasoning systems
US11361231B2 (en) 2018-11-13 2022-06-14 Diveplane Corporation Explainable and automated decisions in computer-based reasoning systems
US11361232B2 (en) 2018-11-13 2022-06-14 Diveplane Corporation Explainable and automated decisions in computer-based reasoning systems
US11775812B2 (en) 2018-11-30 2023-10-03 Samsung Electronics Co., Ltd. Multi-task based lifelong learning
WO2020111647A1 (en) * 2018-11-30 2020-06-04 Samsung Electronics Co., Ltd. Multi-task based lifelong learning
US11783211B2 (en) 2018-12-13 2023-10-10 Diveplane Corporation Synthetic data generation in computer-based reasoning systems
US11669769B2 (en) 2018-12-13 2023-06-06 Diveplane Corporation Conditioned synthetic data generation in computer-based reasoning systems
US11676069B2 (en) 2018-12-13 2023-06-13 Diveplane Corporation Synthetic data generation using anonymity preservation in computer-based reasoning systems
US12008446B2 (en) 2018-12-13 2024-06-11 Howso Incorporated Conditioned synthetic data generation in computer-based reasoning systems
US11727286B2 (en) 2018-12-13 2023-08-15 Diveplane Corporation Identifier contribution allocation in synthetic data generation in computer-based reasoning systems
US11640561B2 (en) 2018-12-13 2023-05-02 Diveplane Corporation Dataset quality for synthetic data generation in computer-based reasoning systems
US11625625B2 (en) 2018-12-13 2023-04-11 Diveplane Corporation Synthetic data generation in computer-based reasoning systems
WO2020159016A1 (en) * 2019-01-29 2020-08-06 주식회사 디퍼아이 Method for optimizing neural network parameter appropriate for hardware implementation, neural network operation method, and apparatus therefor
US11216001B2 (en) 2019-03-20 2022-01-04 Honda Motor Co., Ltd. System and method for outputting vehicle dynamic controls using deep neural networks
US11763176B1 (en) 2019-05-16 2023-09-19 Diveplane Corporation Search and query in computer-based reasoning systems
JP2020190854A (en) * 2019-05-20 2020-11-26 ヤフー株式会社 Learning device, learning method, and learning program
JP7145813B2 (en) 2019-05-20 2022-10-03 ヤフー株式会社 LEARNING DEVICE, LEARNING METHOD AND LEARNING PROGRAM
WO2020236255A1 (en) * 2019-05-23 2020-11-26 The Trustees Of Princeton University System and method for incremental learning using a grow-and-prune paradigm with neural networks
CN110450153A (en) * 2019-07-08 2019-11-15 清华大学 A kind of mechanical arm article active pick-up method based on deeply study
CN110764093A (en) * 2019-09-30 2020-02-07 苏州佳世达电通有限公司 Underwater biological identification system and method thereof
CN110883776A (en) * 2019-11-29 2020-03-17 河南大学 Robot path planning algorithm for improving DQN under quick search mechanism
CN110883776B (en) * 2019-11-29 2021-04-23 河南大学 Robot path planning algorithm for improving DQN under quick search mechanism
EP4155856A4 (en) * 2020-06-09 2023-07-12 Huawei Technologies Co., Ltd. Self-learning method and apparatus for autonomous driving system, device, and storage medium
WO2023212808A1 (en) * 2022-05-06 2023-11-09 Ai Redefined Inc. Systems and methods for managing interaction records between ai agents and human evaluators
WO2024068841A1 (en) * 2022-09-28 2024-04-04 Deepmind Technologies Limited Reinforcement learning using density estimation with online clustering for exploration
CN115793465A (en) * 2022-12-08 2023-03-14 广西大学 Self-adaptive control method of spiral climbing pruner
CN118014054A (en) * 2024-04-08 2024-05-10 西南科技大学 Mechanical arm multitask reinforcement learning method based on parallel recombination network

Also Published As

Publication number Publication date
US20190061147A1 (en) 2019-02-28
KR20180137562A (en) 2018-12-27
EP3445539A4 (en) 2020-02-19
JP2019518273A (en) 2019-06-27
EP3445539A1 (en) 2019-02-27
CN109348707A (en) 2019-02-15

Similar Documents

Publication Publication Date Title
US20190061147A1 (en) Methods and Apparatus for Pruning Experience Memories for Deep Neural Network-Based Q-Learning
US11941719B2 (en) Learning robotic tasks using one or more neural networks
US20210142491A1 (en) Scene embedding for visual navigation
US12020164B2 (en) Neural networks for scalable continual learning in domains with sequentially learned tasks
US11992944B2 (en) Data-efficient hierarchical reinforcement learning
WO2020159890A1 (en) Method for few-shot unsupervised image-to-image translation
Wang et al. Denoised mdps: Learning world models better than the world itself
US11164093B1 (en) Artificial intelligence system incorporating automatic model switching based on model parameter confidence sets
US20110060708A1 (en) Information processing device, information processing method, and program
US20110060706A1 (en) Information processing device, information processing method, and program
US20200285940A1 (en) Machine learning systems with memory based parameter adaptation for learning fast and slower
US9471885B1 (en) Predictor-corrector method for knowledge amplification by structured expert randomization
Wang et al. Achieving cooperation through deep multiagent reinforcement learning in sequential prisoner's dilemmas
Ghadirzadeh et al. Data-efficient visuomotor policy training using reinforcement learning and generative models
Ma et al. Highly efficient self-adaptive reward shaping for reinforcement learning
US11586874B2 (en) Anomaly score adjustment across anomaly generators
US20220305647A1 (en) Future prediction, using stochastic adversarial based sampling, for robotic control and/or other purpose(s)
JP5170698B2 (en) Stochastic reasoner
EP3955166A2 (en) Training in neural networks
CN111930935B (en) Image classification method, device, equipment and storage medium
Chansuparp et al. A novel augmentative backward reward function with deep reinforcement learning for autonomous UAV navigation
Ye et al. Lifelong compression mixture model via knowledge relationship graph
Shen et al. Enhancing parcel singulation efficiency through transformer-based position attention and state space augmentation
Ahamad et al. Q-SegNet: Quantized deep convolutional neural network for image segmentation on FPGA
Sheng et al. Distributed evolution strategies using tpus for meta-learning

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2018556879

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 20187034384

Country of ref document: KR

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2017790438

Country of ref document: EP

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17790438

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2017790438

Country of ref document: EP

Effective date: 20181127