0% found this document useful (0 votes)
48 views76 pages

Neuromorphic Computing

The document discusses neuromorphic computing, including what it is, why it is confusing, and challenges in building brain-like computers. A neuromorphic computer is a machine that mimics neural systems using simple processors and memory structures communicating with messages like spikes. While promising, building brain-like computers presents many technological and conceptual challenges.

Uploaded by

coders3333
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
48 views76 pages

Neuromorphic Computing

The document discusses neuromorphic computing, including what it is, why it is confusing, and challenges in building brain-like computers. A neuromorphic computer is a machine that mimics neural systems using simple processors and memory structures communicating with messages like spikes. While promising, building brain-like computers presents many technological and conceptual challenges.

Uploaded by

coders3333
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 76

Introduction to Neuromorphic Computing

Insights and Challenges

Todd Hylton
Brain Corporation
[email protected]

Outline

• What is a neuromorphic computer?


• Why is neuromorphic computing confusing?
• What about building a brain?
• Todd’s Top 10 list of challenges

• Alternative ways of thinking about a building a brain


• Closing thoughts

What is a Neuromorphic Computer?


What is a Neuromorphic Computer?

• A neuromorphic computer is a machine comprising many simple processors /


memory structures (e.g. neurons and synapses) communicating using simple
messages (e.g. spikes).
• Neuromorphic algorithms emphasize the temporal interaction among the
processing and the memory.
• Every message has a time stamp (explicit or implicit)
• Computation is often largely event-driven

• Neuromorphic computing systems excel at computing complex dynamics


using a small set of computational primitives (neurons, synapses, spikes).
I think of neuromorphic computers as a kind of “dynamical” computer in
which the algorithms create complex spatio-temporal dynamics on the
computing hardware
Neuromorphic Computing Hardware Architecture
SpiNNaker (“Spiking Neural Network Architecture”)
Router
Memory
Processor

5/15/2014 5
Steve Furber, “To Build a Brain” , IEEE Spectrum, August 2012

HRL Labs – Neuromorphic Architecture

S1

S4 N S2

S3

5/15/2014 6
Narayan Srinivasa and Jose M. Cruz-Albrecht, “Neuromorphic Adaptive Plastic
Scalable Electronics”, IEEE PULSE, JANUARY/FEBRUARY 2012

Messaging

• Spike
• Simplest possible temporal message
• Facilitates algorithms inspired by biological neural systems
• Supports time and rate based algorithms

• Information “packet”
• Generalization of spike time message
• A “spike” that carries additional information
• Facilitates other dynamical computing architectures using different primitives

• Routing of spikes / packets


• Messages can be packaged with an address and routed over a network (e.g.
IBM, SpiNNaker)

5/15/2014 7
• Messages can be delivered over a switching fabric (e.g. HRL)
• Networks can be multiscale – e.g. on core, on chip, off chip

5/15/2014 8
Key Technology Issues / Choices

• Distributing large amounts of memory (synapses) among many processors


(neurons) on a single chip.
• Off-chip memory burns power and taxes memory bandwidth

• DRAM needs large array sizes to be space efficient and does not integrate into most logic processes

• Back end memory technologies (e.g. memristors, PCM) are immature and not available in SOA
CMOS

• Developing a scalable messaging (spiking) architecture.


• Selection of computational primitives (e.g. neuron and synapse models)
• Engineering for scale, space and power efficiency
• Creating a large-scale simulation capability that accurately models the
neuromorphic hardware

5/15/2014 9
• Creating tools to develop and debug neural algorithms on the simulator and
the neuromorphic hardware
• Writing the algorithms (including those that learn)
SyNAPSE Program Plan
SyNAPSE – Miscellaneous Lessons Learned

• There are many, many ways to build a neuromorphic computer


• Although much can be leveraged from conventional computing technologies,
building a neuromorphic computer requires a large investment in
development tools
• Neuromorphic computers can be applied as “control” systems for agents (e.g.
robots) embedded in a dynamic environment.
• Neuromorphic algorithms can be replicated on a conventional computer, but
with much lower efficiency.
• Biological scale networks are not only possible, but inevitable.
• The technology issues are challenging but surmountable.
• The time scale for developing a new memory technology and integrating it
into SOA CMOS process is much longer than that needed to build a
neuromorphic computer.
• The biggest current challenge in neuromorphic computing is defining the
algorithms – i.e. the structure and dynamics of the network.
5/15/2014
10
Why is Neuromorphic Computing Confusing?
Basic neuromorphic / cognitive computing proposition

