Мета-обучение — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Новая страница: «<b>Мета-обучение</b> - подход, повзоляющий определять оптимальный алгоритм (иногда, вместе…»)
 
(Замена - на {{---}})
Строка 1: Строка 1:
<b>Мета-обучение</b> - подход, повзоляющий определять оптимальный алгоритм (иногда, вместе с параметрами к нему) для конкретной задачи. Основная идея мета-обучения - свети задачу выбора алгоритма к задаче обучения с учителем: задачи описываются мета-фичами. Мета-фича описывает свойство задачи - напмример, разрежен ли датасет или нет.
+
<b>Мета-обучение</b> {{---}} подход, повзоляющий определять оптимальный алгоритм (иногда, вместе с параметрами к нему) для конкретной задачи. Основная идея мета-обучения {{---}} свети задачу выбора алгоритма к задаче обучения с учителем: задачи описываются мета-фичами. Мета-фича описывает свойство задачи - напмример, разрежен ли датасет или нет.
  
 
От хорошей модели ожидается хорошая адаптируемость или генерализуемость новых задач и окружений, с которыми модель не сталкивалась во время обучения.
 
От хорошей модели ожидается хорошая адаптируемость или генерализуемость новых задач и окружений, с которыми модель не сталкивалась во время обучения.
Строка 33: Строка 33:
 
\end{aligned}
 
\end{aligned}
  
В few-shot классификации цель - уменьшить ошибку предсказания на неразмеченных данных с данным train set для "быстрого обучения". Чтобы ускорить процесс обучения, сделаем следующее:
+
В few-shot классификации цель {{---}} уменьшить ошибку предсказания на неразмеченных данных с данным train set для "быстрого обучения". Чтобы ускорить процесс обучения, сделаем следующее:
 
# возьмем подмножество меток, $L\subset\mathcal{L}$
 
# возьмем подмножество меток, $L\subset\mathcal{L}$
 
# возьмем train set $S^L⊂D$ и train batch $B^L⊂D$. Оба содержат только данные с метками из подмножества с пункта 1:
 
# возьмем train set $S^L⊂D$ и train batch $B^L⊂D$. Оба содержат только данные с метками из подмножества с пункта 1:
Строка 74: Строка 74:
 
\end{aligned}
 
\end{aligned}
  
$c_t$ - параметры сети $\theta_t$, $\tilde{c}_t = -\nabla_{\theta_{t-1}}\mathcal{L}_t$ при $f_t$ = 1.
+
$c_t$ {{---}} параметры сети $\theta_t$, $\tilde{c}_t = -\nabla_{\theta_{t-1}}\mathcal{L}_t$ при $f_t$ = 1.
  
 
$f_t$ = 1, $\tilde{c}_t = -\nabla_{\theta_{t-1}}\mathcal{L}_t$ - не оптимальные значения, их изменение может оказаться полезным, если вы попали в неудачный локальный минимум.
 
$f_t$ = 1, $\tilde{c}_t = -\nabla_{\theta_{t-1}}\mathcal{L}_t$ - не оптимальные значения, их изменение может оказаться полезным, если вы попали в неудачный локальный минимум.
Строка 89: Строка 89:
 
<h3>REPTILE</h3>
 
<h3>REPTILE</h3>
  
Reptile - относительно простой алгоритм мета-обучения, похожий на MAML, например, тем, что оба используют мета-оптимизацию через градиентый спуск и оба не чувствительны к модели.
+
Reptile {{---}} относительно простой алгоритм мета-обучения, похожий на MAML, например, тем, что оба используют мета-оптимизацию через градиентый спуск и оба не чувствительны к модели.
  
 
# сэмплируем задачу
 
# сэмплируем задачу
Строка 95: Строка 95:
 
# сдвигаем веса модели к новым параметрам.
 
# сдвигаем веса модели к новым параметрам.
  
