// Neural Networks

Avantages et Inconvénients de L'architecture de Réseau Neuronal

Table des matières

#1. Que sont les réseaux de neurones
#2. Comment fonctionne un réseau de neurones
#3. Principaux types de réseaux de neurones
#4. Avantages des réseaux de neurones
#5. Inconvénients des réseaux de neurones
#6. Brève conclusion

Ces dernières années, les réseaux de neurones sont devenus une sorte de nouvelle électricité - une technologie révolutionnaire qui a pénétré dans toutes les sphères de l'activité humaine. Et ce n'est pas surprenant, car les solutions technologiques basées sur les réseaux de neurones peuvent effectuer un éventail de tâches extrêmement large - du traitement des maladies les plus complexes à la recommandation d'une série télévisée pour la soirée. Cependant, cette technologie n'est pas parfaite, elle a ses avantages et ses inconvénients que vous devez connaître et prendre en compte si vous décidez de créer votre produit basé sur des réseaux de neurones.

Que sont les réseaux de neurones

Les réseaux de neurones (NN) ou réseaux de neurones artificiels (ANN) sont un nom généralisé pour les modèles et programmes mathématiques construits sur le principe de l'organisation et du fonctionnement des réseaux de neurones biologiques - réseaux de neurones dans le cerveau humain. La principale caractéristique des réseaux de neurones artificiels, grâce à laquelle ils sont devenus si populaires, est la capacité d'apprendre et d'agir sur la base de l'expérience passée, et pas seulement selon des algorithmes pré-écrits.

Les réseaux de neurones sont souvent perçus comme quelque chose de nouveau et de révolutionnaire. Cependant, les développements dans ce domaine ont commencé dans la première moitié du siècle dernier, après que Warren McCulloch et Walter Pitts aient réussi en 1943 à créer le premier modèle mathématique des principes du neurone. Dans leur ouvrage "Representation of Events in Nerve Nets and Finite Automata", les scientifiques ont décrit sous forme de fonctions un modèle mathématique simple qui fonctionne comme un neurone biologique : il prend une entrée, la traite et renvoie le résultat.

McCulloch-Pitts neuron model

McCulloch - Modèle de neurones de Pitts. La source

