Hacker News new | past | comments | ask | show | jobs | submit login

Sure. Neural networks don't have feature introspection. You use random forest for that. Hinton and others as well as what's reflected in my software encourage you to debug neural networks visually.

This could mean debugging neural networks with histograms to make sure the magnitude of your gradient isn't too large, ensuring debugging with renders in the first layer if you're doing vision work to see if the features are learned properly, for neural word embeddings, using TSNE to look at groupings of words to ensure they make sense, or mikolov et. al on word2vec give you an accuracy measure wrt predicted words based on nearest neighbors approaches.

For sound, one thing I was thinking of building was a play back mechanism. With canova as our vectorization lib that converts sound files to arrays, feed that in to a neural network, and then listen to what it reconstructs.

The take away is, while you can't rank features with information gain like random forest, you can at least go in not completely blind.

Remember, one of the key take ways with deep learning is that it works well on unstructured data, aka: things that have brittle feature engineering(manually) to begin with.

Edit: re proven results

Audio: https://gigaom.com/2014/12/18/baidu-claims-deep-learning-bre...

Vision: http://www.33rdsquare.com/2015/02/microsoft-achieves-substan...

Text: http://nlp.stanford.edu/sentiment/

To further clarify what I mean by black box: I don't like typing:

model = new DeepLearning()

What does that mean?

How do I instantiate a combination architecture? Can you create a generic neural net that mixes convolutional and recursive layers? What about recurrent? How do I use different optimization algos?

Not to pick on ml lib, but another example:

val logistic = new LogisticRegressionwithSomeOptimizationAlgorithm()

Why can't it be: val logistic = new Logistic.Builder().withOptimization(..)

The key here is visualization and configuration.

Hope that makes sense!




Hmm,

Perhaps a thing with lots of parameters and some tools/rules-of-thumb for debugging might be called a "gray box" where a "real" statical model with a defined distribution, tests of hypothesis validity and so-forth could be called a "white box".


Right. Being able to trouble shoot models with some level of certainty is better than nothing. Tuning neural nets is still more of an art than a science in some respects, I'm not aiming for anything magical here. My first step with neural nets is to make them usable.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: