3 Essential Steps for Learning Machine Learning: Commitment, Gathering Resources, Setup.

learning machine learning

Welcome to the first entry of my blog post series on learning machine learning and documenting each step. I’ll share them with you all.

My goal is not just to learn and share my progress but to create a roadmap for anyone who wishes to follow this path.

From Curiosity to Commitment

My adventure begins with a modest background in machine learning. It is limited to basic regression algorithms from an introductory course during my first year’s course on ML in my Master’s program.

For example, we wrote a linear regression algorithm to separate the following data set containing two types of data. The plot below is the output of the program I wrote on a simple linear regression using Julia Language.

I’ve spent the past three years immersed in the Julia programming language since all of my research project’s code is written in Julia.

But I feel like it is time to bring my Julia skills to the next level and also learn some more Python along the way. It seems to be the industry standard anyway, while Julia is geared more towards scientific ML.

I will be learning the TensorFlow framework in Python and attempting to compare it with Julia’s Flux.jl ML library and practice custom GPU kernel writing.

Gathering Resources on Learning Machine Learning

To gear up for this undertaking, I’ve collected several resources:

  • A couple of textbooks on ML and TensorFlow. I consider them essential for building a strong foundation. I discuss them in detail in the YouTube video below.
  • A Udemy course on TensorFlow, chosen for its practical approach and focus on preparing its students to take the TensorFlow certification exam.
  • A textbook on Julia Projects, which includes chapters on ML, to supplement my learning. There is a good section on the data analysis and preparation in this book.

The Setup Dilemma: Cloud vs. Local

One of the first decisions to make for anyone starting in ML is choosing between a cloud-based or local setup. A platform like Google Colab offers ease of use and access to GPUs online. It’s the fastest option and is free.

With a local setup, one can run the notebooks on your own machine. It will also teach you a great deal about the potential hardware limitations one can encounter when writing ML programs and training your models. If you need to use GPU for your computations, then you will also need to make sure that you have access to one on your computer. However, a local GPU acess setup might be challenging for someone with an Apple M-series GPUs like mine (or even AMD GPU card).

The local route promises an interesting learning curve despite the hurdles. Julia leverages the Metal programming framework from Apple and the Metal.jl package to use the GPU capabilities on macOS for computations (ML-related or not).

I will describe the exact setup process to prepare your machine for ML learning project on a separate page from the drop-down menu above.

What’s Next?

This post is just the beginning.

I plan to start with the TensorFlow textbook by Aurelien Geron and share insights, challenges, and victories.

I will aim to offer frequent comparisons between Python vs Julia in ML applications from the perspective of someone just starting to delve deeper into ML.

I invite you to join me on this journey.

In my previous post, I talked about the importance of continuing to learn new skills. This is my chance to lead by example.

Let’s learn machine learning together and, perhaps, inspire each other along the way!

You can also follow my machine-learning journey on YouTube.

Julia

Leave a Comment

Your email address will not be published. Required fields are marked *