Назад

Эффективные ансамбли

157

Введение

Чтобы решить сложные задачи и принять верное решение, в реальном мире часто используют экспертный метод. В его основе — создание группы высококвалифицированных в своей области экспертов. У каждого из них разный взгляд на решение задачи. Это и хорошо: мы в результате имеем много мнений и мало неопределенности при достижении цели.

Такая концепция применяется и при построении систем на базе алгоритмов машинного обучения. Здесь тоже есть эксперты — нейронные сети. А их много! За счет этого мы улучшаем:

  1. Качество решения задачи (качество предсказания);
  2. Оценку неопределенности предсказания (можем идентифицировать данные не из распределения + избежать overconfidence модели);
  3. Калибровку оценок (приближаем корреляцию точности и оцененной вероятности к 1).

Метод построения наборов нейронных сетей называют Ensemble Learning. А сами наборы — ансамблями.

Давайте теперь рассмотрим:

  1. Базовые подходы к построению ансамблей;
  2. Метрики для оценки их эффективности;
  3. Продвинутые методы построения ансамблей глубоких нейронных сетей (с ними мы тратим меньше памяти и времени на inference).

Подходы к построению ансамблей

Рассмотрим для начала базовые подходы Bagging и Boosting. Эти два метода применяются повсеместно.

Bagging

Рисунок 1. Пайплайн Bagging

Подход Bagging основан на идее обучения независимых моделей, которые решают идентичную задачу. Для разнообразных предсказаний используются следующие техники:

При классическом подходе:

  • bootstrapping входных данных (каждая модель обучается на своей части данных или уникальном фолде).

Как возможные дополнительные техники:

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

После обучения моделей выходные предсказания усредняются. Здесь открывается большое поле для экспериментов. Например, можно применить усреднение с весами. А еще использовать подходы Non-maximum weighted или Weighted boxes fusion в задаче детекции.

При построении ансамблей нейронных сетей Bagging — самый популярный и простой в реализации подход. Он не требует изменений в алгоритме обучения моделей. Еще он часто используется при решении задач на Kaggle: здесь в итоговых решениях применяются большие ансамбли моделей, полученные с помощью перечисленных выше техник.

Boosting

Рисунок 2. Пайплайн Boosting

Подход Boosting основан на идее обучения набора классификаторов таким образом, чтобы каждый из них был комплементарен другому. Алгоритм обучения следующий:

  1. Определяется набор примеров и соответствующее пространство признаков;
  2. Для каждого примера указывается свой вес при обучении;
  3. После обучения первой модели определяются примеры, на которых она ошибается;
  4. При обучении новой модели веса примеров перевзвешиваются относительно предыдущих результатов;
  5. Пункты 2 — 4 выполняются до обучения заранее определенного количества моделей;
  6. Для получения итогового предсказания индивидуальные ответы моделей объединяются с учетом заданных коэффициентов.

Это базовое описание алгоритма имеет модификации в разных методах (например, в AdaBoosting, LightGBM, Catboost и многих других). Такой подход, как правило, применим к задачам с табличными данными, где сложность обучаемых моделей достаточно низкая. Это позволяет использовать большие композиции моделей.

Далее мы рассмотрим модификации, которые опираются на подход Bagging. Но перед изучением методов улучшения эффективности ансамблей давайте познакомимся с распространенными метриками для их оценки.

Метрики оценки качества ансамблей

Brier Score

\( \text{BrierScore} = \frac{1}{M}\frac{1}{N}\sum^M_{j=1}\sum^N_{i=1} MSE(\text{probs}_{i},\text{label}_{i}) \\ где\ M — количество\ сетей\ в\ ансамбле \\ N — количество\ примеров \)

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

Negative Log-Likelihood (NLL)

\( \text{probs}=\frac{1}{M}\sum^M_{m}\text{softmax}(\text{logits}_{m})\\\text{NLL} = — \sum_{i=1}^{N} \log(\text{probs}*\text{label}) \)

Negative Log-Likelihood — оценка правдоподобия. В общем случае она показывает, насколько правдоподобны параметры нашей модели. Чем выше правдоподобие параметров, тем выше вероятность правильного ответа. Аналогично Brier Score, NLL позволяет учитывать полученные значения вероятностей. Между ними есть и различие: NLL применяется в multiclass и multi-label кейсах (но нужно будет заменить softmax).

Expected Calibration Error (ECE)

\( \text{ECE} = \sum^{M}_{m=1} \frac{|B_m|}{n} |acc(B_m) — conf(B_m)| \\ где\ B_m — границы\ \text{confidence}\ для\ фомирования \ набора\ примеров \ \\acc(B_m) ,conf(B_m) — \text{cреднее}\ значение\ \text{accuracy}\ и\ \text{confidence}\ в\ интервале\\ |B_m|-количество\ примеров\ в\ интервале \\ n — общее\ количество\ примеров\ по\ всем\ интервалам \\ M — количество\ интервалов \)

Expected Calibration Error — метрика для определения средней точности на наборе заданных интервалов уверенности модели. Для ее подсчета необходимо:

  1. Определить набор интервалов уверенности, например, [0.1 … 1.0] с шагом 0.1;
  2. Для каждого интервала сформировать набор примеров, для которых предсказанная вероятность попадает в заданные границы;
  3. Вычислить среднюю точность и среднюю вероятность для полученного набор примеров;
  4. Найти модуль разности этих величин, нормализовать на отношение количества примеров ко всем примерам;
  5. Усреднить полученные значения по всем интервалам.

При идеальном сценарии точность должна расти вместе со значением уверенности. Для визуального анализа метрики используют Reability diagramm.

Рисунок 3. График Reability diagramm

Давайте посмотрим на график: здесь ось у — точность модели, ось x — порог вероятности для принятия решений. Как мы упомянули ранее, этим величинам нужно расти вместе, то есть их корреляция должна стремиться к единице. Синий цвет показывает точность на разных интервалах уверенности, а розовый в полоску — gap между идеальной калибровкой и вычисленной. Его мы сокращаем для идеальной калибровки модели, которая гарантирует отсутствие переобучения или недообучения (модель не over / under confident).

Entropy

\( \text{probs}=\frac{1}{M}\sum^M_{m}\text{softmax}(\text{logits}_{m})\\H = — \sum_i^C \text{probs} * \log(\text{probs}+\epsilon) \\ где\ M — количество\ сетей\ в\ ансамбле \\ С — количество\ классов \)

Entropy — метрика, которая показывает неопределенность предсказания путем оценки степени хаоса. Выглядит она таким образом:

Рисунок 4. Энтропия для различных распределений

Мы видим следующую закономерность: чем больше распределение вероятностей стремится к равномерному, тем сильнее возрастает значение энтропии.

Продвинутые методы построения ансамблей

Deep Ensembles

Одна из самых цитируемых работ по созданию ансамблей — Simple and Scalable Predictive Uncertainty Estimation using Deep Ensembles (около 5000 цитирований). Давайте ее и рассмотрим как базовый рецепт построения ансамблей из глубоких нейронных сетей.

Для создания такого ансамбля авторы вводят ключевые ингредиенты (стадии):

  • L2 регуляризация с целью задать априорное распределение на веса модели в виде нормального;
  • случайная инициализация весов каждого из представителей ансамбля + случайное перемешивание данных при обучении;
  • virtual adversarial training (VAT) для улучшения оценки неопределенности.

Предлагаем сейчас разобрать VAT детальнее, ведь по результатам анализа данных ингредиент существенно улучшает метрики 🙂

