
Machine Learning (ML) is a type of artificial intelligence (AI) whereby software will analyze data, and from there make predictions based on that data. As new data comes in, the predictions are compared against results, which are added to the data. Over time, the app will find patterns, and make more accurate predictions… not unlike the way humans will learn over time.
The concept of machine learning has been around for decades. Companies that deal in huge amounts of data, such as Amazon, have long been on the forefront. Amazon in particular has developed algorithms that, for example, can predict what items a customer would like to purchase.
A machine learning engineer, or ML engineer, develops software that makes use of machine learning algorithms. Machine Learning has applications throughout industry:
- Medicine: For example, medical images can be analyzed and ML software can learn to detect diseases and tumors; or ML can learn to predict diseases and come up with early treatment plans.
- Finance applications: Machine learning algorithms can be trained to spot anomalies that could potentially be fraud.
- Education: Personalized learning is a newer use of machine learning, coming up with new lessons by comparing a student’s progress to large amounts of data tracking other students over time.
How do you become a machine learning engineer?
Becoming an ML engineer requires a good amount of work, but it’s well worth it to become a part of such an exciting field.
Learn the Mathematics
First, you have to have a strong understanding of mathematics. You’ll want to either take courses in or self-study calculus, statistics, and at least one course in linear algebra.
Pro tip: Linear algebra is the study of vectors in higher dimensions. The idea of “dimensions” extends to data through what non-tech folks might think of as filters. In a shopping web site, you might set up multiple filters: Curtains that are blue or green; curtains that are under $20; curtains that can be delivered within two days; curtains that are 80 inches; and so on. Each individual filter is a dimension. Using linear algebra, you can map such concepts mathematically.
Learn Coding
You’ll want to learn the Python programming language, as this is the most widely used language in machine learning. You’ll need to go beyond the basics and master advanced concepts such as class modeling and inheritance (what’s known as object oriented programming), and functional programming with lambda functions and list comprehensions.
You’ll also need to learn the different Python frameworks and libraries used in ML, including:
- Numpy and Pandas. These are two fundamental libraries for working with vectors in multiple dimensions (Numpy), and for processing large amounts of data (Pandas). Mastering these is fundamental not just to ML, but any profession that works in big data.
- Scikit-Learn. This is a popular open-source library for machine learning. It was originally built in 2007 by a single person (David Cournapeau) and is today maintained by a team of about 25 people.
- Matplotlib and Seaborn are popular data visualization libraries used in python.
- SciPy. This is a Python library for advanced scientific computing, including linear algebra and more.
- TensorFlow. This is Google’s open-source ML framework.
- PyTorch. This is the Python interface into Torch, a library used for machine learning.
All of these libraries are available for free, meaning you can start practicing with them today.
Learn Big Data Concepts and Cloud Platforms
In addition to mastering Python, you’ll need to study Big Data concepts. While the term “Big Data” itself is a bit older now, companies such as Google and Amazon who pioneered it continue to research the field. As such, you’ll want to learn about the Big Data offerings in their respective cloud platforms.
Programming for Big Data and cloud platforms requires understanding such Python concepts as:
- MapReduce: This is one of the original Big Data algorithms that Google developed years ago, and learning it will serve as a launchpad for learning more modern Big Data concepts. Think of it as the foundation to big data programming.
- Concurrency: This refers to writing different parts of a program that will run at the same time. Learn concepts such as asynchronous programming and multithreading.
You’ll want to learn about the different ML offerings in the cloud platforms. For example, AWS has a large set of offerings, which you can find here.
Additionally, you’ll want to study the basics of cloud computing, including how to spin up servers, how to work with the different managed databases, as well as the big data services such as AWS EMR.
Note that with cloud computing there are many different courses you can take such as through Udemy and Coursera. But don’t ignore the official documentation: AWS, for example, has a wealth of documentation for all of its services.
Also, you’ll want to make sure you study traditional database concepts including:
- SQL: Structured Query Language is a language used for relating data. The usual example is each customer in a database would have an ID; then, separately, there would be a list of orders, each with a customer ID.
- NoSQL: This is a newer way of storing and processing data without using SQL. The two most common examples today are MongoDB and AWS DynamoDB.
Pro tip: Learn how to access different SQL databases (MySQL is a great start) and NoSQL (probably start with MongoDB) from Python using their native drivers.
Learn ML Core Concepts
One of the most fundamental concepts of ML is supervised and unsupervised learning.
Supervised learning refers to training software by offering it both the problem and the solution. The software uses various ML algorithms to process large amounts of data to come up with a solution; it will then compare what it came up with to the “correct” solution. In doing so, it gradually learns so that it can eventually make solid predictions without needing such guidance. (A good example here is how Google trained Gmail to look for spam by first providing it with real examples of spam and letting it look for patterns to identify spam in the future.)
With unsupervised learning, the ML applications look for patterns without being provided a solution for comparison. A good example here is the one we mentioned earlier of Amazon analyzing individual buying patterns and looking for product suggestions.
While the names are similar, these two concepts are quite different in how they function. When studying to become an ML engineer, you’ll want to learn how both work, and how to use them in your own applications.
Another ML concept is called reinforcement learning. In this way, as ML software analyzes data and comes to conclusions, it receives feedback in the form of rewards or penalties. The software is coded such that it receives feedback that it knows is either positive (in which case it continues in the same direction) or negative (in which case it changes course).
Do You Need a Degree in Machine Learning?
When it comes to actually landing jobs as a machine learning engineer, you’ll generally need a bachelor’s degree in computer science or mathematics, along with further studies beyond the degree. Such studies can take the form of online courses through the usual companies (Udemy, Coursera, and so on).
You can also consider getting a Master’s degree in Machine Learning, but this isn’t strictly required. However, some companies prefer a Master’s degree.
What Does a Machine Learning Engineer Career Path Look Like?
Machine learning engineer is not typically an entry-level position. Instead, you’ll start out either as a junior software developer or as a data analyst.
If you start as a software developer, you’ll need to learn as much about data science as you can. If you start as a data analyst, you’ll need to learn as much Python programming and development as you can.
From there, the next step is likely a data scientist position. In this role you’ll be learning data science algorithms and honing your skills in python. This is when you’ll also start using machine learning algorithms to solve business needs.
Finally, the next step is taking an actual role as a machine learning engineer. This is when you’ll pull everything together and start building applications using machine learning algorithms. If you want to migrate from there, additional roles include:
ML Architect: Here you take ML to the next role and oversee the implementation and architecture of large-scale systems. This job tends to be more about making high-level decisions and helping the ML engineers implement such decisions.
Director of Data Science: While far less technical in nature, this position requires a deep understanding of data science and machine learning so that you can guide a large team in their projects and make sure they fit with the business objectives.
Chief Technical Officer (or similar titles such as Chief Data Scientist): This position is similar to DIrector of Data Science, but in this role you’ll work alongside the CEO and report regularly to the board of directors. For this role, you’ll likely need additional management coursework, perhaps even a Master’s of Business Administration (MBA). You’ll be much less hands-on; instead, you’ll be making important company-wide decisions.
Conclusion
Although ML is not new, the current state-of-the-art technology is based on very modern concepts starting with Big Data as well as AI. This is a growing field, and with the right knowledge and skills, you can learn as much as you can and land your dream job as a machine learning engineer.