Отжиг и вымораживание: две свежие идеи, как ускорить обучение глубоких сетей |
||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2017-07-06 14:12 свёрточные нейронные сети, большие данные big data, алгоритмы машинного обучения В этом посте изложены две недавно опубликованные идеи, как ускорить процесс обучения глубоких нейронных сетей при увеличении точности предсказания. Предложенные (разными авторами) способы ортогональны друг другу, и могут использоваться совместно и по отдельности. Предложенные здесь способы просты для понимания и реализации. Собственно, ссылки на оригиналы публикаций: 1. Ансамбль снимков: много моделей по цене одной Обычные ансамбли моделей Ансамбли — это группы моделей, используемых коллективно для получения предсказания. Идея проста: обучи несколько моделей с разными гиперпараметрами, и усредни их предсказания при тестировании. Эта методика дает заметный прирост в точности предсказания, большинство победителей соревнований по машинному обучению Так в чем проблема? Обучение N моделей потребует в N раз больше времени по сравнению с тренировкой одной модели. Механика SGD Стохастический градиентный спуск (SGD) — жадный алгоритм. Он перемещается в пространстве параметров в направлении наибольшего уклона. При этом, есть один ключевой параметр: скорость обучения. Если скорость обучения слишком высока, SGD игнорирует узкие лощины в рельефе гиперплоскости параметров (минимумы) и перескакивает через них как танк через окопы. С другой стороны, если скорость обучения мала, SGD проваливается в один из локальных минимумов и не может выбраться из него. Следим за руками... Авторы статьи используют этот контролируемый параметр SGD для скатывания в локальный минимум и выхода оттуда. Разные локальные минимумы могут давать одинаковый процент ошибок при тестировании, но конкретные ошибки для каждого локального минимума будут разными! Из чего состоит ансамбль? Авторы эксплуатируют свойство локальных минимумов отражать различные «точки зрения» на предсказания модели. Каждый раз, когда SGD достигает локального минимума, сохраняют снимок модели, из которых при тестировании и составят ансамбль. Циклический косинусный отжиг Для автоматического принятия решения, когда погружаться в локальный минимум, и когда выходить из него, авторы используют функцию отжига скорости обучения: Заключение Авторы приводят результаты тестирования на нескольких датасетах (Cifar 10, Cifar 100, SVHN, Tiny IMageNet) и нескольких популярных архитектурах нейронных сетей (ResNet-110, Wide-ResNet-32, DenseNet-40, DenseNet-100). Во всех случаях ансамбль, обученный предложенным способом показал наименьший процент ошибок. 2. Вымораживание: ускорение обучения путем последовательного замораживания слоёв Авторы статьи продемонстрировали ускорение обучения путем замораживания слоёв без потери точности предсказания. Что означает замораживание слоёв? Замораживание слоя предотвращает изменение весовых коэффициентов слоя при обучении. Эта методика часто используется при обучении переносом (transfer learning), когда базовую модель, обученную на другом датасете, замораживают. Как замораживание влияет на скорость модели? Если вы не хотите изменять весовые коэффициенты слоя, обратный проход по этому слою можно полностью исключить. Это серьезно ускоряет процесс вычислений. Например, если половина слоев в вашей модели заморожена, для тренировки модели потребуется вдвое меньше вычислений. В чем новизна? Авторы показали способ, как замораживать слои один за другим как можно раньше, оптимизируя время обучения за счет исключения обратных проходов. В начале модель целиком обучаема, как обычно. После нескольких итераций первый слой модели замораживают, и продолжают обучать остальные слои. После еще нескольких итераций замораживают следующий слой, и так далее. (Опять) отжиг скорости обучения Авторы использовали отжиг скорости обучения. Важное отличие их подхода: скорость обучения изменяется от слоя к слою, а не для всей модели. Они использовали следующее выражение: Источник: habrahabr.ru Комментарии: |
|