At work I spend a lot of time thinking about machine learning (ML), both in terms of how to apply it and the practicalities of enabling an organisation to do so. Occasionally I even stand on stage and talk about the subject at conferences, lamenting the fact that deep learning is getting so much attention while more straightforward and interpretable machine techniques are often overlooked.
Yet I have a secret. And that secret it this: for years I have not written any serious code. Sure, I have contributed lines of SQL here and there during a hackathon or a demo, but that is not the same as end-to-end development. Given that a large part of my team’s role is building data products to support our global business, I decided to address this disconnect by taking an online machine learning course. Having just finished the program after eight months, here are three things I learned.
Change is the Only Constant
While a few years ago I was building ML models such as Bayesian classifiers and support vector machines, the machine learning landscape has changed considerably since then. Deep learning is getting easier and easier to apply – whether it is because of better Python libraries, official documentation, or even just questions and answers on Stack Overflow. During my program, Tensorflow 2.0 was released – a significant milestone that simplified model development. With new research papers and toolkits coming out every week, it is important that organisations do not grow complacent.
Use It or Lose It
Boy had my Python programming skills gotten rusty. Whereas before I was familiar with most of the common functions and syntax, now I had to look up even the most simple commands. As much as I would like to blame the fact that I last used Python 2.7 and was now using 3.0, the reality is that I was very much out of practice. Luckily during the course of eight months, the quality of my code did improve. Still, it was a humbling experience! This underscores the point that developing a capability is not enough – it is as much as evolving and maintaining that capability as well.
No Substitute for Experience
Any data leader worth their salt will be familiar with the key blockers to deploying effective machine learning products: a lack of suitable data and pipelines, ineffective infrastructure and configurations, challenges with neural network architecture, etc. Having spent night after night being driven to despair by opaque hyperparameters and stubborn validation loss functions, I have so much more empathy for the data scientists and machine learning engineers who are faced with these challenges on a daily basis. While it is one thing to be aware, it is another to have lived them yourself.
People like to say they feel humbled when they win a prize, but I believe that to actually feel humbled you need to wholeheartedly engage in an activity that you are not very good at – at least at first. Having now graduated from Udacity’s Machine Learning Engineer Nanodegree, I feel humbled. Not because I won a prize, but because I was reminded of how hard it is to build good machine learning models. In a world where it can be tempting to simply use buzzwords, I highly recommend enrolling in a program like this to be reminded of what it is actually about.