Size: a a a

gonzo-обзоры ML статей

2020 January 20
gonzo-обзоры ML статей
Improving Deep Neuroevolution via Deep Innovation Protection
Sebastian Risi, Kenneth O. Stanley
Статья: https://arxiv.org/abs/2001.01683

Что-то давненько не писали мы про нейроэволюцию. А тут прикольная свежая работа как раз.

Авторы (один из которых -- это, кажется, главный сейчас по нейроэволюции, Kenneth Stanley из Uber AI) предложили метод под названием Deep Innovation Protection (DIP), который улучшает end-to-end обучение сложных world models (архитектура от David Ha и любимого нами Юргена Шмидхубера, World Models, https://arxiv.org/abs/1803.10122) с помощью эволюционных методов.

Идея world models (WM), если вы её пропустили, заключалась в том, что архитектура агента состоит из трёх компонентов:

1). Визуальный модуль, который маппит картинку в низкоразмерный код. Здесь использовался VAE.

2). Модуль памяти, который пытается предсказать будущие состояния среды (в виде низкоразмерного кода). Для этого использовалась LSTM с Mixture Density Network (MDN)

3). Контроллер, который берёт данные от визуального модуля и памяти и выдаёт следующее действие.

Оригинальная WM обучалась по частям: сначала визуальный модуль бэкпропом на роллаутах случайной полиси, потом MDN-RNN тоже бэкпропом, а потом уже контроллер через эволюционную стратегию (CMA-ES). Ну то есть нифига не end-to-end. Но работало уже весьма интересно и давало богатую пищу для размышлений.

