Book Image

Hands-On Meta Learning with Python

By : Sudharsan Ravichandiran
Book Image

Hands-On Meta Learning with Python

By: Sudharsan Ravichandiran

Overview of this book

Meta learning is an exciting research trend in machine learning, which enables a model to understand the learning process. Unlike other ML paradigms, with meta learning you can learn from small datasets faster. Hands-On Meta Learning with Python starts by explaining the fundamentals of meta learning and helps you understand the concept of learning to learn. You will delve into various one-shot learning algorithms, like siamese, prototypical, relation and memory-augmented networks by implementing them in TensorFlow and Keras. As you make your way through the book, you will dive into state-of-the-art meta learning algorithms such as MAML, Reptile, and CAML. You will then explore how to learn quickly with Meta-SGD and discover how you can perform unsupervised learning using meta learning with CACTUs. In the concluding chapters, you will work through recent trends in meta learning such as adversarial meta learning, task agnostic meta learning, and meta imitation learning. By the end of this book, you will be familiar with state-of-the-art meta learning algorithms and able to enable human-like cognition for your machine learning models.
Table of Contents (17 chapters)
Title Page
About Packt


We've seen how MAML helps us to find the optimal initial model parameter so that we can generalize it to many other related tasks. We've also seen how MAML is used in supervised and reinforcement learning settings. But how can we apply MAML in an unsupervised learning setting where we don't have labels for our data points? So, we introduce a new algorithm called CACTUS short for Clustering to Automatically Generate Tasks for Unsupervised Model Agnostic Meta Learning.

Let's say we have a dataset

containing unlabeled examples:

. Now, what can we do with this dataset? How can we apply MAML over this dataset? First, what do we need for training using MAML? We need a distribution over tasks and we train our model by sampling a batch of tasks and find the optimal model parameter. A task should contain a feature along with its label. But how can we generate a task from our unlabeled dataset?

Let's see how can we generate tasks using CACTUS in the next section. Once we generate the tasks,...