100% of 1 Students
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:
- Introduction to Programming
- Data Structures and Algorithms
- Advanced Algorithms
- Machine Learning / Deep Learning
- 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!
100% of 1 Students