$\text{SGD}(\mathcal{L}_{\tau_i}, \theta, k)$ выполняет стохастический градиентный спуск на $k$ шагов на лоссе $\mathcal{L}_{\tau_i}$, начиная с параметра $\theta$ и возвращает конечный вектор параметров. Градиент reptile определяется как $(\theta - W)/\alpha$, где $\alpha$ - размер шага, используемый функцией $SGD$.
+
$\text{SGD}(\mathcal{L}_{\tau_i}, \theta, k)$ выполняет стохастический градиентный спуск на $k$ шагов на лоссе $\mathcal{L}_{\tau_i}$, начиная с параметра $\theta$ и возвращает конечный вектор параметров. Градиент reptile определяется как $(\theta - W)/\alpha$, где $\alpha$ {{---}} размер шага, используемый функцией $SGD$.
  
 
   <font color=green>// Algorithm REPTILE, batched version</font>
 
   <font color=green>// Algorithm REPTILE, batched version</font>
Строка 112: Строка 112:
 
Альтернативный подход сперва узнать оптимальные гипермараметры, а потом через приращение производительности определить важность каждого из гиперпараметров. Это и было сделано в лабе OpenML, провели около 500 000 экспериментов на 6 алгоритмах и 38 датасетах. Стандартные значения изучались вместе для всех гиперпараметров алгоритма посредством обучения суррогатных моделей для этого алгоритма на большом числе задач. После того, как уже проверены многие варинаты конфигураций, выбирается такая, которая минимизирует ??? для всех задач, становится стандартной.Далее определяется важность каждого из гиперпараметров. Чем больше меняется приращение производительности, тем более важный гиперпараметр мы изменяем.
 
Альтернативный подход сперва узнать оптимальные гипермараметры, а потом через приращение производительности определить важность каждого из гиперпараметров. Это и было сделано в лабе OpenML, провели около 500 000 экспериментов на 6 алгоритмах и 38 датасетах. Стандартные значения изучались вместе для всех гиперпараметров алгоритма посредством обучения суррогатных моделей для этого алгоритма на большом числе задач. После того, как уже проверены многие варинаты конфигураций, выбирается такая, которая минимизирует ??? для всех задач, становится стандартной.Далее определяется важность каждого из гиперпараметров. Чем больше меняется приращение производительности, тем более важный гиперпараметр мы изменяем.
  
Если мы хотим предоставить рекомендации для конкретной задачи $t_{new}$, нам нужна дополнительная информация о том, насколько $t_{new}$ похожа на предыдущие задачи $t_j$. Первый способ - посчитать число рекомендованных конфигураций для $t_new$, yielding новый эвиденс $\mathbf{P}_{new}$. Если позже мы будем наблюдать, что вычисления $P_{i,new}$ соответствуют $P_{i, j}$, то $t_{j}$ и $t_{new}$ могут быть очень похожими. Мы можем применить это знания для обучения meta-learner'a который предскаывает множество рекомендуемых конфигураций $\Theta^{*}_{new}$ for $t_{new}$.
+
Если мы хотим предоставить рекомендации для конкретной задачи $t_{new}$, нам нужна дополнительная информация о том, насколько $t_{new}$ похожа на предыдущие задачи $t_j$. Первый способ {{---}} посчитать число рекомендованных конфигураций для $t_new$, yielding новый эвиденс $\mathbf{P}_{new}$. Если позже мы будем наблюдать, что вычисления $P_{i,new}$ соответствуют $P_{i, j}$, то $t_{j}$ и $t_{new}$ могут быть очень похожими. Мы можем применить это знания для обучения meta-learner'a который предскаывает множество рекомендуемых конфигураций $\Theta^{*}_{new}$ for $t_{new}$.
 
Более того, можно пойти дальше и добавить $\Theta^{*}_{new}$ в $P_new$ и перейти к следующей итерации и выяснять какие еще задачи схожи друг с другом.
 
Более того, можно пойти дальше и добавить $\Theta^{*}_{new}$ в $P_new$ и перейти к следующей итерации и выяснять какие еще задачи схожи друг с другом.
  
Строка 119: Строка 119:
  
 
<h3>Суррогатные модели</h3>
 