En 1957, Frank Rosenblatt, utilisant les travaux de Warren McCulloch et Walter Pitts, ainsi que de Donald Hebb (proposant le premier algorithme d'apprentissage), invente le perceptron, un automate percevant et reconnaissant. Et bien que cet automate ait été conçu comme une machine et non comme un programme, on pense que c'est lui qui est le premier réseau de neurones artificiels. Dans le même temps, le terme "perceptron" lui-même a ensuite commencé à être utilisé comme synonyme du réseau de neurones artificiels le plus simple.

Avez-vous besoin de développer un projet réussi?

Obtenez une consultation rapide.

Demander un prix

La prochaine percée significative dans le domaine des ANN n'a eu lieu que 60 ans plus tard : en 2006, Geoffrey Hinton a décrit des algorithmes d'apprentissage en profondeur pour les ANN multicouches basés sur la machine de Boltzmann restreinte, ou RBM (machine de Boltzmann restreinte). Dans le même temps, Hinton a également formulé le concept de base de la formation d'algorithmes de réseau neuronal : afin d'obtenir une solution prête à l'emploi et rapide pour résoudre un problème spécifique, NN doit être formé sur de nombreux exemples réels (par exemple, des photographies de divers chats dans différentes poses et sur différents arrière-plans).

Neural network architecture (left) and deep learning neural network (right). The circles represent artificial neurons, the lines represent the network of connections between them.

Architecture d'un réseau de neurones (à gauche) et d'un réseau de neurones d'apprentissage profond (à droite). Les cercles représentent les neurones artificiels, les lignes représentent le réseau de connexions entre eux. La source

Grâce au deep learning (et au big data), les ANN sont devenus véritablement entraînables. Ainsi, déjà en 2012, le réseau de neurones a pu surpasser les humains en reconnaissance d'images dans le cadre du concours ImageNet. Et en 2015, AlphaGo est devenu le premier programme au monde à battre un joueur d'échecs professionnel sans handicap (sans condition).

Comment fonctionne un réseau de neurones

L'architecture d'un réseau neuronal artificiel se compose de trois couches ou plus : entrée, sortie et un ou plusieurs nœuds cachés. Actuellement , le deep learning est utilisé par défaut pour créer un NN , il y a donc généralement plusieurs nœuds cachés. Chaque couche NN est constituée d'unités de calcul ("neurones") qui reçoivent des données de la couche précédente, les traitent en effectuant des calculs simples dessus et transmettent ces données à la couche suivante.

La couche d'entrée accepte les entrées dans plusieurs formats différents, tels que la luminosité, le contraste, la couleur, les lignes ou d'autres caractéristiques d'une image s'il s'agit d'une photographie. La couche cachée est responsable de la recherche de motifs et de fonctionnalités cachés grâce à des calculs simples. La couche de sortie, pour ainsi dire, résume tous les calculs et émet une réponse sous la forme d'une conclusion, d'une action et / ou d'une prévision. Si la réponse est correcte ou simplement supérieure à un certain seuil de "correction", alors le réseau de neurones, pour ainsi dire, "amplifie" les calculs ("neurones") qui l'ont donné. Et vice versa.

Cela fonctionne comme suit. Disons que vous avez besoin d'un programme pour reconnaître si une photo contient un chien ou un loup. Ensuite, votre réseau de neurones : analysera l'image en différents détails à l'aide de la couche d'entrée, recherchera des signes de chiens et de chats parmi ces détails à l'aide de couches cachées, et résumera (il y a un chat ou un loup sur la photo) à l'aide de la couche de sortie.

A simplified model of artificial neural network operation

Un modèle simplifié du fonctionnement d'un réseau de neurones artificiels. La source

Bien sûr, pour entraîner notre réseau de neurones à rechercher des chiens ou des loups sur des photographies, nous aurons besoin d'un grand nombre de photos avec et sans chiens et loups - plus il y en aura, plus la formation NN sera efficace.

Principaux types de réseaux de neurones

Selon l'architecture, les réseaux de neurones artificiels sont divisés en plusieurs types, qui sont utilisés à des fins différentes. Vous trouverez ci-dessous les types de réseaux de neurones les plus courants que vous rencontrerez très probablement si vous souhaitez développer votre solution basée sur les NN.

Perceptron . Le plus ancien réseau de neurones créé par Frank Rosenblatt en 1957. Il se compose d'un seul neurone et constitue la forme la plus simple d'un réseau de neurones artificiels.

Frank Rosenblatt's Perceptron.

Perceptron de Frank Rosenblatt. La source

Réseaux de neurones feedforward . De tels réseaux se composent d'une couche d'entrée, d'une couche de sortie et d'une ou plusieurs couches cachées. Et malgré le fait qu'ils soient également appelés perceptrons multicouches (MLP), il est important de noter qu'ils sont constitués de neurones sigmoïdes et non de perceptrons (les premiers sont plus efficaces pour traiter les problèmes non linéaires). Les réseaux de neurones feedforward sont utilisés pour la vision par ordinateur, le traitement du langage naturel et d'autres tâches similaires.

Neural network architecture with direct connection

L'architecture d'un réseau de neurones avec feedforward. La source

Réseaux de neurones récurrents (RNN). Ils sont identifiés par des boucles de rétroaction. Ce type de réseaux de neurones est utilisé pour des tâches ordinales ou temporelles, par exemple pour prédire des résultats futurs : prévisions boursières ou prévisions de ventes de chaînes de magasins. En dehors de cela, ils fonctionnent également bien avec la traduction linguistique, le traitement du langage naturel (NLP) ou la reconnaissance vocale, c'est pourquoi ils sont inclus dans Siri et Google Translate.

The architecture of recurrent neural networks.

Architecture des réseaux de neurones récurrents. La source

Réseaux de neurones convolutifs (ConvNets ou CNN). Composé d'une couche convolutive, d'une couche fusionnée et d'une couche entièrement connectée (FC). Ces réseaux de neurones utilisent des principes d'algèbre linéaire (tels que la multiplication matricielle) pour trouver des motifs cachés dans une image, une vidéo ou un son. De plus, les CNN fonctionnent avec de telles données à une vitesse incroyable, ils sont donc souvent utilisés pour des tâches où vous devez reconnaître des images et des images en temps réel.

Avantages des réseaux de neurones

Auto-apprentissage . C'est la principale caractéristique et l'avantage des réseaux de neurones artificiels, qui sont si populaires auprès des programmeurs et des hommes d'affaires du monde entier. Vous créez simplement un algorithme de base, puis lui donnez des exemples à former (par exemple, des photos de personnes, si vous voulez que votre réseau de neurones recherche des personnes sur une photo) et regardez les résultats. Dans le même temps, l'algorithme lui-même décide comment atteindre l'objectif souhaité, trouvant souvent des solutions qui ne sont pas évidentes (pour les gens).

De plus, le réseau de neurones n'est pas seulement un auto-apprentissage, il est conçu pour s'auto-apprendre en permanence et améliorer ses résultats. Une fois le système formé, le programme ou l'application devient plus convivial au fur et à mesure de son utilisation. C'est pourquoi le système de recommandation de Google Translate, Netflix ou TikTok s'améliore chaque année.

Filtrage efficace du bruit dans les données . Imaginez n'importe quel endroit raisonnablement bruyant, comme un marché ou un stade. Les gens parlent, la musique joue fort, les voitures passent quelque part et les oiseaux crient - il y a du bruit partout, mais malgré cela, vous pouvez communiquer calmement avec les personnes à proximité. Vos oreilles captent des tonnes de sons inutiles, mais votre cerveau les filtre et ne perçoit que ce que dit votre interlocuteur. Cette propriété se retrouve également dans les réseaux de neurones artificiels. Après la formation, ils sont capables d'isoler uniquement les informations dont ils ont besoin à partir d'un énorme flux continu de données, en ignorant tout bruit parasite.

Il s'agit d'une fonctionnalité très utile si vous avez besoin de rechercher des modèles dans d'énormes quantités de données hétérogènes, telles que la recherche médicale non clinique, les prévisions météorologiques, l'analyse du marché économique ou la traduction de texte.

S'adapter au changement . Un autre avantage des réseaux de neurones artificiels est la capacité de s'adapter aux changements dans les données d'entrée. Par analogie, nous pouvons donner un exemple avec la mise à jour des applications. Disons que vous êtes hors ligne depuis longtemps et pendant ce temps, Instagram et TikTok ont été mis à jour avec quelques nouvelles fonctionnalités. Après avoir pris quelques minutes pour lire les instructions, vous serez familiarisé avec toutes les nouvelles fonctionnalités et continuerez à utiliser Instagram et TikTok. La même chose se produira avec les réseaux de neurones. Après une courte période d'adaptation aux changements, il continuera à fonctionner avec la même efficacité.

Tolérance aux pannes . Les solutions basées sur les réseaux de neurones restent opérationnelles même après la défaillance d'une partie des neurones. Oui, cela peut affecter la précision et/ou la vitesse de l'algorithme, mais ses réponses seront toujours logiques, rationnelles et correctes. C'est une propriété très utile si un appareil avec un réseau de neurones embarqué doit fonctionner dans un environnement agressif (zones radioactives, en temps de guerre, dans des bâtiments ou de l'espace détruits).

