Machine learning, which is a subset of Artificial Intelligence (AI), has had a major influence on nearly every field you can imagine and can solve a wide variety of problems and tasks. Do you want to detect cancer better? You can train an image classifier to inspect mammograms. Do you want to communicate with people in other languages? Machine translation will help you. From ambitious projects such as self-driving cars and astronomical discoveries to fixing minor annoyances such as email spam, machine learning has taken the world by storm, and those who understand what it can do and how to build machine learning systems will be at the forefront of human advancement.
At the heart of any machine learning project is data. Many people, on first coming across the concept of machine learning, assume that it is possible to take mounds of data, shove it into a machine, and have the machine autonomously learn. But it's not so simple. Instead, machines need meticulously structured, organized, and clean data, often in huge quantities. The more data there is, the more difficult it becomes to store, process, and analyze the data, and it is therefore vital to optimize data storage at all stages of storage and usage.
This is a problem. How can we build efficient machine learning systems that do not waste our time or resources?
This course will show you practical real-world examples of how to do exactly that. You will learn how to make your data work for you as efficiently as possible, often by example.
We assume that you are no novice at working with data and that you understand and have used various filesystems, file formats, databases, and storage solutions for digital data. In this book, we will focus specifically on data for machine learning and show how this differs from storing general-purpose data.
Machine learning comes in many different forms, but concepts from linear algebra are core to many of the most important machine learning algorithms. In classical computer science, the focus is often on data structures such as arrays, linked lists, hash tables, and trees. In machine learning, while these structures are still important, you will more often need to work with data in the form of vectors, matrices, and tensors.
Because of this focus on data structures from linear algebra, other components of storage solutions have nuances too. Some processors are optimized at the hardware level for vectorized operations. Some file formats handle this kind of data better too, and there are specialized data structures to store data in this form efficiently as well.