<h3>Суррогатные модели</h3>
Более гибкий способ передать информацию - построить суррогатную модель $s_{j}(\theta_{i}) = P_{i,j}$ для всех предшествующих задач $t_{j}$, обученную с использованием всех доступных $\mathbf{P}$. Можно определить "похожесть" задач в терминах ошибок между $s_{j}(\theta_{i})$ и $P_{i,new}$: если суррогатная модель для $t_{j}$ может генерировать точные предсказания для $t_{new}$, тогда такие задачи весьма похожи. Обычно это делается в комбинации с Байесовской оптимизацией для определения следующей $\theta_{i}$.
+
Более гибкий способ передать информацию {{---}} построить суррогатную модель $s_{j}(\theta_{i}) = P_{i,j}$ для всех предшествующих задач $t_{j}$, обученную с использованием всех доступных $\mathbf{P}$. Можно определить "похожесть" задач в терминах ошибок между $s_{j}(\theta_{i})$ и $P_{i,new}$: если суррогатная модель для $t_{j}$ может генерировать точные предсказания для $t_{new}$, тогда такие задачи весьма похожи. Обычно это делается в комбинации с Байесовской оптимизацией для определения следующей $\theta_{i}$.
  
 
Так же можно обучать суррогатные модли на Гауссовских процессах (GP) для каждой предыдущей задачи и еще одну для $t_{new}$ и объединить их во взвешенную и нормализованную сумму, с медианой $\mu$ определенной как взвшенная сумма $\mu_{j}$ полученных из задач $t_{j}$. Веса $\mu_{j}$ считаются через Nadaraya-Watson kernel-weighted average, где каждая задача представлена вектором relative landmarks и Epanechnikov quadratic kernel используется для определения похожести между векторами relative landmarks для $t_{j}$ и $t_{new}$. Чем больше $t_{j}$ похожа на  $t_{new}$, тем больше получится вес $s_{j}$, увеличивающий влияние суррогатной модели для $t_{j}$.
 
Так же можно обучать суррогатные модли на Гауссовских процессах (GP) для каждой предыдущей задачи и еще одну для $t_{new}$ и объединить их во взвешенную и нормализованную сумму, с медианой $\mu$ определенной как взвшенная сумма $\mu_{j}$ полученных из задач $t_{j}$. Веса $\mu_{j}$ считаются через Nadaraya-Watson kernel-weighted average, где каждая задача представлена вектором relative landmarks и Epanechnikov quadratic kernel используется для определения похожести между векторами relative landmarks для $t_{j}$ и $t_{new}$. Чем больше $t_{j}$ похожа на  $t_{new}$, тем больше получится вес $s_{j}$, увеличивающий влияние суррогатной модели для $t_{j}$.
Строка 128: Строка 128:
  
 
<h3>Обучение на свойствах задачи (learning on task properties)</h3>
 
<h3>Обучение на свойствах задачи (learning on task properties)</h3>
Каждая задача $t_{j} \in T$ может быть описана вектором $m(t_j) = (m_{j,1}, ...,m_{j,K})$ из $K$ мета-фичей $m_{j, k} \in M$ $M$ - множество мета-фичей. Можно определить меру "похожести" задач, основанную, например, на Евклидовом расстоянии между $m(t_i)$ и $m(t_j)$, тогда можно будет использовать информацию из наиболее похожей задачи на новую задачу $t_{new}$. Более того, используя предшествующие вычисления $\textbf{P}$ можно обучить meta-learner'a $L$ предсказывать производительность $P_{i, new}$ конфигураций $\theta_{i}$ на новых задачах $t_{new}$.
+
Каждая задача $t_{j} \in T$ может быть описана вектором $m(t_j) = (m_{j,1}, ...,m_{j,K})$ из $K$ мета-фичей $m_{j, k} \in M$ $M$ {{---}} множество мета-фичей. Можно определить меру "похожести" задач, основанную, например, на Евклидовом расстоянии между $m(t_i)$ и $m(t_j)$, тогда можно будет использовать информацию из наиболее похожей задачи на новую задачу $t_{new}$. Более того, используя предшествующие вычисления $\textbf{P}$ можно обучить meta-learner'a $L$ предсказывать производительность $P_{i, new}$ конфигураций $\theta_{i}$ на новых задачах $t_{new}$.
  
 
$L: \Theta \times M \rightarrow \textbf{P}$
 
$L: \Theta \times M \rightarrow \textbf{P}$

Версия 02:03, 26 января 2019

