You could also try the Elliot Sigmoid activation function. I found it executed about 2x faster than the exponential sigmoid (in Matlab). Brief writeup: http://www.gallamine.com/blog/2013/01/21/a-sigmoid-function-...
Re:Basic Neural Network on Python
by lightcatcher on Friday July 05, 2013 @11:31AM
(#5995283)
A relatively small lookup table for the sigmoid function can also work well. Here are the various sigmoid approximations that Theano (a library used for deep learning research among other things) offers: http://deeplearning.net/software/theano/library/tensor/nnet/...
Re:Basic Neural Network on Python
by gamegoblin on Friday July 05, 2013 @01:44PM
(#5995884)
I usually use an array with a few thousand entries. In C this gives me a 2.5x speedup over the exact function with no important decrease in accuracy.
I wonder though if you might actually do better overall with a smaller lookup table and interpolation (or even just a polynomial approximation, which can be evaluated without branching), since large lookup tables can lead to bad cache behavior.
Re:Basic Neural Network on Python
by dfrodriguez143 on Friday July 05, 2013 @02:54PM
(#5996218)
Very interesting and simple improvement. Definitely will take a look at that.
Re:Basic Neural Network on Python
by dfrodriguez143 on Friday July 05, 2013 @11:03AM
(#5995143)
Definitely a native spanish speaker here :P. Because I wrote this on an iPython notebook it takes a little bit longer to spell-check. I will try not to be so lazy next time.
Thanks for the tips.
Re:Basic Neural Network on Python
by MaxGabriel on Friday July 05, 2013 @11:14AM
(#5995211)
The only one I caught was "state of the are" in the last sentence.
As an aside, and not to be too critical, because the post was great, but as (presumably) a non-native English speaker, you might do a spell-checker on your post. There are also some missing pronouns which make some sentences very Spanishy.