A: Machine learning is the science of algorithms that detect patterns in data in order to make accurate predictions for future data. I think the following technical skills are a must:
- Querying handling data-sets of up to 1M rows and visualizing data of the same size.
- Skills in linear algebra and logic as most of the algorithms rely on these two areas in math.
- An understanding of optimization algorithms.
If you are looking to start an academic career in machine learning, I recommend applying and attending one of the many machine learning summer schools - they are the fastest way to get a full overview of all the state-of-the-art algorithms and approaches and they typically also have a session on applying machine learning in practice.
If you are looking to start a machine learning career in industry, a good thing is to either participate in a Kaggle competition, try contributing to OpenSource ML projects such as SparkML or Theano (or start one yourself) or try to get an internship; all of these allow you to get first-hand experience in building models, modifying algorithms and iterating to improve accuracy. There is a huge demand for people that would like to work in the field of machine learning and employers typically look for people that have demonstrable interest.
A: I think we are going to see standard and well-proven ML algorithms offered through services for several reasons:
- Elasticity: Training of models is often a spiky process and only incurring costs when the training is needed is much more cost-effective; in the same vein, prediction of models usually follows a periodic pattern (daily, weekly, monthly) proportional to the usage of the product by people and it's a lot more cost-effective to scale up and down as needed.
- Limited Expertise: People who are both strong in both understanding the mathematical background of ML algorithms and who can code them up at production-level quality are rare and a service democratizes their ability; it allows them to scale their expertise arbitrarily
- Scale- and Fault-Tolerance: Most ML algorithms are designed under the paradigm of sequential execution and there is an explicit assumption that they run on single machines. An ML service offering solves the problem of scaling both training and prediction once - and will need to address the issue of fault-tolerance.
Having said that, ML is a peculiar field where there are probably more algorithms to learn and predict for data than there are real-world problems (for example, at least 100 new ML algorithm developed each year published at conferences including NIPS, ICML or KDD). I think many of these algorithms will only be useful for specific use cases. However, algorithms which have shown to work on a wide range of data and problems will be elevated through service offerings, e.g., (sparse) logisitic regression, boosting, support vector machines, random forest or (deep) neural network learning.
A: We use deep neural networks in many applications; one of the most visible applications is in the speech recognition of Alexa (a distributed training algorithm is described in the 2015 INTERSPEECH paper " " by Nikko Strom). Whenever you speak to your Echo, features from a deep neural network are used to describe the audio stream in order to detect the wake-words ("Alexa", "Amazon", or "Echo"). Once the wake-word is detected, neural networks are used to predict the sequence of phonetic states from the audio sequence of the whole microphone array.
These questions originally appeared on Quora. - the knowledge sharing network where compelling questions are answered by people with unique insights. You can follow Quora on Twitter, Facebook, and Google+.