What Would a Typical Day of a Machine Learning Engineer Consist of, and How Does it Compare to Other Engineering Fields?
After looking at most of my choices, I believe that my interests lie in software engineering, hardware engineering, mechanical engineering, and machine learning engineer. I've always been told that a role as a machine learning is quite complex, and can often be handled by very few individuals with critical thinking skills. Also, I've heard that a role as a machine learning engineer requires more than just a computer science degree. Is this true? If so, what typical tasks would comprise of a typical machine learning engineer? Also, how would it compare to the professions listed above? Any input from qualified professionals in the field would be appreciated.
#computer-science #data-science # #engineering #technology #career-advice
3 answers
Dhairya’s Answer
It's awesome to see you're interested in exploring engineering careers. I don't really have any experience in hardware or mechanical engineering, so hopefully another community member can chime in there. I'll try to my best your questions about machine learning.
Machine learning is wide field with many different applications, roles, and careers. I'm a NLP research scientist/engineer. My job is a mix of research and engineering. My work consists of developing machine learning and artificial intelligence models that can understand human language and engineering new features around those models for our software product. For example, I'm currently developing a question answering feature which allows a user to ask our AI bot questions about their bank accounts using natural language. The AI bot uses several of the models I've develop to comprehend the user's question, find the answer, and return it to user.
What is Machine Learning?
Machine learning is a specific research area within the larger space of artificial intelligence research. The goal of machine learning is to have the machine or computer teach itself how to solve problems based on historical examples provided to it.
For example imagine you want to create a service that identifies if there is a cat or dog in a picture. This is quite a hard problem for computer, because all the computer see when you give an image is a sequence of numbers which correspond the pixel representation of the image. You could use machine learning to teach the computer to identify cats and dogs. To train the machine, you would show the machine many pictures of cats and many pictures of dogs. Eventually the machine will teach be identify patterns in the pictures provided to it such that it can identify if a picture contains a cat or dog. The machine learns (aka machine learning) to identify patterns in the picture using sophisticated math and statistical learning.
What a does a machine learning engineer do?
So this is a bit complicated as the industry really hasn't solidified around a standard definition. Generally careers in machine learning involve doing either research or engineering, or more realistically both. Often, you'll hear of data scientists or machine learning researchers whose job is develop the underlying mathematical models to teach a machine to solve real world problems. These folks tend to have a Phd or masters degree in computer science, applied math, physics, or some other quantitative field.
There is also engineering work which follows more traditional computer science and software paths. The engineer is responsible to setting up data pipelines to ingest and process data that will be used by the models. If the data scientist is purely theoretical (that is they only develop mathematical models), the machine learning engineer may also translate the model into code that can executed by the machine. There is also challenge around scale and deployments. Certain machine learning models (usually deep learning) are very large and to deploy them to production setting where you may have thousands to millions of hits on the model, you need to develop special scaling processes to ensure the model work and make predictions a reasonable amount of time. Folks who focus solely on the engineering side of things will have more traditional software engineering and computer science backgrounds (usually a bachelors and sometimes also a masters degree).
But as I mentioned earlier, its is a very wide space. Larger companies like Google or Facebook will have more traditional separation of research and engineering. But its increasingly common most machine learning roles will require you to do a little of everything. Especially in smaller organizations and startups where it can be expensive to hire both roles separately.
My experience with machine learning research and engineering:
I fall into the camp of having to do both, which is a lot of fun. Personally I love both the research aspect of machine learning, especially the challenge of trying to frame a real-world problem as a machine learning problem. For example, I was working on a project around natural language program synthesis which required teaching a machine to be generate SQL code from a language description (e.g. covert Tell me how apple are blue into a the following SQL command: Select count(apples) from table where color = blue). I also love the applied aspect of build features that our customers will use. This usually involves taking the model I developed and converting it into service or embedded feature that is part of the larger codebase for our software product. It's very satisfying to me to be able to see my models have a impact on our product and be used our customers.
Tips for getting into machine learning:
One of the awesome things about machine learning and really software engineering in general, is that you don't a degree or experience to get started. If you want to get started, at minimum you'll need some basic programming experience in language like python and some basic experience with algebra and high school math.
There are many tutorials and resources online to help you learn the basics and get exposed to building and training models and developing software.
If you are interested in modeling side of machine learning check out the following resources:
- Kaggle Tutorials: https://www.kaggle.com/tags/tutorial
- Udacity's free Intro to machine learning: https://www.udacity.com/course/intro-to-machine-learning--ud120
- FastAI: http://course18.fast.ai/ml and https://course.fast.ai/
These resources give you a taste of what machine learning involves. If you enjoy it you can pursue further studies in college to help you prepare for a career in machine learning. Each school will have their own requirements and program. But in general you'll be taking some combination of the following classes:
Computer Science
- Introduction to Programming
- Data Structures and Algorithms
- Advanced Algorithms
- Machine Learning / Deep Learning
Math/Statistics
- Calculus 1 and 2
- Linear Algebra and Differential Equations
- Probability and Statistic
- Information Theory
I hope that was helpful. If you have specific questions, feel to follow up in the comments and I'll try answer those as well. Good luck on your journey!
Deon’s Answer
The Machine Learning engineering field is continuously fostering an environment that encourages the engineers to think outside the box. From a tech company perspective, the idea is to look at a team that is made up of diverse experiences and thoughts as the greatest advantage and key ingredient to innovation. I would encourage you to pursue this field/career because it is very exciting, and it is growing. You get to be part of a team that creates “magic”, that is, create Machine Learning and Artificial Intelligence algorithms that will automate (and bring to life) something exciting. A computer science degree is a common foundational curriculum for this field.
Kevin’s Answer
1. Statistics
2. Computer Science
3. Data Engineering
4. Data Analysis
Any one of these is a good starting point and over time with more study and experience you can add other areas to your skill-set. There are many college programs which can help you gain these skills or you can try some of the free online classes from Stanford, MIT or others.
In my career, the most common transition has been software developers (full stack developers) transitioning from Application development to Data Engineering. Then after some time mastering ETL's, Data Custodian role, Data Analysis role they progress into Predictive Analytics and Machine Learning. In many cases, we have had small teams where a single individual might perform many of these roles. In larger IT organizations, these roles are segregated into many teams and a person performs just one of these roles. In my current organization, we have a smaller team so people are constantly learning new skills and adapting to the rapidly evolving technology stack. To be successful in this field you need to be comfortable with change and be a great self-learner!
Best of luck and enjoy building these great skills of the Big Data Era!