The destructive starting phase

Every beginning is difficult. I always feel the implications of this sentence when I want to understand something completely new. This something can be a mathematical concept or a piece of code (software or hardware) written by someone else or my former self.

At the beginning you have to de-construct the work of the other person. What they have built with their creativity, you have to persistently un-build with your intelligence to understand their creative process if you later want to be creative with what they’ve done.

That’s a fundamental problem with human creativity (in certain disciplines?) that you have to go through the process that others have already gone through in order to augment their achievements. Unfortunately, you cannot just continue working with the knowledge of the other person that has been there before. There is no magical transfer of state of mind. All you can do is absorb what they’ve done and get into another, similar state of mind that allows you to reproduce and the surpass their results.

And sometimes that just feels hard. But it feels even harder if you allow yourself or other people to put time pressure on your project. This process is never fast and predictable and you never know how long it will take you to understand the creation of other people.

Advertisements

Reinforcement learning I – Temporal difference learning

Motivation

After I’ve started working with reward-modulated STDP in spiking neural networks, I got curious about the background of research on which it was based. This led me to the book by Richard Sutton and Andrew Barto called “Reinforcement Learning”.  The book is from 1998 and it’s freely readable on the internet! In the book’s Introduction they cover the example of an agent learning to beat a given (imperfect) agent in the game of Tic Tac Toe. Two remarks have to be made: 1. The agent has to be imperfect because a perfect agent in Tic Tac Toe (if it’s the one doing the first move) can never be beaten. 2. The agent does not learn to play Tic Tac Toe, this skill is assumed, but it learns a value map for its policy.

Since I liked the example and wanted to try it out myself, I decided to write this blog post about it. By the way, the code can be found on github (run ttt_new.py). Continue reading

Reed-Solomon Codes

While trying to understand QR codes, I came across many explanations of Reed-Solomon codes. These codes are used to encode the data in a QR code and make it more robust against wrong pixels. In particular, they allow for recovery of a certain amount of errors. The best intro to Reed-Solomon codes I found so far is this one.

Making a mess is part of being creative

Opposite to the Telegraph headline Having a messy desk makes you ‘more creative’, a messy desk does probably not make you more creative, but creative people produce more mess. Or, in other words, making a mess is definitely a part of the creative process.

What do I mean by that: If you want to be creative you will first have to play around with the tools you have at hand. And during this process it is important to just try something without thinking too much about the ultimate goal. Part of the process is just to do something, see what happens and then start over, until eventually, you arrive at something you like.

The part of making a mess might involve writing down fragments of sentences onto a sheet of paper or typing it into a text editor. It might also involve drawing all sorts of funny ideas onto many sheets of paper, or even drawing the same thing over and over again while refining it in the process. Or, when writing software, it involves creating many different versions of the same software while refining the structure of the code.

Of course, at some point you might end up having to prepare a final version that you want to deploy. This is then the least pleasant part, it’s the part when you need to file through all the ideas that you’ve produced and pick the gems out of the dusty ruins. At this point you need to be able to remember what you did and where you roughly did that.

I think Christoph Niemann summarized this process quite nicely in Abstract: The Art of Design: You want to „be a much more ruthless editor and at the same time be a much more careless artist.“ He also summarized this process nicely in this article for the New Yorker.

Thus, you want to iterate between being a careless and  almost child-like artist and on the other hand being a ruthless editor that drives the iterative process into the right direction.

My favourite quotes by Isaac Newton

  1. If I have ever made any valuable discoveries, it has been owing more to patient attention, than to any other talent.

    Found via https://terrytao.wordpress.com/career-advice/be-patient/

  2. If I have seen further it is by standing on the shoulders of giants.

  3. I do not know what I may appear to the world, but to myself I seem to have been only like a boy playing on the sea-shore, and diverting myself in now and then finding a smoother pebble or a prettier shell than ordinary, whilst the great ocean of truth lay all undiscovered before me.