Мета-обучение — подход, повзоляющий определять оптимальный алгоритм (иногда, вместе с параметрами к нему) для конкретной задачи. Основная идея мета-обучения — свети задачу выбора алгоритма к задаче обучения с учителем: задачи описываются мета-фичами. Мета-фича описывает свойство задачи - напмример, разрежен ли датасет или нет.

От хорошей модели ожидается хорошая адаптируемость или генерализуемость новых задач и окружений, с которыми модель не сталкивалась во время обучения.

Такими задачами являются:

  • Классификатор, тренированный на изображениях собак и велосипедов, после некоторых показанных ему кошек, смог определить, есть ли на новой картинке кошка
  • Игровой бот, способный быстро обучиться новой игре
  • Робот, выполняющий задачу на пригорке во время теста даже если он тренировался на ровной поверхности

Ограничения - No free lunch teorem [Wolpert and Macready, 1996; Giraud-Carrier and Provost, 2005]

Simple view

Хорошая модель мета-обучения должна быть обучена на множестве задач и оптимизирована для лучшей производительности на нескольких задачах, включая такие, с которыми модель не сталкивалась ранее. Каждой задаче соответствует датасет $\mathcal{D}$, содержащий и векторы фичей и правильную разметку. Оптимальные параметры модели:

\begin{aligned} \theta^* = \arg\min_\theta \mathbb{E}_{\mathcal{D}\sim p(\mathcal{D})} [\mathcal{L}_\theta(\mathcal{D})] \end{aligned}

Очень похоже на обычную задачу машинного обучения, только один датасет принимается за один сэмпл данных.

Few-shot классификатор конкретизация мета-обучения в области обучения с учителем. Датасет $\mathcal{D}$ делится на две части: $\mathcal{D}=\langle S, B\rangle$, train set $S$ и test set $B$. Часто принимается k-shot N-class задача - train set содержит $k$ размеченных примеров для каждого из $N$ классов. Датасет $\mathcal{D}$ содержит пары фичей и меток, $\mathcal{D} = \{(\mathbf{x}_i, y_i)\}$ и каждая метка принадлежит известному множеству меток $\mathcal{L}$. Скажем, наш классификатор $f_θ$ с параметром $θ$ показывает вероятность принадлежности точки из данных к классу $y$ при векторе фичей $x$, $Pθ(y|x)$ Оптимальные параметры должны максимизировать вероятность верных меток среди нескольких training sets $B⊂\mathcal{D}$:

\begin{aligned} \theta^* &= {\arg\max}_{\theta} \mathbb{E}_{(\mathbf{x}, y)\in \mathcal{D}}[P_\theta(y \vert \mathbf{x})] &\\ \theta^* &= {\arg\max}_{\theta} \mathbb{E}_{B\subset \mathcal{D}}[\sum_{(\mathbf{x}, y)\in B}P_\theta(y \vert \mathbf{x})] & \scriptstyle{\text{; trained with mini-batches.}} \end{aligned}

В few-shot классификации цель — уменьшить ошибку предсказания на неразмеченных данных с данным train set для "быстрого обучения". Чтобы ускорить процесс обучения, сделаем следующее:

  1. возьмем подмножество меток, $L\subset\mathcal{L}$
  2. возьмем train set $S^L⊂D$ и train batch $B^L⊂D$. Оба содержат только данные с метками из подмножества с пункта 1:

\begin{aligned} L, y \in L, \forall (x, y) \in S^L, B^L \end{aligned}

  1. Множество $S^L$ подается на вход модели.
  2. Конечная оптимизация использует множество $B^L$ чтобы посчитать loss и обновить параметры модели через обратное распространение, так же, как это делается в обучении с учителем.

Можно представить каждую пару сэмплированного датасета $(S^L,B^L)$ как одну точку. Модель обучается таким образом, чтобыона могла обобщиться до других датасетов. Красным выделен дифф между обучением с учителем и мета-обучением.

\begin{aligned} \theta = \arg\max_\theta \color{red}{E_{L\subset\mathcal{L}}[} E_{\color{red}{S^L \subset\mathcal{D}, }B^L \subset\mathcal{D}} [\sum_{(x, y)\in B^L} P_\theta(x, y\color{red}{, S^L})] \color{red}{]} \end{aligned}

