Permettez-moi d'ajouter les lignes «machine learning» et «neural networks» Ă votre CV en 5-10 minutes de lecture et de comprĂ©hension d'un court article? Pour ceux qui sont loin de la programmation, je dissiperai tous les mythes sur la complexitĂ© de l'IA et montrerai que la plupart des projets d'apprentissage automatique sont construits sur des principes extrĂȘmement simples. Allons-y - nous n'avons que cinq minutes.
Prenons l'exemple le plus Ă©lĂ©mentaire des rĂ©seaux de neurones - les perceptrons; Moi-mĂȘme, aprĂšs cet exemple, j'ai pleinement compris le fonctionnement des rĂ©seaux de neurones, donc si je ne me trompe pas, et vous pouvez comprendre. Rappelez-vous: il n'y a pas de magie ici, des mathĂ©matiques simples au cinquiĂšme niveau du lycĂ©e.
Supposons que nous ayons trois conditions binaires différentes (oui ou non) et une solution binaire en sortie (oui ou non):

Un modÚle simple avec trois entrées et une sortie. Ce modÚle peut parfaitement fonctionner pour différentes personnes et leur donner des résultats différents, selon la façon dont ils ont formé le réseau neuronal. Mais qu'est-ce qu'un réseau neuronal? Ce ne sont que des blocs séparés - des neurones connectés entre eux. Créons un neurone simple à partir de trois neurones:

Ce que vous voyez entre l'entrĂ©e et la sortie, ce sont des neurones. Jusqu'Ă prĂ©sent, ils ne sont liĂ©s Ă rien, mais cela reflĂšte Ă©galement leur caractĂ©ristique principale, que tout le monde oublie de dire: ils sont un shnyag complĂštement abstrait. Autrement dit, les neurones eux-mĂȘmes ne rĂ©solvent rien du tout, dĂ©cide exactement ce que nous allons dessiner ensuite. En attendant, rappelez-vous: les neurones ne font rien du tout, sauf pour rationaliser et simplifier le concept pour les humains. Tirons la partie la plus importante du neurone - la connexion:

Wow, cela ressemble à quelque chose de super cool. Maintenant, nous allons ajouter de la magie, nous allons en quelque sorte entraßner le neurone avec notre talon gauche, nous tourner en place, rire, jeter du poivre sur l'épaule droite de notre voisin arriÚre et tout fonctionnera, non? Il s'avÚre que c'est encore plus facile.
Chaque entrĂ©e Ă gauche a une valeur: 0 ou 1, oui ou non. Ajoutons ces valeurs Ă l'entrĂ©e, supposons qu'il n'y aura pas de vodka Ă la fĂȘte, qu'il y aura des amis, qu'il pleuve:

Donc, nous l'avons compris. Que faisons-nous ensuite? Et ici, il y a du plaisir: utilisons la méthode la plus ancienne pour définir l'état initial des neurones - le grand aléatoire:

Les nombres que nous fixons sont les poids des obligations. Rappelez-vous que les neurones sont des conneries vides? Ainsi, les communications sont exactement ce qu'est un rĂ©seau de neurones. Mais quels sont les poids des obligations? Ce sont les choses par lesquelles nous multiplions les valeurs d'entrĂ©e et les stockons temporairement dans des neurones vides. Nous ne le stockons pas rĂ©ellement, mais pour plus de commoditĂ©, nous imaginerons que quelque chose peut ĂȘtre mis dans les neurones:

