<html>
<head>
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
</head>
<body bgcolor="#C0C0C0" text="#000000">
<div class="moz-cite-prefix">Sorry for my late response to this
topic, but I do believe Erlang is actually a great language for
the ML and statistics space. Take a basic feed-forward NN with
back-propagation, for example. What you'd normally have in terms
of mathematical computation is mainly addition and
multiplication. You only need to put together a perceptron, which
are only inputs (including a bias) multiplied by respective
weights, you add them up and pass this value through a function
like sigmoid or hyperbolic tangent and that's that.
Back-propagation, as a way to adjust the weights during the
training phase, doesn't require math-wise anything more
complicated. You combine the perceptrons for the hidden and
output layers and you got yourself a NN. In this configuration,
deep learning will simply be two or more hidden layers, instead of
one. The key thing to maximize the use of Erlang is certainly to
distribute the load through processes, so each perception could be
one individual process, for example. Definitely, not rocket
science. Now, I concur that in some situations it might be
advantageous to write a module, say for a perception, in C and
make use of it within Erlang, but there is no reason why you
couldn't start with Erlang and gradually move to that direction,
if need be.<br>
<br>
Cheers,<br>
Alex<br>
<br>
<br>
On 02/10/2016 06:31 AM, Jesper Louis Andersen wrote:<br>
</div>
<blockquote
cite="mid:CAGrdgiUeMd5dKDXaOL8pYR1JPKMMNktRZ6kKrSj8xtsO9b=BWg@mail.gmail.com"
type="cite">
<div dir="ltr">
<div class="gmail_extra"><br>
<div class="gmail_quote">On Wed, Feb 10, 2016 at 10:34 AM,
Samuel <span dir="ltr"><<a moz-do-not-send="true"
href="mailto:samuelrivas@gmail.com" target="_blank">samuelrivas@gmail.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div id=":mm" class="a3s" style="overflow:hidden">I am not
aware of existing ML or linear algrebra libraries in
erlang<br>
that can be used to quick start an ML project, but just
piping into<br>
tensorflow (or any other existing library/framework)
isn't really<br>
doing ML with erlang, is it? You can as well just use
tensorflow<br>
directly.</div>
</blockquote>
</div>
<br>
</div>
<div class="gmail_extra">The question is if this is a practical
problem which needs solving or it is for research. If you are
researching how to construct, say, SVM or NNs, then surely
Erlang is a good vehicle. But in practice, there is a number
of things which makes Erlang unsuitable:<br>
<br>
</div>
<div class="gmail_extra">* ML is often CPU bound. You don't want
a bytecode interpreter to be a limiting factor here. Even if
the interpreter in Erlang is state-of-the-art and highly
optimized, it is not far fetched that a FP-intensive program
will be roughly a factor of 30 faster if compiled in a lower
level language.<br>
<br>
</div>
<div class="gmail_extra">* GPUs are popular in ML models for a
reason: they speed up the FP computations by a factor of 3000
or more. This in itself should hint you that you need
something else than Erlang.<br>
<br>
</div>
<div class="gmail_extra">* Erlangs word overhead per process and
terms means a lower-level model can pack many more entities in
memory. This affects caching behavior.<br>
<br>
</div>
<div class="gmail_extra">Training of the model is often off-line
and using the model is online in the system. How you train
your model is less important. This is why I'd just outsource
this problem to the libraries built and tuned for it. It is
like solving LinAlg problems but forgetting everything about
existing LAPACK and ATLAS routines in Fortran.<br>
<br>
</div>
<div class="gmail_extra">A model, in Erlang, which could be
viable is to use Erlang to produce programs for lower level
consumption by compilation. But these are problems for which
languages such as Haskell and OCaml dominates for a reason:
their type systems makes it far easier to pull off.<br>
<br>
</div>
<div class="gmail_extra"><br clear="all">
<br>
-- <br>
<div class="gmail_signature">J.</div>
</div>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
erlang-questions mailing list
<a class="moz-txt-link-abbreviated" href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a>
<a class="moz-txt-link-freetext" href="http://erlang.org/mailman/listinfo/erlang-questions">http://erlang.org/mailman/listinfo/erlang-questions</a>
</pre>
</blockquote>
<br>
</body>
</html>