Идея в некоторой степени аналогична использованию предварительно обученной модели в классификации изображений (ImageNet) или в языковом моделировании (большие текстовые корпуса), когда доступен только ограниченный набор образцов данных для конкретной задачи. Мета-обучение идет еще на один шаг вперед, вместо того, чтобы подстраивать ее под одну задачу, она оптимизирует модель, чтобы она была хороша для многих задач.

Основанные на оптимизации

Модели глубокого обучения (deep learning) обучаются через обратное распространение градиентов. Тем не менее, оптимизация, основанная на градиентах не разрабатывалась для работы с небольшим количеством обучающих семплов, и не сходится за малое число оптимизационных шагов. Подход в мета-обучении, основанный на оптимизации как раз про это.

LSTM-meta-learner

Оптимизационный алгоитм может быть явно смоделирован. Ravi & Larochelle (2017) это и сделали и назвали его "meta-learner". Цель meta-learner'а - эффективно обновлять параметры learner'a используя небольшой train set так, чтобы learner мог быстро адаптироваться к новым задачам.

Пусть модель ученика будет $M_θ$, параметризованной $θ$, и meta-learner как $R_Θ$ с параметром $θ$, и функция потерь $\mathcal{L}$.

Обновление параметров learner'a во время $t$ c learning rate $\alpha_t$ (шаг градиентного спуска):

\begin{aligned} \theta_t = \theta_{t-1} - \alpha_t \nabla_{\theta_{t-1}}\mathcal{L}_t \end{aligned}

Обновление памяти ячейки LSTM выглядит так:

\begin{aligned} c_t = f_t \odot c_{t-1} + i_t \odot \tilde{c}_t = \theta_{t-1} - \alpha_t\nabla_{\theta_{t-1}}\mathcal{L}_t \end{aligned}

$c_t$ — параметры сети $\theta_t$, $\tilde{c}_t = -\nabla_{\theta_{t-1}}\mathcal{L}_t$ при $f_t$ = 1.

$f_t$ = 1, $\tilde{c}_t = -\nabla_{\theta_{t-1}}\mathcal{L}_t$ - не оптимальные значения, их изменение может оказаться полезным, если вы попали в неудачный локальный минимум.

\begin{aligned} f_t &= \sigma(\mathbf{W}_f \cdot [\nabla_{\theta_{t-1}}\mathcal{L}_t, \mathcal{L}_t, \theta_{t-1}, f_{t-1}] + \mathbf{b}_f) & \scriptstyle{\text{; как сильно мы забываем старые значения параметров.}}\\ i_t &= \sigma(\mathbf{W}_i \cdot [\nabla_{\theta_{t-1}}\mathcal{L}_t, \mathcal{L}_t, \theta_{t-1}, i_{t-1}] + \mathbf{b}_i) & \scriptstyle{\text{; соответствует рейту обучения на шаге t.}}\\ \tilde{\theta}_t &= -\nabla_{\theta_{t-1}}\mathcal{L}_t &\\ \theta_t &= f_t \odot \theta_{t-1} + i_t \odot \tilde{\theta}_t &\\ \end{aligned}

я ничего не понял..

REPTILE

Reptile — относительно простой алгоритм мета-обучения, похожий на MAML, например, тем, что оба используют мета-оптимизацию через градиентый спуск и оба не чувствительны к модели.

  1. сэмплируем задачу
  2. тренируемся на ней несколькими шагами градиентного спуска
  3. сдвигаем веса модели к новым параметрам.

$\text{SGD}(\mathcal{L}_{\tau_i}, \theta, k)$ выполняет стохастический градиентный спуск на $k$ шагов на лоссе $\mathcal{L}_{\tau_i}$, начиная с параметра $\theta$ и возвращает конечный вектор параметров. Градиент reptile определяется как $(\theta - W)/\alpha$, где $\alpha$ — размер шага, используемый функцией $SGD$.

 // Algorithm REPTILE, batched version
 Initialize $\theta$
 for $iteration = 1, 2,...$ do
   Sample tasks $\tau_1, \tau_2, ..., \tau_n$
   for $i = 1, 2, ..., n$ do
     Compute $W_i = \text{SGD}(\mathcal{L}_{\tau_i}, \theta, k)$
   end for
   Update $\theta \leftarrow \theta + \beta 1/n \sum (W_i - \theta)$
 end for