De belles opportunités . Un autre avantage clé des RNA est leur large éventail d'applications. Les réseaux de neurones fonctionnent comme un cerveau humain, ce qui signifie qu'une fois entraînés, ils peuvent effectuer diverses tâches dans divers domaines, allant de l'augmentation des conversions dans une boutique en ligne à la recherche de planètes semblables à la Terre dans l'espace. L'essentiel est qu'il existe suffisamment d'ensembles de données réelles ou synthétiques pour la formation.

Vitesse de travail . Un autre avantage important des réseaux de neurones est leur vitesse énorme, à la fois par rapport aux algorithmes informatiques conventionnels et par rapport au cerveau humain. Les réseaux de neurones artificiels ne se fatiguent pas et n'ont pas de pause déjeuner. La vitesse de leur travail n'est déterminée que par la puissance de calcul dont ils disposent (carte vidéo, serveur cloud ou centre de données). Cela signifie généralement qu'ils émettent une solution presque instantanément.

Inconvénients des réseaux de neurones

Le problème de la boîte noire . Le défaut le plus notoire de tous les NN est peut-être leur nature de "boîte noire". En termes simples, vous ne savez pas comment et pourquoi votre réseau neuronal arrive à un certain résultat. Par exemple, lorsque vous mettez une photo d'un chat dans un réseau de neurones et qu'il vous indique qu'il s'agit d'un avion, il est très difficile de comprendre ce qui l'a amené à cette conclusion. Vous ne savez tout simplement pas ce qui se passe dans le "cerveau" du réseau de neurones.

