
Brainstorm – Deep Learning library, successor to PyBrain - albertzeyer
https://github.com/IDSIA/brainstorm
======
scoot
Semi related question (on the basis that this post will attract folks with the
relevant background to answer) - how would someone with an interest in the
possibilities afforded by the field of machine learning, but without the
theoretical or mathematical background tneeded to understand the typical
discussion on these topics, get started using it in a practical way?

Is the a "machine learning for dummies" resource you would recommend?

~~~
ivan_ah
Well you'll certainly need to learn about the math behind these eventually,
but you can get started and go quite far simply as a user of a ML library. You
can use "systems thinking" and think of ML components as black boxes that do
something for you.

A good place to start would be the scikit learn tutorials on youtube:
[https://www.youtube.com/watch?v=r4bRUvvlaBw](https://www.youtube.com/watch?v=r4bRUvvlaBw)
I remember going through them and thinking---wow, this covers everything from
my ML class in just a few iPython notebooks...

I recommend you start with the basics (datasets, features,
training/test/validation data splits) and don't worry too much about the
actual choice of model---there will always be shiny new models with better
performance but sometimes using the "old stuff" is good enough.

Once you get past the basics want to learn the theory, you can take an online
course or find a good book, e.g.
[https://www.cs.ubc.ca/~murphyk/MLbook/](https://www.cs.ubc.ca/~murphyk/MLbook/)
(advanced, but very comprehensive).

~~~
chriswarbo
> I recommend you start with the basics (datasets, features,
> training/test/validation data splits) and don't worry too much about the
> actual choice of model---there will always be shiny new models with better
> performance but sometimes using the "old stuff" is good enough.

Or, conversely, it may be that _all_ models are just as bad. This seems to be
the case in my domain (formal proofs), where the bottleneck seems to be data
representation; it doesn't matter which learning algorithm you use, when your
feature selection has stripped out all of the learnable information ;)

------
ilyaeck
How does it compare to other similar libraries (Caffe, Theano, Groundhog,
etc.)?

~~~
albertzeyer
Theano (Python) is a symbolic mathematical framework which can do symbolic
automatic differentiation - not more and not less. This is a very useful base
for all kinds of NNs but also for any mathematical models. This will give you
a computation graph which is then also optimized by Theano and which can be
evaluated on several different backends, e.g. CUDA, i.e. it can be calculated
on the GPU. This is also important for common NNs for performance.

Torch (Lua) is similar, but is not symbolic, and when you want to calculate
the gradient, it will do the backpropagation through the same graph, just
backwards. It's like Theano only a mathematical framework, which is very
useful for all kinds of NNs but also any other mathematical models.

There are many libs based on Theano, e.g. like Groundhog, Keras, Lasagne, etc.
There are also Torch based NN utils. You usually code your model directly in
Python / Lua. Thus that is very flexible.

Caffe is a C++ framework with CUDA support. You describe your models by some
declarative config. It's thus much less flexible.

PyBrain (Python) is similar to Groundhog etc, but not based on Theano but on
pure Python / Numpy code.

Brainstorm (Python) is similar to PyBrain, and also not based on Theano but is
has several own custom backends, including CUDA.

~~~
ilurk
In your opinion, would there be any advantage in using Brainstorm over Theano
or even Torch?

~~~
p1esk
What do you want to do?

------
albertzeyer
Schmidhuber already kind of announced this here:
[https://www.reddit.com/r/MachineLearning/comments/2xcyrl/i_a...](https://www.reddit.com/r/MachineLearning/comments/2xcyrl/i_am_j%C3%BCrgen_schmidhuber_ama/cp433y3)

