Machine learning is what provides computers with the ability to learn and iteratively get better at their tasks. It focuses on developing dynamic algorithms that can change (modify) themselves when exposed to a new set of data. Speaking in simple terms, machine learning is what makes Facebook go “do you want to tag your friends in this picture?”, each time you upload a group photo. The people working who are behind the scenes to make all this happen are humbly known as Machine Learning Engineers.
Now, like with every other domain under the broad umbrella of data science, Machine Learning, too, has a lot of misconceptions about it. And clearing them is precisely our aim for today. But, it’s crucial we first walk you through the life of a machine learning engineer including the skills and tools they possess.
First, let’s first clearly demarcate machine learning from data science.
Are machine learning engineers data scientists?
Data science is an all-inclusive term, but there’s something fundamentally different about the way machine learning works. Data science and analysts essentially explore data and try to find approaches or models that fit their business requirements.
Machine learning, on the other hand, changes this model entirely. Machine learning engineers aren’t dealing directly with the data. They know the results they want but are letting algorithms do the work for them. Machine learning builds a machine that beats Go champions, or that tags photos or that translates between languages. These goals aren’t attained through careful exploration of data – unlike in the case of the data analysis. There’s a lot of data to explore and way too many dimensions to tackle (for example, what’s the dimensionality of a Go game? Or, a language?) The promise of machine learning is that it builds the model itself: it does its data exploration and tuning.
As a result, machine learning engineers don’t “explore” as much as data scientists or analysts do – at least not in the truest sense of the word. Their goal isn’t finding significance in their data – they believe the significance is already there. Instead, they aim to build a model/algorithm/machine/system that can analyze the data and produce results. Or, to create a neural network that works – that can be tweaked to produce reliable results on any input data set.
Let’s look at some crucial points revolving around machine learning engineers:
- They have stronger software engineering skills than typical data analysts/scientists. Machine learning engineers work with engineers responsible for maintaining production systems. Hence, they need to understand software development methodology, agile practices, and the most modern software development tools. They need to be thorough with everything from IDEs like Eclipse or IntelliJ to the components of a software deployment pipeline.
- Machine learning engineers focus on making data products work in production. As a result, they are holistic in their approach. They form a core part of any software development team, and hence, know what A/B testing is. They not only “understand” it, but also know how to perform A/B testing on production systems. They understand the importance of logging and security to any application’s fate.
- They are on their toes when it comes to monitoring data products in production. Although there are many resources to automate the process of application monitoring, the requirements of machine learning go a step further. Data pipelines, models, algorithms, or even systems can go stale and need to be retrained. A machine learning system can be easily distorted by compromising the data pipelines that feed it. Hence, the machine learning engineers always need to know how to detect these compromises.
Some necessary skills for a successful machine learning engineer:
Natural Language Processing
- Fundamental knowledge of computer science and programming
- Probability and statistics
- Data modelling and evaluation
- Finding the right ML library to use and tweaking it as and when needed
- Software engineering and modelling
Myth #1: Machine learning engineers make systems think exactly like humans.
While this is an eventual end goal, it’s far from the truth at the moment. Briefly compare the learning process of a child with that of a machine, and you’ll realise that machine learning is still pretty much in its infancy. For instance, a baby doesn’t need to observe hundreds of humans for simple things like walking or eating. They set their own goals, perceive other humans around, intuitively create their learning strategy, and refine that through trial and error until they succeed succeeds. Even without much external intervention or guidance, a baby can successfully learn how to walk, along with other essential things.
Machines, on the other hand, require supervision at each step of learning. Furthermore, a child effortlessly combines various inputs received from multiple sense organs holistically and efficiently. For instance, a child will be able to recognise pictures in an instant, and also understand any text written over it. But, to teach a machine the same thing, we need separate sophisticated algorithms, each for recognising data, identifying noises, and understanding the text.
Myth #2: All data is useful for machine learning engineers.
There’s no doubt that machine learning engineers, too, need data, but not all of it is relevant to machine learning. They need representative data that covers the patterns and outcomes that their system will need to handle. The data shouldn’t have irrelevant patterns included because the machine learning model will reflect those unrelated patterns and look for them in the data it will be used with.
All the data you use for training needs to be well labelled and labelled with the features that match the questions you’re going to ask the machine learning system, which takes a lot of work. All of this data needs to be well labelled with the features that match the questions you’re going to pose your system. It should also be pristine and free of any inconsistencies or errors. So, all of the data is not valuable for machine learning engineers – only the relevant data is!
Myth #3: Machine learning engineers ignore pre-existing knowledge.
Experts in many fields dismiss machine learning for taking a “blank slate” approach in their learning algorithms. They assume that every machine learning algorithms starts from ground zero – with no knowledge of pre-existing data. Machine learning engineers understand better that learning is a long process that requires constant monitoring. It can’t be mimicked by just feeding the data into an algorithm. Hence, not all learning algorithms start with a blank slate; some use datasets to refine a pre-existing pool of knowledge. At the end of the day, it depends on the business requirements of the organisation.
Myth #4: Simpler machine learning models are always more accurate.
This is in line with Occam’s razor. But, let’s tell you that the razor only says that simpler explanations are preferable, not why. They’re preferred because they’re easier to understand, remember, and deal with. However, when it comes to machine learning, sometimes the simplest hypothesis consistent with the data is less accurate for prediction than a more complicated one. Some of the most potent learning algorithms output models that seem gratuitously elaborate — sometimes even continuing to add to them after they’ve correctly fit the data — but that’s how they beat the less powerful ones.