Как сократить размер нейросети на 10-20% и не проиграть в точности

На ICLR 2019 исследователи из MIT представили метод, с помощью которого можно уменьшить размер нейросети на 10-20% и не потерять при этом в точности модели. Исследователи вводят “гипотезу о выигрышных билетах”: плотные, случайно инициализированные полносвязные нейросети содержат подсети, которые при обучении отдельно достигают точности, сравнимой с точностью полной сети. Такие сети исследователи называют “выигрышными билетами”.

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

Как определять “выигрышные билеты”

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

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

  1. Инициализируйте параметры нейросети случайно;
  2. Обучите сеть N итераций;
  3. Обрежьте часть параметров сети (при этом создается маска);
  4. Оставшуюся часть параметров сети обновите до начального состояния, когда они задавались случайно

Результаты

Для проверки гипотезы исследователи протестировали поиск эффективных подсетей в полносвязных архитектурах на MNIST и в сверточных архитектурах на CIFAR10. При этом были использованы несколько оптимизаторов: SGD, momentum и Adam, — и такие техники, как дропаут, residual connections и нормализация батча. В более сложных сетях техника обрезания части параметров будет более чувствительна к параметру скорости обучения.

Архитектуры, которые были протестированы в исследовании. Pruning rate — насколько удалось сократить размер нейросети в процентах

В итоге исследователям удается найти “выигрышные билеты”, которые содержат на 10-20% меньше параметров, чем оригинальная нейросеть.

Будущие направления исследований

Можно выделить три актуальных направления в исследовании оптимизации размера нейросети:

  1. В работе был предложен грубый подход к определению эффективных подсетей: тренируем и обрезаем параметры оригинальной нейросети на одном датасете, чтобы использовать эффективную подсеть при обучении на другом датасете. Вопрос в том, есть ли более эффективный способ определять эффективную подсеть в самом начале обучения нейросети?
  2. Есть ли ограничения в обучении на “выигрышных билетах”: будет ли использование эффективной подсети на другой задаче влиять на точность модели?
  3. Насколько маленьким может быть количество параметров нейросети, чтобы это не влияло на точность модели?

Как работают рекомендательные системы

Рекомендательные системы, основанные на машинном обучении, получили широкое распространение для бизнеса в последние годы. В этой статье приведено описание принципов работы основных методов для реализации рекомендательных систем и метрик для оценки их работы. Перевод статьи Recommendation Systems — Models and Evaluation, автор — Neerja Doshi, ссылка…
scripts to animation

Разработанный в Disney алгоритм создаёт анимации из сценария

Перевод текста в анимацию сложная задача и существующие модели преобразования текста в анимацию могут работать только с простыми задачами. Исследователи из компании Disney разработали алгоритм, который позволяет преобразовывать текст в анимацию. Цель не заменить писателей и художников, а сделать их работу более эффективной. Возможность обработки…

Почему проектами машинного обучения сложно управлять?

Многие компании пытаются внедрить машинное обучение — некоторые преуспевают, а другие терпят неудачу. Причина часто в том, что командам ML-инженеров трудно ставить конкретные цели. Почему так происходит? На этот и другие вопросы решил ответить Лукас Бивальд, основатель стартапа Weights&Biases, занимающегося разработкой софта для глубокого…
слепые зоны в обучении беспилотных автомобилей

Алгоритм Microsoft и MIT находит «слепые зоны» в обучении беспилотных автомобилей

Модель, совместно разработанная Microsoft и MIT, выявляет «слепые зоны» в обучении беспилотных автомобилей. Инженеры планируют использовать ее для повышения безопасности автономных автомобилей и роботов. Симуляция городской среды не может охватить все возможные ситуации на дороге, что приводит к непредвиденным ошибкам в реальных условиях. Если автономный…
resnet-neural-network

ResNet (34, 50, 101): «остаточные» CNN для классификации изображений

ResNet — это сокращенное название для Residual Network (дословно  — «остаточная сеть»), но что такое residual learning («остаточное обучение»)? Глубокие сверточные нейронные сети превзошли человеческий уровень классификации изображений в 2015 году. Глубокие сети извлекают низко-, средне- и высокоуровневые признаки  сквозным многослойным способом, а увеличение…

Неопределенность в алгоритмах — способ сделать ИИ более этичным

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

Accenture Research: ИИ не нужно много данных, ему нужен здравый смысл

Исключительная роль больших данных уходит в прошлое. Будущее ИИ — это вероятностные модели и обучение на опыте. Исследователи заявляют, что в ближайшие 5 лет компьютеры станут менее «искусственными» и более «интеллектуальными». Они будут меньше полагаться на big data и больше на логические выводы, подобно тому,…