Neither the creators of neural networks nor other experts can say how they come to one conclusion or another, so we can say there is a magic going on

Ni les créateurs de réseaux de neurones ni d'autres spécialistes ne peuvent dire comment ils arrivent à telle ou telle conclusion, on peut donc dire que la "magie" s'y opère. La source

C'est un énorme problème pour apprendre comment fonctionne un réseau de neurones. Et c'est aussi un grand défi d'intégrer cette technologie dans certains secteurs d'activité. Par exemple, c'est pour cette raison que de nombreuses banques n'utilisent pas NN pour prédire la solvabilité - elles doivent expliquer aux clients pourquoi ils n'ont pas reçu de prêt, sinon une personne peut se sentir injustement offensée ou même discriminée en raison de sa race, de son sexe et de / ou nationalité (de tels cas d'IA se sont déjà produits, et plus d'une fois).

Il en va de même pour des sites comme YouTube, Facebook, TikTok ou Quora. Si un algorithme de machine learning supprime un compte utilisateur, la plateforme devra expliquer pourquoi. Il est peu probable qu'il se satisfasse de la phrase : "L'ordinateur nous l'a dit". C'est lourd de poursuites.

Caractère probabiliste des réponses . Mais ce n'est pas tout. Si vous insérez une image dans un réseau de neurones et que vous lui demandez ensuite : "Est-ce un chat, un chien ou autre chose ?", vous voulez probablement que la réponse soit : est-ce soit un chat, soit un chien, soit autre chose ? . Mais en réalité, même un réseau de neurones très bien entraîné ne produira pas des résultats aussi nets. Très probablement, ce sera quelque chose comme : chat - 0,97, chien - 0,01, autre chose - 0,02. Ces résultats peuvent être interprétés comme des probabilités. Dans notre cas, cela signifie que la probabilité que la photo montre un chat est de 97%, pour un chien cette probabilité est de 1%, pour autre chose - 2%.

An example of a black response of an artificial neural network.

Un exemple de réponse "boîte noire" d'un réseau de neurones artificiels. La source

Lorsque vous avez des fonctions interprétées par l'homme, il est beaucoup plus facile de comprendre la cause de l'erreur. Par comparaison, les algorithmes tels que les arbres de décision sont faciles à interpréter. Ceci est important car dans de nombreux domaines, l'interprétabilité est essentielle. Vous pouvez imaginer le PDG d'une grande entreprise, prenant des millions de dollars de décisions, qui doit prendre une décision importante, mais ne peut pas, car l'IA n'a pas donné de réponse définitive à une question apparemment simple. Ou vous pouvez imaginer un général qui doit décider d'une attaque au missile, mais ne le peut pas, car la photo avec une probabilité de 1% ou 10% peut ne pas être des terroristes, mais de jeunes enfants.

