Optuna. Подбор гиперпараметров для вашей модели |
||
|
МЕНЮ Главная страница Поиск Регистрация на сайте Помощь проекту Архив новостей ТЕМЫ Новости ИИ Голосовой помощник Разработка ИИГородские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Искусственный интеллект Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Психология ИИ Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Творчество ИИ Техническое зрение Чат-боты Авторизация |
2023-02-12 14:51 Гиперпараметры — это характеристики модели, которые фиксируются до начала обучения (например - глубина решающего дерева, значение силы регуляризации в линейной модели, learning rate для градиентного спуска). Гиперпараметры, в отличие от параметров задаются разработчиком модели перед ее обучением, в свою очередь параметры модели настраиваются в процессе обучения модели на данных. Optuna — это фреймворк для для автоматизированного поиска оптимальных гиперпараметров для моделей машинного обучения. Она подбирает эти параметры методом проб и ошибок. Ключевые особенности фреймворка:
Установка Рекомендуется установка через pip.
Базовый пример Этот фреймворк обычно используют как оптимизатор гиперпараметров, но никто не запрещает использовать ее для оптимизации любой функции. В качестве базового примера использования, авторы фреймворка показывают как можно минимизировать квадратичную функцию
Как задать пространство поиска гиперпараметров? Как было показано выше в целевую функцию будет передан специальный объект
Что еще можно настроить до начала оптимизации? Чтобы запустить обучение нам необходимо создать объект В момент создания можно указать:
После создания объекта Study, можно приступать к оптимизации целевой функции. Сделать это можно с помощью метода Как посмотреть результаты оптимизации? В объекте Study есть специальные поля, которые позволяют посмотреть результаты после обучения:
Как сохранить/загрузить результаты испытаний? Сохранить только историю в виде датафрейма
Сохранить дамп самого оптимизатора
Можно также сохранять результаты испытаний в БД, для этого в Optuna есть специальный модуль Storages, который предоставляет некоторые объекты для взаимодействия БД. Например есть объект позволяющий взаимодействовать с redis. Пример. Что такое Sampler и Pruner? Samplers в Optuna это набор алгоритмов для поиска гиперпараметров. Небольшой экскурс в теорию. Существуют различные подходы к поиску оптимальных гиперпараметров, ниже примеры алгоритмов:
Более подробно про эти алгоритмы, а также про Tree-structured Parzen Estimator (TPE), Population Based Training (PBT) можно прочитать в учебнике по машинному обучению от Яндекс, там же можно найти ссылки на полезные ресурсы по этой теме и сравнение подходов между собой. В Optuna реализованы:
По умолчанию устанавливается TPESampler. Pruners в Optuna - это набор алгоритмов для прореживания экспериментов. Pruning - это механизм который позволяет обрывать эксперименты , которые с большой долей вероятности приведут к не оптимальным результатам. Для примера рассмотрим самый простой прунер - MedianPruner. Он обрезает на каждом шаге половину бесперспективных испытаний.
На каждой эпохе (шаге) Pruner отбрасывает ровно половину испытаний, после 3х эпох, лучшим остается 7 испытание, оно будет доведено до конца, остальные будут завершены раньше.
В Optuna реализованы:
Какой Sampler и Pruner стоит использовать ? В документации согласно этому исследованию “Benchmarks with Kurobako” для не глубогкого обучения стоит использовать:
В документации также приведены рекомендации для глубокого обучения. Как подружить фреймворк с популярными библиотеками? В Optuna есть модуль А что еще есть?
Источник: habr.com Комментарии: |
|