❤🔥2
#global #optimization #benchmarks
Дали ссылку на такое вот иллюстрированное сравнение численных оптимизаторов
https://infinity77.net/go_2021/thebenchmarks.html
Дали ссылку на такое вот иллюстрированное сравнение численных оптимизаторов
https://infinity77.net/go_2021/thebenchmarks.html
#global #optimization
Реализовал Гауссов процесс и квантильный бустинг в рамках той же задачи. Последний выглядит получше, есть надежда довести до боя.
Реализовал Гауссов процесс и квантильный бустинг в рамках той же задачи. Последний выглядит получше, есть надежда довести до боя.
🔥1
#featureselection #diogenes #rfecv
Вот так, кстати, выглядит зависимость ML-метрики от числа признаков в Diogenes. Это пример с реальными данными, но синтетическими зависимостями. Пока кандидаты для проверки генерятся полным случайным перебором, подключаю более интеллектуальные методы.
Вот так, кстати, выглядит зависимость ML-метрики от числа признаков в Diogenes. Это пример с реальными данными, но синтетическими зависимостями. Пока кандидаты для проверки генерятся полным случайным перебором, подключаю более интеллектуальные методы.
#featureselection #rfecv
Некоторые мысли по поводу процесса отбора признаков в RFECV
1) Количество проверяемых признаков имеет свою стоимость. Проверить nfeatures=10 стоит гораздо дешевле, чем проверить nfeatures=1000 (скажем, на терабайтном датасете). С другой стороны, проверка 1000 фичей даст больше информации об их рейтинге, что будет полезно при выборе следующих кандидатов. Но опять же, за время проверки 1000 можно проверить сразу несколько более мелких комбинаций... Надо как-то учитывать этот баланс.
Пока ограничусь проверкой начальных сэмплированных значений (для обучения базы) в порядке возрастания, чтобы при срабатывании лимита времени успеть проверить больше комбинаций.
2) Можно ли совмещать FS с HPT прямо в процессе FS? Скажем, пока мы с помощью интеллектуального алгоритма из 1000 признаков проверяем 50 комбинаций nfeatures, можем ли мы одновременно варьировать гиперпараметры базового оценщика, чтобы собрать дополнительную ценную информацию? С точки зрения выбора следующего кандидата варьирование HPT обычно ничего не изменит (за исключением случаев когда HPT совсем уж явно изменит лидеров), т.к. всё равно будут использоваться ранги. А вот для последующего обучения на финальном наборе это может дать очень ценную информацию бесплатно, особенно если базовый оценщик тоже будет использоваться на финальной стадии конвейера. Плюс это повысит вариативность, и, соответственно, реалистичность оценок CV.
Проще говоря, если собирать инфу о рейтингах признаков неизбежно надо, причём обучая модельки, так давайте заодно менять при каждом обучении HP и дополнительно собирать данные о чувствительности итоговых метрик к гиперпараметрам?
Планирую сэмплить HP из допустимого множества для заданной базовой модели. Возможно, придётся вести список "опасных" значений HP, которые сильно увеличат время расчётов. Итоговые кортежи (hp,feature_stats,train_time,ml_perf) сохранять в отборщике признаков для посл старта в HPT.
3) А можно ли как-то ещё заюзать эти десятки и сотни промежуточных моделек из фазы FS? Понятно, они все обучены на разных количествах признаков, да ещё и лишь на CV частях train set. Но всё-таки даже на них будут затрачены большие ресурсы, и они представляют собой ценный актив. Ну хотя бы с точки зрения последующего ансамблирования, или точечной оценки уверенности в прогнозах (когда модельки расходятся во мнениях)?
Думаю опционально сохранять их в памяти и/или на диске, с указанием входных признаков.
4) Есть ли смысл в RFECV использовать сразу несколько базовых алгоритмов? Скажем, и catboost, и lgbm.
5) Как выяснилось недавно, у lgbm есть режим, когда листья дерева заменяются наклонными линиями регрессии. По идее, это позволит лучше моделировать связи, особенно на небольшом числе точек. Стоит ли попробовать такой сплайновый режим?
Некоторые мысли по поводу процесса отбора признаков в RFECV
1) Количество проверяемых признаков имеет свою стоимость. Проверить nfeatures=10 стоит гораздо дешевле, чем проверить nfeatures=1000 (скажем, на терабайтном датасете). С другой стороны, проверка 1000 фичей даст больше информации об их рейтинге, что будет полезно при выборе следующих кандидатов. Но опять же, за время проверки 1000 можно проверить сразу несколько более мелких комбинаций... Надо как-то учитывать этот баланс.
Пока ограничусь проверкой начальных сэмплированных значений (для обучения базы) в порядке возрастания, чтобы при срабатывании лимита времени успеть проверить больше комбинаций.
2) Можно ли совмещать FS с HPT прямо в процессе FS? Скажем, пока мы с помощью интеллектуального алгоритма из 1000 признаков проверяем 50 комбинаций nfeatures, можем ли мы одновременно варьировать гиперпараметры базового оценщика, чтобы собрать дополнительную ценную информацию? С точки зрения выбора следующего кандидата варьирование HPT обычно ничего не изменит (за исключением случаев когда HPT совсем уж явно изменит лидеров), т.к. всё равно будут использоваться ранги. А вот для последующего обучения на финальном наборе это может дать очень ценную информацию бесплатно, особенно если базовый оценщик тоже будет использоваться на финальной стадии конвейера. Плюс это повысит вариативность, и, соответственно, реалистичность оценок CV.
Проще говоря, если собирать инфу о рейтингах признаков неизбежно надо, причём обучая модельки, так давайте заодно менять при каждом обучении HP и дополнительно собирать данные о чувствительности итоговых метрик к гиперпараметрам?
Планирую сэмплить HP из допустимого множества для заданной базовой модели. Возможно, придётся вести список "опасных" значений HP, которые сильно увеличат время расчётов. Итоговые кортежи (hp,feature_stats,train_time,ml_perf) сохранять в отборщике признаков для посл старта в HPT.
3) А можно ли как-то ещё заюзать эти десятки и сотни промежуточных моделек из фазы FS? Понятно, они все обучены на разных количествах признаков, да ещё и лишь на CV частях train set. Но всё-таки даже на них будут затрачены большие ресурсы, и они представляют собой ценный актив. Ну хотя бы с точки зрения последующего ансамблирования, или точечной оценки уверенности в прогнозах (когда модельки расходятся во мнениях)?
Думаю опционально сохранять их в памяти и/или на диске, с указанием входных признаков.
4) Есть ли смысл в RFECV использовать сразу несколько базовых алгоритмов? Скажем, и catboost, и lgbm.
5) Как выяснилось недавно, у lgbm есть режим, когда листья дерева заменяются наклонными линиями регрессии. По идее, это позволит лучше моделировать связи, особенно на небольшом числе точек. Стоит ли попробовать такой сплайновый режим?
Telegram
ML for Value / Ваня Максимов
Неклассические бустинги над деревьями (hybrid regression tree boosting)
У бустингов над деревьями есть некоторые проблемы с линейными зависимостями. Почему бы тогда не совместить бустинг, деревья и линейную регрессию?
Идея такая: в классическом дереве для…
У бустингов над деревьями есть некоторые проблемы с линейными зависимостями. Почему бы тогда не совместить бустинг, деревья и линейную регрессию?
Идея такая: в классическом дереве для…
А Вы используете feature selection (FS) в своих конвейерах ML?
Anonymous Poll
13%
Не использую. Это не нужно: современные алгоритмы сами берут только релевантные признаки
0%
Хотелось бы использовать, но мои ML среды (DaksML, SparkML) не поддерживают FS
47%
Делаю FS вручную. Ничто не заменит эксперта!
40%
Использую filter методы (corrcoeff, mutualinfo+SelectKBest)
33%
Использую wrapper методы (SelectFromModel, RFECV)
13%
Использую embedded методы
20%
Использую комбинацию методов
#tradig #chan
Интересно про модель на инструмент, стратегии которые продержались в бою 4 года, плавную аллокацию капитала для новой стратегии.
https://www.youtube.com/watch?v=DW9zQ8Hz6gQ
Интересно про модель на инструмент, стратегии которые продержались в бою 4 года, плавную аллокацию капитала для новой стратегии.
https://www.youtube.com/watch?v=DW9zQ8Hz6gQ
YouTube
How quant trading strategies are developed and tested w/ Ernie Chan
EP 052: How quantitative trading strategies are created, scrutinized and introduced to the market w/ Ernie Chan
* More interviews: http://chatwithtraders.com
* Free eBook: http://chatwithtraders.com/17lessons
* Twitter: https://twitter.com/chatwithtraders…
* More interviews: http://chatwithtraders.com
* Free eBook: http://chatwithtraders.com/17lessons
* Twitter: https://twitter.com/chatwithtraders…
#hpt #optuna #codegems
Добавляю в сравнение по текущей задаче FS современные библиотеки оптимизации, в частности, очень популярная ныне (как б даже не лидер?) Optuna. Дабы освежить память, заглянул в доку. Привлёк внимание рецепт от создателей Оптуны, как бороться с дублированными кандидатами, которых иногда выдаёт Оптуна же. Ну это просто жопа, господа.
Добавляю в сравнение по текущей задаче FS современные библиотеки оптимизации, в частности, очень популярная ныне (как б даже не лидер?) Optuna. Дабы освежить память, заглянул в доку. Привлёк внимание рецепт от создателей Оптуны, как бороться с дублированными кандидатами, которых иногда выдаёт Оптуна же. Ну это просто жопа, господа.
😁1
#optuna #dask #optimization #global
Разные способы заюзать Даск из Оптуны.
https://www.youtube.com/watch?v=euT6_h7iIBA
Разные способы заюзать Даск из Оптуны.
https://www.youtube.com/watch?v=euT6_h7iIBA
YouTube
Dask and Optuna for Hyper Parameter Optimization
Notebook: https://gist.github.com/mrocklin/683196204d9387d1a30a9d4c660e7be0
How to use Optuna and Dask together to perform parallel hyper-parameter optimization at scale. This notebook uses a toy example, for a more fully-featured example take a look at…
How to use Optuna and Dask together to perform parallel hyper-parameter optimization at scale. This notebook uses a toy example, for a more fully-featured example take a look at…
#skopt #optuna #global #optimization
Неожиданно срезонировала библиотечка skopt. Я уже начал писать свой интерфейс оптимизитора, и сразу добавил туда вещи, которых мне очень не хватало в Оптуне: возможность указать "затравочные" входы, ответы на которые надо вычислить обязательно, разные виды начального сэмплирования (не только случайное, а ещё и фибо, обратное фибо для одномерого случая). Всё это кажется таким естественным, но я уже привык, что программисты по всему миру всегда думают иначе, чем я. И тут с большим удивлением увидел, что авторы skopt рассуждали в точности в том же направлении:
Неожиданно срезонировала библиотечка skopt. Я уже начал писать свой интерфейс оптимизитора, и сразу добавил туда вещи, которых мне очень не хватало в Оптуне: возможность указать "затравочные" входы, ответы на которые надо вычислить обязательно, разные виды начального сэмплирования (не только случайное, а ещё и фибо, обратное фибо для одномерого случая). Всё это кажется таким естественным, но я уже привык, что программисты по всему миру всегда думают иначе, чем я. И тут с большим удивлением увидел, что авторы skopt рассуждали в точности в том же направлении:
The total number of evaluations, n_calls, are performed like the following. If x0 is provided but not y0, then the elements of x0 are first evaluated, followed by n_initial_points evaluations. Finally, n_calls - len(x0) - n_initial_points evaluations are made guided by the surrogate model. If x0 and y0 are both provided then n_initial_points evaluations are first made then n_calls - n_initial_points subsequent evaluations are made guided by the surrogate model.
initial_point_generatorstr, InitialPointGenerator instance, default: ‘random’
Sets a initial points generator. Can be either
"random" for uniform random numbers,
"sobol" for a Sobol sequence,
"halton" for a Halton sequence,
"hammersly" for a Hammersly sequence,
"lhs" for a latin hypercube sequence
Интересно будет увидеть её в сравнении. Ещё из интересных находок авторов: по умолчанию у них acquisition function не просто одна из известных EI, PI UCB/LCB, а т.н. gp_hedge, которая на каждом шаге сэмплит одну из указанных, по идее предлагая лучшее из 3 миров )#hpt #hpo #bayesian #gaussianprocess
Раскрыты недостатки GP:
1) чувствительность к масштабу параметров
2) чувствительность к выбранному ядру (по сути, приор определяет догадки о виде истинной black box функции)
3) плохая работа с категориальными параметрами (Hamming kernel?)
Когда докладчика спросили про параллелизацию, мне кажется, он лопухнулся, сказав, что тут у случайного поиска преимущество, ведь его можно выполнять параллельно, а gp - нет. Ну сам же показывал графики Expected Improvement, кто запрещает брать из них вместо единичного argmax батч argsorted()[:batch_size]?
https://www.youtube.com/watch?v=jtRPxRnOXnk
Раскрыты недостатки GP:
1) чувствительность к масштабу параметров
2) чувствительность к выбранному ядру (по сути, приор определяет догадки о виде истинной black box функции)
3) плохая работа с категориальными параметрами (Hamming kernel?)
Когда докладчика спросили про параллелизацию, мне кажется, он лопухнулся, сказав, что тут у случайного поиска преимущество, ведь его можно выполнять параллельно, а gp - нет. Ну сам же показывал графики Expected Improvement, кто запрещает брать из них вместо единичного argmax батч argsorted()[:batch_size]?
https://www.youtube.com/watch?v=jtRPxRnOXnk
YouTube
Thomas Huijskens - Bayesian optimisation with scikit-learn
Filmed at PyData London 2017
Denoscription
Join Full Fact, the UK's independent factchecking charity, to discuss how they plan to make factchecking dramatically more effective with technology that exists now.
Abstract
Factchecking is just one solution to…
Denoscription
Join Full Fact, the UK's independent factchecking charity, to discuss how they plan to make factchecking dramatically more effective with technology that exists now.
Abstract
Factchecking is just one solution to…
🤔1
#trading #chan
Imho "capital allocation, not primary signal generation" thing is a BS. It's just a different name for the same thing. Say, I have 3 strategies that normally get allocated $1 each. Then at some moment my ML model suggest to allocate $100 to model #2. I can, of course, call this "capital allocation", but it's in essence a signal generation as well, 'cause the rest of allocations are close to noise. But maybe I misunderstood Ernest and he meant allocations like 0.3, 0.3, 0.4? But hard to believe such high % can be given to strategies that are not expected to work well. Also predicting "whether certain trading parameters will perform well today' seems like, still, indirect prediction of market movement. It can't be other way round, 'cause every trading policy should be based on expected asset price movements. Having a 'certain parameters' filter works 2-ways: it reduces train dataset size for ML (which is bad), but it theoretically allows ML to focus more on particular search space (which is probably good, as the model transitions from jack of all trades, master of none, to master of some). Which force prevails, is a matter of experimentation and asset/TP subtleties.
https://www.youtube.com/watch?v=BhaJVZNpL4M
Imho "capital allocation, not primary signal generation" thing is a BS. It's just a different name for the same thing. Say, I have 3 strategies that normally get allocated $1 each. Then at some moment my ML model suggest to allocate $100 to model #2. I can, of course, call this "capital allocation", but it's in essence a signal generation as well, 'cause the rest of allocations are close to noise. But maybe I misunderstood Ernest and he meant allocations like 0.3, 0.3, 0.4? But hard to believe such high % can be given to strategies that are not expected to work well. Also predicting "whether certain trading parameters will perform well today' seems like, still, indirect prediction of market movement. It can't be other way round, 'cause every trading policy should be based on expected asset price movements. Having a 'certain parameters' filter works 2-ways: it reduces train dataset size for ML (which is bad), but it theoretically allows ML to focus more on particular search space (which is probably good, as the model transitions from jack of all trades, master of none, to master of some). Which force prevails, is a matter of experimentation and asset/TP subtleties.
https://www.youtube.com/watch?v=BhaJVZNpL4M
YouTube
Financial Machine Learning - A Practitioner’s Perspective by Dr. Ernest Chan
QUANTT and QMIND came together to offer a unique experience for those interested in Financial Machine Learning (ML). Unifying these two clubs is Dr. Ernest Chan, an investor, researcher, and educator with an expertise in Quantitative Trading, Algorithmic…
#gaussianprocess #optimization #global
Честно говоря, пока что кажется, что толку от "байесовости" гауссовых процессов в задаче глобальной оптимизации не так уж много. Да, рассчитывается неопределённость в каждой точке, ну так она:
1) зачастую крайне слабо отражает реальное положение относительно искомой функции
2) пропорциональна расстоянию до ближайших исследованных точек, так что её можно оценить и для "классических" ml алгосов.
Есть ещё аргумент, что функции приобретения в случае gp рассчитываются аналитически, но ведь их можно заменить эвристикой. Скоро узнаем.
Честно говоря, пока что кажется, что толку от "байесовости" гауссовых процессов в задаче глобальной оптимизации не так уж много. Да, рассчитывается неопределённость в каждой точке, ну так она:
1) зачастую крайне слабо отражает реальное положение относительно искомой функции
2) пропорциональна расстоянию до ближайших исследованных точек, так что её можно оценить и для "классических" ml алгосов.
Есть ещё аргумент, что функции приобретения в случае gp рассчитываются аналитически, но ведь их можно заменить эвристикой. Скоро узнаем.
#smbo #hpo #hpt #gaussianprocess #parzen #tpe #cmaes #constantliar
Algorithms for Hyper-Parameter Optimization
Статья о Sequential Model-Based Global Optimization (SMBO) в т.ч. от Yoshua Bengio, на которую ссылаются в доке hyperopt.
"EI functions are usually optimized with an exhaustive grid search over the input space, or a Latin Hypercube search in higher dimensions. However, some information on the landscape of the EI criterion can be derived from simple computations [16]:
1) it is always non-negative and zero at training
points from D,
2) it inherits the smoothness of the kernel k, which is in practice often at least once
differentiable, and noticeably,
3) the EI criterion is likely to be highly multi-modal, especially as the number of training points increases. The authors of [16] used the preceding remarks on the landscape of EI to design an evolutionary algorithm with mixture search, specifically aimed at optimizing EI, that is shown to outperform exhaustive search for a given budget in EI evaluations."
Как следует из статьи, пытаются даже само Ожидаемое Улучшение (EI) максимизировать генетиком, я просто не понимаю, для чего, ведь полный перебор по нему идёт очень быстро. UPD: хотя дальше есть указание на странное время работы алгоритма. Applying the GP to the problem of optimizing DBN performance, we allowed 3 random restarts to the CMA+ES algorithm per proposal x
∗, and up to 500 iterations of conjugate gradient method in
fitting the length scales of the GP. The squared exponential kernel [14] was used for every node. The CMA-ES part of GPs dealt with boundaries using a penalty method, the binomial sampling part dealt with it by nature. The GP algorithm was initialized with 30 randomly sampled points in H. After 200 trials, the prediction of a point x∗ using this GP took around 150 seconds.
"Finally, we remark that all hyper-parameters are not relevant for each point. For example, a DBN with only one hidden layer does not have parameters associated to a second or third layer. Thus it is not enough to place one GP over the entire space of hyper-parameters. We chose to group the hyper-parameters by common use in a tree-like fashion and place different independent GPs over each group. As an example, for DBNs, this means placing one GP over common hyper-parameters, including categorical parameters that indicate what are the conditional groups to consider, three GPs on the parameters corresponding to each of the three layers, and a few 1-dimensional GPs over individual conditional hyper-parameters, like ZCA energy (see Table 1 for DBN parameters)."
Акцентируются сложности сэмплирования параметров поодиночке.
"The tree-structured Parzen estimator (TPE) models p(x|y) by transforming that generative process, replacing the distributions of the configuration prior with non-parametric densities. In the experimental section, we will see that the configuation space is described using uniform, log-uniform, quantized log-uniform, and categorical variables. In these cases, the TPE algorithm makes the following replacements: uniform → truncated Gaussian mixture, log-uniform → exponentiated truncated Gaussian mixture, categorical → re-weighted categorical."
Кратко о работе парценовских оценщиков.
"For the GP approach, the so-called constant liar approach was used: each time a candidate point x∗ was proposed, a fake fitness evaluation equal to the mean of the y’s within the training set D was assigned temporarily, until the evaluation completed and reported the actual loss f(x
∗). For the TPE approach, we simply ignored recently proposed points and relied on the stochasticity of draws from `(x) to provide different candidates from one iteration to the next. The consequence of parallelization is that each proposal x∗ is based on less feedback. This makes search less efficient, though faster in terms of wall time." Фраза constant liar напоминает сразу о плешивом либо усатом )
https://proceedings.neurips.cc/paper_files/paper/2011/file/86e8f7ab32cfd12577bc2619bc635690-Paper.pdf
Algorithms for Hyper-Parameter Optimization
Статья о Sequential Model-Based Global Optimization (SMBO) в т.ч. от Yoshua Bengio, на которую ссылаются в доке hyperopt.
"EI functions are usually optimized with an exhaustive grid search over the input space, or a Latin Hypercube search in higher dimensions. However, some information on the landscape of the EI criterion can be derived from simple computations [16]:
1) it is always non-negative and zero at training
points from D,
2) it inherits the smoothness of the kernel k, which is in practice often at least once
differentiable, and noticeably,
3) the EI criterion is likely to be highly multi-modal, especially as the number of training points increases. The authors of [16] used the preceding remarks on the landscape of EI to design an evolutionary algorithm with mixture search, specifically aimed at optimizing EI, that is shown to outperform exhaustive search for a given budget in EI evaluations."
Как следует из статьи, пытаются даже само Ожидаемое Улучшение (EI) максимизировать генетиком, я просто не понимаю, для чего, ведь полный перебор по нему идёт очень быстро. UPD: хотя дальше есть указание на странное время работы алгоритма. Applying the GP to the problem of optimizing DBN performance, we allowed 3 random restarts to the CMA+ES algorithm per proposal x
∗, and up to 500 iterations of conjugate gradient method in
fitting the length scales of the GP. The squared exponential kernel [14] was used for every node. The CMA-ES part of GPs dealt with boundaries using a penalty method, the binomial sampling part dealt with it by nature. The GP algorithm was initialized with 30 randomly sampled points in H. After 200 trials, the prediction of a point x∗ using this GP took around 150 seconds.
"Finally, we remark that all hyper-parameters are not relevant for each point. For example, a DBN with only one hidden layer does not have parameters associated to a second or third layer. Thus it is not enough to place one GP over the entire space of hyper-parameters. We chose to group the hyper-parameters by common use in a tree-like fashion and place different independent GPs over each group. As an example, for DBNs, this means placing one GP over common hyper-parameters, including categorical parameters that indicate what are the conditional groups to consider, three GPs on the parameters corresponding to each of the three layers, and a few 1-dimensional GPs over individual conditional hyper-parameters, like ZCA energy (see Table 1 for DBN parameters)."
Акцентируются сложности сэмплирования параметров поодиночке.
"The tree-structured Parzen estimator (TPE) models p(x|y) by transforming that generative process, replacing the distributions of the configuration prior with non-parametric densities. In the experimental section, we will see that the configuation space is described using uniform, log-uniform, quantized log-uniform, and categorical variables. In these cases, the TPE algorithm makes the following replacements: uniform → truncated Gaussian mixture, log-uniform → exponentiated truncated Gaussian mixture, categorical → re-weighted categorical."
Кратко о работе парценовских оценщиков.
"For the GP approach, the so-called constant liar approach was used: each time a candidate point x∗ was proposed, a fake fitness evaluation equal to the mean of the y’s within the training set D was assigned temporarily, until the evaluation completed and reported the actual loss f(x
∗). For the TPE approach, we simply ignored recently proposed points and relied on the stochasticity of draws from `(x) to provide different candidates from one iteration to the next. The consequence of parallelization is that each proposal x∗ is based on less feedback. This makes search less efficient, though faster in terms of wall time." Фраза constant liar напоминает сразу о плешивом либо усатом )
https://proceedings.neurips.cc/paper_files/paper/2011/file/86e8f7ab32cfd12577bc2619bc635690-Paper.pdf
😁1
#gpt #grok
Ржака. Маск призывал повременить с обучением nextgen моделей типа GPT-5, мол, такие они опасные, жуть, а сам в это время пилил Grok?! ))
https://3dnews.ru/1095537/startap-xai-ilona-maska-predstavila-iibota-grok
Ржака. Маск призывал повременить с обучением nextgen моделей типа GPT-5, мол, такие они опасные, жуть, а сам в это время пилил Grok?! ))
https://3dnews.ru/1095537/startap-xai-ilona-maska-predstavila-iibota-grok
👍2