Hacker News new | ask | show | jobs
by maaaats 3597 days ago
Yeah, I've always heard that expert systems are good, because there you can reason about the solution. For instance diagnosing people based on rules contributed by doctors. You can trace the steps the algorithm takes easily.

But for a neural net, you cannot say why this particular net should be trusted, as you don't know how it arrives at a solution. Therefore it's "scary" to use.

While I don't agree, it explains why it has been unpopular.

1 comments

Random Decision Forests provide sort of a middle ground.

For training, a large set of decision trees are built randomly based on the input features.

When classifying input for one tree, each node considers feature value of the input, and decides on a branch. Leafs corresponds to a classification, so when a leaf is reached, the tree has classified the given input.

By having a large set of trees, and picking e.g. the most common resulting class (majority vote), we increase accuracy.

However, each individual tree can actually be reasoned about. E.g. you can see the analysis (nodes) leading to each class (leafs).

I've had some success with RDFs in the past, and highly recommend them!

They are very easy to implement, very efficient to train and query, and they seem to work really great on classification of "discrete input" (i.e. where the input feature values are binary or from relatively small sets).

Just curious, what prevents somebody to debug deep network in the same way? You potentially can check what features contributed to activation of each "neuron"..