7 comments

[ 4.6 ms ] story [ 28.5 ms ] thread
Just an FYI - you can achieve this in 3 layers. It does not need to be deep. https://github.com/charliec443/TreeGrad
Yeah, this one does something much less insane, i.e., it converts the paths to the tree outputs into their corresponding DNS (disjunctive normal form) and represents each term as a node (side by side in the same layer) in the NN, as described by Arunava Banerjee in "Initializing Neural Networks using Decision" [1]. The resulting NN architecture is much more reasonable than the one that treebomination produces.

[1]: https://www.cise.ufl.edu/~arunava/papers/clnl94.pdf

See also hummingbird [1]

[1]: https://github.com/microsoft/hummingbird

Thanks! This looks interesting. Some of the main differences I can spot so far are: - Hummingbird does not construct a NN with an architecture isomorphic to the source decision tree but instead cleverly compiled it into other (more sane) tensor computations. - Hummingbird is actually useful. ;)