Insight into machine learning

“The ability for computers to learn without being explicitly programmed”. – Arthur Sand

Machine learning is having a substantial effect on many areas of technology and science; examples of recent applied success stories include robotics and autonomous vehicle control, speech processing and natural language processing, neuroscience research, and applications in computer vision.

The field is receiving an increasing amount of interest from the likes of Google, Microsoft, Facebook, NVIDIA, Apple, Amazon and Uber. Startups using artificial intelligence as a core part of their product raised $5b in 2016 equivalent to £3.6b. It is a rapidly expanding field with plenty of scope for career and skill development, as well as the opportunity to be on the cutting edge of technology development.

Education & Requirements

A machine learning specialist is expected to hold a master’s degree in computer science or a related field. With this being said, you may also be considered for a specialist role with a degree in a non-related field if you possess practical machine learning experience from internships or work experience.

Therefore, it is important that you can display capability in machine learning by developing a portfolio of projects you have completed on GitHub, and by participating in open-source projects. Provided you show a potential employer your command of the field in practice then they will look past the absence of a specific degree - unless they are particularly focused on certain aspects of the field that are only covered in depth in academic environments.

The key skills required of a machine learning specialist may be summarised as follows:

  1. Computer science fundamentals & programming
  2. Probability & statistics
  3. Data modelling & evaluation
  4. Machine learning algorithms & libraries
  5. Software engineering & system design 

The chart below depicts the relative importance of these core skills for general machine learning roles, with a typical data analyst role for comparison.                                                       

  1. Computer science fundamentals

You will need knowledge of data structures, algorithms and computer architecture. You will need to be aware of them, and address them appropriately when programming. Practicing problems and taking part in coding competitions are good ways to keep your programming skills up to scratch.

  1. Probability and statistics

A lot of the theory and language behind machine learning has a significant overlap with probability and statistics. By having a fundamental understanding of probability and statistics you will be able to grasp why certain machine learning algorithms work the way they do. Ultimately this will leave you with a core understanding of how to approach specific problems.

  1. Data modelling and evaluation

Data modelling is the process of estimating the underlying structure of a given dataset, with the goal of finding useful patterns and/or predicting properties of previously unseen instances. A key part of this estimation process is continually evaluating how good a given model is.

  1. Algorithms and libraries

Machine learning is made easily accessible throughout a variety of libraries such as scikit-learn and TensorFlow. Within these libraries are multitudes of different machine learning algorithms that can be employed to solve particular problems. The ability to navigate these libraries and to be able to understand when certain algorithms should be used is a key part of becoming a machine learning specialist.

  1. Software engineering and system design

The end product of a machine learning specialist will ultimately be a software product that may be part of a larger ecosystem. Software engineering best practices (including requirements analysis, system design, modularity, version control, testing, documentation, etc.) are invaluable for productivity, collaboration, quality and maintainability.

Language

The best language for machine learning depends on the types of projects you do. In the majority of cases, developers port the language they are already using into machine learning, especially if they are to use it in projects adjacent to their previous work – such as engineering projects for C/C++ developers or web visualisations for JavaScript developers.

That being said, a survey of over 2000 developers revealed the following languages to be the most popular in the machine learning industry.

Learning any one of these languages would put you in good stead for entering the world of machine learning. However, if your first contact with programming is through machine learning, it is recommended to take up Python for its wealth of libraries, ease of use, and widespread popularity. In fact, python is used by more than half of machine learning specialists in their daily workspace. On the other hand, if you’re pursuing a job in an enterprise environment, be prepared to use Java. The C/C++ languages offer higher levels of control, but are more time-consuming for a beginner to learn. R is an open-source language that is gaining a lot of attraction in the statistical analysis industries.

Algorithms

There exists an innumerable amount of algorithms that could be applied to a variety of different problems. Saying this, a typical machine learning specialist will have the following algorithms in their repertoire:

  • Decision Trees (Supervised Learning)
  • Naïve Bayes Classification (Supervised Learning)
  • Clustering Algorithms (Unsupervised Learning)
  • Q-learning (Reinforcement Learning)
  • Nearest Neighbours (Supervised Learning)
  • Support Vector Machines (Supervised Learning)

Exploring these algorithms and trying to understand how they work will make it easier should you encounter them in a course.

Learning Path

