August 2018 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 (left), speech processing and natural language processing (middle left), neuroscience research (middle right), and applications in computer vision (right). 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
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
August 2018
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
(left), speech processing and natural language processing (middle left), neuroscience
research (middle right), and applications in computer vision (right).
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
August 2018
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.
2. 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.
3. 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.
August 2018
4. 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.
5. 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
Python
(57|33)
C/C++
(43|19)
Java
(41|16)
R
(31|5)
(% Usage | % Prioritisation)
August 2018
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 come 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
August 2018
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,