Durée de développement . Bien qu'il existe de nombreuses bibliothèques telles que NeuroLab, ffnet, SciPy, TensorFlow, Scikit-Neural Network, Lasagne, pyrenn, NumPy, Spark MLlib, Scikit-Learn, Theano, PyTorch, Keras qui permettent d' économiser du temps et des efforts lors du développement de réseaux de neurones artificiels , elles ne sont pas toujours applicables. Par exemple, si vous avez besoin de créer une solution nouvelle ou plutôt complexe qui nécessite plus de contrôle sur les détails de l'algorithme.

An algorithm for developing artificial neural networks.

Algorithme pour le développement de réseaux de neurones artificiels. La source

Votre tâche est unique et complexe , plus vous aurez besoin de temps et de ressources. Et il ne s'agit pas seulement d'écrire le code de l'algorithme du réseau de neurones, mais aussi de collecter des données pour son apprentissage. Souvent, ces données sont très difficiles à collecter, par exemple s'il s'agit d'informations sur des accidents de voiture ou sur le fonctionnement d'un réacteur nucléaire dans des conditions critiques. Dans certains cas, le processus de développement peut être accéléré et moins cher à l'aide de données synthétiques, mais elles sont loin d'être toujours applicables, et ces données seront toujours très conditionnelles - ne correspondant qu'approximativement à la réalité.

La quantité de données . Le prochain inconvénient des réseaux de neurones est que leur formation nécessite généralement beaucoup plus de données que les algorithmes d'apprentissage automatique traditionnels. Et comme nous l'avons déjà dit, s'il s'agit de données uniques ou difficiles à collecter, cela peut être un sérieux défi pour les développeurs. Et souvent bien plus que d'écrire le code d'un réseau de neurones artificiels.

C'est pourquoi de nouveaux réseaux de neurones artificiels (solutions d'IA) sont développés principalement par de grandes entreprises (Google, Microsoft, IBM), qui ont non seulement beaucoup d'argent et accès à des programmeurs de haut niveau, mais aussi au big data. Les petites et moyennes entreprises ne sont pas leur concurrent ici.

Coûteux en calcul . Les algorithmes modernes d'apprentissage en profondeur basés sur des réseaux de neurones artificiels nécessitent plusieurs semaines, voire des années, pour apprendre à partir de zéro. Alors que la plupart des algorithmes d'apprentissage automatique traditionnels nécessitent beaucoup moins de temps pour s'entraîner : de quelques minutes à plusieurs heures. Par exemple, un réseau de neurones avec 50 couches sera beaucoup plus lent qu'un algorithme de forêt aléatoire (une méthode d'apprentissage d'ensemble pour la classification, la régression et d'autres problèmes) avec seulement 10 arbres.

Cela complique à nouveau le développement de solutions basées sur les réseaux de neurones et complique leur intégration dans les entreprises, et plus encore dans le secteur associatif.

Brève conclusion

Les réseaux de neurones artificiels sont parfaits pour certaines tâches et moins bons pour d'autres. Cependant, peu de gens comprennent quand ils peuvent réellement apporter une réelle valeur à votre entreprise et quand il est préférable de se tourner vers d'autres options pour mettre en œuvre l'intelligence artificielle. Merehead est une telle entreprise. Nous sommes versés dans le développement de solutions basées sur l'intelligence artificielle, l'apprentissage automatique et les réseaux de neurones, donc si vous envisagez de lancer un projet similaire, veuillez nous contacter, nous serons heureux de vous aider.

Commentaires de nos clients

Développement d'un écosystème complexe basé sur la technologie blockchain

Avez-vous des questions?

Votre nom *
Email *
Téléphone
Message
 

Avez-vous des questions? Tu peux nous ecrire.

Telegram

Depuis 2015, nous aidons à apporter votre idée au produit de qualité.

Abonnez-vous à notre newsletter