If you want to learn how to build artificial intelligence systems, the first step is simple: forget all about artificial intelligence. Instead focus your attention on machine learning. That way, you can be sure you’re in the domain of the practical rather than the domain of hype.
Okay, this position might sound a little too dramatic. But there are a number of jokes doing the rounds on Twitter along these lines. Mat Velloso, an adviser to Satya Nadella at Microsoft, wrote late last year that “if it’s written in Python, it’s machine learning. If it’s written in PowerPoint, it’s probably AI.”
Difference between machine learning and AI:
If it is written in Python, it's probably machine learning
If it is written in PowerPoint, it's probably AI
— Mat Velloso (@matvelloso) November 23, 2018
There are similar jokes that focus on the use of the different words depending on whether you’re talking to investors or colleagues – either way, it’s clear that if you’re starting to explore artificial intelligence and machine learning, understanding what’s important and what you can ignore will help you to get a better view on where you need to go as your learning journey unfolds.
So, once you understand that artificial intelligence is merely the word describing the end goal we’re trying to achieve, and machine learning is a means of achieving that goal, you can begin to start trying to develop intelligent systems yourself.
Clearly, a question will keep cropping up: where next? Well, this post should go some way to helping you.
Do you want to learn artificial intelligence? Read Packt’s extensive Learning Path Python: Beginner’s Guide to Artificial Intelligence.
For a more advanced guide, check out Python: Advanced Guide to Artificial Intelligence.
The basics of machine learning
If you want to build artificial intelligence, you need to start by learning the basics of machine learning. Follow these steps:
- Get to grips with the basics of Python and core programming principles – if you’re reading this, you probably know enough to begin, but if you don’t there are plenty of resources to get you started. (We suggest you start with Learning Python)
- Make sure you understand basic statistical principles – machine learning is really just statistics, automated by code.
Venturing further into machine learning and artificial intelligence
The next step builds on those foundations. This is where you begin thinking about the sorts of problems you want to solve and the types of questions you want to ask.
This is actually a creative step where you set the focus for your project – whatever kind of pattern or relationship you want to understand, this is where you can do just that.
One of the difficulties, however, is making sure you have access to the data you need to actually do what you want. Sometimes, you might need to do some serious web scraping or data mining to get hold of the data you want – that’s beyond the scope of this piece, but there are plenty of resources out there to help you do just that.
But there are also plenty of ready made data sets available for you to use in your machine learning project in whichever way you wish. You can find 50 data sets for machine learning here, all for a range of different uses.
(If you’re trying machine learning for the first time, we’d suggest using one of these data sets and playing around to save you collecting data).
Getting to grips with data modelling
Although machine learning modelling is the next step in the learning journey, arguably it should happen at the same time as you’re thinking about both the questions you’re asking and the different data sources you might require. This is because the model – or models – you decide to employ in your project will follow directly from the problems you’re trying to tackle and, indeed, the nature and size of the data sets you eventually use.
It’s important to note that no model is perfect. There’s a rule in the data science and machine learning world called the ‘no free lunch’ rule – basically, there’s no model that offers a short cut. There will always be trade offs between different algorithms in how they perform in various factors. To manage this issue you need to understand what’s important to you – maybe you’re not worried about speed, for example? Or perhaps accuracy isn’t crucial, you just want to build something that runs quickly.
Broadly, the models you use will fall into these categories: supervised or unsupervised.
Supervised machine learning algorithms
Supervised learning is where you have an input and an output and you use an algorithm to better understand the relationship between the two. Ultimately, you want to get to a point when your machine learning system understands the relationship in such a way that you could predict an output.
Supervised learning can also be broken down into regression or classification. Regression is where the output is a number or value, while classification is a specific category, or descriptor.
Some algorithms can be used for both regression and classification problems, such as random forest, while others can be used for one or the other. For example, support vector machines can be used for classification problems, while linear regression algorithms can, as the name indicates, be used for regression problems.
Unsupervised machine learning algorithms
Unsupervised machine learning contrasts from supervised machine learning in that there are no outputs on which the algorithm works. If supervised learning ‘tells’ the algorithm the answers from which it then needs to understand how those answers were generated, unsupervised learning aims to understand the underlying structure within a given set of data. There aren’t any answers to guide the machine learning algorithm.
As above, there are a couple of different approaches to unsupervised machine learning: clustering and association. Clustering helps you understand different groups within a set of data, while association is simply a way of understanding relationship or rules: if this happens, then this will happen too.
Okay, so what about artificial intelligence?
By now you will have a solid foundation of knowledge in machine learning. However, this is only the tip of the iceberg – machine learning at its most basic provides a very limited form of artificial intelligence.
Advances in artificial intelligence are possible through ever more powerful algorithms – artificial or deep neural networks – that have additional layers of complexity (quite literally additional neurons).
These are the algorithms that are used to power sophisticated applications and tools. From image recognition to image identification, through to speech to text and machine translation, the applications of these algorithms are radically transforming our relationship with technology.
But you probably already knew that. The important question is how you actually go about doing it.
Well, luckily in many ways, if you know the core components of machine learning, more advanced elements of deep learning and artificial neural networks shouldn’t actually be as complex as you might at first think.
There are, however, a couple of considerations that become more important as you move deeper into deep learning.
Hardware considerations for deep learning
One of the most important considerations for any deep learning projects you want to try is the hardware you’re using. For a basic machine learning problem, this shouldn’t be an issue. However, but as the computations on which your deep learning system is working become more extensive, the hardware you use to run will become a challenge you need to resolve.
This is too big an issue to explore here, but you can look in detail at our comparison of different processors here.
Getting started with deep learning frameworks
One of the reasons the whole world is talking about artificial intelligence is because it’s easier to do. And this is thanks, in part, to the growth of new deep learning frameworks that make it relatively straightforward to build complex deep learning models.
The likes of TensorFlow, Keras, and PyTorch are all helping engineers and data scientists build deep learning models of considerable sophistication. Although they each have their own advantages, and it’s well worth spending some time comparing them, there’s certainly a lot to be said for simply getting started with them yourself.
What about cloud’s impact on machine learning and artificial intelligence?
An interesting development in the machine learning space is the impact of cloud based solutions. The likes of Azure, AWS and Google Cloud Platform are all offering a number of different services and tools from within their overarching cloud products that make performing machine and deep learning tasks much easier.
While this is undoubtedly going to be an important development, and, indeed, one you may have encountered already, there is no substitute for simply getting your hands dirty with the data and seeing how the core principles behind machine learning and artificial intelligence actually work.
Conclusion: Don’t be scared, take machine learning and artificial intelligence one step at a time
Clearly, with so much hype around artificial intelligence its easy to get stuck before you begin. However, by focusing on the core principles and practical application of machine learning you will be well on your way to helping drive the future of artificial intelligence.
- Learn artificial intelligence from scratch with Python: Beginner’s Guide to Artificial Intelligence.
- Dive deeper into deep learning and artificial intelligence with Python: Advanced Guide to Artificial Intelligence.