Build computers that learn and generalize in a broad variety of tasks,


much as human brains are able to do, in order to employ them in
applications that require (too much) human effort.

• This idea is at least 40 years old, yet we still don’t have these kinds
of computers.
• We have become disillusioned with these ideas in the past because
the proposition was not fulfilled (AI and neural net “winters”)
• The proposition is (very) popular again because
• Maturation of the computing industry
• The successful application of some machine learning techniques
• Interest and research on the brain
Neuromorphic / cognitive computing philosophy
Cognitive computing
views the brain as a
computer and thinking as the execution of
Cognition= Artificial
algorithms.
Artificial computing
Neural
Intelligence Memory= Networks
(Cognitive storage of (Connectionist
Computing) data and Computing)
algorithms
Thinking= algorithm:
algorithm: application of iterative
search algorithms to
error • Biological memory corresponds to a container
data
reduction holding data and algorithms. Learning fills the
container with input
-output rules defined on
discrete (AI) or continuous (ANN) variables.
• Algorithms create input
-output mappings using
rules or weights stored in memory.
• AI focuses on search algorithms to select
“production” rules.
• ANN focuses on iterative error reduction
algorithms to determine “weights” yielding the
desired input
-output relationships
.
• Algorithms are created by humans.
The Source of Confusion

The basic neuromorphic / cognitive computing proposition inappropriately


mixes ideas and expectations from biological brains and computing.
SyNAPSE Architectural Concept
Approved for Public Release, Distribution Unlimited
Getting it Straight

• A neuromorphic computer is another kind of repurposable computing


platform like a CPU, GPU, FPGA, etc.
• A neuromorphic computer will be more / less efficient than another
computing architecture depending on the algorithm
• A key question in designing a neuromorphic computer is understanding the structure
of the algorithms it will likely run

• Neuromorphic computers may be good choices for implementing some


machine learning algorithms, but these should not be confused with brains
• A neuromorphic computer is not a brain, although if we were ever to
figure out how to simulate a brain on a computer, a neuromorphic computer
would likely be an efficient option.

What about building a brain?


Reductionist approach

• Proposition: By understanding the component parts and functions of the


brain, we can build brain-like systems from an arrangement of similar
components.

• Approach: Study the brain as system of components and subsystems and


infer their relevance to overall brain function. Create a brain-like system by
mimicking the components and structure of the brain.
• Example: Create dynamical models of biological neurons and synapses and
configure them in a network inspired by brain anatomy. Implement these
ideas in software or hardware.
Reductionist conundrum

• What is the appropriate level of abstraction needed to build a brain?


• What components / functions of the brain correspond to its “computational
primitives”?

• How do I distinguish relevant from irrelevant features in a real brain?


• How do I deal with the interactions among the components?
• How does neuroanatomy correspond to the brain’s “architecture”?

• How do I deal with the interactions with a larger environment?


• Is there an algorithm of the brain that the components execute?
• Reductionism as a strategy to building a brain is equivalent to the basic
neuromorphic / cognitive computing proposition

Limits of reductionism

• Science shows repeatedly that understanding lower levels of organization


is insufficient to understand high levels. In general a new description is
required at each new level. For example
• Chemistry cannot be derived from physics
• Microbiology cannot be derived from chemistry
• Organisms cannot be derived from microbiology
• Ecosystems cannot be derived from organisms
• More is different - Phil Anderson

Why more is different

• The (typically massive) interaction / feedback that is characteristic of real


world systems eliminates the concept of an independent part or piece.
When “everything is connected to everything,” it becomes difficult to assign
an independent function (input-output relationship) to the components.
• Higher levels of organization evolve from their lower level components in
response to interaction with their environment. Higher level organization
depends strongly on influences external to the system of its components.
Todd’s Top 10 List of Challenges in Building a Brain
10. Neuroscience is too little help (tlh)