Определение множества конфигураций

Предшествующие выисления могут быть также использованы для изучения пространства более успешных конфигураций \theta\star. Более подходящие под задачу конфигурации могут серьезно ускорить поиск оптимальных моделей, это важно при ограниченных вычислительных рессурсах.

Альтернативный подход сперва узнать оптимальные гипермараметры, а потом через приращение производительности определить важность каждого из гиперпараметров. Это и было сделано в лабе OpenML, провели около 500 000 экспериментов на 6 алгоритмах и 38 датасетах. Стандартные значения изучались вместе для всех гиперпараметров алгоритма посредством обучения суррогатных моделей для этого алгоритма на большом числе задач. После того, как уже проверены многие варинаты конфигураций, выбирается такая, которая минимизирует ??? для всех задач, становится стандартной.Далее определяется важность каждого из гиперпараметров. Чем больше меняется приращение производительности, тем более важный гиперпараметр мы изменяем.

Если мы хотим предоставить рекомендации для конкретной задачи $t_{new}$, нам нужна дополнительная информация о том, насколько $t_{new}$ похожа на предыдущие задачи $t_j$. Первый способ — посчитать число рекомендованных конфигураций для $t_new$, yielding новый эвиденс $\mathbf{P}_{new}$. Если позже мы будем наблюдать, что вычисления $P_{i,new}$ соответствуют $P_{i, j}$, то $t_{j}$ и $t_{new}$ могут быть очень похожими. Мы можем применить это знания для обучения meta-learner'a который предскаывает множество рекомендуемых конфигураций $\Theta^{*}_{new}$ for $t_{new}$. Более того, можно пойти дальше и добавить $\Theta^{*}_{new}$ в $P_new$ и перейти к следующей итерации и выяснять какие еще задачи схожи друг с другом.

Relative landmarks

Первая мера для вычисления "похожести" задач вычисляла попарно разницу в производительности, так же называемую "relative landmarks" $RL_{a,b,j} = P_{a,j} - P_{b,j}$ между двумя конфигурациями $\theta_{a}$ и $\theta_{b}$ на конкретной задаче $t_{j}$.

Суррогатные модели

Более гибкий способ передать информацию — построить суррогатную модель $s_{j}(\theta_{i}) = P_{i,j}$ для всех предшествующих задач $t_{j}$, обученную с использованием всех доступных $\mathbf{P}$. Можно определить "похожесть" задач в терминах ошибок между $s_{j}(\theta_{i})$ и $P_{i,new}$: если суррогатная модель для $t_{j}$ может генерировать точные предсказания для $t_{new}$, тогда такие задачи весьма похожи. Обычно это делается в комбинации с Байесовской оптимизацией для определения следующей $\theta_{i}$.

Так же можно обучать суррогатные модли на Гауссовских процессах (GP) для каждой предыдущей задачи и еще одну для $t_{new}$ и объединить их во взвешенную и нормализованную сумму, с медианой $\mu$ определенной как взвшенная сумма $\mu_{j}$ полученных из задач $t_{j}$. Веса $\mu_{j}$ считаются через Nadaraya-Watson kernel-weighted average, где каждая задача представлена вектором relative landmarks и Epanechnikov quadratic kernel используется для определения похожести между векторами relative landmarks для $t_{j}$ и $t_{new}$. Чем больше $t_{j}$ похожа на $t_{new}$, тем больше получится вес $s_{j}$, увеличивающий влияние суррогатной модели для $t_{j}$.

Суррогатные модели обучаются только на $P_{i, new}$, а следующий $\theta_{i}$ поулчается путем нахождения средневзвешенного expected improvement $P_{i, new}$ и предсказанных улучшений на всех предшествующих $P_{i, j}$. Веса предшествующих задач могут быть переопределены через точность суррогатной модели или через relative landmarks. Вес ожидаемого улучшения (expected improvement) постепенно возрастает с каждой итерацией (с увеличением собранного эвиденса $P_{i, new}$).

Обучение на свойствах задачи (learning on task properties)