Обучение Inception-v3 распознаванию собственных изображений

В моем предыдущем посте мы увидели, как выполнять распознавание изображений с помощью TensorFlow с использованием API Python на CPU без какого-либо обучения. Мы использовали предобученную модель Inception-v3, которую Google уже обучил на тысяче классов, но что, если мы хотим сделать то же самое, но…
эпоха итерации батчи

Эпоха, батч, итерация — в чем различия?

Вам должны быть знакомы моменты, когда вы смотрите на код и удивляетесь: “Почему я использую в коде эти три параметра, в чем отличие между ними?”. И это неспроста, так как параметры выглядят очень похожими. Epoch - Batch Size - Iteration Чтобы выяснить разницу между…
gradient-noise-open-ai-batch-size

OpenAI вычисляют идеальный batch size для обучения моделей

Разработчики OpenAI представили исследование, которое показывает, что можно определить идеальный размер пакета данных для обучения алгоритмов, основываясь на данных шкалы градиентного шума. Метод позволит сократить время и стоимость обучения. В последние несколько лет исследователи добились успеха в ускорении обучения нейронных сетей благодаря параллельному обучению…
алгоритм классификации без отрицательных данных в датасете

Разработан новый алгоритм классификации без отрицательных данных в датасете

Исследователи проекта RIKEN разработали новый метод машинного обучения, который позволяет обучать модели классифицировать объекты без отрицательных данных в обучающем датасете. В задачах классификации алгоритмы используют положительные и отрицательные данные. Например, если нужно определить улыбку на фотографии, то изображения с улыбающимся человеком будут классифицированы как…
градиентный бустинг

Градиентый бустинг — просто о сложном

Хотя большинство победителей соревнований на Kaggle используют композицию разных моделей, одна из них заслуживает особого внимания, так как является почти обязательной частью. Речь, конечно, про Градиентный бустинг (GBM) и его вариации. Возьмем, например. победителя Safe Driver Prediction, Michael Jahrer. Его решение — это комбинация…
обратное распространение

Метод обратного распространения ошибки: математика, примеры, код

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

Градиентный спуск: всё, что нужно знать

Градиентный спуск — самый используемый алгоритм обучения, он применяется почти в каждой модели машинного обучения. Градиентный спуск — это, по сути, и есть то, как обучаются модели. Без ГС машинное обучение не было бы там, где сейчас. Метод градиентного спуска с некоторой модификацией широко используется для обучения…
pytorch bigraph

Сверточная нейронная сеть на PyTorch: пошаговое руководство

В предыдущем вводном туториале по нейронным сетям была создана трехслойная архитектура для классификации рукописных символов датасета MNIST. В конце туториала была показана точность приблизительно 86%. Для простого датасета, как MNIST, это плохое качество. Дальнейшая оптимизация смогла улучшить результат плотно соединенной сети до 97-98% точности.…
pytorch туториал

Туториал по PyTorch: от установки до готовой нейронной сети

Если вы уже пробовали создавать собственные глубокие нейронные сети с помощью TensorFlow и Keras, то, вероятно, знакомы с чувством разочарования при отлаживании этих библиотек. Хотя они имеют API на Python, всё еще трудно выяснить, что именно пошло не так при ошибке. Они также плохо…
обучение с без учителя, с подкреплением

Обучение нейросети с учителем, без учителя, с подкреплением — в чем отличие? Какой алгоритм лучше?

Обучить нейронную сеть можно разными способами: с учителем, без учителя, с подкреплением. Но как выбрать оптимальный алгоритм и чем они отличаются? Есть несколько способов собрать мебель из IKEA. Каждый из них приводит к собранному дивану или стулу. Но в зависимости от предмета мебели и…
обучение нейронной сети - проклятие размерности

Обучение нейронных сетей: проклятие размерности

Представьте, что вы альпинист на вершине горы и наступает ночь. Вам нужно добраться до лагеря, что внизу скалы, но в свете тусклого фонарика вы можете видеть лишь на несколько метров. Так как же спуститься вниз? Одна из стратегий — оглядеться и понять, какой склон…

МРТ, чип в мозге и нейросети вернули подвижность парализованному человеку

Исследователи много лет работают над методами на основе электрических импульсов, чтобы вернуть возможность двигаться людям с травмами спинного мозга и парализованными конечностями. Учёные из Университета Огайо и компании Batelle объявили, что им удалось сделать прорыв в технологии с помощью нейронных сетей. Инвазивный метод Участником эксперимента…
глубокое обучение

Глубокое обучение (Deep Learning): краткий туториал

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