• We cannot possibly simulate all the detail of a biological brain


• We don’t understand the function of very simple nervous systems
• There are far, far too few “observables” to guide the development of any
model or technology
9. Computational Neural Models are tlh

• Too many assumptions


• Too many parameters
• No general organizing principle
• Models are (usually) incomprehensible
• Unclear connection to applications
8. Other things that are tlh

• Cortical column hypothesis


• Sparse distributed representations
• Spiking neural networks, STDP
• Hierarchies of simple and complex cells
• Insert your favorite ideas here
• Spatio-temporal, scale invariance
• Criticality, critical branching
• Causal entropic forcing

7. Whole System Requirement


• Brains are embodied and bodies are embedded in an environment (Edelman)
• Testing often requires embedding the neuromorphic computer in a complex
body /environment.
6. Whole System Interdependence

• Brains / bodies / environments are complex systems whose large scale


function (almost certainly) cannot be analytically expressed in terms of its
lower level structure / dynamics
• System design methodologies are inadequate because the system cannot be
decomposed into independent parts
5. No Easy Path for Technology Evolution

• The benchmark for performance comparison is either


• A human
• A well-engineered, domain-specific solution
4. Massive Computing Resources

• Any model that does anything that anyone will care about requires a massive
computational resource for development and implementation
• Development is slow and expensive
• Custom hardware in state of art process is needed for any large scale
application
• Software and hardware must co-evolve
• Cannot develop the algorithms first
• Cannot specify the hardware first

3. Competition for Resources

• It is easy for anyone who doesn’t like your project to claim that
• It is making no progress
• It is not competitive with the state of the art
• You are doing it wrong
• You are an idiot

• This happened to me regularly at DARPA


2. Computers can compute anything

• The computer is a blank slate


• We must generate all the constraints to build a neuromorphic computer
• Changing computing architecture only changes the classes of algorithms that
it computes efficiently
1. Brains are not Computers

• Brains are thermodynamical, bio/chemo/ physical systems that evolved


from and are embedded in the natural world
• Computers are symbolic processors executing algorithms designed by humans

• Brains designed computers.


• Can computers design brains?

Alternatives Ways of Thinking About Building a Brain


Perspective – What we need in order to build a brain
Practical Computation Practical Intelligence
(~1964), IBM 360

Computational Complexity Implementation Complexity


(~1956) Kolmogorov, Trakhtenbrot…

Physics is “missing”
• Thermodynamics
Time Electronics Technology • Locality
(New) Electronics Technology
(~1946) Eniac, Transistor…
• Causality

Theory of Computation Theory of Intelligence


(~1937) Turing, Markov, Von Neumann…

Boolean Logic / Functions Evolution, Complexity, Probability


Intelligence & ComputationComputation Intelligence
Life is Autotrophic

On hydrothermal vents, life is sustained by chemoautrophic bacteria, which derive


energy and materials from purely inorganic sources. These bacteria provide an efficient
means to consume energy through a chemical cascade that would otherwise not be
possible. At the ecosystem level, all life is autotrophic in that it is derived from inorganic
sources (and sunlight). In general, life provides a means to relieve chemical potential
“gradients” that could not otherwise be accessed (because of energetic activation
barriers).
Thermodynamically Evolved Structures
Conceptual Issues – Foundations of Computing

Complete System
• Observation - The Turing machine (and its
Turing Machine
many equivalents) is the foundational idea in “Head” w/ Fixed Rule Table
computation and has enabled decades of (Finite State Machine
)
success in computing, but
– The machine is an abstraction for symbol
manipulation that is disconnected from
the physical world.
– Humans provide contact with the “Tape” (Program & Data)
physical world via the creation and
evaluation of Algorithms

algorithms.
• Question – With such foundation, is it
reasonable to suppose that the machine can

Value, Creativity, Semantics & Context


understand, adapt and function in a complex, non-deterministic, evolving
problem or environment?

Hypothesis #1: Intelligence concerns the ability to create (useful) algorithms.


Evolution of Intelligence
physical biological psychological gnoseological sociological
energy evolution stimulus- cognition & cooperation &
response mind competition