Примерно полгода назад Стэнли и Риси (авторы текущей статьи) уже реализовали обучение WM end-to-end (Deep Neuroevolution of Recurrent and Discrete World Models, https://arxiv.org/abs/1906.08857) с помощью генетических алгоритмов и добились сравнимого с оригинальной WM результата на 2D car racing.

Но та работа про нейроэволюцию не очень работала на сложных средах с 3D типа WizDoom, и вот наконец текущая работа устраняет эту проблему.

Идея работы в том, что оптимизацию такой гетерогенной сети как WM надо рассматривать как коэволюцию различных подсистем. И если в одной из систем происходит какая-то инновация, то другим системам ещё надо успеть под неё подстроиться, потому что краткосрочно это приводит к деградации. Но вдруг после подстройки новый вариант всех порвёт? Соответственно надо защищать такие свежемутированные варианты, снижая давление отбора на них, тем самым давая время на эту подстройку.

Собственно в этом и идея. Мы трансформируем задачу в задачу многокритериальной оптимизации. Вторым критерием добавляется возраст решения. Если два индивида демонстрируют одинаковый перформанс, то преимущество отдаётся тому, у кого меньше возраст. А возраст сбрасывается в ноль для всех индивидов, у которых мутировала VAE или MDN-RNN (то есть визуальная система или система памяти).

Надо заметить, это заметно отличается от традиционного использования возраста индивида в эволюционных вычислениях, где оно обычно используется для увеличения разнообразия популяции, трекая как долго кто тут уже сидит. Текущий подход тоже в принципе влияет на разнообразие, но здесь возраст используется для подсчёта, сколько времени было у контроллера на подстраивание к изменившимся частям в апстриме.

Теперь и VAE, и MDN-RNN оптимизируются вместе генетическим алгоритмом, не оцениваясь по отдельности. VAE больше не оптимизируется на предмет более качественного восстановления исходной картинки, а модуль памяти больше не натаскивается на предсказание следующего состояния.

В общем в целом подход работает, выживать в среде VizDoom:Take Cover агент научается, DIP профит даёт.

Отдельный интересный вопрос, какие репрезентации сформирует агент для такой постановки, без явной оптимизации на реконструкцию или предсказание будущего. Ну что-то осмысленное вроде как выучивается. Похоже на то, что агент научается предсказывать попадёт в него fireball или нет (что безусловно оч.полезно для выживания в этой среде).

В общем, интересная работа, дальнейшие развития просятся.

#RL, #EVO
источник
gonzo-обзоры ML статей
источник
gonzo-обзоры ML статей
источник
gonzo-обзоры ML статей
источник
gonzo-обзоры ML статей
источник
2020 February 01
gonzo-обзоры ML статей
Understanding and Improving Interpolation in Autoencoders via an Adversarial Regularizer
David Berthelot, Colin Raffel, Aurko Roy, Ian Goodfellow
Статья: https://arxiv.org/abs/1807.07543
Код: https://github.com/brain-research/acai

А вот про автоэнкодеры. Которые умеют интерполировать в латентном пространстве.

Вроде как считается, что VAE отличается от обычного автоэнкодера именно этим. За счёт хитрых лоссов его латентные коды получаются непрерывными и более-менее любая точка из этого пространства генерит что-то похожее на реальность. В то время как обычный автоэнкодер ничего такого не гарантирует.

Но не всё так просто.

Если хочется уметь интерполировать в латентном пространстве так, чтобы любая комбинация вида alpha*z1 + (1-alpha)*z2 между двумя точками в этом пространстве z1 и z2 давала что-то хорошее, то VAE не так уж и хорош. На картинке с модельным примером с линиями хорошо видно. Каждый кадр нормальный, но нет непрерывности при движении по траектории в латентном пространстве. Другие автоэнкодеры тоже не очень. Например, сильно мылят или пытаются интерполировать в пространстве данных, между пиксельными картинками. Выглядит плохо.

Чтобы автоэнкодер соответствовал таким представлениям о прекрасном, авторами (среди которых есть и Гудфеллоу, автор GAN) в процедуру обучения вводится adversarial loss в лице critic network, в которую подаются интерполяции существующих примеров из данных, а критик должен определить, с каким коэффициентом alpha они были замешаны (либо ноль, если это не смесь). Получается ACAI, Adversarially Constrained Autoencoder Interpolation.

По сути, ACAI добивается того, чтобы интерполированные точки выглядели реалистично. Никаких ограничений на скрытые репрезентации не накладывается и структура этого пространства не задаётся (нет KL-лосса за несоответствие нормальному распределению, например, как в VAE). ACAI также не пытается отличать “настоящие” картинки от “ненастоящих”. Только предсказывает коэффициент интерполяции. И через стимулирование более качественной интерполяции влияет на скрытое представление.

Для численной оценки качества интерполяции предлагается простой бенчмарк с линиями (с часовой стрелкой если угодно), где всё понятно как мерять.

Сравниваются разные автоэнкодеры: обычный, denoising, VAE (не beta-VAE), adversarial autoencoder (AAE), vector quantizer VAE (VQ-VAE) и ACAI.

И картинки, и числа показывают, что ACAI работает лучше остальных перечисленных. Заодно получаем какую-то интересную интуицию про остальные автоэнкодеры на такой задаче.

Также проверяем качество representation learning’а — годные ли получаются фичи для downstream задач: классификации и кластеризации. Годные, ACAI рулит. Эпизодически также рулят другие автоэнкодеры, например Denoising AE на SVHN.

В общем, прикольная модель. Кажется полезной.
источник
gonzo-обзоры ML статей
источник
gonzo-обзоры ML статей
источник
gonzo-обзоры ML статей
Example interpolations on SVHN with a latent dimensionality of 256 for (a) Baseline, (b) Dropout, (c) Denoising, (d) VAE, (e) AAE, (f) VQ-VAE, (g) ACAI autoencoders.
источник
gonzo-обзоры ML статей
Example interpolations on CelebA with a latent dimensionality of 256 for (a) Baseline, (b) Dropout, (c) Denoising, (d) VAE, (e) AAE, (f) VQ-VAE, (g) ACAI autoencoders.
источник
2020 March 04
gonzo-обзоры ML статей
What's Hidden in a Randomly Weighted Neural Network?
Vivek Ramanujan, Mitchell Wortsman, Aniruddha Kembhavi, Ali Farhadi, Mohammad Rastegari
Статья: https://arxiv.org/abs/1911.13299

Из серии “про суть вещей”.

Случайно инициализированные сетки содержат подсети, которые демонстрируют хорошее качество вообще без обучения. Например, в рандомно инициализированном Wide ResNet-50 содержится подсетка со случайными весами, которая _без обучения_ достигает качества  _обученного_ на ImageNet ResNet-34. Предлагается алгоритм для эффективного нахождения таких подсеток.

В каком-то смысле продолжение истории про Lottery Ticket Hypothesys (https://arxiv.org/abs/1803.03635). Если кто не помнит, то это история про то, что большие сети содержат разреженные подсети, которые можно эффективно натренировать до такого же качества, что и большие родительские сети, если установить им ту самую “правильную инициализацию”, которая была у них внутри большой модели.

Затем была работа (https://arxiv.org/abs/1905.01067), показавшая, что существуют т.н. Supermasks — маски, наложенные на _необученную_ случайно инициализированную сеть, дающие результирующую сеть с качеством намного выше, чем случайное угадывание (86% on MNIST, 41% on CIFAR-10). Маска здесь в смысле бинарной маски, зануляющей часть весов.

Теперь авторы текущей работы выдвигают свою ещё более сильную гипотезу и подтверждают её фактами.

В терминах красивых фраз они “validate the unreasonable effectiveness of randomly weighted neural networks for image recognition“.

Для нахождения таких подсетей авторы предложили алгоритм edge-popup, суть которого в том, что для каждого веса в сети мы учим дополнительное число (popup score), по которому мы дальше оставляем топ-k% весов. В данной процедуре сами веса сети не обучаются и остаются случайными, как в начале процесса, обучаются градиентным спуском только popup scores, по которым дальше генерится подсеть.

Также авторы показывают, что распределение, из которого сэмплят веса, очень важно, и качество найденных алгоритмом сетей существенно проседает при “неправильной” инициализации.

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

(to be continued…)
источник
gonzo-обзоры ML статей
источник
gonzo-обзоры ML статей
источник
gonzo-обзоры ML статей
источник
gonzo-обзоры ML статей
К вопросу о правильных и неправильных инициализациях
источник
gonzo-обзоры ML статей
Самый шик
источник
2020 March 05
gonzo-обзоры ML статей
Proving the Lottery Ticket Hypothesis: Pruning is All You Need
Eran Malach, Gilad Yehudai, Shai Shalev-Shwartz, Ohad Shamir
Статья: https://arxiv.org/abs/2002.00585

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

Для любого ограниченного распределения и любой целевой сети с ограниченными весами, достаточно over-parameterized сетка со случайными весами содержит подсеть с примерно такой же точностью, что и целевая сеть. БЕЗ ВСЯКОГО ОБУЧЕНИЯ.

(Disclaimer: вывод доказательства пока не проверял)

Авторы разделяют два типа подсетей: подсети с удалёнными весами (weight-subnetworks) и подсети с целиком удалёнными нейронами (neuron-subnetworks). Показано, что прунинг весов может достигать строго лучших результатов, чем прунинг нейронов.

Главный результат: в работе показано, что ReLU-сеть произвольной глубины L может быть аппроксимирована нахождением weight-subnetwork в случайной сети глубины 2L и достаточной ширины.

Есть также чуть более сильный результат для случая, когда целевая сеть имеет глубину 2. Тогда достаточно отпрунить сеть глубины 3 (а не 4).

Ещё один результат касается прунинга нейронов: сеть глубины 2 (с одним скрытым слоем) содержит neuron-subnetwork сравнимую с лучшим классификатором с рандомными фичами (то есть классификатор, у которого тренируется только второй слой сети). Эта эквивалентность высвечивает также проблему для прунинга нейронов — поскольку модели на случайных фичах ограничены (https://arxiv.org/abs/1904.00687), ограничен и такой прунинг, а прунинг весов более могуч.

Главный итог: по сути прунинг случайно инициализированной сети столь же мощен как и оптимизация её весов. То есть “all you need is a good pruning mechanism”.

При всех этих крутых результатах прунинг весов вычислительно труден и не существует эффективного алгоритма, гарантирующего получение оптимальной weight-subnetwork для любого входного распределения. Правда, как и с обучением весов, на практике могут хорошо работать различные эвристики.

Кроме того, про градиентные алгоритмы, основу всего современного обучения нейросетей, известно наличие проблемных мест (кстати, в частности, это подтверждает способность self-distillation получать лучшие результаты, чем обученная градиентными методами родительская сеть на тех же данных). Возможно, алгоритмы на основе прунинга сумеют избежать этих проблем. Who knows.

Что дальше? Найти хорошую практическую эвристику и изменить мир. А также обобщить результаты на другие архитектуры типа свёрточных или резнетов.

Ну если в доказательствах нет ошибок.
источник
gonzo-обзоры ML статей
для оценки масштаба бедствия
источник
2020 March 08
gonzo-обзоры ML статей
Rigging the Lottery: Making All Tickets Winners
Utku Evci, Trevor Gale, Jacob Menick, Pablo Samuel Castro, Erich Elsen
Статья: https://arxiv.org/abs/1911.11134
Код: http://github.com/google-research/rigl

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

Наиболее популярные сейчас методы получения разреженных сетей, когда сначала обучается обычная dense сетка, которая потом урезается (т.н. dense-to-sparse методы), имеют ограничения. В первую очередь таким образом мы ограничиваем сверху размер (и вероятно качество) разреженной сети. Ну и к тому же это неэффективно — мы производим много вычислений для параметров, которые будут нулевыми.

Есть также методы (и появляется всё больше), получающие разреженность в процессе обучения (DeepR, SET, DSR, SNFS — dynamic sparsity стратегии) или даже инициализации (SNIP, т.н. one-shot pruning алгоритм). Эту группу можно назвать sparse-to-sparse методами или sparse training алгоритмами.

Авторы предлагают свой метод обучения разреженных сетей с заданным числом параметров, способный находить модели более высокого качества по сравнению с текущими лучшими методами. Для метода не требуется “удачная инициализация”, поэтому его назвали RigL (читается как wriggle), “The Rigged Lottery”. Метод динамически обновляет сеть в процессе обучения, это dynamic sparse training.

Идея метода в том, что мы регулярно убираем часть соединений (зануляем веса) и создаём новые.

Улучшения в качестве достигаются благодаря двум вещам: новому методу для создания новых соединений и улучшению метода распределения параметров по свёрточным слоям.

Среди методов распределения разреженности рассматриваются три:

1) Равномерное распределение (все слои получают одинаковую разреженность)
2) Эрдёш-Реньи (число соединений масштабируется с учётом числа входящих и выходящих каналов)
3) Эрдёш-Реньи с ядром, ERK (модификация предыдущего, учитывающая размерность свёрточных фильтров)

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

ERK показывает себя лучше всех.

Суть обновлений в том, что каждые T шагов обучения сначала дропается часть весов (с минимальной магнитудой), а потом отращиваются новые (те, что дают наибольшие градиенты — и в этом новизна). Новые соединения инициализируются нулями, чтобы не влиять на выход сети. Но ожидается, что они получат градиенты с высокими магнитудами на следующей итерации и быстрее всего уменьшат лосс.

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

RigL сравнивали с кучей текущих dense-to-sparse и sparse-to-sparse методов (какие-то имея реализацию, другие по репортам из статей), с плотными сетями аналогичного числа параметров, а также с алгоритмами structured pruning (SBP, L0, VIB).

RigL (или RigL+, стартующий с архитектуры, найденной RigL) рулят.

Показано, что инициализация Lottery Ticket’ом не даёт преимуществ, с RigL выигрывают все билеты.

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

Также здорово, что в работе есть список багов, которые они нашли у себя в процессе реализации, и как с ними бороться. Полезно. Больше бы такого.
источник
gonzo-обзоры ML статей
источник