Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Fast multilayer perceptron neural network library for iOS and Mac OS X (nikolaypavlov.github.io)
36 points by nikolaypavlov on Oct 10, 2013 | hide | past | favorite | 10 comments


While I applaud the effort, why on earth would anyone write a numerical library in obj-c? AFAIK, there aren't any platforms that support obj-c but not C/C++.

I need stuff like this from time to time, but I wouldn't restrict my portability like this unless I really had to.


Presumably it's because the author is comfortable in the language, it's capable of doing what he needs, and runs on the platforms where he intends to use it.

I mean, seriously. Are you going to crap all over this project just because it's not in your language of choice? What's your standard for a project that can legitimately use ObjC? C can do everything ObjC can do, after all, if you try hard enough.


Because Accelerate framework is in obj-c? (It is in C).

But in all seriousness, most cases, you want to implement your own neural network anyway because the specific choice of network structure, activation functions etc. Beyond that, it just matrix multiplication which is well handled by lower level primitives like libatlas / libcblas / CUDAblas etc.


I wrote it for real time motion analysis. Since it requires some signal processing and detection, I decided to use Accelerate framework. Though my main tool is R for such things.


Accelerate.framework contains a heavily optimised version of LAPACK and BLAS.

P.S. libccv is cool!


If you read the code, you'll see that it's mostly C wrapped in Obj-C methods. It also uses the Accelerate.framework (which is optimised to the hilt and very fast) for matrix multiplication.


But just keep in mind that neural networks beyond 4 layers are often not better. and most work can be done with 3 layers total.. (so that is one hidden one), having two hidden ones can just do some things that a 3layer cant.

But more then 4 is more often a bad design and usually overkill of layers for most practical usages.

Although theoretical there no math limit to the amount of layers in practical terms its more often calculation time that explodes to unless its a simple FANN based network but then still 3 or 4 layers is 95% of the time enough


I've heard this many times. Not contradicting it (I believe it, for the tasks we tend to give ANNs, anyways) Do you have a good review/citation for this?



thanks, this is perfect.




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

Search: