adanet icon indicating copy to clipboard operation
adanet copied to clipboard

How do weak-learners combine?

Open jeffltc opened this issue 6 years ago • 2 comments

  • If I use adanet.AutoEnsembleEstimator to combine weak-learners, do those weak-learners combine side by side on the same layer with weights or one after another on multiple layers?

  • I’ve also read #24. Does that mean the side by side combination is a default and if I want to make one after another structure, I need to use custom generator and Subnetwork.shared to pass the tensor to next iteration?

  • Any update on displaying the detailed archetecture of the final result? (I’ve tried using method mentioned in #29 to find out the detailed structure in TensorBoard but as you mentioned, the result is less than ideal. I can only know which weak-learner is in the final model structure in TEXT tab while the graph in GRAPH tab is a little bit too detailed which made me lost in the nest of ops. And the method mentioned in #29 seemed not compatible with tf 2.0. I'm still working on it.)

jeffltc avatar Oct 27 '19 05:10 jeffltc

If I use adanet.AutoEnsembleEstimator to combine weak-learners, do those weak-learners combine side by side on the same layer with weights or one after another on multiple layers?

AutoEnsembleEstimator use the ensemblers parameter to determine how to ensemble weak learners. By default it uses with adanet.ensemble.ComplexityRegularizedEnsembler which is pretty simple: it just combines the weighted logits of the subnetworks. However, you can subclass adanet.ensemble.Ensembler to do more advanced things if you'd prefer.

I’ve also read #24. Does that mean the side by side combination is a default and if I want to make one after another structure, I need to use custom generator and Subnetwork.shared to pass the tensor to next iteration?

That's correct. Doing so allows you to create more expressive and adaptive search spaces than if you used AutoEnsembleEstimator.

Any update on displaying the detailed archetecture of the final result? (I’ve tried using method mentioned in #29 to find out the detailed structure in TensorBoard but as you mentioned, the result is less than ideal. I can only know which weak-learner is in the final model structure in TEXT tab while the graph in GRAPH tab is a little bit too detailed which made me lost in the nest of ops. And the method mentioned in #29 seemed not compatible with tf 2.0. I'm still working on it.)

Currently it's tough, because we support arbitrary TF 1.0 graphs. So the only source of truth for that kind of connectivity is the TensorBoard "Graph" tab, which as you saw, can be quite noisy and tough to interpret.

That being said, with TF 2.0, we are moving towards a Keras-first world when weak learners will be Keras Models composed of Keras Layers. This should result in us being able to extract a DAG of keras layers that is more human-readable. But that is still a ways away. :)

cweill avatar Oct 28 '19 16:10 cweill

Any update on displaying the detailed archetecture of the final result? (I’ve tried using method mentioned in #29 to find out the detailed structure in TensorBoard but as you mentioned, the result is less than ideal. I can only know which weak-learner is in the final model structure in TEXT tab while the graph in GRAPH tab is a little bit too detailed which made me lost in the nest of ops. And the method mentioned in #29 seemed not compatible with tf 2.0. I'm still working on it.)

Currently it's tough, because we support arbitrary TF 1.0 graphs. So the only source of truth for that kind of connectivity is the TensorBoard "Graph" tab, which as you saw, can be quite noisy and tough to interpret.

That being said, with TF 2.0, we are moving towards a Keras-first world when weak learners will be Keras Models composed of Keras Layers. This should result in us being able to extract a DAG of keras layers that is more human-readable. But that is still a ways away. :)

What is the current level of development on this? There is no way to use plot_model() on the subnetworks?

le-dawg avatar Apr 07 '20 16:04 le-dawg