Machine learning for beginners

I wrote this phrase over and over again, since I had no idea how to start this off, really. Welcome to my website about learning machine learning. I think it’s best if I introduced myself first. My name is Christian, I was born in 1995 in the Netherlands and I have been interested in technology and its applications throughout my life.

Consequently, after high school, I started majoring in Business Information Technology. In my academic programme, we very often deal with applying the concept of machine learning to business problems. We learn to think how artificial intelligence in general and machine learning in particular can contribute to an organisation achieving better business results.

But that’s it. We never get our hands dirty. No code.

And for some reason, it feels that I cannot fully contribute to applying machine learning without knowing the techniques, so I decided to start learning machine learning myself.

I put it all together on this website so you can take the same steps as I did.

Take the developer approach – it’s more fun

My first approach was to take a look at some machine learning books in my university’s library. I also asked friends from Computer Science to send me their course materials – in the CS programme, there are basic and advanced machine learning courses.

But what instantly struck me was the viewpoint from which these courses were taught. It was all done from a very mathematical point of view. Online academic courses seem to do it in the same way.

OK, I get that machine learning is grounded in some complex mathematics, that mathematics is fun (at least, I think it is) and that you need to understand the maths before you can properly apply machine learning.

But it’s not the greatest of ways to start the learning process. I think it’s better to first get your hands dirty – get some concrete results first, improve and then learn why things are the way they are in terms of maths. And that’s where someone I spoke to said I had to focus on Tensorflow, Google’s software library for machine intelligence.

What is Tensorflow?

I somehow stumbled upon a video about what Tensorflow is:

And it instantly triggered a small warning signal in my head. The people in the video continuously speak about deep learning, and as far as my knowledge of the machine learning field goes here at the start, this is only a subset of everything that’s possible.

There is more than Tensorflow!

A long story short – Tensorflow is mostly about neural networks and then the really complex ones. Machine learning (with algorithms like support vector machines, random forests, Naïve Bayes, et cetera) is much more than neural networks alone.

So I abandoned my original idea of basing this website around machine learning development based on Tensorflow. Using Tensorflow is obviously going to happen, but it’s not going to be my starting point. In fact, I think I’ll use some of the academic approach in my blog after all.

(As you can imagine, learning machine learning takes a while. Therefore, this is still work in progress. Make sure to check back regularly to find out more!)

On this website, I’ll document in full the steps I took to learn machine learning. To document everything I’ve learnt because writing things down helps processing new things in one’s mind.

And with full, I mean in full, explaining even the basic things in layman’s terms.

Obviously, a beneficial side effect is that through these writings, learning machine learning becomes accessible to everyone. Which is hopefully a good thing 🙂

And it’s all open. I’ve had to rely on many open references in order to learn machine learning and I would like to honour them by providing my knowledge in an open way. The content is available under a CC BY-SA 4.0 license. The only money I earn from this website is through advertisements you’ll see every now and then. Like application of machine learning algorithms, I’ll try to show them as hidden as possible, so they don’t bother you. Thanks for your understanding!

Machine learning table of contents

We will have to start at a very high level overview of machine learning. This is what I will cover on this website (and there’s obviously more to add in later stages):

  1. The differences between artificial intelligence, machine learning & more discusses my view on the overlap and differences of fields closely related to machine learning.
  2. The chronology of machine learning discusses how the field of machine learning has emerged. It helps both you and me put the current state of the art within the field into the larger context of machine learning.
  3. Machine learning, an overview discusses the various types of machine learning out there. You will see that there are multiple ways for classifying a machine learning algorithm. Some people classify them by the degree to which output is known. You then end up with terms like ‘supervised learning’ and ‘unsupervised learning’. Other people classify them by the method, i.e. the technique. However, within machine learning, there are often multiple means to get to an end. Therefore, you will see that I prefer classification of machine learning algorithms by the problem. This way, we come to MACO: the Machine Learning Classification Overview, which shows per algorithm for which problem it may be used. I then proceed with more detailed posts about machine learning. As I’m taking the developer approach, I’ll first start with the toolkit I’m using, followed by algorithms.
    1. My machine learning toolkit discusses the various tools I use in machine learning. If you’re performing machine learning, you can write the machine learning algorithms yourself, but why reinvent the wheel?
      1. Scikit-learn is Python’s most-used package for machine learning. It contains various machine learning algorithms and is therefore very useful to get a quick start with machine learning.
      2. Pandas DataFrames make, according to their website, “the least sexy part of the sexiest job of the 21st Century a bit more pleasant”. Using Pandas, handling data becomes a bit more standardised.
    2. Classification
    3. Clustering
    4. Regression
    5. Anomaly detection
    6. Association rules
    7. Reinforcement learning
    8. Structured prediction
    9. Feature engineering
    10. Feature learning
    11. Online learning
    12. Semi-supervised learning
    13. Unsupervised learning
    14. Learning to rank
    15. Grammar induction
  4. Approaching a machine learning problem discusses how, given a problem or a data set, a machine learning problem should be approached. Which methods to take and which algorithms to use? That’s a question that I try to answer here.
  5. Machine learning and the future world discusses how the world has evolved since the Industrial Revolution and how machines have played a role in that. I will also try to sketch my vision on how machine learning will impact our future world, how that may pose opportunities and dangers, and how you may play a role in this future world.
    1. Machine learning and factory jobs discusses the application of machine learning in particular and artificial intelligence in general into factories.
    2. I will add more content soon!