Hello, ML World

Welcome to my first post! This is my first attempt at writing up a blog post so please bear with me.

After over a decade of building software professionally, I’ve never had the opportunity to touch on any Machine Learning (ML) - it’s just never been in our scope. I thought I’d take a deep dive and expand my mind with something new. Nothing entirely new, mind you - it’s still code at the end of the day - but different enough to make me feel like a beginner again. And honestly? That’s quite refreshing.

Why Machine Learning?

The simple answer is curiosity. The longer answer is that this is nothing new, but recently it’s really taken the spotlight, it’s what is now driving a lot of modern applications both directly and indirectly. It’s a powerful discipline that touches so many different industries in different ways. The rise of generative AI has really sparked a wave of innovative new developments.

What to Expect

This series will document my journey - the successes, the head-scratching moments, and everything in between.

Some areas I’m particularly interested in exploring:

  • Practical applications: How can we actually use ML to solve real problems?
  • Engineering challenges: How does ML work in production systems? Scaling for training, research or inference, how do these differ and what do they entail?
  • Tool exploration: From PyTorch to TensorFlow or whatever is relevent now, and maybe some Rust-based ML libraries
  • Project builds: I’d like to actually build things too, because theory only goes so far. I’ve got some fun ideas that I’m working on, I’ll be weaving these into my learning to try and produce something tangible.
  • Generative AI: This has really hit the spotlight in recent years and I’d like to explore how ML drives these kinds of applications.

The Plan

My current plan is to start with the fundamentals - understanding neural networks from first principles, implementing basic algorithms from scratch, and gradually working up to more complex architectures.

This may seem quite basic, but I find that building things from the ground up helps to cement understanding better than jumping straight into high-level frameworks. It also helps shake off assumptions and keeps you open to approaches you might otherwise overlook.

Eventually I’ll look at incorporating some of this into some projects I have in the works.