Brain.js apporte l’apprentissage en profondeur au navigateur et à Node.js – La nouvelle pile

Brain.js est une bibliothèque JavaScript permettant de déployer un réseau de neurones dans le navigateur ou sur Node.js. Il utilise le GPU (unité de traitement graphique) d’un ordinateur pour les calculs, ou du JavaScript pur lorsque le GPU n’est pas disponible.

Le développeur principal de Brain.js est Robert Plumer, de jour ingénieur full-stack chez iFIT. Je l’ai contacté pour en savoir plus sur Brain.js, y compris ses débuts, son utilisation actuelle et ses plans pour l’avenir.

Comme le nom du projet de Plummer l’indique, les réseaux de neurones sont des systèmes informatiques qui imitent le fonctionnement d’un cerveau biologique. Un réseau de neurones est composé de nœuds connectés, vaguement calqués sur les neurones d’un cerveau. Tout comme les cerveaux, les réseaux de neurones doivent être formés sur les données qui sont entrées dans le système – un type d’apprentissage automatique connu sous le nom d’apprentissage en profondeur.

Le principal avantage de Brain.js est qu’il utilise le langage de programmation Web le plus populaire au monde, JavaScript. De plus, selon un tutoriel de développeur IBM, une application alimentée par un réseau neuronal construite avec Brain.js “peut être créée avec étonnamment peu de code”.

Cas d’utilisation

Alors, quels sont les cas d’utilisation des réseaux de neurones dans un navigateur ? Selon Plummer, ils sont “illimités”, mais il a donné quelques exemples de la communauté Brain.js. “J’ai vu des gens l’utiliser pour gérer les semences dans une communauté agricole”, a-t-il déclaré, “et j’ai vu des gens l’utiliser pour prédire les cours boursiers ou la météo dans un lieu.”

Il a averti qu’à ce stade, les données introduites dans une application Web alimentée par Brain.js nécessitent une formation supervisée. L’apprentissage non supervisé et l’apprentissage par renforcement ne sont pas encore entrés dans la bibliothèque, a-t-il déclaré.

J’ai demandé comment Brain.js se compare à la programmation de réseaux de neurones en Python ou R, deux langages couramment utilisés dans l’apprentissage automatique. JavaScript a-t-il le même niveau de puissance ?

Plummer a confirmé que l’utilisation de JavaScript est “tout aussi puissante”, mais il a noté qu ‘”il y a des frais généraux” à l’utilisation des parties de calcul. Cependant, a-t-il déclaré, “nous offrons la possibilité d’utiliser le GPU, qui est GLSL [OpenGL Shading Language], qui est un sous-ensemble de C++. C’est “très similaire” au travail avec Python ou R, a-t-il ajouté.

Histoire de Brain.js

Bien que Plummer soit le développeur principal de Brain.js et y travaille depuis 2016, la bibliothèque a ses racines dans un projet précédent créé par Heather Arthur, appelé cerveau. Arthur avait décrit son projet comme « une simple bibliothèque de réseaux de neurones ». Cependant, elle a cessé de le maintenir vers 2014. Après quelques discussions entre les cerveau communauté, Plummer a cloné le projet d’Arthur en janvier 2016 – et c’est ainsi que Brain.js est né.

En passant, Heather Arthur a écrit un article de blog en 2017 expliquant pourquoi elle a abandonné non seulement cerveau, mais tous ses projets GitHub. Il s’avère que chacun était un « projet parallèle personnel » et elle a eu du mal à les maintenir tous, car elle n’avait aucun « soutien organisationnel ». Il y a eu “une énorme quantité d’efforts fastidieux”, a-t-elle poursuivi, ce qui l’a amenée à déclarer “faillite sur GitHub”.

Peut-être qu’Arthur était en avance sur son temps avec cerveaumais heureusement, son travail a inspiré un groupe de développeurs JavaScript (dont Plummer) à poursuivre et à étendre le projet.

Quant à savoir pourquoi plummer s’est intéressé à cerveau et voulait continuer, il m’a dit que jusqu’au projet d’Arthur, il n’avait «jamais vu les réseaux de neurones se développer aussi simplement et de manière compréhensible».

“JavaScript est un langage magnifique”, a-t-il déclaré. « C’est très simple, et il n’y a aucune raison pour qu’il ne soit pas très performant. Il y a certaines choses qui le retiennent encore, mais cela avance lentement mais sûrement. »

Comment Brain.js a évolué depuis le fork

Cela fait six ans et demi que Plummer a lancé Brain.js, alors j’ai demandé à quel point est-il différent du projet original d’Arthur ?

“Dans son incarnation d’origine, il s’agissait simplement d’un réseau de neurones à anticipation avec la capacité de produire cela sous la forme d’un seul algorithme – un seul réseau de neurones formé dans essentiellement une longue, longue ligne de code”, a-t-il répondu. Un réseau de neurones à anticipation est un type de réseau de neurones où les connexions de nœuds ne forment pas de boucle.

“Depuis”, a poursuivi Plummer, “nous avons également ajouté le GPU. Vous pouvez donc écrire en JavaScript et cela compile en GLSL (ou un sous-ensemble de C++); il a fallu deux ans et demi à trois ans pour que cela fonctionne.

Ironiquement, Plummer semble avoir un problème similaire à Arthur en termes de maintenance du projet Brain.js – un manque de soutien. Il est le seul développeur actif sur le projet et doit y travailler en dehors des heures qu’il consacre à son travail quotidien.

“Je suis assez occupé par mon travail quotidien et je n’y vais pas aussi souvent que possible”, a déclaré Plummer à propos du travail sur Brain.js. “J’ai eu des développeurs qui vont et viennent au fil des ans. Et je tends la main vers eux, tu sais […] mais pour la plupart, c’est juste moi.

Plummer passe le peu de temps libre dont il dispose principalement à corriger des bugs. Mais il a également commencé à travailler sur les « réseaux de neurones de renforcement, fortement typés », qui est une classe d’algorithmes qui vise à s’améliorer automatiquement en fonction de l’expérience.

En-têtes JavaScript : essayez Brain.js

De nombreux projets d’apprentissage en profondeur continueront d’utiliser TensorFlow ou des plates-formes de grandes entreprises comme IBM Watson Studio ou Google Cloud AI Platform. Mais si vous êtes un développeur Web qui souhaite essayer l’apprentissage en profondeur dans le navigateur ou sur Node.js, alors Brain.js vaut la peine d’être vérifié. Surtout si vous avez des graines à gérer ou des cours boursiers à prévoir.

Image vedette via Shutterstock.

Leave a Comment