In this blog I will gather the insights I make while diving into the concepts of machine learning.
The reason I write is two-fold. To a great extent it is a means for me to learn things better. Trying to explain it all in an accessible way will surely deepen my own understanding.
Secondly, when I set out to catch up on machine learning I surely found tons of material/information but I also found it peculiarly hard to get some knowledge out of it all (symptomatic for our time). I ended up with a quite hard puzzle to make where the pieces of information I had gathered were hard to match and some of them even felt contradictory.
I think the reasons for this are:
- A lot of the sources describe how to do something without explaining why. Others, more theoretical sources, focus on the why but leave out the how to do it in practise (i.e. in code). Only a very few hit the sweetspot between why and how and covers it all in accessible terms.
- Even the basic concepts of machine learning are quite hard to immediately grasp/digest. When writers fail to acknowledge that the outcome often is not sufficiently accessible. Unfortunately this is quite often the case. Worst kind is the articles where the writers in bold words claim that this is an easy topic (I think it’s not) while still presenting it either incorrectly or full of mistakes. The only thing worse than no information is wrong information claiming to be right.
- Some articles and online examples are heavily dependent on frameworks (Keras, TensorFlow, Numpy, PyTorch, DeepLearning4j etc.). All of these are no doubt fine frameworks and using those are of course the way forward for anyone being interested in applied machine learning. However, when trying to learn the basic concepts these framework actually hide the inner workings. You are faced with the task to configure something having tons of parameters which at that point has no meaning to you. Also the framework required some knowledge of the framework itself – i.e. cognitive noise when trying to learn how the underlaying theories works.
- Finally I have come to understand that Maching Learning really requires a mix of competencies and knowledge from different domains: Linear Algebra, Vector- & Multivariate calculus, Probability Theory & Statistics, Programming, Computation & Complexity analysis, Optimization etc. I think this mash-up can be seen when reading articles. The authors area of expertise shines through and the nomenclature from his/her domain is used. This way the same actual underlaying concepts are described in many different ways and flavours … adding to confusing for anyone trying to learn this.
So will this blog be different in anyway?
I hope so. I think so. I am writing the articles I would like to have found myself. They are written in a way that is on par with own my way of learning things. Hopefully it is on par with yours too.