Solving engineering problems with neuro-inspired computation

Solving engineering problems with neuro-inspired computation#

A course on neuro-inspired computation for every-day problems with a focus on perception, reasoning, and actuation.

Course description#

We present neuromorphic engineering as a novel approach to computational systems that draw inspiration from nervous systems to process information in space and time. We wish to arm students with the theoretical background necessary to intuit about spatio-temporal computation in neurons, but immediately apply that insight in practice. Concretely, we discuss computational models and learning in decentralized and parallel neural systems, present state-of-the-art neuromorphic software and hardware platforms, and introduce neuromorphic sensors and robots.

Learning outcomes#

After completing the course, the student should be able to

  • Describe computational models for leaky integrators and leaky integrate-and-fire neurons, as well as ways to represent and encode information with biophysical models.

  • Account for adaptation and learning in neuromorphic neural networks, including supervised optimization using surrogate gradients and unsupervised methods, including e-prop and EventProp.

  • Understand address-event representations and account for the operating principles of event-based cameras and actuators.

  • Write and execute neuromorphic algorithms on dedicated neuromorphic hardware.

  • Quantitatively and qualitatively analyze neuromorphic algorithms and account for differences between neuromorphic and non-neuromorphic algorithms.

  • Solve sensor processing and sensorimotor problems with neuromorphic neural networks.

Course disposition#

The course provides you with hands-on introductions to neuromorphic technologies: we will provide theoretical content that you will immediately learn to apply. Below, we list the 6 different modules in the course. Each of them will provide you with theoretical content while introducing you to specific tools or platforms with which you can use your new-found insights.

  1. Computing with neurons

    • Introduces you to neurons and how they operate from a computational perspective.

  2. Learning in neural systems

    • Discusses various ways to alter neural systems with either global or local optimization

  3. Event-based sensing

    • Presents ways in which information can be represented in discrete events and teaches you to operate physical event-based sensors.

  4. Neuromorphic hardware

    • Treats the difference between conventional computers and neuromorphic computers and lets you run programs on neuromorphic computing hardware.

  5. Neuromorphic robots

    • Shows how information from neural systems can be decoded in meaningful ways to control actuators and entire robots.

  6. Course project

    • Lets you build a fully neuromorphic robotic system that senses, computes, and acts using neuromorphic principles.

Prerequisites#

We recommend backgrounds in the following topics

  • Linear algebra (SF1604 or similar)

  • Machine learning (DD2421 or similar)

  • Artificial Neural Networks (DD2437 or similar, or self-study to compensate)