5 ms·
HLearn: A Machine Learning Library for Haskell (2013) [pdf]
- platz 9y agoa newer library targeted at deep learning: https://github.com/HuwCampbell/grenade https://github.com/HuwCampbell/grenade
- amelius 9y agoWhat are the advantages of Haskell at deep learning, given that 1. Graph structures are notoriously difficult to model in functional languages. 2. The software-engineering side of deep learning is not all that difficult (e.g. using Keras is quite simple).
- agrafix 9y agoYou can for example prevent "runtime" bugs due to combining layers/vectors/matrixes of the wrong dimensions.
- posterboy 9y agoregarding compiling >Grenade layers are normal haskell data types which are an instance of Layer, so it's easy to build one's own downstream code. We do however provide a decent set of layers, including convolution, deconvolution, pooling, pad, crop, logit, relu, elu, tanh, and fully connected. it's called a README for a reason.
- amelius 9y agoAlso, correct me if I'm wrong, but the state of the art seems to be happening in Tensorflow/Keras; so committing to a different platform could mean you are systematically lagging behind in this new field.
- platz 9y agoThen don't use Haskell! I'm having a hard time understanding if your question is actually genuine or if you're just dropping by the Haskell thread to explain why you're not into using Haskell.
- madsbuch 9y agoWe have to remember that machine learning is much more than just ANN, or, for that sake, matrix manipulation: http://probabilistic-programming.org/wiki/Home http://probabilistic-programming.org/wiki/Home
- behnamoh 9y agoI guess people should stop developing new libraries that already exist for other languages (Re-inventing the wheel?). Even if the library is novel, people should write it for languages that are popular. We should just stick to the stack we have today and hope that someday, AI-powered tools can rewrite all the libraries for us in our favorite language. Till then, people should keep working on the more important stuff than maintaining libraries for languages like Haskell, Clojure, etc.
- jackpirate 9y agoHi everyone, author of HLearn here :) This is a bit awkward for me as I've paused the development of HLearn and emphatically do not recommend anyone use it. The main problem is that Haskell (which I otherwise love) has poor support for numerical computing. I've tried developing an alternative standard library to improve the situation (https://github.com/mikeizbicki/subhask https://github.com/mikeizbicki/subhask), but Haskell's type system isn't yet powerful enough to do what I want. I'm sure the type system will have the needed features in 5-10 years, and I'd rather wait and do it right. If you have any questions, I'd be happy to answer them.
- supernumerary 9y agoWhat are you using instead?
- jackpirate 9y agoEverything (octave, python, julia, c++, various probabalistic programming langugaes) depending on the task and my mood.
- supernumerary 9y agoThanks and go UCR: http://positron.ucr.edu/ http://positron.ucr.edu/ I bet doing ML in this context would be fun...
- bjz_ 9y ago> Haskell's type system isn't yet powerful enough to do what I want. What still needs to be done? Does Idris have enough of the power that you need?
- jackpirate 9y agoI've not used Idris too much, so I can't say for sure. My guess is that the answer is that it could do everything I want type-system-wise, but there are things I want outside of the type sytem that I don't think it could do. For example, I want the compiler to automatically rewrite my code to be much more efficient and numerically stable (see the HerbiePlugin to the GHC compiler which goes this https://github.com/mikeizbicki/HerbiePlugin https://github.com/mikeizbicki/HerbiePlugin). My understanding is that the Idris compiler gets much less engineering work done on it (outside of the type system), and so getting efficient running code will be too difficult.