Explained In A Minute - Explained
22.02.2018 - Samuel Arzt
This post tells the story of how my YouTube series of short explainer videos, Explained In A Minute, came to be and what I am planning to do with it in the future. It explains the details of what I am trying to achieve with these videos and which software I am using to create them.
How it all started
A couple of months ago, one of my videos surprisingly blew up. The video was a 3 minute clip of one of my projects, where simulated 2D "cars" learn to maneuver a course by themselves. Basically, they start out very dumb but continuously learn to get better at avoiding walls. While this is extraordinarily satisfying to watch, I did not expect this amount of attention when I uploaded the video (though the clickbaity title might have helped *cough*). The project was done in Unity, using a Genetic Algorithm to train a feedforward Neural Network.
At that time, there was one thing I found particularly interesting. While there was huge interest in the general topic of Machine Learning and Neural Networks, most people commenting on my video seemed to be very intimidated by what they had previously heard or read about this field. There seemed to be a general consensus that Machine Learning and Neural Networks were something only PhD students in mathematics and computer science could grasp. Even some of my colleagues at university seemed to be too intimidated to start pursuing their genuine interest in the field.
But to be honest, I kind of understood how this came to be. When I started learning about Neural Networks I always thought that the explanations I read in papers and books were over-complicating things. The underlying principles are actually quite simple, but the mathematical formulas and domain-specific terms required the reader to either be native to the field or to start up a new web-search every other sentence. Altogether not very pleasant to read, nor easy to understand.
When I saw all these enthusiastic young students being too intimidated to pursue their interest, I thought this was a huge waste of potential. That's when I decided to take this into my own hands. And suddenly I heard a bell ring in my head (literally).
What it is all about
I wanted to explain seemingly complicated technical subjects in a simple, straight-forward manner. The target audience of this format should not require any significant prior knowledge, they should not even have to know how to code a single line.
I decided that the best way to do this was to start a series of short, animated explainer videos. The voice-over obviously needed to be English, to be able to reach as big of an audience as possible. In order to remain true to my basic objectives, I also set myself the limit of a single minute. Not only was this going to serve the ever shrinking attention-span of our society, but it would also force me to keep things simple. If a topic was too complicated to be explained in a minute, it should be broken up into multiple sub-topics and people could simply watch a playlist. At this point, I already had the intro jingle in my head: three subtle clock-ticks, ending with a cliché *ding* sound. The clock should then be visible throughout the whole video.
How it was done
Now I only had to figure out how to properly animate and edit the video / audio. I limited myself to open-source software for now. Audio was easy: I had a gaming-headset with a somewhat decent microphone and I was already familiar with Audacity, an absolutely amazing, open-source audio-editing-tool. Even though due to the microphone the audio sounds like it was recorded with a potato, I was ok with the outcome.
The whole animation and video-editing part was a bit more difficult: After a frustratingly long search for a good open-source 2D animation tool, I ended up with a tool called Synfig Studio . Synfig has this weird business concept of giving away their software for free, but requesting money for tutorials on how to use it (quite dangerous in my opinion, but on the other hand... what do I know about business). Anyhow, after some initial testing, I was confident that this could work. Since the video entirely consisted of the animation, there was not much video-editing to be done and I decided to stick to my console using ffmpeg for now. This enabled me to produce extremely smooth 60 fps animations. For some reason it was hugely satisfying to create crispy clear video that only used lossless compression (of course YouTube later destroys all of this satisfying crispness by using their own video compression on uploaded videos).
Unfortunately creating the animation didn't go as planned. I was fine with occasional bugs of Synfig, which obviously originated from the Software being in its early stages, however after about 2 "scenes" of the animation, the tool accumulated an enormous amount of lag. In the end I basically edited everything frame by frame, mainly because the software was only able to render one frame every two seconds (in preview-mode). You have to keep in mind that we are still talking about a one minute animation here.
It is very likely that Synfig has come a long way since then, and I will give it another try for my next video. But the production process of my first video was not particularly efficient, to say the least (maybe I should have paid for those tutorials after all).
After about one or two months of late-night work I had completed the first part of the series - Explained In A Minute: Neural Networks :
I am very happy with the reactions and the amount of views I have received from it. The pilot episode worked, so the logical consequence is to now create more parts.
My plan for this series is to keep releasing videos of this type, explaining other seemingly complicated topics, such as Machine Learning, Backpropagation, ConvNets, RNNs, the C# / .NET compilation process, Q-Learning... the list is long. Unfortunately, the animations and research take quite a while, especially since this is still only a personal side project of mine.
Another reason why I started blogging is that sometimes specific details can't fit into these one-minute videos, mainly due to their time-limit. So I have decided to release accompanying blogposts to each video, which include exactly those details. The goal is to still keep those posts short (shorter than this post), but they enable me to add additional information for those interested in digging deeper into the topic.
With all this being said, I am also planning on releasing the corresponding blogpost to Explained In A Minute: Neural Networks next week. So keep an eye on my twitter for more!