Обсуждение статьи "Глубокие нейросети (Часть V). Байесовская оптимизация гиперпараметров DNN" - страница 3

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Для байесовской нужно поиграть не только с количеством проходов но и с количеством точек. Нужно искать более быстрый вариант. С этим очень утомительно
Для ускорения добавьте в параметры при вызове BayesianOptimization
maxit = 1 #1 вместо 100 - число повторов для GP_fit для предсказания гиперплоскости
Не заметил улучшений при 100 повторах в сравнении с 1, поэтому теперь использую 1.
Т.е.
maxit=1 через ... пердастся в GPfit::GP_fit и оптимизация будет 1 раз запускаться вместо 100.
Еще можно передать:
control = c(20*d, 10*d, 2*d);#по умолчанию - control = c(200*d, 80*d, 2*d) - из 200*d выбрать 80*d лучших и построить 2*d кластеров - где d - число оптимизируемых параметров
Описание этих параметров тут https://github.com/cran/GPfit/blob/master/R/GP_fit.R
ПС. Вы что не переходите на TensorFlow? Это просто более высокий уровень.
Хотя Darch плохо поддерживается, кое что они поправили и доработали, но в январе его из CRAN в архив отправили за неисправление ошибок (там была одна с оценкой ошибки в режиме обучения с валидацией). В мае выпустили 13 версию, но потом откатили к 12-й. Сейчас вот опять 13-я появилась - видимо доделали.
Для ускорения добавьте в параметры при вызове BayesianOptimization
maxit = 1 #1 вместо 100 - число повторов для GP_fit для предсказания гиперплоскости
maxit=1 через ... пердастся в GPfit::GP_fit и оптимизация будет 1 раз запускаться вместо 100.Не заметил улучшений при 100 повторах в сравнении с 1, поэтому использую 1.
Т.е.
Еще можно передать:
control = c(20*d, 10*d, 2*d);#по умолчанию - control = c(200*d, 80*d, 2*d) - из 200*d выбрать 80*d лучших и построить 2*d кластеров - где d - число оптимизируемых параметров
Да вроде и с Darch 30% при обучении и 36% на тесте получается. Доделаю советник, запущу в работу, а потом может займусь.
Хотя Darch плохо поддерживается, кое что они поправили и доработали, но в январе его из CRAN в архив отправили за неисправление ошибок (там была одна с оценкой ошибки в режиме обучения с валидацией). В мае выпустили 13 версию, но потом откатили к 12-й. Сейчас вот опять 13-я появилась - видимо доделали.
Спасибо за информацию. Попробую с Вашими параметрами.
Я давно к ним не заходил на Github. Нужно будет предложение написать. В пакете darch предусмотрено использование GPU но пакет который они используют для этого из CRAN удалили (для 3.4.4). А было бы интересно как повлияет GPU на скорость и качество.
Удачи
Еще один тормоз тут
https://github.com/yanyachen/rBayesianOptimization/blob/master/R/Utility_Max.R
Тоже ставлю maxit = 1 вместо 100.
Через ... передать нельзя, можно просто свою Utility_Max функцию в R загрузить и пользоваться исправленной версией.
Еще один тормоз тут
https://github.com/yanyachen/rBayesianOptimization/blob/master/R/Utility_Max.R
Тоже ставлю maxit = 1 вместо 100.
Через ... передать нельзя, можно просто свою Utility_Max функцию в R загрузить и пользоваться исправленной версией.
Проверил на оптимизации ансамбля нейросетей из статьи PartVI. Ни maxit, ни control не оказывают видимого влияния на время вычисления. Наибольшее влияние оказывает количество нейронов в скрытом слое. Оставил так
Лучших 10
Value - средний F1. Неплохие показатели.
Для ускорения вычислений нужно переписать некоторые функции пакета. Самое первое - заменить все ncol(), nrow() которых там море на dim()[1], dim()[2]. Они исполняются в десятки раз быстрее. Ну и наверное, поскольку там только матричные операции, использовать GPU (пакет gpuR ). Сам я это сделать не смогу, может предложить разработчику?
Удачи
Проверил на оптимизации ансамбля нейросетей из статьи PartVI. Ни maxit, ни control не оказывают видимого времени иполнения. Наибольшее влияние оказывает количество нейронов в скрытом слое. Оставил так
Лучших 10
Value - средний F1. Неплохие показатели.
Для ускорения вычислений нужно переписать некоторые функции пакета. Самое первое - заменить все ncol(), nrow() которых там море на dim()[1], dim()[2]. Они исполняются в десятки раз быстрее. Ну и наверное, поскольку там только матричные операции. использовать GPU (пакет gpuR ). Сам я это сделать не смогу, может предложить разработчику?
Удачи
Просто вы оптимизируете мало параметров, я штук 20 оптимизировал, и когда известных точек становится 20-40 штук, тогда расчет только GPfit занимал десятки минут, вот в таких условиях и будет видно ускорение.
А число нейронов влияет только на время расчета самой НС.
Просто вы оптимизируете мало параметров, я штук 20 оптимизировал, и когда известных точек становится 20-40 штук, тогда расчет только GPfit занимал десятки минут, вот в таких условиях и будет видно ускорение.
А число нейронов влияет только на время расчета самой НС.
Наверное так.
Новая статья Глубокие нейронные сети (часть V). Байесовская оптимизация гиперпараметров ДНН опубликована:
Автор: Владимир Перервенко