Skip to content

Latest commit

 

History

History
80 lines (50 loc) · 4.99 KB

File metadata and controls

80 lines (50 loc) · 4.99 KB

Machine learning

What is Machine Learning?

Machine Learning is the study of computer algorithms that improve automatically through experience. These algorithms build a mathematical model based on sample data. It is seen as a subset of Artificial Intelligence.

How can I classify machine learning approaches?

At the moment doesn't exists a clear classification working for any machine learning approach. Anyway, some partial classification arised.

Based on Data

Approaches are traditionally divided into three broad categories: Supervised Learning (you know the desired output), Unsupervised Learning (you don't know or you know a little about the desired output) and Reinforcement Learning (you learn from the environment). Some of the approaches don't fit neatly into this three-fold categorisation.

Based on effort in feature engineering

Another classification compares "traditional" approaches, based mostly on statistics and optimization techniques, and Deep Learning, which has become the dominant approach for much ongoing work, based on Neural Networks. The main difference is the importance of the feature engineering phase. Traditional methods requires a lot of effort to find the best shape for the features. Deep Learning instead, just requires a huge amount of data (and a little bit of luck).

Based on field of use

Another classification is based on the field of use. Specializations are emerging to deal with specific problems: Predictive Analytics, Service Personalization, Natural Language Processing, Computer Vision, Speech Recognition and many more.

What are the main roles in Machine Learning?

Machine Learning Scientist

Machine Learning Scientists (or Machine Learning Reserachers) are people who work with data and build machine learning models. They clean and interpret data and build prototype models using a combination of machine learning algorithms and data.

Machine Learning Engineer

Machine Learning Engineers are the "support troops" of Machine Learning Scientists. They do anything from data lake set up and management to building easy to use computational clusters for training and finally ensuring high availability deployment of models. Often this also involves models optimization and performance enhancements.

Machine learning engineers come from software development and DevOps backgrounds and have started to specialize in ML infrastructure. These people are familiar with containers, container orchestration and building robust deployment pipelines.

What are tools and metodologies used in Machine Learning?

Languages

  • C++ for highly optimized models
  • Python for anything else

Frameworks and libraries

MLOps

MLOps is a practice, similar to the DevOps or DataOps, for collaboration and communication between Machine Learning experts and operations professionals to help manage production ML (or deep learning) lifecycle.

Suggested books and resources

Books

Online Courses

Courses feedback

Mathematics for Machine Learning (Coursera)

  • Description: This course is an introduction to the mathematics involved in Machine Learning. It is divided in three submodules: Linear Algebra, Calculus and Probability and Statistics.
  • Feedback: The course is very well done, with interesting interactive examples and programming tasks relevant to the topics. However it is very basic, and sometimes it might appear to be too slow.