Каждая задача $t_{j} \in T$ может быть описана вектором $m(t_j) = (m_{j,1}, ...,m_{j,K})$ из $K$ мета-фичей $m_{j, k} \in M$ $M$ — множество мета-фичей. Можно определить меру "похожести" задач, основанную, например, на Евклидовом расстоянии между $m(t_i)$ и $m(t_j)$, тогда можно будет использовать информацию из наиболее похожей задачи на новую задачу $t_{new}$. Более того, используя предшествующие вычисления $\textbf{P}$ можно обучить meta-learner'a $L$ предсказывать производительность $P_{i, new}$ конфигураций $\theta_{i}$ на новых задачах $t_{new}$.

$L: \Theta \times M \rightarrow \textbf{P}$

В таблице представлен обзор наиболее используемых мета-фичей.

Meta-feature
Name Formula Rationale Variants
simple
Nr instances $n$ Speed, Scalability \citep{Michie1994} $p/n$, $log(n)$, log(n/p)
Nr features $p$ Curse of dimensionality \citep{Michie1994} $log(p)$, % categorical
Nr classes $c$ Complexity, imbalance \citep{Michie1994} ratio min/maj class
Nr missing values $m$ Imputation effects \citep{kalousis02}  % missing
Nr outliers $o$ Data noisiness \citep{Rousseeuw2011} $o/n$
statistical
Skewness $\frac{E(X-\mu_{X})^{3}}{\sigma_{X}^{3}}$ Feature normality \citep{Michie1994} min,max,$\mu$,$\sigma$,$q_{1},q_{3}$
Kurtosis $\frac{E(X-\mu_{X})^{4}}{\sigma_{X}^{4}}$ Feature normality \citep{Michie1994} min,max,$\mu$,$\sigma$,$q_{1},q_{3}$
Correlation $\rho_{X_{1}X_{2}}$ Feature interdependence \citep{Michie1994} min,max,$\mu$,$\sigma$,$\rho_{XY}$
Covariance $cov_{X_{1}X_{2}}$ Feature interdependence \citep{Michie1994} min,max,$\mu$,$\sigma$,$cov_{XY}$
Concentration $\tau_{X_{1}X_{2}}$ Feature interdependence \citep{Kalousis2001a} min,max,$\mu$,$\sigma$,$\tau_{XY}$
Sparsity sparsity(X) Degree of discreteness \citep{Salama2013} min,max,$\mu$,$\sigma$
Gravity gravity(X) Inter-class dispersion \citep{Ali2006}
ANOVA p-value $p_{val_{\texttt{X}_{1}X_{2}}}$ Feature redundancy \citep{kalousis02} $p_{val_{XY}}$\citep{soares+04}
Coeff. of variation $\frac{\sigma_{Y}}{\mu_{Y}}$ Variation in target \citep{soares+04}
PCA $\rho_{\lambda_{1}}$ $\sqrt{\frac{\lambda_{1}}{1+\lambda_{1}}}$ Variance in first PC \citep{Michie1994} $\frac{\lambda_{1}}{\sum_{i} \lambda_{i}}$\citep{Michie1994}
PCA skewness Skewness of first PC \citep{feurer2014using} PCA kurtosis
PCA 95\% $\frac{dim_{95\% var}}{p}$ Intrinsic dimensionality \citep{bardenet2013collaborative}
Class probability $P(\texttt{C})$ Class distribution \citep{Michie1994} min,max,$\mu$,$\sigma$
informational-theoretic
Class entropy $H(\texttt{C})$ Class imbalance \citep{Michie1994}
Norm. entropy $\frac{H(\texttt{X})}{log_{2}n}$ Feature informativeness \citep{Castiello2005} min,max,$\mu$,$\sigma$
Mutual inform. $MI(\texttt{C},\texttt{X})$ Feature importance \citep{Michie1994} min,max,$\mu$,$\sigma$
Uncertainty coeff. $\frac{MI(\texttt{C},\texttt{X})}{H(\texttt{C})}$ Feature importance \citep{Agresti:2002p7509} min,max,$\mu$,$\sigma$
Equiv. nr. feats $\frac{H(C)}{\overline{MI(C,X)}}$ Intrinsic dimensionality \citep{Michie1994}
Noise-signal ratio $\frac{\overline{H(X)}-\overline{MI(C,X)}}{\overline{MI(C,X)}}$ Noisiness of data \citep{Michie1994}
complexity
Fisher's discrimin. $\frac{(\mu_{c1}-\mu_{c2})^{2}}{\sigma_{c1}^{2}-\sigma_{c2}^{2}}$ Separability classes $c_{1},c_{2}$ \citep{Ho:2002} See \citet{}{Ho:2002}
Volume of overlap Class distribution overlap \citep{Ho:2002} See \citet{Ho:2002}
Concept variation Task complexity \citep{Vilalta:2002p5805} See \citet{Vilalta:1999p5745}
Data consistency Data quality \citep{Kopf:2002p5864} See \citet{Kopf:2002p5864}
model-based
Nr nodes, leaves [math]|\eta|,|\psi|[/math] Concept complexity \citep{Peng:2002p705} Tree depth
Branch length Concept complexity \citep{Peng:2002p705} min,max,$\mu$,$\sigma$
Nodes per feature [math]|\eta_{X}|[/math] Feature importance \citep{Peng:2002p705} min,max,$\mu$,$\sigma$
Leaves per class [math]\frac{|\psi_{c}|}{|\psi|}[/math] Class complexity \citep{Filchenkov2015} min,max,$\mu$,$\sigma$
Leaves agreement [math]\frac{n_{\psi_{i}}}{n}[/math] Class separability \citep{Bensusan2000} min,max,$\mu$,$\sigma$
Information gain Feature importance \citep{Bensusan2000} min,max,$\mu$,$\sigma$, gini
landmarks
Landmarker(1NN) $P(\theta_{1NN},t_{j})$ Data sparsity \citep{Pfahringer:2000p553} See \citet{Pfahringer:2000p553}
Landmarker(Tree) $P(\theta_{Tree},t_{j})$ Data separability \citep{Pfahringer:2000p553} Stump,RandomTree
Landmarker(Lin) $P(\theta_{Lin},t_{j})$ Linear separability \citep{Pfahringer:2000p553} Lin.Disciminant
Landmarker(NB) $P(\theta_{NB},t_{j})$ Feature independence \citep{Pfahringer:2000p553} See \citet{Ler:2005p1680}
Relative LM $P_{a,j} - P_{b,j}$ Probing performance \citep{Furnkranz:2001p1278}
Subsample LM $P(\theta_{i},t_{j},s_{t})$ Probing performance \citep{Soares:2001p708}

