Jehoshaphat I. Abu


100 Days Of ML Code — Day 022

100 Days Of ML Code — Day 022

Jehoshaphat I. Abu's photo
Jehoshaphat I. Abu
·Jul 31, 2018·

3 min read

Recap from Day 021

In day 021, we looked at using unsupervised learning to come up with new features. We looked at a simple scenario where you are working with a dancer and capturing the movement of the dancer with a Kinect.

Today, we will look at a topic that is located at the intersection of the fields of artificial intelligence, cognitive psychology, philosophy, and the arts. That topic is computational creativity.

What Is Computational Creativity?

According to Wikipedia, “Computational creativity is a multidisciplinary endeavour that is located at the intersection of the fields of artificial intelligence, cognitive psychology, philosophy and the arts.

The goal of computational creativity is to model, simulate or replicate creativity using a computer, to achieve one of several ends:

• To construct a program or computer capable of human-level creativity

• To better understand human creativity and to formulate an algorithmic perspective on creative behavior in humans

  • To design programs that can enhance human creativity without necessarily being creative themselves.

The field of computational creativity concerns itself with theoretical and practical issues in the study of creativity. Theoretical work on the nature and proper definition of creativity is performed in parallel with practical work on the implementation of systems that exhibit creativity, with one strand of work informing the other.” (See more Wikipedia)


“Computational creativity often applies artificial intelligence (AI) to create things that were imagined impossible for computers such as paintings, sculptures and written works of fiction.”

1. Keras Cheat Sheet: Neural Networks in Python

2. Making a Simple Neural Network

3. Google will beat Apple at its own game with superior AI

When talking about computational creativity, “I’m referring to works in which machine learning is used to make computer systems that are capable of autonomously generating new work of music or art.”


A typical example. You might start by using an unsupervised learning approach to analyze all the works of Beethoven or of Mozart or some other musician you really like, and then hope that it’ll discover fundamental patterns that characterize that music.

You might employ an algorithm like a Hidden Markov Model which is capable of modelling the way that sequences of notes are likely to unfold over time. By training such a model on music by one musician, you might hope to capture aspects of that musician’s unique style.

Hidden Markov Model- [Source]( Markov Model- Source

Hidden Markov Model and other probabilistic modelling techniques often have a really exciting property. Not only are they able to learn to fit probability distributions to training data, but once those distributions have been learned, you can sample from them. That is, this model are actually capable of generating new data.

You could use a probabilistic model of Beethoven or Mozart and use it to generate new sequence of notes that follow the rules or patterns learned from their music, or you might train such algorithm on your own work, and use it to generate new music or art in your own style.

That was a lot, right? You made it to the end of day 022. I hope you found this informative. Thank you for taking time out of your schedule and allowing me to be your guide on this journey.


* [Developing a practice with machine learning; Wrap-up | Kadenze Kadenze brings together educators, artists, and engineers from leading universities to provide world-class education in…*](

Share this