Introducing AdaNet: Fast and Flexible AutoML with Learning Guarantees
ai.googleblog.com
ai.googleblog.com
Despite being "AutoML", there's still a lot of work that needs to be done to optimize the model. (the second example notebook is a bit better in this aspect: https://github.com/tensorflow/adanet/blob/master/adanet/exam...)
I would like to point out though, that even though some aspects of AdaNet aren't as advanced as they could be, we have seen good results with AdaNet on a wide variety of tasks. Try it on yours and see!
And of course, we are not going to stop after exposing an interface! We are excited to work in this space ourselves too, and we will continue to update this project as we make progress.
Out of the box, the meta-strategy is little more than simple-user defined heuristics (e.g., “if the the deepest candidate subnetwork performed best, try subnetworks that are one layer deeper than that”). However, the AdaNet framework is flexible enough to support smarter strategies as you mentioned, and abstracts away the complexities of distributed training (Estimator), evaluation (TensorBoard), and serving (tf.SavedModel).
Can anyone estimate how much CPU $$ we need to get some results with this ?
I train on about 20M samples (1K data points each).
You could define a search space with a single DNN, and give it one single iteration, and this would behave identically to the canned DNNEstimator.
In a slightly more interesting case, suppose your search space consists of (say) 5 DNNs that cost you X each to train over (say) 1 epoch per iteration, and you train them over (say) 10 iterations, that would cost you around X x 5 x 10 = 50X.
Do consider, though, that using AdaNet to explore, train, select, and ensemble these 50 DNNs is probably worth it considering how annoying it would be to do it without AdaNet :) Additionally, since AdaNet is implemented as a TensorFlow Estimator, it is easy to scale up the number of machines to speed up the training, if this is something you want.
AdaNet supports high level APIs (e.g tf.layers, tf.losses), so it can support RNN cells as well.