Метод VAT основан на идее локальной сглаженности пространства параметров. Она достигается с помощью регуляризации, разработанной авторами:

  1. Генерируем случайный шум из нормального распределения;
  2. Приводим результат генерации к единичной норме;
  3. Вычисляем результат предсказания модели — берем данные + сгенерированный шум;
  4. Ищем значение случайного шума максимизирующего расстояние Кульбака — Лейблера между оригинальным и зашумленным входами.

\( \Delta_{\rm KL}(r,x^{(n)},\theta) ={\rm KL}[p(y|x^{(n)},\theta)\|p(y|x^{(n)}+ r,\theta)] — нахождение\ градиента\ по\ {\rm KL}\ между\ оригинальным\ входом(x)\ \\и\ входом\ со\ случайным\ зашумлением(x + r)\\r_{\rm v\text{-}adv}^{(n)} =\arg \mathop {\rm max}\limits_r \{ \Delta_{\rm KL}(r,x^{(n)},\theta); ~ \|r\|_2 \leq \epsilon \} — \\нахождение\ r — r_{\rm v\text{-}adv}^{(n)}, максимизируещего\ {\rm KL} \\ \theta — параметры\ модели \)

Затем при подсчете ошибки для минибатча (плюсом к лосс функции) мы используем KL между оригинальным входом и входом с найденным лучшим шумом в качестве регуляризации во время обучения:

\( \frac{1}{N}\sum_{n=1}^N \log p(y^{(n)}|x^{(n)},\theta) \frac{1}{N}+ \lambda \frac{1}{N}\sum_{n=1}^N{\rm LDS} (x^{(n)},\theta) \\ где\ левый\ член — лосс\ функция,\ LDS — регуляризатор \)

Ура, мы получили обученный ансамбль моделей. Далее авторы исследуют применимость оценок неопределенности с помощью энтропии.

Рисунок 5. Энтропия для In domain и out-of-distribution данных

На графиках представлены различные модификации ансамблей. На верхнем ряду (синий цвет) распределение значений энтропии для данных, на которых обучалась модель (MNIST или SVHN), а на нижнем (красный цвет) — для данных другого распределения (NotMNIST и CIFAR10). Можно заметить, что при увеличении количества членов ансамбля значения энтропии лучше позволяют отделить данные тренировочного распределения от внешних данных. Это показывает надежность оценок неопределенности.

Deep ensembles сейчас — это повсеместно используемый подход как в направлении увеличения точности, так и в задачах оценки надежности предсказаний модели.

Далее мы рассмотрим методы, которые применяют модифицированные подходы к построению ансамблей. Они сокращают затраты ресурсов при реальных задачах.

Sub-Ensembles

Sub-Ensembles направлен на увеличение эффективности работы ансамбля с точки зрения затраченного времени на его исполнение: ансамблируются только части начальной модели.

Рисунок 6. Схема построения Sub-ансамблей

Авторы подхода проанализировали возможности выбора в качестве участников ансамбля наборов из n слоев. Эти наборы предсказывают, принимая на вход результат обработки энкодера T — общей части ансамбля. В частности, авторы провели эксперименты с 1, 2 и 3 слойном построением участников ансамбля. На графиках представлены метрики этих экспериментов:

Рисунок 7. Сравнение Sub-Ensemble и Deep Ensemble

На диаграмме указаны:

  1. DE (Deep Ensemble) — полноценный ансамбль из M моделей нейронной сети;
  2. SE-1, 2, 3, 4 (Sub-Ensemble) — участники здесь подсети из 1-4 слоев.

Из графиков видно: чем больше слоев мы используем, тем сильнее приближаемся в характеристиках к DE. Следовательно, после обучения полноценного DE и нескольких версий SE можно проанализировать метрики и найти компромисс между качеством оценки неопределенности и временем исполнения ансамбля.

BatchEnsemble

