I recently looked into what it would take to start a career in machine learning. I did a lot of research and combined everything you need to know to get started. Read this guide to figure out if machine learning is something that interests you. If you’re interested in reading a good book on machine learning, check out Data Driven Science and Engineering.
What is Machine Learning?
Machine learning has been a topic of interest for decades, but thanks to the recent improvements on computing power and cloud computing, machine learning is more of a reality and a viable career path for programmers eager to evolve their skills. Programmers seeking to learn new skills can go from making standard applications to making applications used in predictions, analysis, and intelligent decision-making.
You’ll often see the terms machine learning and artificial intelligence used interchangeably, but machine learning is a component of artificial intelligence (AI). A device exhibits AI capabilities when it can perceive its environment and make decisions based on feedback to accomplish a task. Within that umbrella, machine learning is the data and algorithms that make up AI systems.
Machine learning can be an exciting career move for programmers desiring a shift in focus. Within the last decade, machine learning and artificial intelligence together have become a crucial component in many of the world’s most popular business applications. Therefore, engineers interested in a machine learning career path can explore a wide range of industries.
A few examples of machine learning in the real world are:
- Voice applications: Most people are familiar with Siri-Apple, Microsoft Cortana, and Amazon Alexa. These systems use machine learning to recognize speech patterns to process voice commands.
- Image recognition: Image recognition validates IDs or recognizes objects within an image. Google Image Search and Amazon’s Rekognition API use machine learning to identify image objects and match textual search input with the image’s content.
- Medicine and diagnosis: A patient’s symptoms can be input into a machine learning application to help doctors diagnose the disease. These applications “learn” from other patient symptoms and diagnoses to determine the right prescriptions and speed up patient recovery..
- Financial applications: Machine learning can determine if a buyer is likely to pay back a loan or help investors identify ideal stocks. Machine learning is used in many advanced financial predictions and analytics.
- Ecommerce: Corporations use machine learning to create ads appealing to buyer interests to boost sales. Machine learning also helps e-commerce sites create a personalized experience for customers by suggesting complementary products.
How Does Machine Learning Work?
Computer engineering is a complex area of expertise, but machine learning is possibly even more intricate. Cloud-based APIs offer engineers a way to integrate third-party machine learning algorithms into their applications without knowing how to build machine learning tools. Machine learning engineers design and deploy these tools, giving you a basic introduction to applications and an idea of the way the algorithms work.
Programmers interested in machine learning can start with API integration offered by popular providers such as Amazon SageMaker, Rekognition, and Polly. Google also offers cloud-based services such as AutoML, Machine Learning Engine, and AI Hub. Apple ML libraries are beneficial for engineers working with iOS development. These tools will give you an overall view of what machine learning can do for your applications so that you can determine if this discipline is the right career path for you.
Though APIs are a way to integrate machine learning into applications, they are not examples of actual machine learning programming. Machine learning algorithms, and the applications that run them, are created by engineers; these engineers use specific methodologies to design AI applications.
The start of a machine learning endeavor is asking a question. For instance, an ecommerce business striving to boost sales might ask “how can we increase our upsell metrics and personalize the customer’s shopping experience?” Similarly, a financial analyst might want to utilize a machine learning application to help predict stock movements, or a data center engineer might want a data processing machine learning application to determine when machines must be maintained or upgraded.
For any problem solved by machine learning engineers, the solution leverages three main techniques. These techniques require initial data models as input, and then use common pattern matching and algorithms to make a prediction. A machine learning engineer’s goal is to create an application that requires initial training but then learns automatically. In other applications, the engineer must assist in further input to help the application learn until it can derive patterns until it can make decisions on its own. Let’s explore these three main techniques and the initial data models.
The Three Main Machine Learning Techniques
Supervised learning is common with new algorithms and applications that can use a previous machine learning application’s output. The way the algorithms learn is similar to the way humans learn a new skill: it receives information, processes it, obtains feedback, and tries again. In supervised learning, the algorithm can learn from the entire dataset at once after a human reviewer looks at the data samples one-by-one and associates the right labels to each one.
First, a list of data and associated data is fed to the algorithm. A human reviews the output, corrects it, and then re-feeds it into the application to process again. This procedure is repeated until the machine learning application output is accurate. As a machine learning engineer, you will create and update the algorithm to help analysts find the right output. You may also be responsible for labeling the data used to train the application.
Supervised learning is used in applications where previous data is structured and the output creates a prediction. For instance, in speech recognition, an application must take voice input and produce text output. The input (words) are known values and the output is known (voice words translated to text), but the application must be able to learn voice patterns and output human languages to text.
Applications use unsupervised learning when the right output is unknown. This technique allows analysts to discover unknown patterns in data models and eventually identify the right output data. With unsupervised learning, unstructured data is fed to the algorithm and it’s up to the algorithm to find patterns. The data is grouped into clusters of similar data so that patterns can be discovered, but analysts rely on the application to predict results.
Research in the last couple of years has led to increased popularity in unsupervised learning. It’s the holy grail of machine learning, because it’s a technique where algorithms learn without any labels or examples, similar to the way humans learn. For example, machine learning is used in analysis of gene expression. Using input from numerous gene instructions, scientists use machine learning to determine the organism’s phenotype (expression of a gene).
Reinforcement learning is similar to the way humans learn through trial and error. First, the application is fed data then processes its first round of decisions. The application takes a series of actions and witnesses the results. Good decisions are rewarded and reinforced into the solution while bad decisions are eliminated from results. Reinforcement learning is limited by its ability to run enough simulations, but improvements in technology have given algorithms the ability to use thousands of scenarios. Examples of improvements include breakthroughs in Go with AlphaZero, and scenarios where the computer can simulate thousands of gameplay decisions in a video game.
Some of the most intriguing applications today use reinforcement learning. For example, reinforced learning is used to create autonomous robots. From a series of trial and error procedures, the robot can learn to perform an action. Autonomous cars use reinforcement learning based on speed limits, avoiding collisions, and finding drivable zones. Trading applications use reinforcement learning to take action based on a predicted stock price, and NLP uses reinforcement learning to answer questions and translate languages.
Machine learning techniques are the procedures and algorithms that determine output, but data models are the initial input given to these applications. Data models can be clustered or in the form of a general list of labeled information.
For instance, if you were writing an application to detect spam, you could feed the application a list of email addresses with IPs, domains, and countries. This list would serve as a model for the machine learning tool to detect potential spam by finding patterns in input data models. See the three most common data models below.
Neural network data models are named after their structure. Think of neural networks as a copy of the way neurons in the brain work. A neuron sends information to adjacent neurons using a web of paths similar in structure to the branches of a tree. Similarly, each node (which you can compare to a neuron) in a neural network contains data sent to each node down the path until it reaches the output node. As data travels to each node, data is processed and sent to the next node in the progression.
Image from Wikipedia
Facebook uses neural networks to process facial recognition, detecting your friends in your uploaded images and prompting you to tag them. Social media networks heavily rely on neural networks to digest input from user posts and utilize them to find conceptual information to identify popular topics and relevant ads.
If you’ve ever seen a flowchart, you’re already familiar with a decision tree. The difference is the number of decisions: a flowchart generally has a limited number of directions, but a machine learning decision tree could have hundreds of conditional and hierarchy-based decisions.
Image from Wikipedia
Think of a decision tree as a way to ask a question and receive a prediction based on a long flow of answers processed from the root question’s conditions. For example, a decision tree can hypothesize weather conditions for a specific event. Weather can be categorized into sunny, cloudy, and rainy—let’s say it’s been sunny lately—but sunny days can also be humid, hot, cold, or windy. Using decisions based on sunny weather and then decisions based on complementary weather conditions, meteorologists can predict the weather on a given day.
Linear regression models are the simplest ways to work with machine learning. They are used to create predictions by detecting relationships between variables. Think of a straight line on a graph. Each data point is closely clustered in a linear progression. The closer the data points are to the line, the more closely they are related and can predict outcomes.
Image from Wikipedia
Machine learning with linear regression determines a single outcome based on a question. Many socioeconomic and healthcare analytics are based on linear regression. For example, does level of education and socioeconomic standing affect future income? Does smoking cigarettes affect early mortality rates? Does exercise affect daily productivity?
Working as a Machine Learning Engineer
A career in machine learning can take you anywhere because the skill set is high in demand. Numerous industries are integrating it into critical applications and more companies need workers with a machine learning engineering background to build applications. For computer engineers already working in the field, it will be easy to acclimate to the new working environment. Machine learning jobs are similar to engineering jobs where you work with Agile, Scrum, a team of other programmers, whiteboard brainstorming meetings, and creating programs that help businesses boost revenue.
In general, a machine learning engineer has the following daily responsibilities:
- Analyzing algorithms and debugging any issues, also revising algorithms and code when results are inaccurate.
- Viewing data diagrams, models, and algorithm code to determine if they are usable for problem solving.
- Identifying issues with data (e.g. labels are inaccurate or data models must be redesigned).
- Helping stakeholders determine specifications for future projects.
- Understanding business goals and determining how machine learning could help the team reach its goals.
- Whiteboarding strategies and brainstorming solutions to solve business problems.
Machine learning engineers are expected to be experienced programmers (or at least familiar with the tools needed to visualize data). The two most popular computer languages in machine learning are Python and R.
Python is one of the most popular languages on the market today. According to Git, it’s the third most popular language used in repositories around the world. Because of its popularity, fluency in Python is a necessity for a machine learning engineer’s resume. Python can do much more than basic output, and numerous libraries are available enabling engineers to deploy application code more rapidly. If you must choose one language to learn, Python is a good choice that can be used for other job functions in the programming world.
The R language is simplistic and often used for straightforward graphs and charts that do not require much user input or interface components. For instance, R language is ideal for creating a graph expressing output results for the current year’s revenue with predictions for next year..
Other languages can also be useful. C++, Java, Scala, and C# are good secondary choices that a machine learning engineer could master to improve job-searching prospects.
Numerous industries use machine learning, but the first step in your career is to obtain a bachelor’s degree. A bachelor’s degree is not a necessity, but it can increase your job opportunities when you compete in the market. Computer engineers come from numerous backgrounds, but machine learning incorporates more math and statistics. A degree in computer science, mathematics, computer engineering, or statistics is a good option for undergraduates.
Computer engineers often transition to machine learning as a natural change in their careers, but some prefer the statistical aspect of the industry. Data scientists can also move into machine learning after they master a computer language (e.g. R or Python). For applicants who want to get into the linguistic side of engineering, machine learning is heavily involved in natural language processing (NLP). NLP engineers work with algorithms and applications that detect nuances of human languages and turn them into text or instructions. For example, Grammarly and Duolingo both incorporate NLP.
Job Prospects and Salary
Salary prospects are always a concern when moving into a new career, but the income data for machine learning engineers is promising. According to IEEE, machine learning engineers make an average of $185,000 annually. Payscale reports a slightly lower annual salary between $75,000 to $153,000 depending on experience. To compare, Census reports that the annual median household income in America is just over $60,293.
A quick search on Indeed shows that almost 16,000 jobs are available for machine learning engineers. The discipline continues to be one of the fastest growing career paths, and as more organizations leverage artificial intelligence in their applications, they will need more machine learning engineers.
How Do You Become a Machine Learning Engineer?
Both junior and senior level machine engineering jobs are available, but regardless of level it’s crucial to stand out from the competition. If you already code for a living, the first step is to brush up on mathematics, statistics, and algorithms. This can be done either by taking classes, online courses, or reading. Reflect practice in your resume and portfolio then discuss it in your interviews.
Machine learning is a career path that requires showing not telling. You need a portfolio of projects, even small projects where you can demonstrate your problem-solving skills. Consider creating a GitHub account where you either contribute to open-source projects or upload your own work to showcase your programming skills. These projects can be in either R or Python, which again are the two preferred languages in machine learning.
Another option is to practice machine learning and compete with real-world problems. Post solutions on competition sites and use them in your portfolio. A popular platform for data science problems where machine learning is incorporated is Kaggle. Google also hosts a machine learning platform named ColLab where you can write Python and execute machine learning solutions. OpenML is similar to Kaggle as it allows you to download data models to analyze and explore results.
Contributing to GitHub projects and practicing your skills will help you stand out against other applicants, but you still need to perform well in the interview process. The first part of the interview series is usually a phone conversation. This could be with your immediate manager, an HR recruiter, or a conference call with your potential future team. These conversations usually cover your career goals and basic personality traits to see if you’re a good fit for the team.
After a successful phone interview, the company will invite you to an onsite meeting. Onsite interviews usually involve multiple people including the team that you will potentially work with. Interviewers might ask you to perform solutions to questions on a shared computer or answer technical questions on a whiteboard. Some organizations have an at-home coding test that you can perform within a specific amount of time before your onsite interview. You can use the sites mentioned above to perform practice problems and study algorithms before going to your onsite interview.
Technical interviews for machine learning can be stressful. Make sure you get plenty of rest the day before, eat a healthy breakfast, avoid drinking too much coffee, and bring notes to help you answer questions.