Current Paradigm:
Cognitive Computing
• Brains are universal computers
• Algorithms determine behavior input output
• Memory = storage of data and algorithms
Where do algorithms come from?
• Thinking = application of algorithms to data
unphysical, static,
unscalable,
black-box efforts targeting the
highest levels of intelligence
• Intelligence computation
Today’s Approach
• Intelligence is algorithmic
Hypothesis #2: Intelligence is part of a pervasive evolutionary paradigm that applies to
the physical and biological world. The computational metaphor for intelligence is
inadequate. Intelligence is physical.
Thermodynamics of Open Systems
• S = Entropy
• S(t)  Smax
• dS/dt > 0
Isolated System
Open thermodynamic systems spontaneously evolve structure via entropy production
in the external environment.

Thermodynamic Evolution Paradigm


• Entities extract resources from their environment through evolutionary variation & selection.
• Entropy production rate selects for (Algorithmic) Structure / Memory among entropic variations.
• (Algorithmic) Structures / Memories constrain the variation repertoire in future selections.
• Entities are distinguished from their environment by their level of integration.
Example Evolving System
Neural systems qualitatively fit the thermodynamic evolution paradigm.
Structure Growth, Integration & Scaling
Structure Growth, Integration & Scaling
Computing in the Physical Intelligence Framework
Computers enhance our ability to extract energy and resources from the environment
by allowing us to evolve and use larger, faster and more complex algorithms.

Closing Thoughts
What has changed in 7 years

• End of semiconductor scaling clearly in sight


• Numerous large scale efforts in neuromorphic computing now exist
• Community has substantially grown
• Several example systems now exist

• Deep learning algorithms have matured and are being deployed


• BRAIN Initiative and Human Brain Project have been announced/started

Think “Algorithms” and not “Brains” when building a NC

Dynamical Algorithms
• Represent systems of coupled dynamical equations
• not just feedforward networks
• Interact in real-time in the real world (e.g. robotics)
• Tough to conceive, tough to “debug”

Typical Questions
• What are the plasticity/adaption rules? / What are the dynamical equations?
• What network should I build?
• What is the effect / interaction of the components with the system?
• What / how should I test it?
• How can I figure out what is wrong?
• How do I make it do something (that I want it to do)?

5/15/2014 47

What We Can Do
• Build new kinds of computers that are capable of efficiently executing new
classes of algorithms
• Build better machine learning algorithms
Recommendation

• Separate/classify effort into 2 domains


• Aspirational efforts focused on building a brain (the basic NC proposition)
• Practical efforts focused on building new, useful computers

• Avoid the temptation to straddle both domains


Backup
Digital or Analog?

• Communications
• Digital – no controversy

• Neurons
• Digital – computed dynamics, scales, reproducible, multiplexes, parameterizes •
Analog – intrinsic dynamics, low power

• Synapses
• Digital – computed dynamics, scales, reproducible, multiplexes, parameterizes
• Analog – intrinsic dynamics, low power

• State of the art CMOS technology and design practice generally favors digital
implementations
• Groups of highly multiplexed, digital neurons and synapses resemble small
processor cores with dedicated memory (like SpiNNaker)
• Mixed analog-digital solutions are also possible

5/15/2014 51

User Focused NC Proposition

• We will build a computer to enable (for example)


• computational neuroscientists to efficiently model large neural systems. • analysts to
more easily understand video

• Comment: This kind of proposition is a long way from an engineering


specification.
Algorithm Focused NC Proposition

• We will build a computer that efficiently computes certain (classes of)


machine learning algorithms

• Comment: This kind of proposition can lead to narrowly focused systems


(ASICs).
Architecture Focused NC Proposition

• We will build a computer featuring the following architectural concepts


(for example)
• SDR
• event-based execution, asynchronous communication
• highly distributed simple cores within a dense memory
• neural/synaptic/columnar computational primitives,
• criticality/homeostasis….

• Comments:
• Before any specification can be created, a description like this is required
• It isn’t obvious from such propositions what the computer will be good at / used
for.
The Evolution of NC Has Begun

USER STORIES

ALGORITHMS

ARCHTECTURES
IMPLEMENTATIONS

You might also like