Creative Coding and Software Design 3: Machine Learning

Fall 2018

Instructor - Grigore Burloiu / moc.liamg|uiolrubg#moc.liamg|uiolrubg

Credits - 6 ECTS

Course Prerequisites

This class builds on the creative coding foundation acquired in the first year. Previous experience with machine learning is a plus, but not required.

Course Objectives

Students in this course will:

  • obtain an intuition of machine learning models and techniques for advanced interaction and control
  • create complex real-time interaction schemas for mixed-media art projects
  • master domain-specific programming tools
  • gain fundamental and applied knowledge of machine learning theory and technique

Course Structure

This course will be comprised of 7vweekly classes, 1 final project proposal, and 1 final project. Additionally, there will be small weekly homework assignments, which we will go over and build upon in class. Homework assignments will often be supplemented by reading unless otherwise noted.

The grading breakdown is as follows:

  • Class attendance and participation (25%).
  • Weekly homework studies (15%): to be published on Github by the due date.
  • Final project proposal (10%): to be presented to class and approved.
  • Final project (50%): each project is individual, and can be any application showing creative skills and design clarity, as approved based on your proposal.

Code

All code prepared for the class is available here.
To keep up to date you have two options:
A) Visit the link and clone the repo to your desktop.
B) Fork the repo to your own account. Then, to sync to the latest state of the master repo, follow the instructions for bash/terminal or in-browser.

Readings

  • The Mechanics of Machine Learning, by Terence Parr & Jeremy Howard Link.
  • Machine learning for audio, image and video analysis, by Alessandro Vinciarelli & Francesco Camastra.
  • Introduction to Machine Learning with Python, by Andreas C. Müller & Sarah Guido.
  • Introduction to Machine Learning, by Ethem Alpaydin.
  • Online:

http://ml4a.github.io/
https://www.kadenze.com/courses/machine-learning-for-musicians-and-artists-iv
https://www.kadenze.com/programs/generative-art-and-computational-creativity
http://course.fast.ai/ml.html


Class Schedule

This schedule is subject to change depending on the interests and pace of the class, etc.

Week 1 (11.10): Introduction to ML. Interactive machine learning basics.

  • Slides
  • Assignment (due before following class): Download and explore Wekinator.

Week 2 (18.10): Classification. Decision trees and k-nearest neighbours. Classification-based control schemas.

  • Slides
  • Assignment (due before Week 4): Classification examples.

Week 3 (1.11): Classification. Probabilistic models. The perceptron.

  • Assignment (due before following class): Rough Wekinator prototype.

Week 4 (29.11): Regression. Linear and polynomial. Neural networks.

Week 5 (13.12): ML in Max and in Python. Semester project brainstorming/discussion.

  • Slides
  • Assignment (due before following class): Prepare semester project proposal.

Week 6 (20.12): Project proposal presentations. Prototyping.

Week 7 (9.01): More neural networks. ml5.js

  • Slides
  • Assignment: Project work.

Week 8 (17.01): Final project discussions.

Final (6.02): Final Project Presentations.
The complete source code is due by Monday 5 Feb @ 23h59, on your Github repo. Projects will be graded on:

  • completion of the task proposed in Week 6 (and amended up to Week 8)
  • clarity of style (incl. appropriate indentation, comments etc)
  • elegance of design (well chosen ML model and data, logical program structure, good modularity etc)
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License