Adaptive Systems

Course Aim

This course aims to provide common mathematical frameworks for adaptation at different scales and to link them with biological reality.

Course Description

Explore common mathematical frameworks for adaptation at different scales and link them with biological reality. The course is in a "flipped learning" style; each week, students read a book chapter and experiment with sample codes before the class.
In the first class of the week, they present what they have learned and raise questions.
In the second class of the week, they 1) present a paper in the reference list, 2) solve exercise problem(s), 3) make a new exercise problem and solve it, or 4) propose revisions in the chapter.
Toward the end of the course, students work on individual or group projects by picking any of the methods introduced in the course and apply that to a problem of their interest.

Course Contents

1. Introduction
2. Computing Neurons
3. Supervised Learning
4. Reinforcement Learning
5. Unsupervised Learning
6. Bayesian Approaches
7. Deep Learning
8. Multiple Agents
9. Learning to Learn
10. Project Presentation


Midterm Reports 60% (2 x 30%), Final Exam 40%.

Prerequisites or Prior Knowledge

Assumes good knowledge of Python, statistics, and an ability to look at biological problems in a mathematical way.

OIST courses to complete beforehand: B31 Statistical Tests and/or B32 Statistical Modeling


Rich Sutton & Andy Barto (2018) Reinforcement Learning: An Introduction, 2nd edition. MIT Press (
Ian Goodfellow, Yoshua Bengio & Aaron Courville (2016) Deep Learning. MIT Press (

Reference Books

Kenji Doya (in preparation) Brain Computation: A Hands-on Guidebook. (
Chris Bishop (2006) Pattern Recognition and Machine Learning. Springer
Jörgen Weibull (1995) Evolutionary Game Theory. MIT Press.
Python Scientific Lecture Notes (