If the prospect of getting acquainted with all of the machine learning algorithms, libraries, and languages is daunting then there is an online learning path you can take that will get you up to speed with what you need to know. It makes use of Massive Open Online Courses (MOOCs) that will not only cement your academic understanding of machine learning, but will also give you practical experience of solving problems.

It is recommended to begin with Machine Learning (Coursera) by Andrew Ng as a starting point. Many high level algorithms, mathematics, and jargon are skipped in order to provide you a sound foundation to start your machine learning journey from. The course is based in the MATLAB language.

Machine Learning for Undergraduates (Youtube) by Nando de Freitas covers the material skipped by Andrew’s course. It is completely complementary to it and provides the mathematical prerequisites for understanding advanced concepts.

Then, Machine Learning (Carnegie Mellon University) by Tom Mitchell provides a more detailed look at the world of machine learning, introducing topics such as artificial intelligence, neural networks, active learning, and reinforcement learning. It is also recommended to take a look at his book.

Described as one of the most challenging machine learning courses, Learning from Data (Youtube) by Yaser-Abu Mostafa provides a high level understanding of the theory behind machine learning as well as the practical applications of it.

Once you have a firm grasp of the material covered in the previous courses, Deep Learning (Youtube) by Nando de Freitas is a PhD level course that will guide you through the advanced techniques of deep learning and its essential concepts while giving examples of speech recognition, computer vision, and natural language processing.

These online courses are incredibly useful for getting to grips with the jargon of the machine learning world and understanding how it works. Bear in mind, they do not put what you have learnt into practice. With your programming language of choice, find an open-source dataset on the Internet for you to analyse with your machine learning skills, participate in Kaggle competitions and follow several textbooks to get your machine learning expertise up to scratch.

Prospects

Technology has been progressing at a very fast pace in recent years, with artificial intelligence and machine learning very much at the core of it. According to research from Indeed, the demand for workers holding AI skills in the technology sector has almost tripled in the last three years.

AI roles advertised in 2018, which included machine learning as a required skill, accounted for 1,300 for every million.

The promising development and interest in the field means that a job in this industry will be a very secure one, with an expected median salary of £61,500 to be expected.

Machine Learning in Use

The following is a general overview of the diverse and exciting breadth of use that machine learning has seen.

  • Medicine - Brain-machine interfaces, computational anatomy, medical diagnosis, structural health monitoring
  • Language - Linguistics, text classification, language modelling, caption generation, speech recognition, natural language understanding, machine translation, document summarization, question answering
  • Data Science and Analysis - Information retrieval, search engines, sequence mining, syntactic pattern recognition, time series forecasting, classification, prediction
  • Security - Credit-card fraud detection, internet fraud detection, data security, personal security, Insider threat, malware analysis, network analytics, secure coding, situational awareness
  • Robotics and Automotive Engineering - Robot locomotion, pilotless systems, sensors, nano-robotics, machine vision, robotic learning, robotic control
  • Marketing - Recommender systems, online advertising, marketing personalization
  • Commerce and Economics - Insurance, financial market analysis, financial market trading
  • Research - Classifying DNA sequences, cheminformatics, bioinformatics

Finding a Job

Typically, a machine learning role is enveloped in some other type of role such as data scientist, data analyst etc. But there are specific machine learning specialist roles occasionally advertised. It is worth noting that the field is relatively new so there are no generally accepted terms for machine learning specialist jobs, so it is always worth reading the descriptions to judge the relevance of the job to you.

The following websites often advertise vacancies:

Aside from looking at posted vacancies online, it may be worth your while making speculative applications to companies that are known to use artificial intelligence and machine learning. Such companies may include:

  • Google - In 2014 Google bought artificial intelligence start up DeepMind for £263 million. DeepMind has since been used to find the quickest route between underground stations, improve NHS healthcare, and defeat champion players of the board game “Go”. Google’s machine learning system TensorFlow is also free to use for everybody.
  • Microsoft - In December 2016, Microsoft Ventures launched a new fund for AI startups. Since then, Microsoft Ventures has co-led funding of two artificial intelligence startups, Agolo and Bonsai. Angolo uses AI to create summaries of information, in real-time, while Bonsai enables the automated management of machine learning algorithms. Microsoft’s Skype also offers machine learning real-time translations.
  • IBM - IBM is very well noted for its Watson computer, one that is able to answer questions posed in natural language - winning the US quiz show Jeopardy in 2011, after outperforming its human counterparts.

These are just some of the largest companies that currently employ machine learning specialists. Some other recognisable names which are leading the drive for machine learning implementation include: Baidu, Twitter, Intel, Apple and Qubit.

