I did not have to do something like this.
44 karma · joined October 1, 2018
I did not have to do something like this.
Also, there might be model bias: for example if the objective function is stochastic (e.g., a reinforcement learning algorithm that only converges sometimes) or not very smooth, TPE might exploit areas that are not actually good based on one good evaluation. In those cases TPE might perform worse than random search! To alleviate the effect of model bias in model based hyperparameter optimization (e.g., TPE) and to obtain convergence guarantees, people often sample every k-th hyperparameter setting from a prior distribution (random search) (this is also the case for the plots in [1, 2].
If you are wondering which HPO algorithm you should use (or HPO in general), I would highly recommend the first part of the AutoML tutorial at NeurIPS2018 [3] given by my advisor.
[1] https://www.automl.org/blog_bohb/
[2] http://proceedings.mlr.press/v80/falkner18a.html
[3] https://nips.cc/Conferences/2018/Schedule?showEvent=10979
"Currently two algorithms are implemented in hyperopt: Random Search Tree of Parzen Estimators (TPE)"
(TPE is a Bayesian Optimization algorithm)
You use gridsearch for hyperparamter optimization and state that at some point you would like to add a bayesian approach. One simple change that could boost the performance, would be to use random search inplace of gridsearch. Grid search is known to perform worse than random search in cases where not all hyperparameters are of similar importance [1]. Intuitively, in grid search a lot of evaluations evaluate the same setting of an important hyperparameter with changing settings of not important ones.
[1] Section 1.3.1; Automatic Machine Learning: Methods, Systems, Challenges; Chapter Hyperparameter Optimization
I agree with you from the view of the current state of the art methods and the current state of the AutoML / fundamental ML research communities. Current methods are very limited, but I can not think of a reason why a sufficiently general searchspace of architectures/pipelines could not produce something like a GAN or a WaveNet.
I do not think that designing algorithms as novel as the ones you listed is currently a goal of AutoML, as that is not something we have an attack for. However, I do think that with increasing capabilities, the field of AutoML will seek to automate every step of the machine learning pipeline - including the design of algorithms. E.g., once/if there are attacks to apply NAS for yielding truly novel architectures, I think NAS researchers will be happy to do just that -- wouldn't you call that AutoML then?
* Model selection, hyper-parameter optimization, and model search
* Neural architecture search
* Meta learning and transfer learning
* Automatic feature extraction / construction
* Demonstrations (demos) of working AutoML systems
* Automatic generation of workflows / workflow reuse
* Automatic problem "ingestion" (from raw data and miscellaneous formats)
* Automatic feature transformation to match algorithm requirements
* Automatic detection and handling of skewed data and/or missing values
* Automatic acquisition of new data (active learning, experimental design)
* Automatic report writing (providing insight on automatic data analysis)
* Automatic selection of evaluation metrics / validation procedures
* Automatic selection of algorithms under time/space/power constraints
* Automatic prediction post-processing and calibration
* Automatic leakage detection
* Automatic inference and differentiation
* User interfaces and human-in-the-loop approaches for AutoML
[1] https://sites.google.com/site/automl2018icml/The tools included in the repository are very broadly applicable and only a few of them are specifically targeted at neural architecture search.
[1] https://www.kdnuggets.com/2016/08/winning-automl-challenge-a... [2] https://openreview.net/forum?id=ByfyHh05tQ
>>> automl = autosklearn.classification.AutoSklearnClassifier()
>>> automl.fit(X_train, y_train)
>>> y_hat = automl.predict(X_test)
[1] https://automl.github.io/auto-sklearn/stable/This is RNA Design for humans as a game! Also: A trained human outperforms current AI approaches for RNA Design.