Идея BatchEnsemble — “slow and fast weights”. В ее основе лежит принцип работы кратковременной и долговременной памяти. В рамках метода авторы определяют “slow weights” и “fast weights” следующим образом:

  • slow weights — веса нейронной сети, отвечающие за извлечение признаков для решения конкретной задачи;
  • shared weights — веса нейронной сети, идентичные для всех задач;
  • fast weight — веса нейронной сети, отвечающие за преобразование shared weights в slow weights.

Схематичное описание подхода представлено на изображении ниже:

Рисунок 8. Вычисление slow weights

Как вычисляются slow weights для шага t+1: веса умножаются на результат скалярного произведения одноранговых обучаемых матриц r и s. Но на практике применяется один трюк с перестановкой последовательности вычислений. Благодаря этому мы не производим видоизменение уже определенных весовых коэффициентов. Такая процедура представляется формулой:

\( y_n = \phi((W \circ r_{i}s_{i}^T)^Tx_{n}) — базовый\ подход\ к\ вычислению \\ y_n = \phi((W^T( x_{n} \circ r_{i}) \circ s_{i}) — эффективный\ подход \\ W — \text{shared weights} \\ s_{i},r_{i} — \text{fast weights} \\ i = \{1 … M\} — индекс\ члена\ ансамбля \\ \phi — функция\ активации \\ x_{n},y_{n} — вход\ и\ выход\ слоя \)

Подобная перестановка позволяет эффективно реализовывать матричные вычисления. Еще она удобна для современных DL-фреймворков.

Для построения такой модели на практике необходимо:

  1. Для каждого сверточного / линейного слоя проинициализировать параметры fast weight как обучаемые, а их количество должно быть равно нужному количеству сетей в ансамбле;
  2. Изменить формулу вычисления слоя на указанную ранее;
  3. При обучении для каждого представителя ансамбля выделить равную часть примеров из минибатча.

Обратите внимание на нюанс обучения: для fast weight значение коэффициента при L2 регуляризации равно нулю.

Согласно результатам экспериментов, подход на практике помогает эффективно обучать ансамбли: современные фреймворки обучения позволяют успешно оперировать матричными операциями поверх батчей данных. Да и получать метрики такого ансамбля не хуже, чем при построении ансамбля из индивидуально обученных моделей.

FiLM-Ensemble

FiLM-Ensemble наследует идею формирования членов ансамбля за счет уникальных параметров. В отличие от BatchEnsemble, здесь используются уникальные параметры батч-нормализации для каждого из членов.

\( \textrm{FiLM}(\mathbf{F}_{n}| {\gamma}_{n}, {\beta}_{n}) = {\gamma}^m_{n}\circ \mathbf{F}_{n} + {\beta}^m_{n} , \\ где\ n — \text{индекс\ слоя\ batchnorm} \\ m -индекс\ члена\ ансамбля \\ \gamma\ и\ \beta -настраиваемые\ параметры \\ F_{n} — нормализованный\ вход\ в\ \text{BN}_{n}\ слое \)

Чтобы обеспечить вариативность в инициализации параметров, применяется метод инициализации xavier_uniform. В этом методе начальные веса слоя семплируется из равномерного распределения, которое определяется как:

\( a=\frac{\sqrt{3}} {\sqrt{\mathbf{D}_{n}}}*gain \\ \mathbf{U}(-a,a) — равномерное\ распределение\\где\ \mathbf{D}_{n} — размерность\ слоя \\ gain — значение\ прироста \)

Как отмечают авторы, параметр gain напрямую влияет на разнообразие получаемых предсказаний от разных членов ансамбля. Для поиска оптимального параметра они провели исследование и получили следующие результаты:

Рисунок 9. Сравнение метрик при разном параметре gain

Из графика видно: при большем gain калибровка модели улучшается. Но из-за увеличения промежутка семплирования начальные инициализации не всегда оптимальны, что снижает качество итогового ансамбля.

Masksembles

В основе метода Masksembles — получение членов ансамбля с помощью заданной фиксированной структуры слоев Dropout. Освежить в памяти теорию по dropout можно в нашем посте 🙂

Перед формулировкой финальной идеи авторы верифицировали работу MC Dropout — одного из базовых методов нахождения неопределенности. Есть множественное семплирование масок dropout (индексов выключающихся нейронов) для обученной нейронной сети. С помощью применения каждой из них можно получить различные оценки для входных данных, что повышает качество оценки неопределенности.

Работа MC Dropout представлена в виде следующей схемы:

Рисунок 10. Графы модели после семплирования dropout

Метод MC Dropout существенно проигрывает Deep ensembles в части метрик качества, зато выигрывает его с точки зрения времени исполнения. После анализа разных семплов, которые получаются при этом методе, авторы выяснили: индексы выключающихся нейронов значительно пересекаются в масках dropout. Поэтому авторы предположили такое условие: если у масок dropout будет контролируемый уровень пересечения, то это обеспечит достаточную разнообразность предсказаний для качественной оценки неопределенности. А еще позволит приблизить метод к результатам обученных сетей независимо из глубокого ансамбля.

Давайте рассмотрим вид Dropout в сверточных сетях, который используется авторами. Эта модификация называется Spartial Dropout и зануляет не индивидуальные нейроны (пиксели), а целые карты признаков.

Рисунок 11. Сравнение обычного (regular) и пространственного (spartial) dropout

Теперь погрузимся в принцип формирования подобных масок. Как отмечают авторы, для обучения используются фиксированные маски, количество которых равно искомому количеству членов ансамбля. Параметры определяются следующими значениями:

  • N — количество уникальных масок;
  • M — количество активных карт признаков;
  • S — параметр контроля количества пересечений между масками при заданном M.
Рисунок 12. Полученные маски dropout при заданных параметрах

На изображении выше представлен результат генерации с условием M = 2 , N = 4 и S = 2.0. При таких параметрах в каждой маске количество активных элементов пересекается не более, чем на 2 элемента. В этом методе конфигурации ограничение — количество нейронов, доступных для маскирования. Их количество не должно превышать MS. Во время превышения используем большее количество нейронов при создании слоя. Авторы проанализировали изменение параметра S при фиксированном M и N: в пределе S дает сопоставимые свойства в задаче определения неопределенности по сравнению с глубокими ансамблями. Результат видим на изображении ниже:

Рисунок 13. Исследование зависимости S и значения разных метрик

Еще авторы исследовали самую оптимальную конфигурацию из возможных между N и S.

Рисунок 14. Выбор оптимальных N и S при условии зафиксированного M

Процесс не отличается от обучения с классическим дропаутом за исключением случайного выбора маски из N заранее подготовленных масок dropout.

При описании этого метода важно отметить: получаемая маска для конкретного члена ансамбля идентична маскам после структурированного прунинга модели (о прунинге можно почитать в нашей статье). Во время правильной репараметризации это может сократить время вычисления каждой модели ансамбля.

Early-Exit ensembles

На чем основан подход Early-Exit? На предположении о том, что в виду перепараметризации современных глубоких сетей (значительного превосходства количества параметров над количеством данных) качественное решение задачи может быть достигнуто уже на ранних слоях для простых примеров, а с ростом их сложности количество слоев может увеличиваться.

Рассмотрим кейс двумерных данных для лучшего понимания метода.

Рисунок 15. Распределение данных в наборе two moons

На изображении выше видим: для классического набора большинства данных two moons сделать классификацию можно с помощью линейно разделяющих прямых. Так мы получим оптимальное решение в регионах, которые отмечены как Easy. В случае с теми регионами, где данные смешанные (отмечены как Hard) нам нужно ввести нелинейные методы классификации, чтобы работать с такой формой множества данных.

Авторы статьи Window-Based Early-Exit Cascades применили подобную идею в адаптивном построении ансамблей глубоких нейронных сетей. Ее реализация основана на двух предположениях:

  1. Если пример достаточно прост и входит в тренировочное распределение данных — оценить неопределенность можно с помощью одной модели. Предполагается, что он итак понятен нашей сети, на нем мы не ошибемся.
  2. Если пример либо лежит на границе тренировочного распределения, либо представлен данными из другого распределения — для более точной оценки неопределенности нам потребуется ансамбль моделей.

Для поиска примеров, где необходимо применение ансамбля, авторы вводят пороговый параметр tau. Он может выбираться путем минимизации следующего функционала:

\( \text{Risk}(f,g;t) = \frac{\mathbb E_{p_\text{ID}( x)}[g( x;t) L_\text{SC}(f( x))]}{\mathbb E_{p_\text{ID}( x)}[g( x;t)]} \\ где\ g( x;t) = \begin{cases} 0\text{ (reject prediction)}, &\text{if }U( x) < \tau \\ 1\text{ (accept prediction)}, &\text{if }U( x) \geq \tau \end{cases} \\ L_\text{SC}(f( x)) = \begin{cases} 0, &\text{if } f( x) = y \quad \text{(correct)}\\ 1, &\text{if } f( x) \neq y\quad \text{(misclassified)}~, \end{cases} \)

Этот функционал решает задачу оценки:

  • L_\text{SC} определяет правильность предсказания модели;
  • g устанавливает необходимость отбросить результат предсказания при заданных ограничениях на значения неопределенности;
  • Risk дает оценку риска неправильной классификации примера.

Подобная оценка позволяет понять, какой процент примеров неправильно классифицирован с учетом нужного уровня покрытия выборки. Функция g при определенном значении tau возвратит 0 даже для корректно классифицированных примеров, поэтому уровень покрытия фиксируется перед началом настройки параметра tau. Иными словами, мы фиксируем количество примеров из выборки, которое не должно быть отвергнуто.

В качестве U(x) авторы используют следующее выражение:

\( U(x)=−\log\sum \exp^{f_i(x)} \)

Оно называется Energy function и дает оценку путем вычисления суммы всех экспонент от логитов, полученных на выходе из классификатора. Эмпирически этот подход позволяет лучше находить примеры не из распределения. Еще его можно применять к уже обученной модели за счет сравнения значения энергии с заданным порогом.

Нашли tau — теперь можно найти границы t1 и t2. Они определяют, произойдет ли переход на следующую стадию, то есть добавится ли новый член ансамбля в композицию моделей. Эмпирически авторы вывели, что такие границы не должны позволять переход к следующему шагу для 70% данных.

Еще стоит отметить: на шаге 2.. n в качестве U(x) применяется значение энтропии предсказаний ансамбля. Это позволяет получить более надежные оценки неопределенности.

Рассмотрим применение найденных параметров с использованием схемы алгоритма:

Рисунок 16. Схема пайплайна Early-Exit ensembles

Из этой схемы мы видим:

  1. На шаге DNN(1) вычисляются предсказания одним из членов ансамбля;
  2. На шаге Unc(1) вычисляется значение Energy function по выходам модели;
  3. На шаге Exit Decision определяется необходимость формирования ансамбля из текущей и следующей по списку модели с использованием границ t1 и t2;
  4. В случае нахождения значения Unc в границах t1,t2 происходит выход из пайплайна с последующим определением необходимости отбросить результат;
  5. В случае нахождения значения Unc за пределами t1,t2 шаги 1-3 повторяются, при этом каждый раз увеличивается количество членов в ансамбле.

Deep Ensembles over time

Deep Ensembles over time представлен в статье Deep Ensembles Spread Over Time. Подход ориентирован на набор задач с последовательными данными (большинство CV задач, решаемых на беспилотном транспорте). В качестве примера авторы используют задачу классификации дорожных знаков, где с течением времени происходит постепенное приближение к определенному виду знака. Они предполагают возможность применять информацию с нескольких кадров для финального решения и предлагают следующий алгоритм:

  1. Определим временное окно длиной в t фреймов.
  2. Определим M моделей глубокого ансамбля.
  3. Для каждой модели из M назначим свой индекс примера во временном окне.
  4. Сделаем усреднение по всем предсказаниям из M моделей, когда достигнем конца временного окна.

Схематически подход можно описать следующим изображением:

Рисунок 17. Сравнение подходов ансамблирования моделей по времени

Для валидации данного подхода в части возможности идентифицировать OOD примеры авторы провели следующие тесты:

  • измерили энтропию предсказаний DE без temporal fusion (результаты предсказания ансамбля из m моделей не усредняются по временному окну);
  • измерили энтропию предсказаний для DE и DESOT(Deep Ensembles over time) с temporal fusion(для DE производим m*t предсказаний и усредняем результат, для DESOT только t предсказаний);
  • измерили энтропию предсказаний MC Dropout с temporal fusion (за индексом примера во временном окне закрепляется уникальная маска dropout).

В результате получили следующие графики для энтропии на ID примерах и OOD примерах:

Рисунок 18. Сравнение DE и DESOT

Из полученных результатов можно сделать следующие выводы:

  • в случае DESOT и DE с temporal fustion результаты достаточно близки, при том что в DESOT в m раз меньше вычислений
  • во всех случаях происходит насыщение ансамбля и разница между ансамблем с 5 и 10 представителями несущественна(тут стоит учесть что на такие результаты может повлиять как сложность задачи, так и недостаток разнообразия в схеме обучения моделей ансамбля)
  • MC Dropout может составить конкуренцию описанным ранее подходам в части обнаружения OOD , однако как отмечают авторы качество на ID примерах у подобного подхода существенно ниже

Рассмотрев результаты исследования можно выделить следующие плюсы и минусы DESOT:

Плюсы:

  1. Не требует изменений в процессе обучения и архитектуре.
  2. Позволяет комбинировать различные модели.
  3. Хорошо ложится на архитектуру приложений, где происходит итоговый фьюзинг за определенное временное окно.
  4. В сравнении с DE при идентичном качестве нахождения OOD существенно быстрее

Минусы:

  1. Привязывается к качеству трекинга — перескок треков может дать существенную ошибку в оценке.
  2. Повышает требования на частоту кадров — при высокой скорости перемещения объектов изменения в его визуальном представлении будут достаточно большими, чтобы считать подобную оценку невалидной (она станет усреднением предсказаний по разным изображениям).

Краткое резюме по методам

На текущий момент развития подходов к построению эффективных ансамблей выделяется ряд сформировавшихся направлений:

  1. Направление создания эффективных ансамблей за счет дополнительного набора обучаемых параметров — подходы BatchEnsemble, FiLM-Ensemble.
  2. Направление формирования эффективных ансамблей с помощью модификации уже имеющихся подходов — Masksembles, Ex uno plures.
  3. Направление создания эффективных ансамблей за счет адаптивного расписания / плана вызова моделей — Early-Exit ensembles, Deep Ensembles over time.
  4. Направление формирования эффективных ансамблей через поиск вложенности / подсетейSub ensembles, Packed ensembles, MIMO.

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

Заключение

В этой статье мы рассмотрели:

  • основные подходы к построению ансамблей;
  • повсеместно встречающиеся метрики;
  • ряд исследовательских работ с новыми техниками и архитектурами, которые улучшают характеристики времени исполнения и занимаемой памяти.

В заключение оставляем ссылки на библиотеки torch-uncertainty и pytorch-ood для самостоятельного изучения и практики. Там вы найдете имплементацию показанных методов и метрик 😊

Телеграм-канал

DeepSchool

Короткие посты по теории ML/DL, полезные
библиотеки и фреймворки, вопросы с собеседований
и советы, которые помогут в работе

Открыть Телеграм

Увидели ошибку?

Напишите нам в Telegram!