Непрерывные фичи $X$ и таргет $Y$ имеют медиану $\mu_{X}$, stdev $\sigma_{X}$, variance $\sigma^{2}_{X}$. Категориальные фичи $\texttt{X}$ и класс $\texttt{C}$ имеют категориальные значения $\pi_{i}$, условные вероятности $\pi_{i|j}$, совместные вероятности $\pi_{i,j}$, предельные вероятности $\pi_{i+}=\sum_{j}\pi_{ij}$, энтропию $H(\texttt{X})=-\sum_{i}\pi_{i+}log_{2}(\pi_{i+})$.

Многие мета-фичи вычисляются по одиночным фичам или комбинации фичей, и должны быть агрегированы через min,max,$\mu$,$\sigma$,quartiles или гистограммами [kalousis]

Во время вычисления похожести задач важно нормализовывать все мета-фичи [bardnet], использовать feature selection [todorovski] или использовать dimensionality reduction (PCA, например).

Примечания

https://lilianweng.github.io/lil-log/2018/11/30/meta-learning.html#define-the-meta-learning-problem https://arxiv.org/pdf/1810.03548.pdf https://www.ml4aad.org/wp-content/uploads/2018/09/chapter2-metalearning.pdf https://openreview.net/pdf?id=rJY0-Kcll https://www.fruct.org/publications/ainl-fruct/files/Fil.pdf Alexandros Kalousis and Melanie Hilario. Model selection v ia meta-learning: a comparative study. Intl Journ. on Artificial Intelligence Tools , 10(4):525–554, 2001. R ́emi Bardenet, M ́aty ́as Brendel, Bal ́azs K ́egl, and Michele Sebag. Collaborative hyperparameter tuning. In Proceedings of ICML 2013, pages 199–207, 2013 L Todorovski and S Dzeroski. Experiments in meta-level learning with ILP. Lecture Notes in Computer Science, 1704:98–106, 1999.