
How to Create a Neural Network in JavaScript [video] - ingve
https://scrimba.com/casts/cast-1980
======
Batro
Having almost failed my last year of IT engineering because of the AI part
(which included neural networks) I would have loved working on such
technologies, because my teacher only gave us a scientific article about a
neural network algorithm and asked us to implement it with Netlogo, which was
a huge pain in the a*s to work with. Whereas with this library I understand
the code and therefore the logic behind it almost instictively. So to the
people behind it : good work, and thanks !

~~~
piqufoh
I dislike the way some courses insist on using crusty old academic languages
to teach subjects that are much better served by modern real world languages.
Is it so students are less likely to copy work from the web? Clunky, poorly
documented systems putting people off programming and obfuscating the subject
being taught seems ridiculous!

------
ilaksh
You can actually get some useful NN performance if you do this sort of thing
in the browser but using shaders in WebGL for doing the calculations on the
GPU. There is a Keras JS if you have already trained a net.. I think it uses
the GPU. [https://transcranial.github.io/keras-
js/](https://transcranial.github.io/keras-js/)

~~~
ajhurliman
I thought the only output you could get from WebGL was pixels... I wonder if
they're rendering the output layer on an off-screen canvas and reading the
pixel values.

~~~
ilaksh
[https://developer.mozilla.org/en-
US/docs/Web/API/WebGLRender...](https://developer.mozilla.org/en-
US/docs/Web/API/WebGLRenderingContext/readPixels)

------
xchip
You have more chances of learning if you understand the math behind.

But if you still are after some code here is mine:
[http://htmlpreview.github.io/?https://github.com/aguaviva/Ar...](http://htmlpreview.github.io/?https://github.com/aguaviva/ArtificialIntelligence/blob/master/GenericDistRegression.html)

~~~
criveros
Where does one go to learn the math behind it?

~~~
soVeryTired
Module one of Andre Karpathy's course is the most intuitive explanation I've
seen. Working through backprop equations was a major hassle until I read those
notes.

[http://cs231n.github.io/](http://cs231n.github.io/)

------
mrborgen
Hey all, Scrimba is on Product Hunt today, if anybody wants to join the
discussion there as well. You'll find us on this list:

[https://www.producthunt.com/topics/developer-
tools](https://www.producthunt.com/topics/developer-tools)

------
ChicagoBoy11
Ha - I chuckled when I saw the [video] tag. I remember when Scrimba was first
posted here and it is indeed great -- but the really fun part is the fact that
they aren't really videos!

~~~
mrborgen
It's painful for us to see that... :p

------
mrborgen
Hey all, I'm the creator of this screencast (and a co-founder of Scrimba).

Happy to answer any questions people might have :)

~~~
derpsauce69
Mixed Content: The page at
'[https://scrimba.com/casts/cast-1980'](https://scrimba.com/casts/cast-1980')
was loaded over HTTPS, but requested an insecure image
'[http://i.imgur.com/k4L44Qg.png'](http://i.imgur.com/k4L44Qg.png'). This
content should also be served over HTTPS.

switch your imgur to https to fix the SSL for your streamcast. looks really
cool though!

~~~
mrborgen
Oops, thanks for notifying me about that!

------
kretash
Would really like to find something similar but that teaches how to implement
the layers and the network too. I feel like I'm not going to become familiar
with NN's until I understand how it's built underneath too.

Does anybody have any good resources for that?

~~~
SilentM68
You could try looking at Tariq Rashid's video and book:
[https://www.youtube.com/watch?v=2sevic5Vy4E](https://www.youtube.com/watch?v=2sevic5Vy4E)

[https://www.amazon.com/Make-Your-Own-Neural-Network-
ebook/dp...](https://www.amazon.com/Make-Your-Own-Neural-Network-
ebook/dp/B01EER4Z4G)

NN as a concept is hard since it is taught with math, however, I found his
book to be easier than any other books I've read as it uses minimal math and
down to earth explanations. Since NNs can implemented in most languages, I
wish that a universal NN language could be developed that anyone could use vs
having to learn it from other languages.

~~~
tomcam
That book is only $4 on Kindle. Just purchased it--quite good for a beginner.

------
z3t4
It would be great with a tutorial covering something besides the easiest
example in the library readme.

It works great if you train it with all possible combinations, but if you
leave something out, my experience is it will make very poor predictions.

------
bluetwo
20,000 rounds for the NN to learn XOR?

Is this typical for this level of task?

~~~
scarlac
By tweaking the learning rate I managed to lower the iterations/rounds to 750.

For my own test project I only did 10k iterations/.3 learning rate on a 16
input, 32 hidden, and 1 output neuron network and my early tests on my "non-
math" problem seemed good.

~~~
mrborgen
How about creating a fork and explaining what you did to get the iterations
down to 750? :)

------
johanneskanybal
Next up: Why create a neural network in JavaScript?

~~~
FullMtlAlcoholc
Because it is one of the most popular and accessible programming languages. It
can act as a gateway language for the millions of devs out there to try out
NN's without the barrier of learning another language.

Here are some other neural networks in JS:

[https://github.com/harthur/brain](https://github.com/harthur/brain): Neural
Networks in JS

[https://github.com/stevenmiller888/mind](https://github.com/stevenmiller888/mind):
a flexible neural network library

[https://github.com/cazala/synaptic](https://github.com/cazala/synaptic): an
architecture-free neural network library for node.js and the browser

Sllightly off topic, but the Machine Learning department of the University of
Tokyo has built a whole set of libraries for machine learning in Javascript:
[http://mil-tokyo.github.io/miljs.html](http://mil-tokyo.github.io/miljs.html)

~~~
xchip
<vanity>That moment when you realize that your JS implementation supports conv
nets and others don't :D </vanity>

