|
| 1 | +title: 'Tutorial 12: Meta-Learning - Learning to Learn' |
| 2 | +author: Phillip Lippe |
| 3 | +created: 2021-08-21 |
| 4 | +updated: 2023-03-14 |
| 5 | +license: CC BY-SA |
| 6 | +tags: |
| 7 | +- Few-shot-learning |
| 8 | +- MAML |
| 9 | +- ProtoNet |
| 10 | +description: 'In this tutorial, we will discuss algorithms that learn models which |
| 11 | + can quickly adapt to new classes and/or tasks with few samples. |
| 12 | +
|
| 13 | + This area of machine learning is called _Meta-Learning_ aiming at "learning to learn". |
| 14 | +
|
| 15 | + Learning from very few examples is a natural task for humans. In contrast to current |
| 16 | + deep learning models, we need to see only a few examples of a police car or firetruck |
| 17 | + to recognize them in daily traffic. |
| 18 | +
|
| 19 | + This is crucial ability since in real-world application, it is rarely the case that |
| 20 | + the data stays static and does not change over time. |
| 21 | +
|
| 22 | + For example, an object detection system for mobile phones trained on data from 2000 |
| 23 | + will have troubles detecting today''s common mobile phones, and thus, needs to adapt |
| 24 | + to new data without excessive label effort. |
| 25 | +
|
| 26 | + The optimization techniques we have discussed so far struggle with this because |
| 27 | + they only aim at obtaining a good performance on a test set that had similar data. |
| 28 | +
|
| 29 | + However, what if the test set has classes that we do not have in the training set? |
| 30 | +
|
| 31 | + Or what if we want to test the model on a completely different task? |
| 32 | +
|
| 33 | + We will discuss and implement three common Meta-Learning algorithms for such situations. |
| 34 | +
|
| 35 | + This notebook is part of a lecture series on Deep Learning at the University of |
| 36 | + Amsterdam. |
| 37 | +
|
| 38 | + The full list of tutorials can be found at https://uvadlc-notebooks.rtfd.io. |
| 39 | +
|
| 40 | + ' |
| 41 | +requirements: |
| 42 | +- torchvision |
| 43 | +- matplotlib |
| 44 | +- seaborn |
| 45 | +- lightning>=2.0.0 |
| 46 | +- tensorboard |
| 47 | +- scipy |
| 48 | +accelerator: |
| 49 | +- CPU |
| 50 | +- GPU |
| 51 | +environment: |
| 52 | +- matplotlib==3.8.4 |
| 53 | +- numpy==1.26.4 |
| 54 | +- ipython==8.16.1 |
| 55 | +- torch==2.0.1 |
| 56 | +- torchmetrics==1.2.1 |
| 57 | +- torchvision==0.15.2 |
| 58 | +- lightning==2.3.3 |
| 59 | +- tensorboard==2.17.0 |
| 60 | +- seaborn==0.13.2 |
| 61 | +- urllib3==2.2.2 |
| 62 | +- pytorch-lightning==2.0.9.post0 |
| 63 | +- setuptools==69.0.3 |
| 64 | +- scipy==1.14.0 |
| 65 | +published: '2024-07-19T20:22:41.980859' |
0 commit comments