If you plan to start learning machine-learning models then you'll need a reasonably deep knowledge of math, spanning linear algebra, calculus, and statistics, these are the tips shared by Data Scientist. Yet if you're willing to work at it, it's never been easier to learn about machine learning, and getting started doesn't even require much mathematical knowledge. Here are five tips for breaking into the field from senior data scientists and machine-learning engineers.
Learning programming is Most important than learning Math:
If you plan to start learning machine-learning models then you'll need a reasonably deep knowledge of math, spanning linear algebra, calculus, and statistics. But for beginners in the field, learning the basics of programming and getting to grips with a language like Python, which is commonly used for machine-learning tasks, is more important, says Peter Cahill, founder, and CEO of voice-interface specialist Voysis.
"If someone has programming fundamentals then, from a technical point of view, I think that's enough for them to dive into machine learning," he says. "You're not gonna get very far if you can't program at all, because that's ultimately how you configure the machine-learning frameworks is through programming. "I think strong math was probably more essential before than it is now. It's certainly helpful to have mathematical knowledge if you want to develop custom layers or if you're really going very, very deep on a problem. But for people starting out, it's not critical." In some respects, it's just as important to have a willingness to seek out new information, says Yangqing Jia, director of engineering for Facebook's AI platform.
"As long as you keep an exploratory mindset there's such an abundance of tools nowadays you'll be able to learn a lot of things yourself, and you have to learn things yourself because the field is growing really fast."
Machine Learning software frameworks:
There is a wide range of machine-learning software frameworks, which allow users to implement, train and validate neural networks- the brain-inspired mathematical models commonly used in machine learning using a variety of programming languages. "I think at this point we have tools that allow people to use machine learning quite easily," said Ben Lorica, a chief data scientist at O'Reilly Media.
"By easily I mean if you have some programming skills, for example in Python. If you look [back to] several years ago, particularly in deep learning, the frameworks were still a little harder to use, now they're getting easier." A popular choice is Google's TensorFlow software library, which allows users to write in Python, Java, C++, and Swift, and that can be used for a wide range of deep-learning tasks, such as image and speech recognition, and which executes on CPUs, GPUs, and other types of processors. It is well-documented, and has many tutorials and implemented models that are available.
Another popular choice, especially for beginners, is PyTorch, a framework that can be used with the imperative programming model familiar to developers and that allows programmers to use standard Python statements. It can be used to implement deep neural networks, ranging from Convolutional Neural Networks (CNN) to Recurrent Neural Networks (RNNs), and runs efficiently on GPUs.
Facebook's Jia who created the Caffe framework says PyTorch and Tensorflow are among the "really nice frameworks that it's good to start with", due to the breadth of tutorials and extensive documentation available. Ashok Srivastava, chief data officer at Intuit, recommends using these frameworks alongside some of the publicly available datasets, such as ImageNet or MS COCO for image recognition, or the more general UC Irvine Machine Learning Repository, which covers a wide range of areas. Among the broad range of other frameworks available are Microsoft's Cognitive Toolkit, MATLAB, MXNet, Chainer, and Keras.
Use on-demand infrastructure for machine learning:
While building your own machine-learning rig may be sensible for long-term cost savings, initially, it will be easier to spin up machine-learning tailored infrastructure on a public cloud platform, according to Facebook's Jia. "I'd probably start with available open-source tools in cloud offerings because sometimes it's really difficult to build an environment from scratch," he said.
"On the system side there is Docker, Kubernetes, and all kinds of virtualization approaches that provide you a pre-set environment, even on your desktop, for example, Docker installs some pre-made images for all those AI systems. It's a pretty good place to start." Virtual machines with underlying ML accelerators are available via each of the major cloud platforms, including AWS, Google Cloud, and Microsoft Azure. Each also offers automated systems that streamline the process of training a machine-learning model, with offerings including Microsoft's Machine Learning Studio, Google's Cloud AutoML, and AWS SageMaker.
"Spend time on your problems and less time on your tooling, which has become really well constructed after maybe five years of development in the deep-learning field," said Jia.
Focus on high-quality online tutorials:
If you're interested in machine learning there's no shortage of highly regarded courses, tutorials, and books available, some put together by leading figures in the field.
For example, you could check out these Coursera offerings, one by Geoff Hinton on neural networks and another co-created by Andrew Ng that provides a general overview of the topic, while this Udacity course was co-created by Sebastian Thrun, of Google self-driving car fame, and provides access to experts from OpenAI, Google Brain, and DeepMind.
Beyond these tutorials, you can also try your hand at implementing machine-learning models in one of the varieties of contests held by the data science community hub Kaggle. "Start by looking to the well-established tutorials. For example, in computer vision, there's one pretty good one, and also try out a bunch of Kaggle challenges," said Jia.
"You can basically get a taste of what kind of problems people are solving and also how the existing folks are actually solving problems, and then internalize that knowledge and start applying those principles to a whole new set of problems." Intuit's Srivastava described the breadth of materials available online for learning about machine learning as one of the most exciting aspects of the field.
Move on to real-world placements:
Once you understand the fundamentals, O'Reilly Media's Lorica says it is important to demonstrate your ability to apply that knowledge in the real world. "The main challenge for people is to go beyond working on toy examples to working on actual data projects from end-to-end," he says.
Those real-life projects could be internships or one of the many fellowships available worldwide, he added, such as the 10-week placement offered by ASI Data Science in London. "The emphasis here is that they pair you with a company which has a real project and then you're mentored by someone in the organization and you work through a project.
"The key is you can learn a lot on your own, but it's really important working with data and learning the pitfalls, the gotchas and limitations of all these algorithms." This real-world experience teaches the nitty gritty of the machine-learning process, he says, including the less-often discussed the process of preparing data, which he says can be as much as 80 percent of the job, as well as how to interpret results produced by machine-learning models.
Ultimately demonstrating your skills via internships and fellowships is key to making yourself stand out to potential employers, says Lorica. "A lot of us who have spent years in the field know the companies who have good data groups. So you hire out of those data groups or you hire out of the right fellowship programs."