Автор: Дмитрий Раков Редактура: Андрей Шадриков
Фундаментальный вопрос при анализе процесса обучения людей — процесс изучения функционирования памяти. Как отмечают исследователи, люди могут достаточно быстро запоминать новые концепты и обьекты, которые они увидели лишь однажды. В отличие от человека, процесс запоминания концептов (обучения) нейронной сетью строится на процедуре с множеством итераций обучения и несопоставимо большим количеством примеров. Это несоответствие породило область исследований, которая отвечает за построение методов решения поставленных задач при обучении на малом количестве примеров. Такими задачами являются Few-shot learning, One shot learning и Zero shot learning. В статье мы разберем первую задачу и методы, которые были разработаны для ее решения.
Few-shot learning — это задача обучения по нескольким размеченным примерам. Мы настраиваем параметры нейронной сети так, чтобы при использовании только К размеченных примеров мы получили модель, реализующую классификацию на С классов. Такую постановку задачи описывают как C-way K-shot классификацию. Кроме K размеченных примеров для каждого целевого класса у нас также есть набор данных **A.**Он помогает сделать процедуру предобучения нашей модели.
С точки зрения данных, как и в классическом (supervised) подходе, мы располагаем тренировочной и тестовой выборкой.
Главное отличие few-shot learning: мы представляем наши данные в виде трех основных наборов — A (auxiliary/base set), S (support set), Q (query set).
$$ \mathcal{A} = \{\mathbf{X}_i, \mathbf{y}i\}{i=1}^{N} - набор\ базовых\ классов $$
$$ \mathcal{S} = \{\mathbf{S}_1,... \mathbf{S}_n\} = \{\mathbf{x}_i, \mathbf{y}i\}{i=1}^{CK} - набор\ опорных\ примеров \\ \mathcal{C} - количество\ целевых\ классов \\ \mathcal{K} - количество\ опорных\ примеров\\ $$
$$ \mathcal{Q}=\{\mathbf{ x}_i,\mathbf{y}i\}{i=1}^{CM} - тестовый\ набор \\ \mathcal{M} - количество \ тестовых\ примеров $$
Таким образом, мы получаем разделение данных в виде следующей визуальной схемы:
Рисунок 1. Схема наборов данных: Meta-training — набор A, Meta-testing — наборы S и Q
Техника эпизодического обучения (episodic training) — техника, которая используется для обучения модели при подобном представлении данных. В рамках few-shot подхода мы переходим от классического обучения на наборе примеров c соответствующими метками к обучению на наборе задач. Это можно описать следующим образом:
$$ \mathcal{T} - симулируемая\ задача\\ \mathcal{A_{s}} - набор\ опорных\ примеров,\ семплированных\ из\ \mathcal{A} \\ \mathcal{A_{q}} - набор\ тестовых\ примеров\ из\ \mathcal{A} $$
Для решения задачи модель обучается на опорном наборе данных, чтобы корректно предсказывать метки тестовых примеров. В классическом варианте обучение проходит с использованием случайно сформированных минибатчей. При few-shot парадигме минибатч состоит из M задач:
$$ \{\mathcal{T} = <\mathbf{A_{S}^i}, \mathbf{A^{i}{Q}} >\}{i=1}^{M}\in \mathcal{p}(\mathcal{T}) - семплированный\ минибатч,\\ где\ \mathcal{p}(\mathcal{T}) - распределение\ задач $$
Рисунок 2. Распределение задач при few-shot подходе