Introduction.
Le Machine Learning, vous en entendez beaucoup parler, ça a l’air vraiment super cette petite bête, et ça fait trois ans que vous vous dite tous les jours: « ça y est, là c’est sûr, demain, je m’y met ». Eh non, parce que le lendemain, vous aviez piscine, aquaponey, footgolf, ou autre réjouissance du genre. Mais pas Machine Learning. C’est quand même vachement moins rigolo que de noyer des poneys dans un pédiluve à la limite de la salubrité, faut bien le reconnaître. Je sais. Et je ne le sais que trop bien, pour avoir moi même procrastiné bien trop longtemps. Mais j’ai fini par réussir à sauter l’obstacle (et pas en poney), et finalement c’est quand même plutôt funky, ne nous mentons pas. J’ai arrêté l’aquaponey du coup, pour ceux qui se poseraient la question. Bref. C’est pour cette raison que j’ai décidé aujourd’hui de vous prendre par la main, pour vous emmener vers demain, pour vous donner la confiance en votre pas, pour vous prendre pour un roi… je m’égare (une séance d’aquaponey offerte à l’auteur du premier commentaire qui me donne la référence, grand nom de la chanson s’il en est. si si). Nous allons donc essayer de commencer par le commencement – c’est assez malin quand on y réfléchit – et implémenter pas à pas la brique de base* d’un réseau de neurones artificiels: le perceptron. En Javascript. Parce que… pourquoi? Parce que… parce que.
* en réalité, la brique de base c’est le neurone formel, je vous le concède, mais on va quand même essayer d’aller un peu plus loin. On est pas des animaux.
Où il est question de réseaux de neurones artificiels.
Si vous êtes en train de lire cet article, et n’avez pas encore perdu patience à lire ma prose décousue et à la limite du supportable, c’est que vous devez déjà connaître le principe d’un réseau de neurones dans les grandes lignes, et que ça vous intéresse à peu près. J’imagine. Mais dans le doute – et parce que j’aime bien raconter des trucs pas forcément utiles – je vais quand même oser un bref rappel. Pour les deux du fond.
Mais avant ça – j’aime bien quand ça traîne un peu, aussi, j’avoue – posons les bases de notre étude. Il existe pléthore de façons de faire du Machine Learning. Pour ne citer qu’eux: Les algorithmes génétiques, les machines à vecteur de support, la méthode des k plus proches voisins, les réseaux bayesiens, de Markov, les réseaux de neurones… (NdlR: ça fait bizarre d’écrire tous ces noms en français, mais je vais essayer de faire l’exercice jusqu’au bout, en hommage à cette grande dame de la langue française qu’est Nabila) Comme vous l’aurez compris, nous allons aujourd’hui nous focaliser sur les réseaux de neurones. Si vous n’aviez pas compris, vous pouvez sortir. Sinon, bravo.
Ensuite, des réseaux de neurones il en existe de beaucoup de sortes, différant par leurs topologies, leurs méthodes d’apprentissage, leurs fonctions d’activation… Tout cela dans un seul but néanmoins: réaliser une tâche bien précise. Pour faire simple, vous pouvez faire votre marché parmis:
- Classification: On classe. C’est tout de même bien fait.
- Régression: On prédit.
- Clustering: On regroupe slide pool.
Tout ça pour dire quoi? Tout ça pour dire ça: dans cet article, je vais m’intéresser à un réseau de neurones avec apprentissage supervisé pour résoudre un problème de classification. Et pas n’importe quel réseau de neurones, le plus simple d’entre eux: le perceptron. C’est promis, je reviendrai plus en détail sur toutes ces notions et la kyrielle de choix qui s’offrent à vous dans de futurs articles sur le sujet. Pour l’instant contentons-nous des fondamentaux si vous le voulez bien.
Soyez le premier à commenter