Изменения

Перейти к: навигация, поиск

Мета-обучение

688 байт добавлено, 23:32, 5 апреля 2019
Нет описания правки
<b>Мета-обучение</b> {{---}} подход, позволяющий определять оптимальный наиболее подходящий алгоритм (иногда , вместе с параметрами к нему) для конкретной задачииз портфолио алгоритмов. Основная идея мета-обучения {{---}} свести задачу выбора алгоритма к задаче [https://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81_%D1%83%D1%87%D0%B8%D1%82%D0%B5%D0%BB%D0%B5%D0%BC обучения с учителем]: задачи описываются мета-признаками. Мета-признак описывает свойство задачи, {{---}} например, разрежен ли датасет или нет, число категориальных или численных признаков объектов объеков в датасете, число возможных меток, размер датасета и многое другое.
От хорошей модели ожидается хорошая высокая адаптируемость или генерализуемость новых задач к новым задачам и окруженийокружениям, с которыми модель не сталкивалась во время обучения.
Такими задачами являются:
* Классификатор, тренированный обучали на изображениях собак и велосипедов, после некоторых показанных давайте покажем ему кошек смог и проверим, сможет ли классификатор определить, есть ли на новой картинке кошка;* Игровой ботБот для игр, способный быстро обучиться новой игре;* Робот, выполняющий задачу на пригорке во время теста даже если он тренировался обучался на ровной поверхности.
Ограничения {{---}} No free lunch teorem.<ref>[https://www.researchgate.net/publication/221997149_No_Free_Lunch_Theorems_for_Search Wolpert and Macready, 1996]</ref><ref>[https://www.researchgate.net/publication/228671734_Toward_a_justification_of_meta-learning_Is_the_no_free_lunch_theorem_a_show-stopper Giraud-Carrier and Provost, 2005]</ref>(NFL), доказанная в 1996 году.Пусть $P(d_{m}^{y}| f, m, a)$ {{---}} условная вероятность получения частного решения $d_m$ после $m$ итераций работы алгоритма $a$ при целевой функции $f$. Для любой пары алгоритмов $a_1$ и $a_2$ иммет место равенство\begin{aligned}\sum_{f}P(d_{m}^{y}| f, m, a_1) = \sum_{f}P(d_{m}^{y}| f, m, a_2)\end{aligned} Иначе говоря, не существует алгоритма классификации, который лучше всех других на всех возможных входных данных.
<h2>Обзор</h2>
Хорошая модель мета-обучения Модель должна быть обучена на множестве задач и оптимизирована для лучшей производительности на нескольких задачах,включая такие, с которыми модель не сталкивалась ранее. Каждой задаче соответствует датасет $\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_θf_\theta$ с параметром $θ\theta$ показывает вероятность принадлежности точки из данных к классу $y$ при векторе фичей $x$, $P_\theta(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<font color=green> // использовали мини-batches.батчи для обучения</font>}}
\end{aligned}
Цель в В few-shot классификации цель {{---}} уменьшить ошибку предсказания на неразмеченных данных с данным train set для "быстрого обучения". Чтобы его ускорить процесс обучения , сделаем следующее:# возьмем подмножество меток, $L\subset\mathcal{L}$;# возьмем 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}
# Множество $S^L$ подается на вход модели;# Конечная оптимизация использует множество $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) или в языковом моделировании NLP[LINK] (большие текстовые корпуса), когда доступен только ограниченный набор образцов данных для конкретной задачи. Мета-обучение идет еще на один шаг впередМодель обучается таким образом, вместо того чтобы подстраивать ее под одну задачу, она оптимизирует модель, чтобы она была хороша для многих задачмогла обобщиться до других датасетов.
<h2>Основанные на оптимизации</h2>
Модели глубокого обучения (deep англ. \emphdeep learning) обучаются через обратное распространение градиентов. [дичь] Тем не менее , оптимизация, основанная на градиентах не разрабатывалась для работы с небольшим количеством обучающих семплов , и не сходится за малое число оптимизационных шагов. Подход в мета-обучении, основанный на оптимизации как раз про это.[/дичь]
<h3>LSTM-meta-learner</h3>
Оптимизационный алгоритм может быть явно смоделирован. Ravi & Larochelle (2017) это и сделали и назвали его "meta-learner". Цель meta-learner'а {{---}} эффективно обновлять свои параметры learner'a используя небольшой train set небольшую обучающую выборку так, чтобы learner мог быстро адаптироваться к новым задачам.
Пусть модель ученика будет $M_θM_\theta$, параметризованной $θ\theta$, и meta-learner как $R_ΘR_\theta$ с параметром $θ\theta$ , и функция потерь $\mathcal{L}$.
Обновление параметров learner'a во время $t$ c learning rate cо скоростью обучения $\alpha_t$ (шаг градиентного спуска):
\begin{aligned}
\theta_t = \theta_{t-1} - \alpha_t \nabla_{\theta_{t-1}}\mathcal{L}_t,
\end{aligned}
\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{<font color=green> // как сильно мы забываем старые значения параметров</font>}}\\ 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{соответствует рейту <font color=green> // рейт обучения на шаге t</font>}}\\\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}
 
я ничего не понял..
<h3>REPTILE</h3>
Reptile {{---}} относительно простой алгоритм мета-обучения, похожий на MAML, например, тем, что оба используют мета-оптимизацию через градиентный спуск и оба не чувствительны к модели.
# сэмплируем задачу;# тренируемся на ней несколькими шагами градиентного спуска;
# сдвигаем веса модели к новым параметрам.
<h2>Определение множества конфигураций</h2>
Предшествующие вычисления могут быть также использованы для изучения пространства более успешных конфигураций $\theta\star$. Более подходящие под задачу конфигурации могут серьезно ускорить поиск оптимальных моделей, это важно при ограниченных вычислительных ресурсахрессурсах.
Альтернативный подход сперва узнать оптимальные гиперпараметры, а потом через приращение производительности определить важность каждого из гиперпараметров. Это и было сделано в лабе OpenML, провели около 500 000 экспериментов на 6 алгоритмах и 38 датасетах. Стандартные значения изучались вместе для всех гиперпараметров алгоритма посредством обучения суррогатных моделей на большом числе задач. После того, как уже проверены многие варианты конфигураций, выбирается такая, которая минимизирует ??? для всех задач, становится стандартной. Далее определяется важность каждого из гиперпараметров. Чем больше меняется приращение производительности, тем более важный гиперпараметр мы изменяем.
Если мы хотим предоставить рекомендации для конкретной задачи $t_{new}$, нам нужна дополнительная информация о том, насколько $t_{new}$ похожа на предыдущие задачи $t_j$. Первый способ {{---}} посчитать число рекомендованных конфигураций для $t_{new}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}P_new$, и перейти к следующей итерации и выяснять какие еще задачи схожи друг с другом.
<h3>Relative landmarks</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}$.
Так же можно обучать суррогатные модели на Гауссовских процессах (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}$.
<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}$.
$L: \Theta \times M \rightarrow \textbf{P},$
В таблице представлен обзор наиболее используемых мета-фичейпризнаков.
{| class="wikitable"
|}
Непрерывные фичи $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 или гистограммами.
Во время вычисления похожести задач важно нормализовать все мета-фичи признаки [bardnet], использовать feature selection отбор признаков <ref>L Todorovski and S Dzeroski. Experiments in meta-level learning with ILP. Lecture Notes in Computer Science, 1704:98–106, 1999.</ref> или использовать dimensionality reduction уменьшение размерности (PCA, например).
== Примечания ==
<references/>
== Источники информации ==
* https://lilianweng.github.io/lil-log/2018/11/30/meta-learning.html#define-the-meta-learning-problem
* https://arxiv.org/pdf/1810.03548.pdf
16
правок

Навигация