Looking at these company names, it may be tempting to think that it is only technology companies that are developing their own artificial intelligence and machine learning systems. In actual fact, machine learning is starting to encroach on a lot of industries spanning from engineering to consulting. They include companies like Jaguar Land Rover, Tesla, Atkins, PwC, and the NHS.

The opportunities that machine learning offers are incredible, and it is well worth your time exploring them all and finding just the one for you.

Resources

The resources listed below are here to help you on your machine learning journey, varying from tutorials, courses, and latest news.

Organisations

There are a handful of well-known organisations that are dedicated to furthering AI research and development. Below are the ones with websites/blogs and Twitter accounts.

  • Google Research
  • AWS AI
  • Facebook AI Research
  • Microsoft Research
  • Baidu Research
  • IntelAI
  • AI2
  • Partnership on AI

Video courses

There are a huge number of courses available on the internet for self-studying machine learning, with a good few being free. The following courses are all free and should keep you busy for months:

  • Coursera - Machine Learning (Andrew Ng)
  • Coursera - Neural Networks for Machine Learning (Geoffrey Hinton)
  • Udacity - Intro to Machine Learning (Sebastian Thrun)
  • Udacity - Machine Learning (Georgia Tech)
  • Udacity - Deep Learning (Vincent Vanhoucke)
  • Machine Learning (mathematicalmonk)
  • Practical Deep Learning for Coders (Jeremy Howard & Rachel Thomas)
  • Stanford CS231n - Convolutional Neural Networks for Visual Recognition (Winter 2016)
  • Stanford CS224n - Natural Language Processing with Deep Learning (Winter 2017)
  • Oxford Deep NLP 2017 (Phil Blunsom et al.)
  • Reinforcement Learning (David Silver)
  • Practical Machine Learning Tutorial with Python (sentdex)

YouTube

There are a variety of channels on YouTube that regularly post content related to machine learning.

  • Sentdex (225K subscribers, 21M views)
  • Siraj Raval (140K subscribers, 5M views)
  • Two Minute Papers (60K subscribers, 3.3M views)
  • DeepLearning.TV (42K subscribers, 1.7M views)
  • Data School (37K subscribers, 1.8M)

Blogs

  • Andrej Karpathy Twitter (69K followers)
  • i am trask Twitter (14K followers)
  • Christopher Olah Twitter (13K followers)
  • Top Bots Twitter (11K followers)
  • WildML Twitter (10K followers)

Books

There are numerous books that cover all the various aspects of machine learning, deep learning, and artificial intelligence. The following ones are free ones that you can simply download from the web:

  • Understanding Machine Learning From Theory to Algorithms (Shai Shalev-Shwartz & Shai Ben-David)
  • Machine Learning Yearning (Andrew Ng)
  • A Course in Machine Learning (Hal Daumé III)
  • Machine Learning (Abdelhamid Mellouk)
  • Neural Networks and Deep Learning (Michael Nielsen)

Github

A lot of newer projects in artificial intelligence and machine learning are typically open-source and freely available to have a look at. The following repositories may be worth investigating:

  • Machine Learning (6K repos)
  • Deep Learning (3K repos)
  • Neural Network (1K repos)
  • Tensorflow (2K repos)
  • NLP (1K repos)

Newsletters

If you want to stay up-to-speed with the latest news and research, there are a growing number of weekly newsletters you can choose from. Most of them cover the same stuff, so you’ll only need a couple to stay current.

  • The Exponential View
  • Al Weekly
  • Deep Hunt
  • O’Reilly Artificial Intelligence Newsletter
  • Machine Learning Weekly

Websites

There are a multitude of websites out there that cover the various aspects of machine learning. Listed below are some of the more useful ones:

  • Elements of ai - A course designed to help you gain a better understanding of AI systems and how they work
  • Machine Learning Mastery - Useful tips and advice on your machine learning projects, along with informative blog posts
  • Kaggle - A place to learn, practice and compete with your machine learning skills
  • Hacker Rank - Test and improve your coding skills on this website that employers often use as a metric in determining your coding proficiency
  • Code Academy - Learn - If you’re a complete beginner to the programming world, this website does a good job of getting you up to scratch in your programming language of choice
  • Stack Overflow - A forum and place of discussion for developers, amateur hobbyists, and professionals where you can ask for help on your coding problems and discuss the latest machine learning news.

Colleges

Professional Services