U.S. patent application number 15/200959 was filed with the patent office on 2017-01-05 for robotic training apparatus and methods.
The applicant listed for this patent is BRAIN Corporation. Invention is credited to Borja Ibarz Gabardos, Eugene Izhikevich, Patryk Laurent, Jean-Baptiste Passot, Filip Ponulak, Oleg Sinyavskiy.
Application Number | 20170001309 15/200959 |
Document ID | / |
Family ID | 52019905 |
Filed Date | 2017-01-05 |
United States Patent
Application |
20170001309 |
Kind Code |
A1 |
Passot; Jean-Baptiste ; et
al. |
January 5, 2017 |
ROBOTIC TRAINING APPARATUS AND METHODS
Abstract
Apparatus and methods for training of robotic devices. Robotic
devices may be trained by a user guiding the robot along target
trajectory using an input signal. A robotic device may comprise an
adaptive controller configured to generate control commands based
on one or more of the user guidance, sensory input, and/or
performance measure. Training may comprise a plurality of trials.
During first trial, the user input may be sufficient to cause the
robot to complete the trajectory. During subsequent trials, the
user and the robot's controller may collaborate so that user input
may be reduced while the robot control may be increased. Individual
contributions from the user and the robot controller during
training may be may be inadequate (when used exclusively) to
complete the task. Upon learning, user's knowledge may be
transferred to the robot's controller to enable task execution in
absence of subsequent inputs from the user
Inventors: |
Passot; Jean-Baptiste;
(Solana Beach, CA) ; Sinyavskiy; Oleg; (San Diego,
CA) ; Ponulak; Filip; (San Diego, CA) ;
Laurent; Patryk; (San Diego, CA) ; Gabardos; Borja
Ibarz; (La Jolla, CA) ; Izhikevich; Eugene;
(San Diego, CA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
BRAIN Corporation |
San Diego |
CA |
US |
|
|
Family ID: |
52019905 |
Appl. No.: |
15/200959 |
Filed: |
July 1, 2016 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
13918338 |
Jun 14, 2013 |
9384443 |
|
|
15200959 |
|
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
G06N 3/08 20130101; B25J
9/161 20130101; G05D 1/0221 20130101; G06N 3/008 20130101; B25J
9/163 20130101; G06N 3/049 20130101 |
International
Class: |
B25J 9/16 20060101
B25J009/16; G06N 3/00 20060101 G06N003/00; G06N 3/04 20060101
G06N003/04; G06N 3/08 20060101 G06N003/08 |
Claims
1.-23. (canceled)
24. A robotic apparatus, comprising: a platform comprising one or
more controllable elements; and a controller communicatively
coupled to the platform to operate individual ones of the one or
more controllable elements, the controller configured to: receive a
first input from a human; analyze the first input and cause the
platform to execute a first action in accordance with the first
input, wherein the analysis of the first input comprises a
determination of a deviation between the first action and a target
action; and receive a second input from a human subsequent to the
receipt of the first input, the second input being configured to
cause a corrected action by the platform, the corrected action
being characterized at least in part by a lower deviation from the
target action.
25. The robotic apparatus of claim 24, wherein the first action is
based on the operation of the individual ones of the one or more
controllable elements of the platform.
26. The robotic apparatus of claim 24, wherein the first input and
the second input are sensory signals configured to convey
information associated with one or both of an environment of the
robotic apparatus and a state of the platform.
27. The robotic apparatus of claim 24, wherein the controller is
further configured to generate a predicted control output based at
least in part on the first input, wherein the first action is
determined based at least in part on the predicted control
output.
28. The robotic apparatus of claim 24, wherein the controller is
further configured to search a predetermined table correlating a
plurality of human inputs, a plurality of sensory signal
characteristics, and a plurality of predicted control outputs,
wherein the first action is determined based at least in part on at
least one of the predicted control outputs correlated to the first
input.
29. The robotic apparatus of claim 24, wherein the platform further
comprises an actuator configured to actuate the one or more
controllable elements.
30. The robotic apparatus of claim 24, wherein the target action is
based at least in part on a training input by a human.
31. The robotic apparatus of claim 24, further comprising a user
interface configured to receive inputs from a human.
32. A method of operating a robot, comprising: receiving a first
input from a human; analyzing the first input and causing one or
more controllable elements to execute a first action in accordance
with the first input, wherein analyzing the first input comprises
determining a deviation between the first action and a target
action; and receiving a second input from a human subsequent to the
receipt of the first input, the second input being configured to
cause a corrected action by the platform, the corrected action
being characterized at least in part by a lower deviation from the
target action.
33. The method of claim 32, further comprising operating individual
ones of the one or more controllable elements of the platform based
at least in part on the first action.
34. The method of claim 32, further comprising generating a sensory
signal based at least in part upon determined information of one or
both of an environment of the robot and a state of the one or more
controllable elements.
35. The method of claim 34, further comprising determining one or
more predicted control outputs based at least in part on the sensor
signal.
36. The method of claim 32, further comprising generating a
predicted control output based at least in part on the first input,
and determining the first action based at least in part on the
predicted control output.
37. The method of claim 36, further comprising generating a
combined output by combining the predicted control output and the
first input.
38. The method of claim 37, further comprising performing a
supervised learning process based at least in part on the combined
output.
39. The method of claim 32, further comprising effectuating the
corrected action based at least in part on a cooperative
interaction with a human, wherein the cooperative interaction
characterized by a plurality of iterations.
40. A computerized robotic controller apparatus, comprising: one or
more processors configured to execute computer program modules to
cause the one or more processors to: for a given iteration of a
plurality of iterations: generate a first signal based on a sensory
context; receive a second signal from a user associated with a
target action configured based on the sensory context; and utilize
the first signal based on the sensory context and the second signal
from the user to perform an action; wherein: the plurality of
iterations is configured to occur within a time interval
characterized by a predetermined duration; a subsequent iteration
of the plurality of iterations is configured to cause the action to
deviate less from the target action; and upon expiration of the
predetermined duration, the first signal is configured to perform
the action absent the second signal.
41. The apparatus of claim 40, wherein: individual ones of the
plurality of iterations are spaced by time intervals that are at
ten percent of the predetermined duration or less; and the
plurality of iterations include more than seven iterations.
42. The apparatus of claim 40, individual ones of the plurality of
iterations further include determining a performance measure based
at least in part on the action and the target action.
43. The apparatus of claim 42, wherein the one or more processors
are further configured to adjust a learning parameter based at
least in part on the performance measure of the individual ones of
the plurality of iterations, and the action is further based on the
learning parameter.
Description
PRIORITY
[0001] This application is a continuation of and claims priority to
co-owned U.S. patent application Ser. No. 13/918,338 of the same
title filed Jun. 14, 2013, and issuing as U.S. Pat. No. 9,384,443
on Jul. 5, 2016, which is incorporated herein by reference in its
entirety.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application is related to co-pending and co-owned U.S.
patent application Ser. No. 13/918,298 entitled "HIERARCHICAL
ROBOTIC CONTROLLER APPARATUS AND METHODS", filed herewith, co-owned
U.S. patent application Ser. No. 13/918,620 entitled "PREDICTIVE
ROBOTIC CONTROLLER APPARATUS AND METHODS", filed Jun. 14, 2013 (now
issued as U.S. Pat. No. 9,314,924), co-owned U.S. patent
application Ser. No. 13/907,734 entitled "ADAPTIVE ROBOTIC
INTERFACE APPARATUS AND METHODS", filed May 31, 2013 (now issued as
U.S. Pat. No. 9,242,372), co-pending and co-owned U.S. patent
application Ser. No. 13/842,530 entitled "ADAPTIVE PREDICTOR
APPARATUS AND METHODS", filed Mar. 15, 2013, co-owned U.S. patent
application Ser. No. 13/842,562 entitled "ADAPTIVE PREDICTOR
APPARATUS AND METHODS FOR ROBOTIC CONTROL", filed Mar. 15, 2013,
co-owned U.S. patent application Ser. No. 13/842,616 entitled
"ROBOTIC APPARATUS AND METHODS FOR DEVELOPING A HIERARCHY OF MOTOR
PRIMITIVES", filed Mar. 15, 2013, co-owned U.S. patent application
Ser. No. 13/842,647 entitled "MULTICHANNEL ROBOTIC CONTROLLER
APPARATUS AND METHODS", filed Mar. 15, 2013, and co-owned U.S.
patent application Ser. No. 13/842,583 entitled "APPARATUS AND
METHODS FOR TRAINING OF ROBOTIC DEVICES", filed Mar. 15, 2013, each
of the foregoing being incorporated herein by reference in its
entirety.
COPYRIGHT
[0003] A portion of the disclosure of this patent document contains
material that is subject to copyright protection. The copyright
owner has no objection to the facsimile reproduction by anyone of
the patent document or the patent disclosure, as it appears in the
Patent and Trademark Office patent files or records, but otherwise
reserves all copyright rights whatsoever.
BACKGROUND
[0004] Technological Field
[0005] The present disclosure relates to adaptive control and
training of robotic devices.
[0006] Background
[0007] Robotic devices are used in a variety of applications, such
as manufacturing, medical, safety, military, exploration, and/or
other applications. Some existing robotic devices (e.g.,
manufacturing assembly and/or packaging) may be programmed in order
to perform desired functionality. Some robotic devices (e.g.,
surgical robots) may be remotely controlled by humans, while some
robots (e.g., iRobot Roomba.RTM.) may learn to operate via
exploration.
[0008] Programming robots may be costly and remote control may
require a human operator. Furthermore, changes in the robot model
and/or environment may require changes in the programming code.
Remote control typically relies on user experience and/or agility
that may be inadequate when dynamics of the control system and/or
environment (e.g., an unexpected obstacle appears in path of a
remotely controlled vehicle) change rapidly.
SUMMARY
[0009] One aspect of the disclosure relates to a computerized
controller apparatus configured to effectuate control of a robotic
device. The apparatus comprises one or more processors configured
to execute computer program modules. Executing the computer program
modules may cause one or more processors to: (1) during a first
training trial of a plurality of trials: determine a first signal
based on a characteristic of an input provided to the controller
apparatus by the robotic device; and cause the robotic device to
perform a first action based on a first control signal, the first
control signal being determined based on the first signal and a
first user input, the first action being characterized by a first
performance measure; and (2) during a second training trial of the
plurality of training trials, the second training train being
subsequent to the first training trial: determine a second signal
based on the characteristic of the input and a first error, the
first error being determined based on a proximity measure between
the first action and a target action; and cause the robotic device
to perform a second action based on a second control signal, the
second control signal being determined based on the second signal
and a second user input, the second action being characterized by a
second error, the second error being determined based on a
proximity measure between the second action and the target action.
The second error may be smaller than the first error. The first
error may be greater than a third error corresponding to a third
action performed by the robotic device responsive to a third
control signal configured based solely on the first user input.
[0010] In some implementations, the computer program modules may be
executable to cause one or more processors to: during a third
training trial of the plurality of trials, the third training trial
being subsequent to the second training trial: determine a third
signal based on the characteristic of the input and the second
error; and cause the robotic device to perform a fourth action
based on a fourth control signal, the fourth control signal being
determined based on the third signal but absent user input, the
fourth action being characterized by a fourth error, the fourth
error being determined based on a proximity measure between the
fourth action and the target action, the fourth error being lower
than the first error.
[0011] In some implementations, the robotic device may comprise a
motor configured to receive an operational directive capable of
causing displacement of the motor. The user input may comprise one
or more operational directives configured in accordance with the
target action.
[0012] In some implementations, the robotic device may comprise a
motor configured to receive an operational directive comprising an
electrical signal characterized by one or more of amplitude,
polarity, frequency, duration, or periodicity. The user input may
comprise one or more operational directives configured in
accordance with the target action.
[0013] In some implementations, the plurality of trials may
comprise more than ten trials. Individual ones of the plurality of
trials may be spaced by time intervals that are at most ten percent
of duration of the plurality of trials. For a given iteration of
the plurality of iterations, the computer program modules may be
executable to cause one or more processors to effectuate the
control of the robotic device based on a combination of the user
input and a controller-generated signal configured based on the
characteristic.
[0014] In some implementations, the first user input associated
with the first trial may be characterized by a first signal
parameter. The first signal parameter may be selected from the
group consisting of signal amplitude, signal duration, signal
periodicity, signal polarity, signal phase, and signal frequency.
The second user input associated with the second trial may be
characterized by a second signal parameter. The first signal
parameter may be selected from the group consisting of signal
amplitude, signal duration, signal periodicity, signal polarity,
signal phase, and signal frequency. The second parameter may be
different from the first parameter.
[0015] In some implementations, the first trial and the second
trial may be characterized by one or both of different trial
duration or a different inter-trial interval.
[0016] Another aspect of the disclosure relates to a robotic
apparatus. The robotic apparatus may comprise a platform and a
controller. The platform may comprise one or more controllable
elements. The controller may comprise one or more processors
configured to execute computer program modules configured to
operate individual ones of the one or more controllable elements.
The computer program modules may comprise a first logic module a
second logic module, and a third logic module. The first logic
module may be configured to receive a first input from a human. The
second logic module may be configured to analyze the first input
and to cause the platform to execute an action in accordance with
the first input. The third logic module may be configured to
receive a second input from the human subsequent to receipt of the
first input. The second input may be configured to cause a
corrected action by the platform. The corrected action may be
characterized by a lower deviation from a target action. The action
execution may be based on operation of individual ones of the one
or more controllable elements.
[0017] In some implementations, the target action may correspond to
operation of the platform based on teaching input from the human.
The analysis of the first input may comprise determining a
deviation between the first action and the target action data. The
analysis may be configured to cause modification of a controller
state in accordance with a learning process configured based on the
performance measure.
[0018] In some implementations, the second logic module may
comprise a predictor sub-module configured to determine a predicted
control output based on a characteristic of sensory signal. The
sensory signal may convey information associated with one or both
of an environment of the robotic apparatus and a platform state.
The first input and the second input may be configured based on the
sensory signal. The action may be configured based on the predicted
control output.
[0019] In some implementations, the predictor sub-module may be
configured to provide a table configured to store a plurality of
human inputs, a plurality of sensory signal characteristics, and a
plurality of predicted control outputs. The analysis may comprise a
selection of a given predicted control output based on a match
between a given characteristic of sensory signal and an individual
one of the plurality of sensory signal characteristics.
[0020] In some implementations, the given predicted control may be
configured based on a search of the table. The search may be
configured based on the user input.
[0021] In some implementations, the third logic module may comprise
a combiner sub-module configured to determine a combined output
based on the predicted control output and first user input. The
combined output may be characterized by a transform function
configured to combine the predicted control output and the first
signal via one or more operations including an additive
operation.
[0022] In some implementations, the transform function may be
configured to combine the predicted control output and the control
output via one or more operations including a union operation.
[0023] In some implementations, the learning process may comprise a
supervised learning process configured based on the combined
output. The learning process may be configured to be updated at
time intervals. The modification of the controller may be based on
an error measure between (i) the predicted control output generated
at a first time instance and (ii) the first input determined at
second time instance subsequent to the first time instance. The
first time instance and the second time instance may be separated
by one of the time intervals.
[0024] In some implementations, the corrected action may be
effectuated based on a cooperative interaction with the human. The
cooperative interaction may be characterized by a plurality of
iterations. The first input may correspond to a first given
iteration of the plurality of iterations. The second input may
correspond to a second given iteration of the plurality of
iterations. The second given iteration may occur subsequent to the
first given iteration.
[0025] In some implementations, the second logic module may
comprise a predictor sub-module configured to determine a plurality
of predicted control outputs based on a characteristic of a sensory
signal and a given user input. The sensory signal may be configured
to convey information about one or both of an environment of the
robotic apparatus and a platform state. The first input and the
second input may be configured based on the sensory signal. The
action may be configured based on a first predicted control output
of the plurality of predicted control outputs. The first predicted
control output may correspond to the first input. The corrected
action may be configured based on second predicted control output
of the plurality of predicted control outputs. The second predicted
control output may correspond to the second input. The corrected
action may be characterized by improved performance as compared to
the action and a target action. The improved performance may be
quantified based on a lower deviation of the corrected action from
the target action compared to deviation between the action and the
target action. The target action may be based solely on a training
input by the human absent predicted control output.
[0026] Yet another aspect of the disclosure relates to a
computerized robotic controller apparatus. The apparatus may
comprise one or more processors configured to execute computer
program modules. The computer program modules may be executable to
cause one or more processors to: for a given iteration of a
plurality of iterations: generate a first signal based on a sensory
context; receive a second signal from a user associated with a
target action configured based on the sensory context; and utilize
the first signal and the second signal to perform an action. The
plurality of iterations may be configured to occur within a time
interval characterized by duration. A subsequent iteration of the
plurality of iterations may be configured to cause the action to be
closer to the target action. Upon expiration of the duration, the
first signal may be configured to perform the action absent the
second signal.
[0027] In some implementations, individual ones of the plurality of
iterations may be spaced by time intervals that are at ten percent
of the duration or less. The plurality of iterations may include
more than seven iterations.
[0028] Still another aspect of the disclosure relates to a method
of training a computerized robotic apparatus to perform a target
action based on sensory context. The training may be effectuated
via a plurality of iterations. The method may comprise: during a
first iteration: causing the apparatus to generate a first control
signal based on the sensory context; causing the apparatus to
execute a first action based on the first control signal and a user
input received from a user, the user input being indicative of the
target action; and causing the apparatus to adjust a learning
parameter based on a first performance determined based on the
first action and the target action; and during a subsequent
iteration: causing the apparatus to generate a second control
signal based on the sensory context and the adjusted learning
parameter; causing the apparatus to execute a second action based
on the second control signal, the second action being characterized
by a second performance. The plurality of iterations may be
configured to occur within a time interval characterized by
duration. The first iteration and the subsequent iteration may be
separated by the duration. A provision of the user input during the
subsequent iteration may be configured to cause the controller to
execute a third action characterized by a third performance value.
The second action may be configured closer to the target action as
compared to the third action.
[0029] In some implementations, the performance measure may be
determined by the apparatus. The first performance value may be
lower than the second performance value.
[0030] In some implementations, the learning parameter adjustment
may be configured based on a supervised learning process configured
based on the sensory context and a combination of the control
signal and the user input. The third performance value may be lower
than the second performance value.
[0031] These and other objects, features, and characteristics of
the present invention, as well as the methods of operation and
functions of the related elements of structure and the combination
of parts and economies of manufacture, will become more apparent
upon consideration of the following description and the appended
claims with reference to the accompanying drawings, all of which
form a part of this specification, wherein like reference numerals
designate corresponding parts in the various figures. It is to be
expressly understood, however, that the drawings are for the
purpose of illustration and description only and are not intended
as a definition of the limits of the invention. As used in the
specification and in the claims, the singular form of "a", "an",
and "the" include plural referents unless the context clearly
dictates otherwise.
BRIEF DESCRIPTION OF THE DRAWINGS
[0032] FIG. 1 is a block diagram illustrating a robotic apparatus,
according to one or more implementations.
[0033] FIG. 2A is a block diagram illustrating a controller
apparatus comprising an adaptable predictor block operable in
accordance with a teaching signal, according to one or more
implementations.
[0034] FIG. 2B is a block diagram illustrating a multichannel
adaptive predictor apparatus, according to one or more
implementations.
[0035] FIG. 2C is a block diagram illustrating a multiplexing
adaptive predictor configured to interface to a plurality of
combiner apparatus, according to one or more implementations.
[0036] FIG. 3A is a block diagram illustrating an adaptive
predictor configured to develop an association between control
action and sensory context, according to one or more
implementations.
[0037] FIG. 3B is a block diagram illustrating a control system
comprising an adaptive predictor configured to generate control
signal based on an association between control action and sensory
context, according to one or more implementations.
[0038] FIG. 4 is a graphical illustration depicting a hierarchy of
control actions for use with an adaptive control system of e.g.,
FIGS. 3A-3B, according to one or more implementations.
[0039] FIG. 5 is a graphical illustration operation of a robotic
controller, comprising an adaptive predictor of, e.g., FIGS. 2C,
3A-3B configured to develop an association between control action
and sensory context, according to one or more implementations.
[0040] FIG. 6A is a graphical illustration depicting obstacle
avoidance training of a robotic device, according to one or more
implementations.
[0041] FIG. 6B is a graphical illustration depicting training a
robot to perform a target approach task, according to one or more
implementations.
[0042] FIG. 7A is a plot depicting modulated user input provided to
a robotic device during one or more training trials for use, for
example, with the target approach training of FIG. 6B, according to
one or more implementations.
[0043] FIG. 7B is a plot depicting pulse frequency modulated user
input provided to a robotic device during one or more training
trials for use, for example, with the target approach training of
FIG. 6B, according to one or more implementations.
[0044] FIG. 7C is a plot depicting ramp-up modulated user input
provided to a robotic device during one or more training trials for
use, for example, with the target approach training of FIG. 6B,
according to one or more implementations.
[0045] FIG. 7D is a plot depicting ramp-down modulated user input
provided to a robotic device during one or more training trials for
use, for example, with the target approach training of FIG. 6B,
according to one or more implementations.
[0046] FIG. 7E is a plot depicting user input, integrated over a
trial duration, provided to a robotic device during one or more
training trials for use, for example, with the target approach
training of FIG. 6B, according to one or more implementations.
[0047] FIG. 8 is a graphical illustration of learning a plurality
of behaviors over multiple trials by an adaptive controller, e.g.,
of FIG. 2A, in accordance with one or more implementations.
[0048] FIG. 9 is a plot illustrating performance of an adaptive
robotic apparatus of, e.g., FIG. 2B, during training, in accordance
with one or more implementations.
[0049] FIG. 10A is a logical flow diagram illustrating a method of
operating an adaptive robotic device, in accordance with one or
more implementations.
[0050] FIG. 10B is a logical flow diagram illustrating a method of
training an adaptive robotic apparatus, in accordance with one or
more implementations.
[0051] FIG. 10C is a logical flow diagram illustrating a method of
collaborative learning, in accordance with one or more
implementations.
[0052] FIG. 11 is a graphical illustration depicting robotic
apparatus comprising an adaptive controller apparatus of the
disclosure configured for obstacle avoidance, in accordance with
one or more implementations.
[0053] All Figures disclosed herein are .COPYRGT. Copyright 2016
Brain Corporation. All rights reserved.
DETAILED DESCRIPTION
[0054] Implementations of the present technology will now be
described in detail with reference to the drawings, which are
provided as illustrative examples so as to enable those skilled in
the art to practice the technology. Notably, the figures and
examples below are not meant to limit the scope of the present
disclosure to a single implementation, but other implementations
are possible by way of interchange of or combination with some or
all of the described or illustrated elements. Wherever convenient,
the same reference numbers will be used throughout the drawings to
refer to same or like parts.
[0055] Where certain elements of these implementations can be
partially or fully implemented using known components, only those
portions of such known components that are necessary for an
understanding of the present technology will be described, and
detailed descriptions of other portions of such known components
will be omitted so as not to obscure the disclosure.
[0056] In the present specification, an implementation showing a
singular component should not be considered limiting; rather, the
disclosure is intended to encompass other implementations including
a plurality of the same component, and vice-versa, unless
explicitly stated otherwise herein.
[0057] Further, the present disclosure encompasses present and
future known equivalents to the components referred to herein by
way of illustration.
[0058] As used herein, the term "bus" is meant generally to denote
all types of interconnection or communication architecture that is
used to access the synaptic and neuron memory. The "bus" may be
optical, wireless, infrared, and/or another type of communication
medium. The exact topology of the bus could be for example standard
"bus", hierarchical bus, network-on-chip,
address-event-representation (AER) connection, and/or other type of
communication topology used for accessing, e.g., different memories
in pulse-based system.
[0059] As used herein, the terms "computer", "computing device",
and "computerized device "may include one or more of personal
computers (PCs) and/or minicomputers (e.g., desktop, laptop, and/or
other PCs), mainframe computers, workstations, servers, personal
digital assistants (PDAs), handheld computers, embedded computers,
programmable logic devices, personal communicators, tablet
computers, portable navigation aids, J2ME equipped devices,
cellular telephones, smart phones, personal integrated
communication and/or entertainment devices, and/or any other device
capable of executing a set of instructions and processing an
incoming data signal.
[0060] As used herein, the term "computer program" or "software"
may include any sequence of human and/or machine cognizable steps
which perform a function. Such program may be rendered in a
programming language and/or environment including one or more of
C/C++, C#, Fortran, COBOL, MATLAB.TM., PASCAL, Python, assembly
language, markup languages (e.g., HTML, SGML, XML, VoXML),
object-oriented environments (e.g., Common Object Request Broker
Architecture (CORBA)), Java.TM. (e.g., J2ME, Java Beans), Binary
Runtime Environment (e.g., BREW), and/or other programming
languages and/or environments.
[0061] As used herein, the terms "connection", "link",
"transmission channel", "delay line", "wireless" may include a
causal link between any two or more entities (whether physical or
logical/virtual), which may enable information exchange between the
entities.
[0062] As used herein, the term "memory" may include an integrated
circuit and/or other storage device adapted for storing digital
data. By way of non-limiting example, memory may include one or
more of ROM, PROM, EEPROM, DRAM, Mobile DRAM, SDRAM, DDR/2 SDRAM,
EDO/FPMS, RLDRAM, SRAM, "flash" memory (e.g., NAND/NOR), memristor
memory, PSRAM, and/or other types of memory.
[0063] As used herein, the terms "integrated circuit", "chip", and
"IC" are meant to refer to an electronic circuit manufactured by
the patterned diffusion of trace elements into the surface of a
thin substrate of semiconductor material. By way of non-limiting
example, integrated circuits may include field programmable gate
arrays (e.g., FPGAs), a programmable logic device (PLD),
reconfigurable computer fabrics (RCFs), application-specific
integrated circuits (ASICs), and/or other types of integrated
circuits.
[0064] As used herein, the terms "microprocessor" and "digital
processor" are meant generally to include digital processing
devices. By way of non-limiting example, digital processing devices
may include one or more of digital signal processors (DSPs),
reduced instruction set computers (RISC), general-purpose (CISC)
processors, microprocessors, gate arrays (e.g., field programmable
gate arrays (FPGAs)), PLDs, reconfigurable computer fabrics (RCFs),
array processors, secure microprocessors, application-specific
integrated circuits (ASICs), and/or other digital processing
devices. Such digital processors may be contained on a single
unitary IC die, or distributed across multiple components.
[0065] As used herein, the term "network interface" refers to any
signal, data, and/or software interface with a component, network,
and/or process. By way of non-limiting example, a network interface
may include one or more of FireWire (e.g., FW400, FW800, etc.), USB
(e.g., USB2), Ethernet (e.g., 10/100, 10/100/1000 (Gigabit
Ethernet), 10-Gig-E, etc.), MoCA, Coaxsys (e.g., TVnet.TM.), radio
frequency tuner (e.g., in-band or OOB, cable modem, etc.), Wi-Fi
(802.11), WiMAX (802.16), PAN (e.g., 802.15), cellular (e.g., 3G,
LTE/LTE-A/TD-LTE, GSM, etc.), IrDA families, and/or other network
interfaces.
[0066] As used herein, the terms "node", "neuron", and "neuronal
node" are meant to refer, without limitation, to a network unit
(e.g., a spiking neuron and a set of synapses configured to provide
input signals to the neuron) having parameters that are subject to
adaptation in accordance with a model.
[0067] As used herein, the terms "state" and "node state" is meant
generally to denote a full (or partial) set of dynamic variables
(e.g., a membrane potential, firing threshold and/or other) used to
describe state of a network node.
[0068] As used herein, the term "synaptic channel", "connection",
"link", "transmission channel", "delay line", and "communications
channel" include a link between any two or more entities (whether
physical (wired or wireless), or logical/virtual) which enables
information exchange between the entities, and may be characterized
by a one or more variables affecting the information exchange.
[0069] As used herein, the term "Wi-Fi" includes one or more of
IEEE-Std. 802.11, variants of IEEE-Std. 802.11, standards related
to IEEE-Std. 802.11 (e.g., 802.11 a/b/g/n/s/v), and/or other
wireless standards.
[0070] As used herein, the term "wireless" means any wireless
signal, data, communication, and/or other wireless interface. By
way of non-limiting example, a wireless interface may include one
or more of Wi-Fi, Bluetooth, 3G (3GPP/3GPP2), HSDPA/HSUPA, TDMA,
CDMA (e.g., IS-95A, WCDMA, etc.), FHSS, DSSS, GSM, PAN/802.15,
WiMAX (802.16), 802.20, narrowband/FDMA, OFDM, PCS/DCS,
LTE/LTE-A/TD-LTE, analog cellular, CDPD, satellite systems,
millimeter wave or microwave systems, acoustic, infrared (i.e.,
IrDA), and/or other wireless interfaces.
[0071] FIG. 1 illustrates one implementation of an adaptive robotic
apparatus for use with the robot training methodology described
hereinafter. The apparatus 100 of FIG. 1 may comprise an adaptive
controller 102 and a plant (e.g., robotic platform) 110. The
controller 102 may be configured to generate control output 108 for
the plant 110. The output 108 may comprise one or more motor
commands (e.g., pan camera to the right), sensor acquisition
parameters (e.g., use high resolution camera mode), commands to the
wheels, arms, and/or other actuators on the robot, and/or other
parameters. The output 108 may be configured by the controller 102
based on one or more sensory inputs 106. The input 106 may comprise
data used for solving a particular control task. In one or more
implementations, such as those involving a robotic arm or
autonomous robot, the signal 106 may comprise a stream of raw
sensor data and/or preprocessed data. Raw sensor data may include
data conveying information associated with one or more of
proximity, inertial, terrain imaging, and/or other information.
Preprocessed data may include data conveying information associated
with one or more of velocity, information extracted from
accelerometers, distance to obstacle, positions, and/or other
information. In some implementations, such as those involving
object recognition, the signal 106 may comprise an array of pixel
values in the input image, or preprocessed data. Pixel data may
include data conveying information associated with one or more of
RGB, CMYK, HSV, HSL, grayscale, and/or other information.
Preprocessed data may include data conveying information associated
with one or more of levels of activations of Gabor filters for face
recognition, contours, and/or other information. In one or more
implementations, the input signal 106 may comprise a target motion
trajectory. The motion trajectory may be used to predict a future
state of the robot on the basis of a current state and the target
state. In one or more implementations, the signals in FIG. 1 may be
encoded as spikes.
[0072] The controller 102 may be operable in accordance with a
learning process (e.g., reinforcement learning and/or supervised
learning). In one or more implementations, the controller 102 may
optimize performance (e.g., performance of the system 100 of FIG.
1) by minimizing average value of a performance function as
described in detail in co-owned U.S. patent application Ser. No.
13/487,533, entitled "SYSTEMS AND APPARATUS FOR IMPLEMENTING
TASK-SPECIFIC LEARNING USING SPIKING NEURONS", filed Jun. 4, 2012
(now issued as U.S. Pat. No. 9,146,546), incorporated herein by
reference in its entirety.
[0073] Learning process of adaptive controller (e.g., 102 of FIG.
1) may be implemented using a variety of methodologies. In some
implementations, the controller 102 may comprise an artificial
neuron network e.g., spiking neuron network described in co-owned
U.S. patent application Ser. No. 13/487,533, entitled "SYSTEMS AND
APPARATUS FOR IMPLEMENTING TASK-SPECIFIC LEARNING USING SPIKING
NEURONS", filed Jun. 4, 2012 (now issued as U.S. Pat. No.
9,146,546), incorporated supra, configured to control, for example,
a robotic rover.
[0074] Individual spiking neurons may be characterized by internal
state q. The internal state q may, for example, comprise a membrane
voltage of the neuron, conductance of the membrane, and/or other
parameters. The neuron process may be characterized by one or more
learning parameter which may comprise input connection efficacy,
output connection efficacy, training input connection efficacy,
response generating (firing) threshold, resting potential of the
neuron, and/or other parameters. In one or more implementations,
some learning parameters may comprise probabilities of signal
transmission between the units (e.g., neurons) of the network.
[0075] In some implementations, the training input (e.g., 104 in
FIG. 1) may be differentiated from sensory inputs (e.g., inputs
106) as follows. During learning: data (e.g., spike events)
arriving to neurons of the network via input 106 may cause changes
in the neuron state (e.g., increase neuron membrane potential
and/or other parameters). Changes in the neuron state may cause the
neuron to generate a response (e.g., output a spike). Teaching data
arriving to neurons of the network may cause (i) changes in the
neuron dynamic model (e.g., modify parameters a,b,c,d of Izhikevich
neuron model, described for example in co-owned U.S. patent
application Ser. No. 13/623,842, entitled "SPIKING NEURON NETWORK
ADAPTIVE CONTROL APPARATUS AND METHODS", filed Sep. 20, 2012,
incorporated herein by reference in its entirety); and/or (ii)
modification of connection efficacy, based, for example, on timing
of input spikes, teacher spikes, and/or output spikes. In some
implementations, teaching data may trigger neuron output in order
to facilitate learning. In some implementations, teaching signal
may be communicated to other components of the control system.
[0076] During operation (e.g., subsequent to learning): data (e.g.,
spike events) arriving to neurons of the network may cause changes
in the neuron state (e.g., increase neuron membrane potential
and/or other parameters). Changes in the neuron state may cause the
neuron to generate a response (e.g., output a spike). Teaching data
may be absent during operation, while input data are required for
the neuron to generate output.
[0077] In one or more implementations, such as object recognition,
and/or obstacle avoidance, the input 106 may comprise a stream of
pixel values associated with one or more digital images. In one or
more implementations of e.g., video, radar, sonography, x-ray,
magnetic resonance imaging, and/or other types of sensing, the
input may comprise electromagnetic waves (e.g., visible light, IR,
UV, and/or other types of electromagnetic waves) entering an
imaging sensor array. In some implementations, the imaging sensor
array may comprise one or more of RGCs, a charge coupled device
(CCD), an active-pixel sensor (APS), and/or other sensors. The
input signal may comprise a sequence of images and/or image frames.
The sequence of images and/or image frame may be received from a
CCD camera via a receiver apparatus and/or downloaded from a file.
The image may comprise a two-dimensional matrix of RGB values
refreshed at a 25 Hz frame rate. It will be appreciated by those
skilled in the arts that the above image parameters are merely
exemplary, and many other image representations (e.g., bitmap,
CMYK, HSV, HSL, grayscale, and/or other representations) and/or
frame rates are equally useful with the present invention. Pixels
and/or groups of pixels associated with objects and/or features in
the input frames may be encoded using, for example, latency
encoding described in co-owned U.S. patent application Ser. No.
12/869,583, filed Aug. 26, 2010 and entitled "INVARIANT PULSE
LATENCY CODING SYSTEMS AND METHODS", issued as U.S. Pat. No.
8,467,623 on Jun. 18, 2013; co-owned U.S. Pat. No. 8,315,305,
issued Nov. 20, 2012, entitled "SYSTEMS AND METHODS FOR INVARIANT
PULSE LATENCY CODING"; co-owned and co-pending U.S. patent
application Ser. No. 13/152,084, filed Jun. 2, 2011, entitled
"APPARATUS AND METHODS FOR PULSE-CODE INVARIANT OBJECT
RECOGNITION"; and/or latency encoding comprising a temporal winner
take all mechanism described in co-owned U.S. patent application
Ser. No. 13/757,607, filed Feb. 1, 2013 and entitled "TEMPORAL
WINNER TAKES ALL SPIKING NEURON NETWORK SENSORY PROCESSING
APPARATUS AND METHODS", issued as U.S. Pat. No. 9,070,039 on Jun.
30, 2015, each of the foregoing being incorporated herein by
reference in its entirety.
[0078] In one or more implementations, object recognition and/or
classification may be implemented using spiking neuron classifier
comprising conditionally independent subsets as described in
co-owned U.S. patent application Ser. No. 13/756,372 filed Jan. 31,
2013, and entitled "SPIKING NEURON CLASSIFIER APPARATUS AND METHODS
USING CONDITIONALLY INDEPENDENT SUBSETS" (which issued as U.S. Pat.
No. 9,195,934 on Nov. 24, 2015), and/or co-owned U.S. patent
application Ser. No. 13/756,382 filed Jan. 31, 2013, and entitled
"REDUCED LATENCY SPIKING NEURON CLASSIFIER APPARATUS AND METHODS",
each of the foregoing being incorporated herein by reference in its
entirety.
[0079] In one or more implementations, encoding may comprise
adaptive adjustment of neuron parameters, such neuron excitability
described in co-owned U.S. patent application Ser. No. 13/623,820
entitled "APPARATUS AND METHODS FOR ENCODING OF SENSORY DATA USING
ARTIFICIAL SPIKING NEURONS", filed Sep. 20, 2012, now issued as
U.S. Pat. No. 9,047,568 on Jun. 2, 2015, the foregoing being
incorporated herein by reference in its entirety.
[0080] In some implementations, analog inputs may be converted into
spikes using, for example, kernel expansion techniques described in
co-owned U.S. patent application Ser. No. 13/623,842 filed Sep. 20,
2012, and entitled "SPIKING NEURON NETWORK ADAPTIVE CONTROL
APPARATUS AND METHODS", now issued as U.S. Pat. No. 9,367,798 on
Jun. 14, 2016, the foregoing being incorporated herein by reference
in its entirety. In one or more implementations, analog and/or
spiking inputs may be processed by mixed signal spiking neurons,
such as co-owned U.S. patent application Ser. No. 13/313,826
entitled "APPARATUS AND METHODS FOR IMPLEMENTING LEARNING FOR
ANALOG AND SPIKING SIGNALS IN ARTIFICIAL NEURAL NETWORKS", filed
Dec. 7, 2011, and/or co-pending U.S. patent application Ser. No.
13/761,090 entitled "APPARATUS AND METHODS FOR GATING ANALOG AND
SPIKING SIGNALS IN ARTIFICIAL NEURAL NETWORKS", filed Feb. 6, 2013,
now issued as U.S. Pat. No. 9,213,937 on Dec. 15, 2015, each of the
foregoing being incorporated herein by reference in its
entirety.
[0081] The rules may be configured to implement synaptic plasticity
in the network. In some implementations, the plastic rules may
comprise one or more spike-timing dependent plasticity, such as
rule comprising feedback described in co-owned U.S. patent
application Ser. No. 13/465,903 entitled "SENSORY INPUT PROCESSING
APPARATUS IN A SPIKING NEURAL NETWORK", filed May 7, 2012, now
issued as U.S. Pat. No. 9,224,090 on Dec. 29, 2015; rules
configured to modify of feed forward plasticity due to the activity
of neighboring neurons, described in co-owned U.S. patent
application Ser. No. 13/488,106, entitled "SPIKING NEURON NETWORK
APPARATUS AND METHODS", filed Jun. 4, 2012 and now issued as U.S.
Pat. No. 9,098,811 on Aug. 4, 2015; conditional plasticity rules
described in co-owned U.S. patent application Ser. No. 13/541,531,
entitled "CONDITIONAL PLASTICITY SPIKING NEURON NETWORK APPARATUS
AND METHODS", filed Jul. 3, 2012 and now issued as U.S. Pat. No.
9,111,215 on Aug. 18, 2015; plasticity configured to stabilize
neuron response rate as described in co-owned U.S. patent
application Ser. No. 13/691,554, entitled "RATE STABILIZATION
THROUGH PLASTICITY IN SPIKING NEURON NETWORK", filed Nov. 30, 2012,
and now issued as U.S. Pat. No. 9,275,326 on Mar. 1, 2016;
activity-based plasticity rules described in co-owned U.S. patent
application Ser. No. 13/660,967, entitled "APPARATUS AND METHODS
FOR ACTIVITY-BASED PLASTICITY IN A SPIKING NEURON NETWORK", filed
Oct. 25, 2012 and now issued as U.S. Pat. No. 8,972,315 on Mar. 3,
2015, co-owned U.S. patent application Ser. No. 13/660,945,
entitled "MODULATED PLASTICITY APPARATUS AND METHODS FOR SPIKING
NEURON NETWORK", filed Oct. 25, 2012 and now issued as U.S. Pat.
No. 9,111,226 on Aug. 18, 2015; and co-pending U.S. patent
application Ser. No. 13/774,934, entitled "APPARATUS AND METHODS
FOR RATE-MODULATED PLASTICITY IN A SPIKING NEURON NETWORK", filed
Feb. 22, 2013; multi-modal rules described in co-pending U.S.
patent application Ser. No. 13/763,005, entitled "SPIKING NETWORK
APPARATUS AND METHOD WITH BIMODAL SPIKE-TIMING DEPENDENT
PLASTICITY", filed Feb. 8, 2013, each of the foregoing being
incorporated herein by reference in its entirety.
[0082] In one or more implementations, neuron operation may be
configured based on one or more inhibitory connections providing
input configured to delay and/or depress response generation by the
neuron, as described in U.S. patent application Ser. No.
13/660,923, entitled "ADAPTIVE PLASTICITY APPARATUS AND METHODS FOR
SPIKING NEURON NETWORK", filed Oct. 25, 2012, the foregoing being
incorporated herein by reference in its entirety
[0083] Connection efficacy updated may be effectuated using a
variety of applicable methodologies such as, for example, event
based updates described in detail in co-pending U.S. patent
application Ser. No. 13/239,255, filed Sep. 21, 2011, entitled
"APPARATUS AND METHODS FOR SYNAPTIC UPDATE IN A PULSE-CODED
NETWORK"; co-pending U.S. patent application Ser. No. 13/588,774,
entitled "APPARATUS AND METHODS FOR IMPLEMENTING EVENT-BASED
UPDATES IN SPIKING NEURON NETWORKS", filed Aug. 17, 2012; and U.S.
patent application Ser. No. 13/560,891 entitled "APPARATUS AND
METHODS FOR EFFICIENT UPDATES IN SPIKING NEURON NETWORK", now
issued as U.S. Pat. No. 9,256,823 each of the foregoing being
incorporated herein by reference in its entirety.
[0084] Neuron process may comprise one or more learning rules
configured to adjust neuron state and/or generate neuron output in
accordance with neuron inputs.
[0085] In some implementations, the one or more leaning rules may
comprise state dependent learning rules described, for example, in
co-owned U.S. patent application Ser. No. 13/560,902, entitled
"APPARATUS AND METHODS FOR STATE-DEPENDENT LEARNING IN SPIKING
NEURON NETWORKS", filed Jul. 27, 2012, and now issued as U.S. Pat.
No. 9,256,215 on Feb. 9, 2016, and/or co-owned U.S. patent
application Ser. No. 13/722,769 filed Dec. 20, 2012, and entitled
"APPARATUS AND METHODS FOR STATE-DEPENDENT LEARNING IN SPIKING
NEURON NETWORKS", issued as U.S. Pat. No. 8,990,133 on Mar. 24,
2015, each of the foregoing being incorporated herein by reference
in its entirety.
[0086] In one or more implementations, the one or more learning
rules may be configured to comprise one or more reinforcement
learning, unsupervised learning, and/or supervised learning as
described in co-owned U.S. patent application Ser. No. 13/487,499
entitled "STOCHASTIC APPARATUS AND METHODS FOR IMPLEMENTING
GENERALIZED LEARNING RULES, filed Jun. 4, 2012 and now issued as
U.S. Pat. No. 9,104,186 on Aug. 11, 2015, incorporated supra.
[0087] In one or more implementations, the one or more learning
rules may be configured in accordance with focused exploration
rules such as described, for example, in co-owned U.S. patent
application Ser. No. 13/489,280 entitled "APPARATUS AND METHODS FOR
REINFORCEMENT LEARNING IN ARTIFICIAL NEURAL NETWORKS", filed Jun.
5, 2012, now issued as U.S. Pat. No. 8,943,008 on Jan. 27, 2015,
the foregoing being incorporated herein by reference in its
entirety.
[0088] Adaptive controller (e.g., the controller apparatus 102 of
FIG. 1) may comprise an adaptable predictor block configured to,
inter alia, predict control signal (e.g., 108) based on the sensory
input (e.g., 106 in FIG. 1) and teaching input (e.g., 104 in FIG.
1). FIGS. 2A-3B illustrate exemplary adaptive predictor
configurations in accordance with one or more implementations.
[0089] FIG. 2A illustrates an adaptive controller apparatus 200
operable in accordance with a learning process that is based on a
teaching signal, according to one or more implementations. The
adaptive controller apparatus 200 of FIG. 2A may comprise a control
entity 212, an adaptive predictor 222, and a combiner 214. The
learning process of the adaptive predictor 222 may comprise
supervised learning process, reinforcement learning process, and/or
a combination thereof. The control entity 212, the predictor 222
and the combiner 214 may cooperate to produce a control signal 220
for the plant 210. In one or more implementations, the control
signal 220 may comprise one or more motor commands (e.g., pan
camera to the right, turn right wheel forward), sensor acquisition
parameters (e.g., use high resolution camera mode), and/or other
parameters.
[0090] The control entity 212 may be configured to generate control
signal 208 based on one or more of (i) sensory input (denoted 206
in FIG. 2A) and plant feedback 216_2. In some implementations,
plant feedback may comprise proprioceptive signals, such as the
readings from servo motors, joint position, and/or torque. In some
implementations, the sensory input 206 may correspond to the
controller sensory input 106, described with respect to FIG. 1,
supra. In one or more implementations, the control entity may
comprise a human trainer, communicating with the robotic controller
via a remote controller and/or joystick. In one or more
implementations, the control entity may comprise a computerized
agent such as a multifunction adaptive controller operable using
reinforcement and/or unsupervised learning and capable of training
other robotic devices for one and/or multiple tasks.
[0091] The adaptive predictor 222 may be configured to generate
predicted control signal u.sup.P 218 based on one or more of (i)
the sensory input 206 and the plant feedback 216_1. The predictor
222 may be configured to adapt its internal parameters, e.g.,
according to a supervised learning rule, and/or other machine
learning rules.
[0092] Predictor realizations, comprising plant feedback, may be
employed in applications such as, for example, wherein (i) the
control action may comprise a sequence of purposefully timed
commands (e.g., associated with approaching a stationary target
(e.g., a cup) by a robotic manipulator arm); and (ii) the plant may
be characterized by a plant state time parameter (e.g., arm
inertia, and/or motor response time) that may be greater than the
rate of action updates. Parameters of a subsequent command within
the sequence may depend on the plant state (e.g., the exact
location and/or position of the arm joints) that may become
available to the predictor via the plant feedback.
[0093] The sensory input and/or the plant feedback may collectively
be referred to as sensory context. The context may be utilized by
the predictor 222 in order to produce the predicted output 218. By
way of a non-limiting illustration of obstacle avoidance by an
autonomous rover, an image of an obstacle (e.g., wall
representation in the sensory input 206) may be combined with rover
motion (e.g., speed and/or direction) to generate Context_A. When
the Context_A is encountered, the control output 220 may comprise
one or more commands configured to avoid a collision between the
rover and the obstacle. Based on one or more prior encounters of
the Context_A--avoidance control output, the predictor may build an
association between these events as described in detail below.
[0094] The combiner 214 may implement a transfer function h( )
configured to combine the control signal 208 and the predicted
control signal 218. In some implementations, the combiner 214
operation may be expressed as described in detail in co-owned and
co-pending U.S. patent application Ser. No. 13/842,530 entitled
"ADAPTIVE PREDICTOR APPARATUS AND METHODS", filed Mar. 15, 2013, as
follows:
u=h(u,u.sup.P). (Eqn. 1)
[0095] Various realization of the transfer function of Eqn. 1 may
be utilized. In some implementations, the transfer function may
comprise addition operation, union, a logical `AND` operation,
and/or other operations.
[0096] In one or more implementations, the transfer function may
comprise a convolution operation. In spiking network realizations
of the combiner function, the convolution operation may be
supplemented by use of a finite support kernel such as Gaussian,
rectangular, exponential, and/or other finite support kernel. Such
a kernel may implement a low pass filtering operation of input
spike train(s). In some implementations, the transfer function may
be characterized by a commutative property configured such
that:
u=h(u,u.sup.P)=h(u.sup.P,u). (Eqn. 2)
[0097] In one or more implementations, the transfer function of the
combiner 214 may be configured as follows:
h(0,u.sup.P)=u.sup.P. (Eqn. 3)
[0098] In one or more implementations, the transfer function h may
be configured as:
h(u,0)=u. (Eqn. 4)
[0099] In some implementations, the transfer function h may be
configured as a combination of realizations of Eqn. 3-Eqn. 4
as:
h(0,u.sup.P)=u.sup.P, and h(u,0)=u, (Eqn. 5)
[0100] In one exemplary implementation, the transfer function
satisfying Eqn. 5 may be expressed as:
h(u,u.sup.P)=(1-u).times.(1-u.sup.P)-1. (Eqn. 6)
[0101] In one such realization, the combiner transfer function
configured according to Eqn. 3-Eqn. 6, thereby implementing an
additive feedback. In other words, output of the predictor (e.g.,
218) may be additively combined with the control signal (208) and
the combined signal 220 may be used as the teaching input (204) for
the predictor. In some implementations, the combined signal 220 may
be utilized as an input (context) signal 228 into the predictor
222.
[0102] In some implementations, the combiner transfer function may
be characterized by a delay expressed as:
{circumflex over (u)}(t.sub.i+1)=h(u(t.sub.i),u.sup.P(t.sub.i)).
(Eqn. 7)
[0103] In Eqn. 7, u(t.sub.i+i) denotes combined output (e.g., 220
in FIG. 2A) at time t+.DELTA.t. As used herein, symbol t.sub.N may
be used to refer to a time instance associated with individual
controller update events (e.g., as expressed by Eqn. 7), for
example t.sub.i denoting time of the first control output, e.g., a
simulation time step and/or a sensory input frame step. In some
implementations of training autonomous robotic devices (e.g.,
rovers, bi-pedaling robots, wheeled vehicles, aerial drones,
robotic limbs, and/or other robotic devices), the update
periodicity .DELTA.t may be configured to be between 1 ms and 1000
ms.
[0104] It will be appreciated by those skilled in the arts that
various other realizations of the transfer function of the combiner
214 (e.g., comprising a Heaviside step function, a sigmoidal
function, such as the hyperbolic tangent, Gauss error function, or
logistic function, and/or a stochastic operation) may be
applicable.
[0105] Operation of the predictor 222 learning process may be aided
by a teaching signal 204. As shown in FIG. 2A, the teaching signal
204 may comprise the output 220 of the combiner:
u.sup.d=u. (Eqn. 8)
[0106] In some implementations wherein the combiner transfer
function may be characterized by a delay .tau. (e.g., Eqn. 7), the
teaching signal at time t.sub.i may be configured based on values
of u, u.sup.P at a prior time t.sub.i-1, for example as:
u.sup.d(t.sub.i)=h(u(t.sub.i-1),u.sup.P(t.sub.i-1)). (Eqn. 9)
[0107] The training signal u.sup.d at time t.sub.i may be utilized
by the predictor in order to determine the predicted output u.sup.P
at a subsequent time t.sub.i+1, corresponding to the context (e.g.,
the sensory input x) at time t.sub.i:
u.sup.P(t.sub.i+1)=F[x.sub.i,W(u.sup.d(t.sub.i))]. (Eqn. 10)
In Eqn. 10, the function W may refer to a learning process
implemented by the predictor. In one or more implementations, such
as illustrated in FIGS. 2A-2B, the sensory input 206/306, the
control signal 208/308, the predicted output 218/318, the combined
output 220, 340 and/or plant feedback 216, 236 may comprise spiking
signal, analog signal, and/or a combination thereof. Analog to
spiking and/or spiking to analog signal conversion may be
effectuated using, mixed signal spiking neuron networks, such as,
for example, described in co-owned U.S. patent application Ser. No.
13/313,826 entitled "APPARATUS AND METHODS FOR IMPLEMENTING
LEARNING FOR ANALOG AND SPIKING SIGNALS IN ARTIFICIAL NEURAL
NETWORKS", filed Dec. 7, 2011, and/or co-owned U.S. patent
application Ser. No. 13/761,090 entitled "APPARATUS AND METHODS FOR
GATING ANALOG AND SPIKING SIGNALS IN ARTIFICIAL NEURAL NETWORKS",
filed Feb. 6, 2013, now issued as U.S. Pat. No. 9,213,937 on Dec.
15, 2015, incorporated supra.
[0108] Output 220 of the combiner e.g., 214 in FIG. 2A, may be
gated. In some implementations, the gating information may be
provided to the combiner by the control entity 242. In one such
realization of spiking controller output, the control signal 208
may comprise positive spikes indicative of a control command and
configured to be combined with the predicted control signal (e.g.,
218); the control signal 208 may comprise negative spikes, where
the timing of the negative spikes is configured to communicate the
control command, and the (negative) amplitude sign is configured to
communicate the combination inhibition information to the combiner
214 so as to enable the combiner to `ignore` the predicted control
signal 218 for constructing the combined output 220.
[0109] In some implementations of spiking signal output, the
combiner 214 may comprise a spiking neuron network; and the control
signal 208 may be communicated via two or more connections. One
such connection may be configured to communicate spikes indicative
of a control command to the combiner neuron; the other connection
may be used to communicate an inhibitory signal to the combiner
network. The inhibitory signal may inhibit one or more neurons of
the combiner the one or more combiner input neurons of the combiner
network thereby effectively removing the predicted control signal
from the combined output (e.g., 220 in FIG. 2B).
[0110] The gating information may be provided to the combiner via a
connection 224 from another entity (e.g., a human operator
controlling the system with a remote control, and/or external
controller) and/or from another output from the controller 212
(e.g. an adapting block, or an optimal controller). In one or more
implementations, the gating information delivered via the
connection 224 may comprise one or more of: a command, a memory
address of a register storing a flag, a message, an inhibitory
efficacy, a value (e.g., a weight of zero to be applied to the
predicted control signal 218 by the combiner), and/or other
information capable of conveying gating instructions to the
combiner.
[0111] The gating information may be used by the combiner network
to inhibit and/or suppress the transfer function operation. The
suppression (or `veto`) may cause the combiner output (e.g., 220)
to be comprised solely of the control signal portion 218, e.g.,
configured in accordance with Eqn. 4.
[0112] In one or more implementations, the gating signal 224 may
comprise an inhibitory indication that may be configured to inhibit
the output from the combiner. Zero combiner output may, in some
realizations, may cause zero teaching signal (e.g., 214 in FIG. 2A)
to be provided to the predictor so as to signal to the predictor a
discrepancy between the target action (e.g., controller output 208)
and the predicted control signal (e.g., output 218).
[0113] The gating signal 224 may be used to veto predictor output
218 based on, for example, the predicted control output 218 being
away from the target output by more than a given margin. The margin
may be configured based on an application and/or state of the
trajectory. For example, a smaller margin may be applicable in
navigation applications wherein the platform is proximate to a
hazard (e.g., a cliff) and/or an obstacle. A larger error may be
tolerated when approaching one (of many) targets.
[0114] By way of a non-limiting illustration, if the turn is to be
completed and/or aborted (due to, for example, a trajectory change
and/or sensory input change), and the predictor output may still be
producing turn instruction to the plant, the gating signal may
cause the combiner to veto (ignore) the predictor contribution and
to pass through the controller contribution.
[0115] Predicted control signal 218 and the control input 208 may
be of opposite signs. In one or more implementations, positive
predicted control signal (e.g., 218) may exceed the target output
that may be appropriate for performance of as task (e.g., as
illustrated by data of trials 8-9 in Table 3). Control signal 208
may be configured to comprise negative signal (e.g., -10) in order
to compensate for overprediction by the predictor.
[0116] Gating and/or sign reversal of controller output may be
useful, for example, responsive to the predictor output being
incompatible with the sensory input (e.g., navigating towards a
wrong target). Rapid (compared to the predictor learning time
scale) changes in the environment (e.g., appearance of a new
obstacle, target disappearance), may require a capability by the
controller (and/or supervisor) to `overwrite` predictor output. In
one or more implementations compensation for overprediction may be
controlled by a graded form of the gating signal delivered via the
connection 224.
[0117] FIG. 2B illustrates combiner apparatus configured to operate
with multichannel control inputs and/or control signals. The
combiner 242 of FIG. 2B may receive an M-dimensional (M>1)
control input 238. The control input U may comprise a vector
corresponding to a plurality of input channels (e.g., 238_1, 238_2
in FIG. 2B). Individual channels, may be configured to communicate
individual dimensions (e.g., vectors) of the input U, as described
in detail in co-owned U.S. patent application Ser. No. 13/842,647
entitled "MULTICHANNEL ROBOTIC CONTROLLER APPARATUS AND METHODS",
filed Mar. 15, 2013, incorporated supra. The combiner output 240
may be configured to operate a plant (e.g., the plant 110, in FIG.
1 and/or the plant 210 in FIG. 2A).
[0118] In some implementations, the predictor 232 may comprise a
single multichannel predictor capable of generating N-dimensional
(N>1) predicted signal 248 based on a multi-channel training
input 234 and sensory input 36. In one or more implementations, the
predictor 232 may comprise multiple individual predictor modules
(232_1, 232_2) configured to generate individual components of the
multi-channel output (248_1, 248_2). In some implementations,
individual teaching signal may be de-multiplexed into multiple
teaching components (234_1, 234_2). Predictor 232 learning process
may be configured to adapt predictor state based on teaching signal
234.
[0119] The predicted signal U.sup.P may comprise a vector
corresponding to a plurality of output channels (e.g., 238_1, 238_2
in FIG. 2B). Individual channels 248_1, 248_2 may be configured to
communicate individual dimensions (e.g., vectors) of the signal
238.
[0120] The combiner 242 may be operable in accordance with a
transfer function h configured to combine signals 238, 248 and to
produce single-dimensional control signal 240:
u=h(U,U.sup.P). (Eqn. 11)
In one or more implementations, the combined control signal 240 may
be provided to the predictor as the training signal. The training
signal may be utilized by the predictor learning process in order
to generate the predicted output 248 (e.g., as described with
respect to FIG. 2A, supra).
[0121] In some implementations, a complex teaching signal may be
decomposed into multiple components that may drive adaptation of
multiple predictor blocks (associated with individual output
channels. Prediction of a (given) teaching signal 234 may be spread
over multiple predictor output channels 248. Once adapted, outputs
of multiple predictor blocks 232 may be combined thereby providing
prediction of the teaching signal (e.g., 234 in FIG. 2B). Such an
implementation may increase the number of teaching signals that can
be mediated using a finite set of control signal channels. Mapping
between the control signal 238, the predictor output 248, the
combiner output 240, and the teaching signal 234 may comprise
various signal mapping schemes. In some implementations, mapping
schemes may include one to many, many to one, some to some, many to
some, and/or other schemes.
[0122] In spiking neuron networks implementations, inputs (e.g.,
238, 248 of FIG. 2B) into the combiner 242 may comprise signals
encoded using spike latency and/or spike rate. In some
implementations, inputs into the combiner may be encoded using one
encoding mechanism (e.g., rate). In one or more implementations,
inputs into the combiner may be encoded using single two (or more)
encoding mechanisms (e.g., rate, latency, and/or other).
[0123] The use of multiple input signals (238_1, 238_2 in FIG. 2B)
and/or multiple predictor output channels (e.g., 248_1, 248_2 in
FIG. 2B) to communicate a single control signal 240 (e.g., control
signal U and/or predicted control signal U.sup.P) may enable more
robust data transmission when compared to a single channel per
signal data transmission schemes. Multichannel data transmission
may be advantageous in the presence of background noise and/or
interference on one or more channels. In some implementations,
wherein individual channels are characterized by bandwidth that may
be lower than the data rate requirements for the transmitted signal
(e.g., control signal U and/or predicted control signal U.sup.P)
multichannel data transmission may be utilized to de-multiplex the
higher data rate signal onto two or more lower capacity
communications channels (e.g., 248_1, 248_2 in FIG. 2B). In some
implementations, the output encoding type may match the input
encoding type (e.g., latency in-latency out). In some
implementations, the output encoding type may differ from the input
encoding type (e.g., latency in-rate out).
[0124] Combiner 242 operation, comprising input decoding-output
encoding methodology, may be based on an implicit output
determination. In some implementations, the implicit output
determination may comprise, determining one or more input values
using latency and/or rate input conversion into e.g., floating
point and/or integer; updating neuron dynamic process based on the
one or more input values; and encoding neuron output into rate or
latency. In one or more implementations, the neuron process may
comprise a deterministic realization (e.g., Izhikevich neuron
model, described for example in co-owned U.S. patent application
Ser. No. 13/623,842, entitled "SPIKING NEURON NETWORK ADAPTIVE
CONTROL APPARATUS AND METHODS", filed Sep. 3, 2012, now issued as
U.S. Pat. No. 9,367,798 on Jun. 14, 2016, incorporated supra;
and/or a stochastic process such as described, for example, in
co-owned U.S. patent application Ser. No. 13/487,533, entitled
"SYSTEMS AND APPARATUS FOR IMPLEMENTING TASK-SPECIFIC LEARNING
USING SPIKING NEURONS", filed Jun. 4, 2012, and issued as U.S. Pat.
No. 9,146,546 on Sep. 29, 2015, incorporated supra.
[0125] In some implementations, combiner operation, comprising
input decoding-output encoding methodology, may be based on an
explicit output determination, such as, for example, expressed by
Eqn. 4-Eqn. 9, Eqn. 14.
[0126] In one or more implementations, a predictor may be
configured to predict multiple teaching signals, as illustrated in
FIG. 2C. The adaptive controller system 270 of FIG. 2C may be
utilized responsive to information capacity of the predictor output
channel (e.g., how much information may be encoded onto a single
channel) is higher than information capacity of teaching signal. In
some implementations, a combination of the above approaches (e.g.,
comprising two or more teaching signals and two or more predictor
output channels) may be employed.
[0127] The adaptive controller system 270 may comprise a
multiplexing predictor 272 and two or more combiner apparatus 279.
Controller input U may be de-multiplexed into two (e.g., input
278_1 into combiners 279_1, 279_2) and/or more (input 278_2 into
combiners 279_1, 279_2, 279_3). Individual combiner apparatus 279
may be configured to multiplex one (or more) controller inputs 278
and two or more predictor outputs U.sup.P 288 to form a combined
signal 280. In some implementations, the predictor output for a
given combiner may be spread (de-multiplexed) over multiple
prediction channels (e.g., 288_1, 288_2 for combiner 279_2). In one
or more implementations, teaching input to a predictor may be
delivered via multiple teaching signal 274 associated with two or
more combiners.
[0128] The predictor 272 may operate in accordance with a learning
process configured to determine an input-output transformation such
that the output of the predictor U.sup.P after learning is
configured to match the output of the combiner h(U, U.sup.P) prior
to learning (e.g., when U.sup.P comprises a null signal).
[0129] Predictor transformation F may be expressed as follows:
U.sup.P=F({circumflex over (U)}),=h(U.sup.P). (Eqn. 12)
[0130] In some implementations, wherein dimensionality of control
signal U matches dimensionality of predictor output U.sup.P, the
transformation of Eqn. 12 may be expressed in matrix form as:
U.sup.P=F,=HU.sup.P,F=inv(H), (Eqn. 13)
where H may denote the combiner transfer matrix composed of
transfer vectors for individual combiners 279 H=[h1, h2, . . . ,
hn], =[u1, u2, . . . un] may denote output matrix composed of
output vectors 280 of individual combiners; and F may denote the
predictor transform matrix. The combiner output 280 may be provided
to the predictor 272 and/or another predictor apparatus as teaching
signal 274 in FIG. 2D. In some implementations, (e.g., shown in
FIG. 2B), the combiner output 280 may be provided to the predictor
272 as sensory input signal (not shown in FIG. 2C).
[0131] In some implementations of multi-channel predictor (e.g.,
232, 272) and/or combiner (e.g., 242, 279) various signal mapping
relationships may be utilized such as, for example, one to many,
many to one, some to some, many to some, and/or other relationships
(e.g., one to one).
[0132] In some implementations, prediction of an individual
teaching signal (e.g., 234 in FIG. 2B) may be spread over multiple
prediction channels (e.g., 248 in FIG. 2B). In one or more
implementations, an individual predictor output channel (e.g.,
288_2 in FIG. 2C) may contain prediction of multiple teaching
signals (e.g., two or more channels 274 in FIG. 2C).
[0133] Transfer function h (and or transfer matrix H) of the
combiner (e.g., 242, 279 in FIGS. 2B-2C) may be configured to
perform a state space transformation of the control signal (e.g.,
38, 238 in FIGS. 2B-2C) and/or predicted signal (e.g., 248, 288 in
FIGS. 2B-2C). In one or more implementations, the transformation
may comprise one or more of a time-domain to frequency domain
transformations (e.g., Fourier transform, discrete Fourier
transform, discrete cosine transform, wavelet and/or other
transformations), frequency domain to time domain transformations
(e.g., inverse Fourier transform, inverse discrete Fourier
transform, inverse discrete cosine transform, and/or other
transformations), wavenumber transform, and/or other
transformations. The state space transformation may comprise an
application of a function to one (or both) input parameters (e.g.,
u, u.sup.P) into the combiner. In some implementations, the
function may be selected from an exponential function, logarithm
function, a Heaviside step function, and/or other functions.
[0134] In implementations where the combiner is configured to
perform the state-space transform (e.g., time-space to frequency
space), the predictor may be configured to learn an inverse of that
transform (e.g., frequency-space to time-space). Such predictor may
be capable of learning to transform, for example, frequency-space
input a into time-space output u.sup.P.
[0135] In some implementations, predictor learning process may be
configured based on one or more look-up tables (LUT). Table 1 and
Table 2 illustrate use of look up tables for learning obstacle
avoidance behavior (e.g., as described with respect to Table
3-Table 5 and/or FIG. 7, below).
[0136] Table 1-Table 2 present exemplary LUT realizations
characterizing the relationship between sensory input (e.g.,
distance to obstacle d) and control signal (e.g., turn angle
.alpha. relative to current course) obtained by the predictor
during training. Columns labeled N in Table 1-Table 2, present use
occurrence N (i.e., how many times a given control action has been
selected for a given input, e.g., distance). Responsive to a
selection of a given control action (e.g., turn of 15.degree.)
based on the sensory input (e.g., distance from an obstacle of 0.7
m), the counter N for that action may be incremented. In some
implementations of learning comprising opposing control actions
(e.g., right and left turns shown by rows 3-4 in Table 2),
responsive to a selection of one action (e.g., turn of)+15.degree.
during learning, the counter N for that action may be incremented
while the counter for the opposing action may be decremented.
[0137] As seen from the example shown in Table 1, as a function of
the distance to obstacle falling to a given level (e.g., 0.7 m),
the controller may produce a turn command. A 15.degree. turn is
most frequently selected during training for distance to obstacle
of 0.7 m. In some implementations, predictor may be configured to
store the LUT (e.g., Table 1) data for use during subsequent
operation. During operation, the most frequently used response
(e.g., turn of) 15.degree. may be output for a given sensory input,
in one or more implementations, In some implementations, the
predictor may output an average of stored responses (e.g., an
average of rows 3-5 in Table 1).
TABLE-US-00001 TABLE 1 d .alpha..degree. N 0.9 0 10 0.8 0 10 0.7 15
12 0.7 10 4 0.7 5 1 . . . 0.5 45 3
TABLE-US-00002 TABLE 2 d .alpha..degree. N 0.9 0 10 0.8 0 10 0.7 15
12 0.7 -15 4 . . . 0.5 45 3
[0138] FIG. 3A illustrates an adaptive predictor configured to
develop an association between a control action and sensory
context, according to one or more implementations. The control
system 300 of FIG. 3A may comprise an adaptive predictor 302 and a
combiner 312. The combiner 312 may receive an action indication 308
from a control entity (e.g., the apparatus 342 of FIG. 3B and/or
212 of FIG. 2A).
[0139] In some implementations of a control system, such as
described with respect to FIGS. 3A-3B, the controller (e.g., 342 in
FIG. 3B) may be configured to issue a higher level control
directive, e.g., the action indication 308, 348, in FIGS. 3A-3B
that are not directly communicated to the plant (2040) but rather
are directed to the predictor (e.g., 302, 322 in FIGS. 3A-3B). As
used herein the term "action indication" may be used to refer to a
higher level instruction by the controller that is not directly
communicated to the plant. In one or more implementations, the
action indication may comprise, for example, a directive `turn`,
`move ahead`. In some implementations, the control system may
utilize a hierarchy of action indications, ranging from less
complex/more specific (e.g., turn, move) to more abstract:
approach, avoid, fetch, park, grab, and/or other instructions.
[0140] Action indications (e.g., 308, 348 in FIGS. 3A-3B) may be
configured based on sensory context (e.g., the sensory input 306,
326 in FIGS. 3A-3B). In one or more implementations, the context
may correspond to presence of an object (e.g., a target and/.or an
obstacle), and/or object parameters (e.g., location), as
illustrated in FIG. 5. Panels 500, 510 in FIG. 5 illustrate
position of a robotic device 502, comprising for example, a control
system (e.g., 300, 320 of FIGS. 3A-3B). The control system may
comprise a controller and a predictor. The device 502 may be
configured to approach a target 508, 518. The controller of the
device 502 may provide an action indication A1 504, A2 514 that may
be configured in accordance with the sensory context, e.g., the
location of the object 508, 518 with respect to the device 502. By
way of a non-limiting example, responsive to the object 508 being
to the right of the device 502 trajectory (as shown in the panel
500), the action indication A1 504 may indicate an instruction
"turn right". Responsive to the object 508 being to the left of the
device 502 trajectory (as shown in the panel 510), the action
indication A2 514 may indicate an instruction "turn left".
Responsive to the sensory context and the instruction 504, the
predictor of the device control system may generate low level motor
commands (e.g., depicted by broken arrows 506, 516 in FIG. 5) to
execute the respective 90.degree. turns to right/left.
[0141] Returning now to FIG. 3A, the control system 300 may
comprise the combiner 312 configured to receive the controller
action indication A 308 and predicted action indication 318. In
some implementations, the combiner 312 may be operable in
accordance with any applicable methodologies, e.g., described with
respect to FIGS. 2A-3C, above.
[0142] The predictor 302 may be configured to generate the
predicted action indication A.sup.P 318 based on the sensory
context 306 and/or training signal 304. In some implementations,
the training signal 304 may comprise the combined output A.
[0143] In one or more implementations, generation of the predicted
action indication 318 may be based on the combined signal A being
provided as a part of the sensory input (316) to the predictor. In
some implementations comprising the feedback loop 318, 312, 316 in
FIG. 3A, the predictor output 318 may be combined with the
controller action indication 308. The combiner 310 output signal
312 may be used as an input 316 to the predictor. Predictor
realizations, comprising action indication feedback connectivity,
may be employed in applications, wherein (i) the action indication
may comprise a sequence of timed actions (e.g., hitting a
stationary target (e.g., a nail) with a hammer by a robotic arm);
(ii) the predictor learning process may be sensory driven (e.g., by
the sensory input 306) in absence of plant feedback (e.g., 336 in
FIG. 3B); and (iii) the plant may be characterized by a plant state
time parameter that may be greater than the rate of action updates
(e.g., the sequence of timed actions 308). It may be advantageous
for the predictor 302 to account for a prior action within the
sequence (e.g., via the feedback input 316) so as to take into
account the effect of its previous state and/or previous
predictions in order to make a new prediction. Such methodology may
be of use in predicting a sequence of actions/behaviors at time
scales where the previous actions and/or behavior may affect the
next actions/behavior, e.g., when a robotic manipulator arm may be
tasked to fill with coffee three cups one a tray: completion of the
first action (filling one cup) may leave the plant (arm) closes to
another cup rather than the starting location (e.g., coffee
machine). The use of feedback may reduce coffee serving time by
enabling the arm to move from one cup to another without returning
to the coffee machine in between. In some implementations (not
shown), action feedback (e.g., 316 in FIG. 3A) may be provided to
other predictors configured to predict control input for other
tasks (e.g., filling the coffee pot with water, and/or placing the
pot into the coffee maker).
[0144] In some implementations, generation of the predicted action
indication A.sup.P by the predictor 302 may be effectuated using
any of the applicable methodologies described above (e.g., with
respect to FIGS. 2A-3C). The predictor may utilize a learning
process based on the teaching signal 304 in order to associate
action indication A with the sensory input 306 and/or 316.
[0145] The predictor 302 may be further configured to generate the
plant control signal 314 low level control commands/instructions
based on the sensory context 306. The predicted control signal 314
may be interfaced to a plant. In some control implementations, such
low-level commands may comprise instructions to rotate a right
wheel motor by 30.degree., apply motor current of 100 mA, set motor
torque to 10%, reduce lens diaphragm setting by 2, and/or other
commands. The low-level commands may be configured in accordance
with a specific implementation of the plant, e.g., number of
wheels, motor current draw settings, diaphragm setting range, gear
ration range, and/or other parameters.
[0146] In some implementations of target approach, such as
illustrated in FIG. 5, a predictor may be configured to learn
different behaviors (e.g., generate different motor output
commands) based on the received sensory context. Responsive to: (i)
a target appearing on right/left (with respect to the robotic
plant); and (ii) `turn` action indication the predictor may learn
to associate a turn towards the target (e.g., right/left turn 506,
516 in FIG. 5). The actual configuration of the turn commands,
e.g., rate of turn, timing, turn angle, may be configured by the
predictor based on the plant state (platform speed, wheel position,
motor torque) and/or sensory input (e.g., distance to target,
target size) independent of the controller.
[0147] Responsive to the `turn` command arriving to the predictor
proximate in time to the sensory context indicative of a target,
the predictor may generate right/left turn control signal in the
presence of the sensory context. Time proximity may be configured
based on a particular application parameters (e.g., robot speed,
terrain, object/obstacle size, location distance, and/or other
parameters). In some applications to garbage collecting robot, the
turn command may be time locked (to within +10 ms) from the sensory
context indicative of a need to turn (for example toward a target).
In some realizations, a target appearing to the right of the robot
in absence of obstacles may trigger the action `turn right`.
[0148] During learning predictor may associate movement towards the
target (behavior) with the action indication. Subsequently during
operation, the predictor may execute the behavior (e.g., turn
toward the target) based on a receipt of the action indication
(e.g., the `turn` instruction). In one or more implementations, the
predictor may be configured to not generate control signal (e.g.,
314 in FIG. 3A) in absence of the action tag (e.g., 308 and/or
304). In other words, the predictor may learn to execute the
expected (learned) behavior responsive to the presence of the
action indication (informing what action to perform, e.g., turn)
and the sensory input (informing the predictor where to turn).
[0149] Such associations between the sensory input and the action
indicator may form a plurality of composite motor primitive
comprising an action indication (e.g., A=turn) and actual control
instructions to the plant that may be configured in accordance with
the plant state and sensory input.
[0150] In some implementations, the predictor may be configured to
learn the action indication (e.g., the signal 308 in FIG. 3B) based
on the prior associations between the sensory input and the action
tag. The predictor may utilize learning history corresponding to a
sensory state (e.g., sensory state x1 described with respect to
Table 5) and the occurrence of the action tag contemporaneous to
the sensory context x1. By way of illustration, based on two or
more occurrences (prior to time t1) of the tag A=`turn` temporally
proximate to a target object (e.g., 508, 518 in FIG. 5) being
present to one side from the robotic device 502, the predictor may
(at time t1) generate the tag (e.g., signal 318) in absence of the
tag input 308.
[0151] Based on learning of associations between action tag-control
command; and/or learning to generate action tags, the predictor may
be able to learn higher-order control composites, such as, for
example, `approach`, `fetch`, `avoid`, and/or other actions, that
may be associated with the sensory input.
[0152] FIG. 3B is a block diagram illustrating an control system
comprising an adaptive predictor configured to generate control
signal based on an association between control action and sensory
context, according to one or more implementations.
[0153] The control system 320 may comprise controller 342,
predictor 322, plant 340, and one or more combiners 330, 350. The
controller 342 may be configured to generate action indication A
348 based on sensory input 326 and/or plant feedback 336. The
controller 342 may be further configured to generate one or more
low-level plant control commands (e.g., 346) based on sensory input
326 and/or plant feedback 336. In some control implementations, the
low-level commands 346 may comprise instructions to rotate a right
wheel motor by 30.degree., apply motor current of 100 mA, set motor
torque to 10%, reduce lens diaphragm setting by 2, and/or other
commands. The low-level commands may be configured in accordance
with a specific implementation of the plant, e.g., number of
wheels, motor current draw settings, diaphragm setting range, gear
ration range, and/or other parameters.
[0154] One or more of the combiners of the control system of FIG.
3B (e.g., 330_1) may be configured to combine an action indication
(e.g., tag A) 348_1, provided by the controller, and the predicted
action tag A.sup.P from the predictor to produce a target action
tag A 332_1.
[0155] One or more of the combiners (e.g., 350) may be configured
to combine a control command 346, provided by the controller, and
the predicted control instructions u.sup.P 344, provided by the
predictor, to produce plant control instructions u=h(u,u.sup.P)
(e.g., 352).
[0156] The predictor 322 may be configured to perform prediction of
(i) one or more action indications 348; and/or plant control signal
u.sup.P 352 that may be associated with the sensory input 326
and/or plant feedback 336. The predictor 322 operation may be
configured based on two or more training signals 324, 354 that may
be associated with the action indication prediction and control
command prediction, respectively. In one or more implementations,
the training signals 324, 354 at time t2 may comprise outputs of
the respective combiners 330, 350 at a prior time (e.g., t1=t2-dt),
as described above with respect to Eqn. 7.
[0157] The predictor 322 may be operable in accordance with a
learning process configured to enable the predictor to develop
associations between the action indication input (e.g., 348_1) and
the lower-level control signal (e.g., 352). In some
implementations, during learning, this association development may
be aided by plant control instructions (e.g., 346) that may be
issued by the controller 342. One (or both) of the combined action
indication signal (e.g., 332_1) and/or the combined control signal
(e.g., 352) may be utilized as a training input (denoted in FIG. 3B
by the arrows 324_1, 354, respectively) by the predictor learning
process. Subsequent to learning, once the predictor has associated
the action indicator with the sensory context, the low-level
control signal (e.g., 346) may be withdrawn by the controller.
Accordingly, the control system 320 of FIG. 3B may take
configuration of the control system 300 shown in FIG. 3A.
[0158] In some implementations, the combined action indication
signal (e.g., 332) and/or the combined control signal (e.g., 352)
may be provided to the predictor as a portion of the sensory input,
denoted by the arrows 356 in FIG. 3B.
[0159] In one or more implementations, two or more action
indications (e.g., 348_1, 348_2 may be associated with the control
signal 352. By way of a non-limiting example, illustrated for
example in FIG. 4, the controller apparatus 320 may be configured
to operate a robotic platform. Action indication 348_1 may comprise
a higher level control tag `turn right`; the action indication
348_2 may comprise a higher level control tag `turn left`.
Responsive to receipt of sensory input 356, 326 and/or teaching
input 324, 354 the predictor 322 may learn to associate, for
example, `turn right` action tag with a series of motor
instructions (e.g., left wheel rotate forward right, right wheel
rotate backwards) with one (or more) features (e.g., object type
and location) that may be present within the sensory input. Such
association s may be referred to as a composite task (e.g.,
comprising tag and a motor output).
[0160] Upon learning these composite tasks, the predictor 322 may
be provided with a higher level action indication (e.g., 348_3).
The term `higher level` may be used to describe an action (e.g.,
`approach`/`avoid`) that may comprise one or more lower level
actions (e.g., 348_1, 348_2, `turn right`/`turn left`). In some
implementations, the higher level action indication (e.g., 348_3)
may be combined (by, e.g., the combiner 330_3 in FIG. 3B) with a
predicted higher level action indication (not shown in FIG. 3B).
The combined higher level action indication may be provided to the
predictor as a teaching signal and/or sensory input (not shown in
FIG. 3B. One or more levels of action indications may form a
hierarchy of actions, also referred to as primitives or
sub-tasks.
[0161] Control action separation between the predictor 302, 322
(configured to produce the plant control signal 314, 352) and the
controller 342 (configured to provide the action indication 348)
described above, may enable the controller (e.g., 342 in FIG. 3B)
to execute multiple control actions (e.g., follow a target while
avoiding obstacles) contemporaneously with one another.
[0162] Control action separation between the predictor 302, 322
(configured to produce the plant control signal 314, 352) and the
controller 342 (configured to provide the action indication 348)
described above, may enable the controller (e.g., 342 in FIG. 3B)
to execute multiple control actions (e.g., follow a target while
avoiding obstacles) contemporaneously with one another.
[0163] The controller 342 may be operable in accordance with a
reinforcement learning (RL) process. In some implementations, the
RL process may comprise a focused exploration methodology,
described for example, in co-owned U.S. patent application Ser. No.
13/489,280 entitled "APPARATUS AND METHODS FOR REINFORCEMENT
LEARNING IN ARTIFICIAL NEURAL NETWORKS", filed Jun. 5, 2012, now
issued as U.S. Pat. No. 8,943,008 on Jan. 27, 2015, incorporated
supra.
[0164] The predictor 322 may be operable in accordance with a
supervised learning (SL) process. In some implementations, the
supervised learning process may be configured to cause output that
is consistent with the teaching signal. Output consistency may be
determined based on one or more similarity measures, such as
correlation, in one or more implementations.
[0165] Reinforcement learning process of the controller may rely on
one or more exploration techniques. In some implementations, such
exploration may cause control signal corresponding one or more
local minima of the controller dynamic state. Accordingly, small
changes in the controller input (e.g., sensory input 326 in FIG.
3B) may cause substantial changes in the control signal responsive
to a convergence of the controller state to another local minimum.
Exploration of reinforcement learning may require coverage of a
full state space associated with the controller learning process
(e.g., full range of heading, tilt, elevation for a drone searching
for a landing strip). State exploration by reinforcement learning
may be time consuming and/or may require more substantial
computational and/or memory resources when compared to supervised
learning (for the same spatial and temporal resolution). Training
signal used by supervised learning may limit exploration by
pointing to a region within the state space where the target
solution may reside (e.g., a laser pointer used for illuminating a
potential target). In some implementations, the supervised learning
may be faster (e.g., converge to target solution with a target
precision in shorter amount of time) compared to reinforcement
learning. The use of target signal during training may enable the
SL process to produce a more robust (less varying) control signal
for a given set of sensory input, compared to the RL control
signal. For a given size/capability of a software/hardware
controller platform, reinforcement learning may perform fewer tasks
(a single task in some implementations) compared to supervised
learning that may enable the controller platform to execute several
(e.g., 2-10 in some implementations). In one or more
implementations, reinforcement learning signal may be provided by
human operator.
[0166] FIG. 4 illustrates one example of a hierarchy of actions for
use with, for example, controller of FIG. 3B. An action indication
400 may correspond to a higher level composite action, e.g.,
`approach`, `avoid`, `fetch`, and/or other. The composite action
indication 400 may be configured to trigger execution of or more
actions 410, 412, 414 (also referred to as sub-tasks). The
sub-tasks 410, 412, 414 may correspond to lower level (in the
hierarchy of FIG. 4) actions, such as `turn right`, `turn left`,
`go forward`, respectively.
[0167] The sub-tasks (e.g., 410, 412, 414 in FIG. 4) may be
associated with one (or more) control signal instructions, e.g.,
signal 352 described with respect to FIG. 3B, supra. individual
second level sub-tasks (e.g., 410, 412, 414 in FIG. 4) may be
configured to invoke one or more lower (e.g., third in FIG. 4)
level sub-tasks. 420, 422 may correspond to instructions configured
to activate right/left motors of the robotic platform. In some
implementations, subtasks that may be invoked by one or more higher
level tasks and that may be configured to generate motor control
instructions may be referred to as the motor-primitives (e.g., 420,
422 in FIG. 4).
[0168] Subtasks of a given level (e.g., 400, 408 and/or 410, 412,
414 in FIG. 4) may comprise one or more activation parameters
associated with lower level subtasks (e.g., 410, 412, 414, and/or
420, 422 respectively in FIG. 4). The parameters (e.g., 402, 404,
406) may comprise one or more of, execution order, weight, turn
angle, motion duration, rate of change, torque setting, drive
current, shutter speed, aperture setting, and/or other parameters
consistent with the plant hardware and/or software
configuration.
[0169] As illustrated in FIG. 4, the task 400 (e.g., approach
target) may comprise a 30.degree. right turn followed by a 9 second
forward motion. The parameters 402, 404, 406 may be configured as
follows: [0170] O=1, w=30; [0171] O=0; and [0172] O=2, w=9;
respectively.
[0173] The task 408 may correspond to avoid target and may invoke
right/left turn and/or backwards motion tasks 410, 412, 416,
respectively.
[0174] Individual tasks of the second level (e.g., 410, 412, 414,
416 in FIG. 4) may cause execution of one or more third level tasks
(420, 422). The parameters 430, 432, 434, 436, 438, 440 may be
configured as follows: [0175] to execute right turn: rotate forward
left motor with torque of 0.5; (w=0.5), rotate right motor
backwards with torque of 0.5; (w=-0.5); [0176] to execute left
turn: rotate right motor backwards with torque of 0.5; (w=-0.5),
rotate forward right motor with torque of 0.5; (w=0.5); [0177] to
move forward: rotate forward left motor with torque of 0.5;
(w=0.5), rotate forward right motor with torque of 0.5; (w=0.5);
and [0178] to move backwards: rotate left motor backwards with
torque of 0.5; (w=-0.5), rotate right motor backwards with torque
of 0.5; (w=-0.5).
[0179] The hierarchy illustrated in FIG. 4, may comprise another
level (e.g., 430) that may be configured to implement pursue
functionality. In one or more implementations, the pursue
functionality mat trigger target approach task 400 and/or obstacle
avoidance task 408.
[0180] In one or more implementations wherein the predictor
comprises a spiking neuron network, learning a given behavior
(e.g., obstacle avoidance and/or target approach) may be
effectuated by storing an array of efficacies of connections within
the predictor network. In some implementations, the efficacies may
comprise connection weights, adjusted during learning using any
applicable methodologies. In some implementations, connection
plasticity (e.g., efficacy adjustment) may be implemented based on
the teaching input as follows: [0181] based on a teaching input
(e.g., spike) and absence of neuron output spike connections
delivering input spikes into the neuron (active connection) that
precede the teaching spike (within a plasticity window), may be
potentiated; and/or [0182] based on neuron output spike in absence
of teaching input, active connections delivering input spikes into
the neuron (active connection)) that precede the output spike
(within a duration specified by plasticity window), may be
depressed.
[0183] In some implementations wherein the sensory input may be
updated at 40 ms intervals and/or control signal may be updated at
a rate of 1-1000 Hz, the duration of the plasticity window may be
selected between 1 ms and 1000 ms. Upon learning a behavior,
network configuration (e.g., an array of weights) may be stored for
future use by the predictor.
[0184] Individual network portions may be configured to implement
individual adaptive predictor realizations. In some
implementations, one network portion may implement object approach
predictor while another network portion may implement obstacle
avoidance predictor. Another network portion may implement a task
predictor (e.g., fetch). In some implementations, predictors
implemented by individual network portions may form a hierarchy of
predictors. Lower-level predictors may be configured to produce
control (e.g., motor) primitives (also referred to as the
pre-action and/or pre-motor output). Higher level predictors may
provide output comprising predicted obstacle avoidance/target
approach instructions (e.g., approach, avoid).
[0185] In some implementations of a fetch task (comprising for
example target approach and/or obstacle avoidance), the lower level
predictors may predict execution of basic actions (so called, motor
primitives), e.g., rotate left with v=0.5 rad/s for t=10 s.
[0186] Predictors of a higher level within the hierarchy, may be
trained to specify what motor primitive to run and with what
parameters (e.g., v, t).
[0187] At a higher level of hierarchy, the predictor may be
configured to plan a trajectory and/or predict an optimal
trajectory for the robot movement for the given context.
[0188] At yet another higher level of the hierarchy, a controller
may be configured to determine a behavior that is to be executed at
a given time, e.g. now to execute the target approach and/or to
avoid the obstacle.
[0189] In some implementations, a hierarchy actions may be
expressed as: [0190] top level=behavior selection; [0191] 2nd
level=select trajectory; [0192] 3rd level=activate motor primitives
to execute given trajectory; and [0193] 4th level=issue motor
commands (e.g. PWM signal for motors) to execute the given motor
primitives.
[0194] In one or more implementations of hierarchy of predictors,
lower level predictors may provide inputs to higher level
predictors. Such configuration may advantageously alleviate the
higher level predictor from performing all of the functionality
that may be required in order to implement target approach and/or
obstacle avoidance functionality.
[0195] The hierarchical predictor configuration described herein
may be utilized for teaching a robotic device to perform new task
(e.g., behavior B3 comprised of reaching a target (behavior B1)
while avoiding obstacles (behavior B2). The hierarchical predictor
realization may enable a teacher (e.g., a human and/or computerized
operator) to divide the composite behavior B3 into two or more
sub-tasks (B1, B2). In one or more implementations, performance of
the sub-tasks may be characterized by lower processing requirements
by the processing block associated with the respective predictor;
and/or may require less time in order to arrive at a target level
of performance during training, compared to an implementation
wherein all of the behaviors (B1, B2, B3) are learned concurrently
with one another. Predictors of lower hierarchy may be trained to
perform sub-tasks B1, B2 in a shorter amount of time using fewer
computational and/or memory resources, compared to time/resource
budget that may be required for training a single predictor to
perform behavior B3.
[0196] When training a higher hierarchy predictor to perform new
task (e.g., B3 acquire a target), the approach described above may
enable reuse of the previously learnt task/primitives (B1/B2) and
configured the predictor to implement learning of additional
aspects that may be associated with the new task B3, such as B3a
reaching and/or B3b grasping).
[0197] If another behavior is to be added to the trained behavior
list (e.g., serving a glass of water), previously learned
behavior(s) (e.g., reaching, grasping, and/or others, also referred
to as the primitives) may be utilized in order to accelerate
learning compared to implementations of the prior art.
[0198] Reuse of previously learned behaviors/primitives may enable
reduction in memory and/or processing capacity (e.g., number of
cores, core clock speed, and/or other parameters), compared to
implementations wherein all behaviors are learned concurrently.
These advantages may be leveraged to increase processing throughput
(for a given neuromorphic hardware resources) and/or perform the
same processing with a reduced complexity and/or cost hardware
platform, compared to the prior art.
[0199] Learning of behaviors and/or primitives may comprise
determining an input/output transformation (e.g., the function F in
Eqn. 10, and/or a matrix F of Eqn. 13) by the predictor. In some
implementations, learning a behavior may comprise determining a
look-up table and/or an array of weights of a network as described
above. Reuse of previously learned behaviors/primitives may
comprise restoring/copying stored LUTs and/or weights into
predictor realization configured for implementing learned
behavior.
[0200] Exemplary operation of adaptive controller system (e.g.,
200, 230, 270 of FIGS. 2A-2C, respectively) is now described in
detail. The predictor and/or the controller of the adaptive
controller system may be operated in accordance with an update
process configured to be effectuated continuously and/or at
discrete time intervals At, described above with respect to Eqn.
7.
[0201] The control signal (e.g., 208 in FIG. 2A) may be provided at
a rate between 1 Hz and 1000 Hz. A time scales T.sub.plant
describing dynamics of the respective plant (e.g., response time of
a rover and/or an aerial drone platform, also referred to as the
behavioral time scale) may vary with the plant type and comprise
scales on the order of a second (e.g., between 0.1 s to 2 s).
[0202] The transfer function of the combiner of the exemplary
implementation of the adaptive controller apparatus 200, may be
configured as follows:
u=h(u,u.sup.P)=u+u.sup.P. (Eqn. 14)
[0203] Training of the adaptive predictor (e.g., 222 of FIG. 2A)
may be effectuated via a plurality of trials. In some
implementations, training of a mechanized robot and/or an
autonomous rover may comprise between 5 and 50 trials. Individual
trials may be configured with duration that may be sufficient to
observe behavior of the plant (e.g., execute a turn and/or another
maneuver), e.g., between 1 and 10 s.
[0204] In some implementations the trial duration may last longer
(up to tens of second) and be determined based on a difference
measure between current performance of the plant (e.g., current
distance to an object) and a target performance (e.g., a target
distance to the object). The performance may be characterized by a
performance function as described in detail in co-owned U.S. patent
application Ser. No. 13/487,499 entitled "STOCHASTIC APPARATUS AND
METHODS FOR IMPLEMENTING GENERALIZED LEARNING RULES, filed Jun. 4,
2012 and now issued as U.S. Pat. No. 9,104,186 on Aug. 11, 2015,
incorporated supra. Individual trials may be separated in time (and
in space) by practically any duration commensurate with operational
cycle of the plant. By way of illustration, individual trial when
training a robot to approach objects and/or avoid obstacles may be
separated by a time period and/or space that may be commensurate
with the robot traversing from one object/obstacle to the next. In
one or more implementations, the robot may comprise a rover
platform, and/or a robotic manipulator arm comprising one or more
joints.
[0205] FIG. 6A illustrates an exemplary trajectory of a rover
configured to learn obstacle avoidance. The rover 610 may be
configured to avoid walls 602, 604. In some implementations, the
avoidance policy may comprise execution of a 45.degree. turn, e.g.,
606, 608 in FIG. 6A. As used herein designators TN may be used to
refer to a time of a given trial (e.g., T1 denoting time of first
trial). During first trial, at time T1: [0206] the predictor (e.g.,
222 of FIGS. 2A-2B) may receive control signal u1 (e.g., turn right
45.degree.) from control entity 212. The control signal may
correspond to sensory input x1 (e.g., 206, 216 in FIG. 2A) that may
be received by the controller and/or the predictor; such signal may
comprise a representation of an obstacle (e.g., a wall), and/or a
target (e.g., a charging dock); [0207] the predictor may be
configured to generate predicted control signal (e.g.,
u1.sup.P=0.degree.); [0208] the combiner may produce combined
output u1'=45.degree.; and [0209] the plant 210 may begin to turn
right in accordance with the combined output (e.g., 220).
[0210] During another trial at time T2>T1: [0211] the predictor
222 may receive control signal u2 (e.g., still turn right
45.degree.) from the controller 212; [0212] the plant feedback may
indicate to the predictor that the plant is executing a turn (in
accordance with the prior combined output u1'); accordingly, the
predictor may be configured to `mimic` the prior combined output
u1' and to generate predicted control signal (e.g.,
u2.sup.P=10.degree.); [0213] the combiner may produce new combined
output u2'=55.degree.; and [0214] the plant 210 may increase the
turn rate in accordance with the updated control signal u2'.
[0215] During another trial at time T3>T2: [0216] the input x3
may indicate to the controller 212 that the plant turn rate is in
excess of the target turn rate for the 40.degree. turn; the
controller 212 may reduce control signal to u3=35.degree., [0217]
based on the input x3, indicative of e.g., the plant turn rate for
u2'=55.degree., the predictor may be configured to increase its
prediction to e.g., u3.sup.P=20.degree.; and [0218] the combiner
(e.g., 210 of FIG. 2A) may receive control signal u3 (e.g., turn
right) 35.degree. from the controller 212; the combiner may produce
the combined output u3'=55.degree..
[0219] During other trials at times Ti>T3 the predictor output
may be increased to the target plant turn of 45.degree. and the
control signal 208 may be reduced to zero. In some implementations,
the outcome of the above operational sequence may be referred to as
(gradual) transfer of the control signal to the predictor output. A
summary of one implementation of the training process described
above may be summarized using data shown in Table 1:
TABLE-US-00003 TABLE 3 Control Predicted Combined Error Trial #
signal u[deg] signal u.sup.P [deg] signal u[deg] (u - u) [deg] 1 45
0 45 0 2 45 10 55 10 3 35 20 55 10 4 25 35 60 15 5 25 50 60 15 6 0
55 55 10 7 0 55 55 10 8 -10 55 45 0 9 -10 50 40 -5 10 0 45 45 0
[0220] As seen from Table 3, when the predictor is capable to
producing the target output (e.g., trial #10), the control signal
(e.g., 208 in FIG. 2A) may be withdrawn (removed). The output of
the combiner (e.g., 214) in such realizations may comprise the
predictor output in accordance with, for example, Eqn. 14.
[0221] In some implementations, the control entity (e.g., 212 in
FIG. 2A) may comprise a human trainer of the robot. In one or more
implementations, the control entity may comprise an adaptive system
operable in accordance with a learning process. In one or more
implementations, the learning process of the controller may
comprise one or more reinforcement learning, unsupervised learning,
supervised learning, and/or a combination thereof, as described in
co-owned U.S. patent application Ser. No. 13/487,499 entitled
"STOCHASTIC APPARATUS AND METHODS FOR IMPLEMENTING GENERALIZED
LEARNING RULES, filed Jun. 4, 2012 and now issued as U.S. Pat. No.
9,104,186 on Aug. 11, 2015 incorporated supra.
[0222] In one or more implementations, the training steps outlined
above (e.g., trials summarized in Table 3) may occur over two or
more trials wherein individual trial extend over behavioral time
scales (e.g., one second to tens of seconds).
[0223] In some implementations, the training steps may occur over
two or more trials wherein individual trials may be characterized
by control update scales (e.g., 1 ms to 1000 ms).
[0224] In some implementations, the operation of an adaptive
predictor (e.g., 222 in FIG. 2A) may be characterized by predictor
learning within a given trial as illustrated and described with
respect to Table 4.
[0225] FIG. 6B illustrates training of a robotic rover device to
approach a target. The robot 622 in FIG. 6B may be configured to
approach the target 642 (e.g., a ball, a charging station, and/or
other target). Training may comprise a plurality of trials 620,
664, 626, 628 wherein a teacher may train the rover to perform a
target approach along a target trajectory (e.g., depicted by broken
line arrow 630). As used herein designators TN may be used to refer
to a time of a given trial (e.g., T1 denoting time off trial 620).
In some implementations, the teacher may comprise a human trainer.
The robot may comprise an adaptive controller, e.g., the controller
200 of FIG. 2A. During one or more initial trials (e.g., 630 in
FIG. 6B) the teacher may direct the robot 622 along the target
trajectory 630. In some implementations, the teacher may employ a
demonstration using tele-operation, using one or more applicable
user interfaces. Such interfaces may include one or more of: a
remote controller (e.g. joystick, nun chuck, and/or other devices);
voice commands (e.g., go forward, turn left or right, and/or other
voice commands); using a gesture recognition system (e.g., Kinect);
and/or other interfaces.
[0226] In one or more implementations, the teacher may employ a
demonstration with so-called kinesthetic teaching, wherein the
robot is physically guided (e.g., `dragged`) through the trajectory
by the teacher. In this approach, the adaptive controller learning
process may comprise an inverse model of the robotic platform. The
adaptive controller may be configured to translate the changes in
the observed robot sensory space to the motor actions that would
result in the same sensory space.
[0227] In one or more implementations, the robot may employ
learning by mimicking methodology. The robot may be configured to
observe a demonstrator performing the desired task and is learning
to perform the same task on its own.
[0228] While following the target trajectory, a learning process of
the robot controller may learn (e.g., via adaptation of learning
parameters) an interrelationship between the sensory input, the
controller state, and/or the teaching input. In the realization
illustrated in FIG. 6B, the sensory input may comprise data related
to robot motion parameters (position, orientation, speed,
acceleration and/or other parameters) and/or target information
(distance to, color, shape, and/or other information). The teaching
input may comprise a motion directive (e.g., joystick forward
and/or other directive), motor control commands (e.g., rotate left
wheel clockwise and/or other commands) and/or other teaching input.
In some implementations, during the teacher-guided trials (e.g.,
620), the motor control output (e.g., 220 in FIG. 2A) may be
configured solely on the control input from the teacher in
accordance with Eqn. 4.
[0229] Upon completion of one or more teacher-guided trials, the
robot 622 may be configured to perform one or more teacher-assisted
trials (e.g., the trials 624, 626, 628 in FIG. 6B). During a
teacher-assisted trial the adaptive controller of the robot 622 may
be configured to generate a predicted control signal (e.g., 218 in
FIG. 2A). The predicted control signal may be combined with the
user input using any of the methodologies described herein and/or
other methodologies. During the trial 624, the robot may process
along trajectory portion 634. In some implementations, the user may
withdraw its guidance during the traversal of the trajectory
portion 634 by the robot so as to assess an ability of the robot to
navigate the target trajectory. The trajectory portion 634 may
deviate from the target trajectory 630. Upon determining that the
trajectory deviation (denoted by the arrow 638) exceeds a maximum
deviation for the task, the user may assist the controller of the
robot by providing user input. In some implementations, the user
input may be configured to assist the robot by providing a
correction (e.g., turn right by 110.degree., indicted by the arrow
636). In one or more implementations, the user input may comprise
reward/penalty signals to the robot. The reward/penalty signal may
be based on the robot entering given states (e.g., reward for robot
orienting itself towards the target, penalty for orienting away
from the target); and/or taking certain actions during trajectory
traverse. In some implementations, the user input may comprise a
warning and/or a correction signal (e.g., more to the right).
[0230] The teacher may utilize a reset signal configured to reset
to a base state configuration of the learning process. In some
implementations, such reset may be used to reset neuron states
and/or connection weights of a predictor based on predictor
generating predicted signal that may be inconsistent (e.g., guides
the robot away from a target in target approach task) with the
target action.
[0231] In some implementations, the learning process may be
configured to store intermediate learning stages corresponding to
one or more portions of the trajectory traversal. By way of
illustration, the trajectory portions 638, 640 in FIG. 6B may be
stored as individual learning stages (partitions) based on an
occurrence of a tag signal. The tag signal may be received from the
teacher and/or generated internally by the controller based on one
or more criteria (e.g., rate of change of motion, distance from
target, performance measure and/or other measure). A reset signal
may be utilized to reset (clear) learning data associated with the
portion 640, while the data related to the portion 638 may remain
intact. In some implementations, the adaptive controller may be
configured to store its state at the time of the tag signal. Upon
receiving a reset signal at a subsequent time, the controller may
be configured to retain learning data occurring prior to the tag,
while resetting data occurred subsequent to the tag.
[0232] During individual trials 624, 626, 628 user assistance may
be provided one or more times, as illustrated by arrows 636, 646,
648 in FIG. 6B.
[0233] While following a trajectory during trials 624, 626, 628, a
learning process of the robot controller may learn (e.g., via
adaptation of learning parameters) an interrelationship between the
sensory input, the controller state (e.g., predicted control
signal), and/or the teaching input.
[0234] During successive trials 624, 626, 628 the performance of
the robot may improve as determined based on a performance measure.
In some implementations, the performance measure may comprise a
discrepancy measure between the actual robot trajectory (e.g., 632,
634) and the target trajectory. The discrepancy measure may
comprise one or more of maximum deviation, maximum absolute
deviation, average absolute deviation, mean absolute deviation,
mean difference, root mean squatter error, cumulative deviation,
and/or other measures.
[0235] Upon completion of one or more teacher-assisted trials
(e.g., 624, 628), the robot 622 may be configured to navigate the
target trajectory absent user input (not shown in FIG. 6B). The
learning by the robot during previous trials may enable navigation
of the target trajectory by the robot that is within the training
performance margin. It is noteworthy that, during user-assisted
training trials, the user and the robot may cooperate with one
another (e.g., via the use of the combiners 310, 330 of FIGS.
3A-3B) in order to accomplish target action (e.g., navigate the
trajectory 630 of FIG. 6B).
[0236] Learning by the adaptive controller apparatus (e.g., 200
FIG. 2) may enable transfer of information (knowledge') from the
user (e.g., control signal e.g., 208 in FIG. 2A) to the robot
(e.g., predicted control output (e.g., 218 in FIG. 2A) of the
adaptive controller). As used herein the term `knowledge` may refer
to changes to the adaptive controller state needed to reproduce, in
its predictions (e.g., 218 in FIG. 2A), the signals previously
produced by the control signal (e.g., 208 in FIG. 2A), but in the
absence of continued control signal.
[0237] It is noteworthy that, in accordance with the principles of
the present disclosure, the information transfer (such as described
with respect to FIG. 6B) may occur not instantaneously but
gradually on time scales that are in excess of the robot adaptive
controller update intervals. Initially (e.g., at time T1 in FIG.
6A), the user may be capable of controlling the robot in accordance
with the target trajectory. Subsequently (e.g., at time T>Tn in
FIG. 6B), the adaptive controller may be capable of controlling the
robot in accordance with the target trajectory. There may exist an
intermediate state (e.g., T2, T3, Tn in FIG. 6B) wherein: (i) both
the adaptive controller and the user are attempting to operate the
robot in accordance with the target trajectory (e.g., the user
provides the control signal 208, the adaptive controller generates
the predicted control signal 218; (ii) the combined output (e.g.,
220) is inadequate (either too large or too small) to achieve the
target trajectory within the performance bounds; and/or other
states.
[0238] In one or more implementations, the adaptive controller may
be configured to generate the predicted signal u.sup.P such that it
closely reproduces the initial control signal u. This is shown in
Table 3, where predicted signal at trial 10 matches the initial
control signal at trial 1.
[0239] In one or more implementations, such as described in
co-owned and co-pending U.S. patent application Ser. No. 13/842,530
entitled "ADAPTIVE PREDICTOR APPARATUS AND METHODS", filed Mar. 15,
2013, the adaptive controller may be configured to predict
cumulative (e.g., integrated over the trial duration) outcome of
the control action.
[0240] FIGS. 7A-7E depict various user input waveforms useful for
training of robotic devices during trials, such as show and
described with respect to FIGS. 6A-6B, above.
[0241] FIG. 7A depicts modulated user input provided to a robotic
device during one or more training trials for use, for example,
with the target approach training of FIG. 6B, according to one or
more implementations. The user input of FIG. 7A may comprise a
plurality of user inputs (e.g., pulses 702, 704, 706, 708) at times
t1, t2, t3, t4, t5. The signal modulation of FIG. 7A may comprise
one or more of: a pulse width modulation (e.g., pulses 702, 706)
having different duration; a pulse amplitude modulation (e.g.,
pulses 702, 706) having different amplitude; and/or a pulse
position modulation (e.g., pulses 702, 704 and 706, 708) occurring
at different intervals. In one or more implementations, individual
pulses 702, 704, 706, 708 may correspond to user input during
respective training trials (e.g., 624, 626 and other in FIG. 6B).
In some implementations, the pulses 702, 704, 706, 708 may
correspond to user input during a given training trial (e.g., 624
in FIG. 6B).
[0242] By way of non-limiting illustration, the waveforms of FIG.
7A may be utilized as follows: during an initial trial (e.g., 624)
the user may provide user input 702 of a sustained duration and
full magnitude 700 (e.g., joystick on full forward for 10 second).
At a subsequent trial, the user may provide input 704 of a shorter
duration and lower magnitude (e.g., turn slightly right, compared
to the initial input 702.
[0243] FIG. 7B illustrates pulse frequency modulated user input
provided to a robotic device during one or more training trials for
use, for example, with the target approach training of FIG. 6B,
according to one or more implementations. Pulses depicted by lines
of different styles may correspond to different trials. By way of
non-limiting illustration, the waveforms of FIG. BA may be utilized
as follows: at an initial trial (pulses depicted by thin line e.g.,
712 in FIG. 7B) user may provide more frequent inputs as compared
to inputs during subsequent trials, depicted by thick line pulses
(e.g., 714). Individual user inputs in FIG. 7B implementation
(e.g., pulses 712, 714, 716) may comprise pulses of fixed amplitude
710 and/or fixed duration.
[0244] FIG. 7C illustrates ramp-up modulated user input provided to
a robotic device during one or more training trials for use, for
example, with the target approach training of FIG. 6B, according to
one or more implementations. As used herein, the terms "ramp-up
modulated user input" and/or "ramp-down modulated user input" may
be used to describe user input characterized by a parameter that
may progressively increase and/or decrease, respectively. In one or
more implementations, the parameter may comprise input magnitude,
frequency, duration, and/or other parameters.
[0245] Individual curves 721, 722, 723, 724, 726 may depict user
input during individual trials (e.g., 620, 624, 626, in FIG. 6B).
By way of a non-limiting illustration, the waveforms of FIG. 7C may
be utilized as follows: at an initial trial (shown by the curve 721
in FIG. 7C) the user may let the robotic device to navigate the
trajectory without assistance for a period 728. Upon determining a
robot's performance, the user may provide control input of
amplitude 720 and duration 729. During one or more subsequent
trials, the user may delay assistance onset (e.g., increase the
time interval 728), and increase duration of the assistance (e.g.,
increase the time interval 729).
[0246] FIG. 7D illustrates ramp-down modulated user input provided
to a robotic device during one or more training trials for use, for
example, with the target approach training of FIG. 6B, according to
one or more implementations. Individual curves 731, 732, 733, 734,
736 may depict user input during individual trials (e.g., 620, 624,
626, in FIG. 6B). By way of non-limiting illustration, the
waveforms of FIG. 7D may be utilized as follows: at an initial
trial (shown by the curve 731 in FIG. 7D) the user may guide the
robotic device to navigate the trajectory assistance for a period
738 by providing control input 731 of amplitude 730. Upon
determining robot's performance, the user may withdraw input for
duration 739. During one or more subsequent trials, the user may
decrease duration of the assistance (e.g., decrease the time
interval 738).
[0247] FIG. 7E illustrates user input, integrated over a trial
duration, provided to a robotic device during one or more training
trials for use, for example, with the target approach training of
FIG. 6B, according to one or more implementations. As shown in FIG.
7E, a magnitude of the user input may decrease from initial input
740 of maximum magnitude to the final input 744 of lowest
magnitude.
[0248] It may be appreciated by those skilled in the arts that the
user input signal waveforms illustrated in FIGS. 7A-7E represent
some implementations of the disclosure and other signals (e.g.,
bi-polar, inverted polarity, frequency modulated, phase modulated,
code modulated, spike-encoding, audio, visual, and/or other
signals) may be utilized for providing user input to a robot during
training.
[0249] FIG. 8 illustrates learning a plurality of behaviors over
multiple trials by an adaptive controller, e.g., of FIG. 2A, in
accordance with one or more implementations. The plurality of
vertical marks 802 on trace 800 denotes control update events
(e.g., time grid where control commands may be issued to motor
controller). In some implementations (not shown) the control events
(e.g., 802 in FIG. 8) may be spaced at non-regular intervals. The
arrow denoted 804 may refer to the control time scale.
[0250] The time intervals denoted by brackets 810, 812, 814 may
refer to individual training trials (e.g., trials T1, T2, T3
described above with respect to Table 3). The arrow denoted 806 may
refer to a trial duration being associated with, for example, a
behavioral time scale.
[0251] The arrow denoted 808 may refer to inter-trial intervals and
describe training time scale.
[0252] In some implementations, shown and described with respect to
FIG. 8, a robotic device may be configured to learn two or more
behaviors within a given time span. By way of illustration, a
mechanized robotic arm may be trained to grasp an object (e.g.,
cup). The cup grasping may be characterized by two or more
behaviors, e.g., B1 approach and B2 grasp. Training for individual
behaviors B1, B2 is illustrated in FIG. 8 by trials denoted as
(810, 812, 814), and (820, 822, 824) respectively.
[0253] Sensory input associated with the training configuration of
trace 800 is depicted by rectangles on trace 830 in FIG. 8.
Individual sensory states (e.g., a particular object and or a
feature present in the sensory input) are denoted as x1, x2 in FIG.
8. The cup may be present in the sensory input associated with the
trial T1, denoted 810 in FIG. 8. Such predictor sensory input state
may be denoted as x1. The robotic device may attempt to learn to
approach (behavior B1) the cup at trial 810. The cup may be absent
in the sensory input subsequent to trial 810. The robotic device
may be engaged in learning other behaviors triggered by other
sensory stimuli. A different object (e.g., a bottle) denoted as x2
in FIG. 8 may be visible in the sensory input. The robotic device
may attempt to learn to grasp (behavior B2) the bottle at trial
812. At a subsequent time, the cup may again be present in the
sensory input. The robotic device may attempt to continue learning
to approach (behavior B1) the cup at trials 812, 814.
[0254] Whenever the bottle may be visible in the sensory input, the
robotic device may continue learning grasping behavior (B2) trials
822, 824. In some realizations, learning trials of two or more
behaviors may overlap in time (e.g., 812, 822 in FIG. 8). The
robotic device may be configured to execute given actions (e.g.,
learn a behavior) in response to a particular input stimuli rather
than based on a particular time.
[0255] Operation of the control entity 212 (e.g., 212 in FIG. 2A)
and/or the predictor (e.g., 222 in FIG. 2A) may be based on the
input 206 (e.g., sensory context). As applied to the above
illustration of training a rover to turn in response to, e.g.,
detecting an obstacle, as the rover executes the turn, the sensory
input (e.g., the obstacle position with respect to the rover) may
change. Predictor training wherein the sensory input may change is
described below with respect to data summarized in Table 4, in
accordance with one or more implementations.
[0256] Responsive to the control entity (e.g., a user) detecting an
obstacle (sensory input state x1), the control signal (e.g., 208 in
FIG. 2A) may comprise commands to execute a 45.degree. turn. In
some implementations, (e.g., described with respect to Table 1
supra) the turn maneuver may comprise a sudden turn (e.g., executed
in a single command, e.g., Turn=45.degree.. In some
implementations, (e.g., described with respect to Table 2) the turn
maneuver may comprise a gradual turn effectuated by two or more
turn increments (e.g., executed in five commands,
Turn=9.degree.).
[0257] As shown in Table 4 during Trial 1, the control signal is
configured at 9.degree. throughout the training. The sensory,
associated with the turning rover, is considered as changing for
individual turn steps. Individual turn steps (e.g., 1 through 5 in
Table 2) are characterized by different sensory input (state and/or
context x1 through x5).
[0258] At presented in Table 4, during Trial 1, the predictor may
be unable to adequately predict controller actions due to, at least
in part, a different input being associated with individual turn
steps. The rover operation during Trial 1 may be referred to as the
controller controlled with the controller performing 100% of the
control.
TABLE-US-00004 TABLE 4 Trial 1 Trial 2 Trial 3 Step # State
u.degree. u.sup.P.degree. u.degree. u.degree. u.sup.P.degree.
u.degree. u.degree. u.sup.P.degree. u.degree. 1 x1 9 0 9 9 3 12 5 6
11 2 x2 9 0 9 8 3 11 2 6 8 3 x3 9 0 9 7 3 10 3 5 8 4 x4 9 0 9 9 3
12 9 6 15 5 x5 9 0 9 3 3 6 1 5 6 Total 45 0 45 36 15 51 20 28
48
[0259] The Trial 2, summarized in Table 4, may correspond to
another occurrence of the object previously present in the sensory
input processes at Trial 1. At step 1 of Trial 2, the control
signal may comprise a command to turn 9.degree. based on appearance
of the obstacle (e.g., x1) in the sensory input. Based on prior
experience (e.g., associated with sensory states x1 through x5 of
Trail 1), the predictor may generate predicted output
u.sup.P=3.degree. at steps 1 through 5 of Trial 2, as shown in
Table 4. In accordance with sensory input and/or plant feedback,
the controller may vary control signal u at steps 2 through 5.
Overall, during Trial 2, the predictor is able to contribute about
29% (e.g., 15.degree. out of 51.degree.) to the overall control
signal u. The rover operation during Trial 2 may be referred to as
jointly controlled by the control entity (e.g., a human user) and
the predictor. It is noteworthy, neither the predictor nor the
controller are capable of individually providing target control
signal of 45.degree. during Trial 2.
[0260] The Trial 3, summarized in Table 4, may correspond to
another occurrence of the object previously present in the sensory
input processes at Trials 1 and 2. At step 1 of Trial 3, the
control signal may reduce control signal 3.degree. turn based on
the appearance of the obstacle (e.g., x1) in the sensory input
and/or prior experience during Trial 2, wherein the combined output
u1' was in excess of the target 9.degree.. Based on the prior
experience (e.g., associated with sensory states x1 through x5 of
Trails 1 and 2), the predictor may generate predicted output
u.sup.P=5.degree., 6.degree. at steps 1 through 5 of Trial 3, as
shown in Table 4. Variations in the predictor output u.sup.P during
Trial 3 may be based on the respective variations of the control
signal. In accordance with sensory input and/or plant feedback, the
controller may vary control signal u at steps 2 through 5. Overall,
during Trial 3, the predictor is able to contribute about 58%
(e.g., 28.degree. out of 48.degree.) to the overall control signal
u. The combined control signal during Trial 3 is closer to the
target output of 48.degree., compared to the combined output
(51.degree.) achieved at Trial 2. The rover operation during Trial
2 may be referred to as jointly controlled by the control entity
and the predictor. It is noteworthy, the neither the predictor nor
the controller are capable of individually providing target control
signal of 45.degree. during Trial 3.
[0261] At a subsequent trial (not shown) the control signal may be
reduced to zero while the predictor output may be increased to
provide the target cumulative turn (e.g., 45.degree.).
[0262] Training results shown and described with respect to Table
3-Table 4 are characterized by different sensory context (e.g.,
states x1 through x5) corresponding to individual training steps.
Step-to-step sensory novelty may prevent the predictor from
learning control signal during the duration of the trial, as
illustrated by constant predictor output u.sup.P in the data of
Table 3-Table 4.
[0263] Table 5 presents training results for an adaptive predictor
apparatus (e.g., 222 of FIG. 2A) wherein a given state of the
sensory may persist for two or more steps during a trial, in
accordance with one or more implementations. Persistence of the
sensory input may enable the predictor to learn control signal
during the duration of the trial.
TABLE-US-00005 TABLE 5 Trial Step # State u.degree. u.sup.P.degree.
u.degree. 1 x1 9 0 9 2 x1 9 3 12 3 x1 7 6 13 4 x2 9 0 9 5 x2 2 3 5
Total 36 12 48
[0264] As shown in Table 5, sensory state x1 may persist throughout
the training steps 1 through 3 corresponding, for example, a view
of a large object being present within field of view of sensor. The
sensory state x2 may persist throughout the training steps 4
through 5 corresponding, for example, another view the large object
being present sensed.
[0265] At steps 1,2 of Trial of Table 5, the controller may provide
control signal comprising a 9.degree. turn control command. At step
3, the predictor may increase its output to 3.degree., based on a
learned association between the control signal u and the sensory
state x1.
[0266] At step 3 of Trial of Table 5, the controller may reduce its
output u to 7.degree. based on the combined output u2'=12.degree.
of the prior step exceeding the target output of 9.degree.. The
predictor may increase its output based on determining a
discrepancy between the sensory state x1 and its prior output
(3.degree.).
[0267] At step 4 of Trial of Table 5, the sensory state (context)
may change, due to for example a different portion of the object
becoming visible. The predictor output may be reduced to zero as
the new context x2 may not have been previously observed.
[0268] At step 5 of Trial of Table 5, the controller may reduce its
output u to 2.degree. based on determining amount of cumulative
control signal (e.g., cumulative turn) achieved at steps 1 through
4. The predictor may increase its output from zero to 3.degree.
based on determining a discrepancy between the sensory state x2 and
its prior output u4.sup.P=0.degree.. Overall, during the Trial
illustrated in Table 5, the predictor is able to contribute about
25% (e.g., 5.degree. out of 48.degree.) to the overall control
signal u.
[0269] FIG. 9 illustrates training performance of an adaptive
robotic apparatus of, e.g., FIG. 2B, by a user, in accordance with
one or more implementations. Solid line segments 902, 904, 906, 908
denote error corresponding to a difference measure between the
actual trajectory of the robot (e.g., 632, 634) versus the target
trajectory (e.g., 630). Robot operation for a given trial duration
(e.g., denoted by arrow 910) may be characterized by varying
sensory state (e.g., states x1 through x5 described with respect to
Table 2). In some implementations, the performance measure may
comprise an error described as follows:
.epsilon.(t.sub.i)=|u.sup.P(t.sub.i-1)-u.sup.d(t.sub.i)|. (Eqn.
15)
In other words, the error may be determined based on (how well) the
prior predictor output matches the current teaching (e.g., target)
input. In one or more implementations, predictor error may comprise
a root-mean-square deviation (RMSD), coefficient of variation,
and/or other parameters.
[0270] As shown in FIG. 9, error diminishes as training progresses
(e.g., with increasing trial number. In some implementations, the
error may diminish through individual trials. The latter behavior
may be related to a greater degree of sustained sensory experience
by the predictor during learning responsive to consistent sensory
input.
[0271] Various implementations, of methodology for training of
robotic devices are now described. An exemplary training sequence
of adaptive controller apparatus (e.g., 200 of FIG. 2A) may be
expressed as follows:
[0272] During first trial at time T1: [0273] the control entity may
detect sensory input (e.g., 206, 216_1 in FIG. 2A) containing x1
and may generate output u1; [0274] the predictor may receive the
sensory input x1 (or a portion of thereof), and may be configured
to generate predicted control signal (e.g., u1.sup.P=0.degree.);
[0275] the combiner may produce the combined output u1=45.degree.;
this output may be provided to the predictor as the teaching
(target) signal at a subsequent time instance; and [0276] the plant
210 may begin to turn right in accordance with the combined control
signal (e.g., 220) u1=45.degree..
[0277] During another trial at time T2>T1: [0278] the control
entity may detect a sensory input (e.g., 206, 216_1 in FIG. 2A)
containing x1 and may generate output u2=45.degree.; [0279] the
predictor may receive the sensory input x1 (or a portion of
thereof), and the teaching (target) signal u1=45.degree. produced
by the combiner at a prior trial (e.g., T1); the predictor may be
configured to `mimic` the combined output u; the predictor may be
configured to generate predicted control signal (e.g.,
u2.sup.P=30.degree.) based on the sensory input, plant feedback
and/or the teaching signal; [0280] the combiner may produce the
combined output u2=75.degree. (e.g., in accordance with, for
example, Eqn. 7); and [0281] the plant 210 may increase the turn
rate with the control signal u2.
[0282] During another trial at time T3>T2: [0283] the control
entity may determine that the rate of turn is in excess of the
target turn of 45.degree., and may generate control signal
u3=0.degree.; [0284] the predictor may receive the sensory input x
(or a portion of thereof), and the teaching (target) signal
u2=75.degree. produced by the combiner at a prior trial (e.g., T2);
the predictor may be configured to generate predicted control
signal (e.g., u3P=50.degree.) based on the sensory input, plant
feedback and/or the teaching signal; [0285] the combiner may
produce the combined output u3=50.degree. (e.g., in accordance
with, for example, Eqn. 7); and [0286] the plant 210 may execute
the turn in accordance with the control signal u3.
[0287] Subsequently, at times T4, T5, TM>T2 the predictor output
to the combiner 234 may result in the control signal 220 to turn
the plant by 45.degree. and the control signal 208 may be reduced
to zero. In some implementations, the outcome of the above
operational sequence may be referred to as (gradual) transfer of
the control signal to the predictor output. When the predictor is
capable to producing the target output, the control signal (e.g.,
208 in FIGS. 2A-2B) may be withdrawn (removed). The output of the
combiner (e.g., 214, 234) may comprise the predictor output in
accordance with, for example, Eqn. 3.
[0288] In one or more implementations comprising spiking control
and/or predictor signals (e.g., 208, 218, 248, 220, 240 in FIG.
2A-2B), the withdrawal of the control signal may correspond to the
controller 208 generating spike output at a base (background) rate.
By way of illustration, spike output at a (background) rate of 2 Hz
may correspond to `maintain course` control signal; output above 2
Hz may indicate a turn command. The turn rate may be encoded as
spike rate, number of spikes, and/or spike latency in various
implementations. In some implementations, zero signal (e.g.,
control signal 208, predicted control signal 218, and/or combiner
output 220) may comprise a pre-defined signal, a constant (e.g., a
dc offset or a bias), spiking activity at a mean-firing rate,
and/or other zero signal.
[0289] FIGS. 10A-10C illustrate methods of training an adaptive
apparatus of the disclosure in accordance with one or more
implementations. The operations of methods 1000, 1020, 1040
presented below are intended to be illustrative. In some
implementations, methods 1000, 1020, 1040 may be accomplished with
one or more additional operations not described, and/or without one
or more of the operations discussed. Additionally, the order in
which the operations of methods 1000, 1020, 1040 are illustrated in
FIGS. 10A-10C described below is not intended to be limiting.
[0290] In some implementations, methods 1000, 1020, 1040 may be
implemented in one or more processing devices (e.g., a digital
processor, an analog processor, a digital circuit designed to
process information, an analog circuit designed to process
information, a state machine, and/or other mechanisms for
electronically processing information and/or execute computer
program modules). The one or more processing devices may include
one or more devices executing some or all of the operations of
methods 1000, 1020, 1040 in response to instructions stored
electronically on an electronic storage medium. The one or more
processing devices may include one or more devices configured
through hardware, firmware, and/or software to be specifically
designed for execution of one or more of the operations of methods
1000, 1020, 1040.
[0291] At operation 1002 of method 1000, illustrated in FIG. 10A
sensory context may be determined. In some implementations, the
context may comprise on or more aspects of sensory input (e.g.,
206) and/or plant feedback (216 in FIG. 2A). In one or more
implementations, the sensory aspects may include an object being
detected in the input, a location of the object, an object
characteristic (color/shape), a sequence of movements (e.g., a
turn), a characteristic of an environment (e.g., an apparent motion
of a wall and/or other surroundings, turning a turn, approach,
and/or other environmental characteristics) responsive to the
movement. In some implementations, the sensory input may be
received based on performing one or more training trials (e.g., as
the trials described with respect to Table 3-Table 5 above) of a
robotic apparatus.
[0292] At operation 1004, an input may be received from a trainer.
In some implementations, the input may comprise a control command
(e.g., rotate right/left wheel and/or other command) configured
based on the sensory context (e.g., appearance of a target in field
of view of the robot's camera, and/or other sensory context) and
provided by a human user. In one or more implementations, the
teacher input signal may comprise an action indications (e.g.,
proceed straight towards the target) provided by a computerized
agent.
[0293] At operation 1006, the input and the context may be
analyzed. In one or more implementations, the analyses of operation
1006 may comprise generation of a predicted control signal (e.g.,
218 of FIG. 2A) may be based on the context (e.g., sensory input
206, plant feedback 216, and/or other context) and the control
signal 208. The control signal may correspond to an output (e.g.,
208) of controller. In some implementations, the predictor output
may be based on an association between prior occurrences of (i)
sensory context; (ii) teaching input; and/or state of Q the
predictor learning process. The predicted output may comprise a
motor control command (e.g., turn wheels by 9.degree.). Operation
1006 may be executed as a part of a training trial (e.g., the trial
624 of FIG. 6B).
[0294] At operation 1008 of method 1000, an action may be executed
in accordance with the input and the context. In one or more
implementations, the action execution may be based on a combined
control signal, e.g., the signal 240 generated by the combiner 214
in accordance with any of the methodologies described herein (e.g.,
using the transfer function of Eqn. 6).
[0295] At operation 1010 of method 1000, controller learning
process may be updated based on a performance measure associated
with executing the action at operation 1008. In one or more
implementations, the performance may be determined based on a
deviation between the target trajectory (e.g., 630 in FIG. 6B) and
the actual trajectory accomplished during execution of the action
at operation 1008. In one or more implementations, the performance
may be determined based on an error measure of Eqn. 15. A control
process update may comprise adaptation of weights of a computerized
neuron network configured to implement the learning process. In
some implementations, the learning process update may comprise an
update of a look-up table.
[0296] FIG. 10B illustrates a method of training an adaptive
robotic device, in accordance with one or more implementations. In
some implementations, the training process illustrated in FIG. 10B
may comprise a plurality of trials wherein during a given trial,
the adaptive robotic device may attempt to follow a target
trajectory.
[0297] At operation 1022 of method 1020 robot may perform a target
action based on user input and characteristic of robot environment.
In some implementations, the environment characteristic may
comprise a relative positioning of the robot (e.g., 622, in FIG.
6B) and a target (e.g., 642, in FIG. 6B). The target action may
comprise following a target trajectory (e.g., 630 in FIG. 6B). In
one or more implementations, a human trainer may utilizer a control
interface (e.g., joystick) in order to guide the robot along the
trajectory. In some implementations, operation 1022 may correspond
to initial training trial (e.g., 620 of FIG. 6B).
[0298] At operation 1024, learning process of the robotic device
may be adjusted based on the action and the characteristic. In one
or more implementations, the adjustment may be based on a
performance measure configured, e.g., based on a deviation between
the target trajectory (e.g., 630 in FIG. 6B) and the actual
trajectory accomplished during execution of the action at operation
1022. A control process update may comprise adaptation of weights
of a computerized neuron network configured to implement the
learning process. In some implementations, the learning process
update may comprise an update of a look-up table
[0299] At operation 1026, a control signal may be generated by the
robotic apparatus based on the characteristic and the updated
learning process. In one or more implementations, the control
signal may be generated by the adaptive predictor (e.g., 222 of
FIG. 2A).
[0300] At operation 1028 of method 1020, the robot may perform an
action based on the control signal and user input. In some
implementations, the user input may comprise a control command
(e.g., rotate right/left wheel) configured based on the sensory
context (e.g., appearance of a target in field of view of the
robot's camera) and provided by a human user. In one or more
implementations, the teacher input signal may comprise an action
indications (e.g., proceed straight towards the target) provided by
a computerized agent.
[0301] At operation 1030 of method 1020, performance measure may be
determined. In some implementations, the performance determination
may be based on a deviation measure between the target action and
the executed action. In one or more implementations, the
performance may be determined based on an error measure of Eqn. 15.
In some implementations, operation 1024, 1026, 1028, 1030 may
correspond to one or more training trial (e.g., 624, 626, 628 of
FIG. 6B).
[0302] At operation 1032, a determination may be made as to whether
additional trials are to be performed. Responsive to a
determination that additional trials are to be performed, the
method 1020 may proceed to operation 1024.
[0303] FIG. 10C illustrates a method of collaborative learning, in
accordance with one or more implementations. In some
implementations, the collaborative learning process illustrated in
FIG. 10C may comprise a plurality of trial, wherein during a given
trial the adaptive robotic device may attempt to follow a target
trajectory; the operation of the adoptive robotic device may be
guided by a teacher so as to effectuate trajectory navigation
wherein both the robot controller and the teacher contribute (in a
non-trivial manner) to the control output being provided to the
plant.
[0304] At operation 1042 of method 1040 a target trajectory
execution may be demonstrated to the robotic device. In one or more
implementations, the demonstration may comprise a human user
guiding the robot via a remote control and/or by hand. In some
implementations, operation 1042 may correspond to the initial
training trial (e.g., 620 in FIG. 6B).
[0305] At operation 1044, the action may be executed based on a
collaboration between the robot and the user. In one or more
implementations, the collaboration may be based on a combiner
(e.g., 214) configured to combine user control signal with the
predicted control signal.
[0306] At operation 1046 of method 1040, performance measure may be
determined. In some implementations, the performance determination
may be based on a deviation measure between the target action and
the executed action. In one or more implementations, the
performance may be determined based on an error measure of Eqn. 15.
In some implementations, operation 1024, 1026, 1028, 1030 may
correspond to one or more training trial (e.g., 624, 626, 628 of
FIG. 6B).
[0307] At operation 1048 a determination may be made as to whether
performance at operation 1044 has improved compared to the
performance at achieved at operation 1042 (the target
trajectory).
[0308] Responsive to the determination at operation 1048 that the
performance has not improved, the user control input may be
maintained and/or increased at operation 1050.
[0309] Responsive to the determination at operation 1048 that the
performance has improved, the user control input may be reduced at
operation 1052.
[0310] At operation 1054, a determination may be made as to whether
additional trials are to be performed. Responsive to a
determination that additional trials are to be performed, the
method 1020 may proceed to operation 1044.
[0311] FIG. 11 illustrates a mobile robotic apparatus that may
comprise an adaptive controller (e.g., the controller for FIG. 2A).
The robotic apparatus 1160 may comprise a camera 1166. The camera
1166 may be characterized by a field of view 1168. The camera 1166
may provide information associated with objects within the field of
view. In some implementations, the camera 1166 may provide frames
of pixels conveying luminance, refreshed at 25 Hz frame rate.
[0312] One or more objects (e.g., an obstacle 1174, a target 1176,
and/or other objects) may be present in the camera field of view.
The motion of the objects may result in a displacement of pixels
representing the objects within successive frames, such as
described in co-owned U.S. patent application Ser. No. 13/689,717,
entitled "APPARATUS AND METHODS FOR OBJECT DETECTION VIA OPTICAL
FLOW CANCELLATION", filed Nov. 29, 2012, now issued as U.S. Pat.
No. 9,193,075 on Nov. 24, 2015, incorporated supra.
[0313] When the robotic apparatus 1160 is in motion, such as shown
by arrow 1164 in FIG. 11, the optical flow estimated from the image
data may comprise the self-motion component and the object motion
component. By way of a non-limiting example, the optical flow
measured by the rover of FIG. 11B may comprise one or more of (i)
self-motion components of the stationary object 1178 and the
boundary (e.g., the component 1172 associated with the floor
boundary); (ii) component 1180 associated with the moving objects
116 that comprises a superposition of the optical flow components
due to the object displacement and displacement of the robotic
apparatus, and/or other components. In one or more implementation,
the robotic apparatus 1160 may be trained to avoid obstacles (e.g.,
1174) and/or approach targets (e.g., 1176) using collaborative
learning methodology of, e.g., FIG. 6B
[0314] Various exemplary computerized apparatus may be utilized
with the robotic training methodology of the disclosure. In some
implementations, the robotic apparatus may comprise one or more
processors configured to execute the adaptation methodology
described herein. In some implementations, an external processing
entity (e.g., a cloud service, computer station and/or cluster) may
be utilized in order to perform computations during training of the
robot (e.g., operations of methods 1000, 1020, 1040).
[0315] Robot training methodology described herein may
advantageously enable training of robotic controllers. In some
implementations, training of the robot may be based on a
collaborative training approach wherein the robot and the user
collaborate on performing a task. Initially, a user may guide
(demonstrate) to a robot the target task.
[0316] The collaborative training approach described herein may
advantageously enable users to train robots characterized by
complex dynamics wherein description of the dynamic processes of
the robotic platform and/or environment may not be attainable with
precision that is adequate to achieve the target task (e.g., arrive
to a target within given time). The collaborative training approach
may enable training of robots in changing environment (e.g., train
vacuum cleaner robot to avoid displaced and/or newly placed objects
while cleaning newly vacant areas).
[0317] The methodology described herein may enable users without
robotic experience (e.g., children) to train robotic devices
through repetition and/or demonstration. Users who may be training
experts (e.g., working with dogs, horses) may apply their training
knowledge via the collaborative training of robotic devices.
[0318] In one or more implementations, training methodology
described herein may be applied to robots learning their own
kinematics and/or dynamics (e.g., by the robot learning how to move
its platform). Adaptive controller of the robot may be configured
to monitor the discrepancy and once one or more movements in a
given region of the working space are learned, the controller may
attempt to learn other movements and/or complex movements that may
be composed of a sequence of previously learned movements. In some
implementations, the controller may be configured to learn
consequences robot actions on the world: e.g. the robot pushes an
object and the controller learns to predict the consequences (e.g.,
if the push too weak nothing may happen (due to friction); if the
push is stronger, the object may start moving with an acceleration
being a function of the push force)
[0319] In some implementations, the controller may be configured to
learn associations between observed two or more sensory inputs. In
one or more safety applications, the controller may be configured
to observe action of other robots that may result in states that
may be deemed dangerous (e.g., result in the robot being toppled
over) and/or safe. Such approaches may be utilized in robots
learning to move their body and/or learning to move or manipulate
other objects.
[0320] It will be recognized that while certain aspects of the
disclosure are described in terms of a specific sequence of steps
of a method, these descriptions are only illustrative of the
broader methods of the invention, and may be modified as required
by the particular application. Certain steps may be rendered
unnecessary or optional under certain circumstances. Additionally,
certain steps or functionality may be added to the disclosed
implementations, or the order of performance of two or more steps
permuted. All such variations are considered to be encompassed
within the disclosure disclosed and claimed herein.
[0321] While the above detailed description has shown, described,
and pointed out novel features of the disclosure as applied to
various implementations, it will be understood that various
omissions, substitutions, and changes in the form and details of
the device or process illustrated may be made by those skilled in
the art without departing from the disclosure. The foregoing
description is of the best mode presently contemplated of carrying
out the invention. This description is in no way meant to be
limiting, but rather should be taken as illustrative of the general
principles of the invention. The scope of the disclosure should be
determined with reference to the claims.
* * * * *