Comment aimez-vous les mathématiques? Pourrait se multiplier? Attendez, la partie la plus difficile vient de commencer! Ensuite, nous ajoutons les valeurs (dans l'une des implémentations perceptron):

Eh bien, c'est tout! Le neurone est créé et vous pouvez l'utiliser pour tous les besoins. Si le montant est supĂ©rieur Ă 0,5, vous devez vous rendre Ă la fĂȘte. S'il est infĂ©rieur ou Ă©gal, vous n'avez pas besoin d'aller Ă la fĂȘte. Merci de votre attention!
Bien sĂ»r, le modĂšle ci-dessus a peu d'avantages pratiques, nous devons le former. L'expression effrayante "former des neurones" n'est-ce pas? Pas comme ça. Tout est maladroit et aussi simple que possible: vous prenez des donnĂ©es d'entrĂ©e alĂ©atoires (comme nous l'avons fait), exĂ©cutez l'entrĂ©e Ă travers ces trois neurones, regardez la rĂ©ponse - laissez-la ĂȘtre positive (allez Ă la fĂȘte) - et vĂ©rifiez si le neurone a correctement prĂ©dit la rĂ©ponse ou non . Si c'est vrai, ne faites rien. Si cela ne va pas, vous dĂ©placez lĂ©gĂšrement le poids des neurones (un Ă la fois ou tous Ă la fois) dans n'importe quelle direction. Par exemple, comme ceci:

Et encore une fois vous vĂ©rifiez: oh, eh bien, encore une fois, il dit d'aller Ă la fĂȘte, quand je ne veux pas y aller! Et vous dĂ©placez Ă nouveau lĂ©gĂšrement les poids (dans la mĂȘme direction, probablement) un peu, puis passez Ă nouveau ces donnĂ©es d'entrĂ©e Ă travers les neurones et comparez Ă nouveau le rĂ©sultat - et laissez les poids seuls ou dĂ©placez-les Ă nouveau. Et donc des milliards, des quadrillions de fois, et avec toutes sortes de donnĂ©es d'entrĂ©e diffĂ©rentes. Ici, bien sĂ»r, nous n'avons que 8 combinaisons d'entrĂ©es, mais il y a diffĂ©rentes tĂąches (plus Ă leur sujet ci-dessous).
C'est le principe principal du travail des rĂ©seaux de neurones - Ă la fois la multiplication est nĂ©cessaire pour la diffĂ©renciation, et la comprĂ©hension du travail du perceptron est nĂ©cessaire pour crĂ©er des rĂ©seaux convolutifs et des neurones rĂ©cursifs, et mĂȘme un jeu exotique.
En conséquence, aprÚs avoir formé un neurone sur les décisions prises par une personne, les avoir écrasé des milliards de fois, passer par tous les poids possibles des neurones, vous arriverez enfin à un milieu doré et optimal pour qu'une personne entre trois valeurs initiales - et la machine les exécute formule déjà stable et fonctionnelle avec trois neurones et donne une réponse.
Les trois seules inconnues dans la nÎtre étaient les poids des connexions neuronales, et c'est précisément eux que nous avons passés en revue. Par conséquent, je dis que les neurones sont des mannequins qui ne résolvent rien, et les rois d'un banquet sont les poids des connexions.
Ensuite, tout est simple: au lieu d'une couche de neurones, nous en faisons deux et encore une fois nous trions tout selon exactement les mĂȘmes principes, seuls tous les neurones donnent dĂ©jĂ des valeurs Ă d'autres neurones. Si au dĂ©but nous n'avions que 3 connexions, maintenant 3 + 9 connexions avec des poids. Et puis trois couches, quatre couches rĂ©cursives, fixĂ©es sur elles-mĂȘmes et le jeu similaire:

Mais, demandez-moi, disent-ils, quel est le rĂ©sultat de quelque chose de compliquĂ© dans les neurones? Pourquoi les spĂ©cialistes de l'apprentissage automatique sont-ils tant payĂ©s? Et la chose est exactement comment implĂ©menter les perceptrons ci-dessus: il y a tellement de nuances diffĂ©rentes que vous ĂȘtes tourmentĂ© de lister.
Et si à l'entrée vous avez une photo et que vous devez classer toutes les photos des chiens et des chats? Les images sont en tailles 512x512, chaque pixel est une entrée - alors combien de valeurs allons-nous poursuivre le long des neurones? Il y a des neurones convolutifs pour ça! C'est un tel shnyaga qui prend 9 pixels cÎte à cÎte, par exemple, et fait la moyenne de leurs valeurs RVB. Il s'avÚre, comprime l'image pour un traitement plus rapide. Ou, par exemple, se débarrasse complÚtement de la couleur rouge dans l'image, car ce n'est pas important (nous ne recherchons, par exemple, que des robes vert-bleu). Ce sont des réseaux convolutionnels - une couche supplémentaire de «neurones» à l'entrée qui traitent l'entrée pour une vue claire et simplifiée pour le réseau.
Vous devez également comprendre combien et dans quelle direction déplacer les poids - pour cela, il existe toutes sortes d'algorithmes simples pour la compréhension, qui prennent en compte l'erreur de la fin - de la droite (du résultat) à la gauche (jusqu'à la premiÚre couche de neurones) - l'un des algorithmes est appelé Propagation arriÚre.
Il existe toutes sortes d'algorithmes sacrément simples pour normaliser les valeurs - de sorte que vous obtenez des nombres non pas de 0 à 500 000, mais de 0 à 1 à la sortie ou au milieu lors de l'ajout - cela simplifie considérablement les calculs et les mathématiques de calcul.
Comme vous pouvez déjà le comprendre, les spécialistes vraiment cool de l'apprentissage automatique connaissent non seulement la plupart des méthodes existantes dans la construction de réseaux de neurones optimisés, mais aussi proposent leurs propres approches, à partir de la compréhension la plus simple mais la plus approfondie des relations de cause à effet entre la façon de construire un perceptron , et pourquoi cela fonctionne, en termes de mathématiques. Ils peuvent non seulement faire fonctionner le neurone, ils peuvent changer l'algorithme ou utiliser un autre algorithme pour continuer à fonctionner rapidement et de maniÚre optimale.
Eh bien, c'est tout - je vous ai donné les bases pour comprendre ce que sont les réseaux de neurones. J'espÚre aussi vous avoir montré que le diable n'est pas aussi terrible qu'il est peint - tout s'est avéré incroyablement simple, au niveau de la multiplication et de l'addition. Ensuite, je vous conseille de commencer à regarder des tutoriels sur YouTube ou Udemy - il y a des mecs géniaux pour expliquer tout cool.
La prochaine fois, quand ils vous demanderont de l'argent pour un projet d'apprentissage automatique, secouez les mendiants des mendiants avec les grandes lignes du travail des rĂ©seaux de neurones - quelles couches, comment elles sont organisĂ©es, pourquoi et pourquoi, ici et lĂ , ce n'est pas le cas. Tout cela au niveau d'un maximum de 11 classes sera (il s'agit d'intĂ©grales et de diffĂ©rentiels) - puis cela se produira dans la description une fois, peut-ĂȘtre deux. Bien que le projet ne dispose pas de ce modĂšle (quelles couches et comment sont situĂ©s) - le projet n'a pas de produit, car cette structure est les 2 Ă 4 premiĂšres semaines d'un spĂ©cialiste de l'apprentissage automatique.
PS, un exemple d'explication, j'ai impudemment tiré d'
une magnifique vidéo sur les réseaux de neurones. Je vous conseille fortement de regarder - merci les gars! les abonnés ont aidé à restaurer le lien vers la vidéo d'origine, un exemple dont j'ai essayé de récupérer la mémoire. Si quelqu'un souhaite savoir comment coder la tùche ci-dessus, je vous invite à regarder cette vidéo ici. Merci beaucoup aux auteurs!