En apprentissage automatique, un perceptron est un algorithme d'apprentissage supervisé pour les classificateurs binaires. On l'appelle aussi souvent un perceptron. Un classificateur binaire est une fonction qui peut décider si une entrée, représentée par un vecteur de nombres, appartient à une classe particulière. Il s'agit d'un type de classificateur linéaire, c'est-à-dire un algorithme de classification qui fait ses prédictions sur la base d'une fonction de prédiction linéaire qui combine un ensemble de poids avec un vecteur de caractéristiques.
Ces dernières années, les réseaux de neurones artificiels ont attiré l'attention en raison des progrès de l'apprentissage en profondeur. Mais qu'est-ce qu'un réseau de neurones artificiels et en quoi consiste-t-il ?
Découvrez le Perceptron
Dans cet article, nous allons jeter un coup d'œil sur les réseaux de neurones artificiels en général, puis regarder un seul neurone, et enfin (c'est la partie de codage) nous prendrons la version la plus basique d'un neurone artificiel neurone, le perceptron, et classer ses points enavion.
Vous êtes-vous déjà demandé pourquoi certaines tâches sont si faciles pour n'importe qui, mais incroyablement difficiles pour les ordinateurs ? Les réseaux de neurones artificiels (ANN en abrégé) ont été inspirés par le système nerveux central humain. Comme leur homologue biologique, les RNA sont construits sur de simples éléments de traitement du signal qui sont combinés dans une grande grille.
Les réseaux de neurones doivent apprendre
Contrairement aux algorithmes traditionnels, les réseaux de neurones ne peuvent pas être "programmés" ou "accordés" pour fonctionner comme prévu. Tout comme le cerveau humain, ils doivent apprendre à accomplir la tâche. Grosso modo, il existe trois stratégies d'apprentissage.
Le moyen le plus simple peut être utilisé s'il existe un cas de test (assez grand) avec des résultats connus. Ensuite, la formation se déroule comme suit: traitez un ensemble de données. Comparez le résultat avec le résultat connu. Configurez le réseau et réessayez. C'est la stratégie d'apprentissage que nous allons utiliser ici.
Apprentissage non supervisé
Utile s'il n'y a pas de données de test disponibles et s'il est possible de dériver une fonction de coût du comportement souhaité. La fonction de coût indique au réseau de neurones à quelle distance il se trouve de la cible. Le réseau peut alors ajuster ses paramètres à la volée, en travaillant avec des données réelles.
Apprentissage renforcé
La méthode "la carotte et le bâton". Peut être utilisé si le réseau de neurones génère une action continue. Au fil du temps, le réseau apprend à privilégier les bonnes actions et à éviter les mauvaises.
D'accord, maintenant nous en savons un peu plus surnature des réseaux de neurones artificiels, mais de quoi sont-ils exactement constitués ? Que verrons-nous si nous ouvrons le couvercle et regardons à l'intérieur ?
Les neurones sont les éléments constitutifs des réseaux de neurones. Le composant principal de tout réseau de neurones artificiels est un neurone artificiel. Non seulement ils portent le nom de leurs homologues biologiques, mais ils sont également calqués sur le comportement des neurones de notre cerveau.
Biologie vs technologie
Tout comme un neurone biologique a des dendrites pour recevoir des signaux, un corps cellulaire pour les traiter et un axone pour envoyer des signaux à d'autres neurones, un neurone artificiel a plusieurs canaux d'entrée, une étape de traitement et une sortie qui peut se ramifier à bien d'autres neurones artificiels.
Pouvons-nous faire quelque chose d'utile avec un seul perceptron ? Il existe une classe de problèmes qu'un seul perceptron peut résoudre. Considérez le vecteur d'entrée comme des coordonnées de point. Pour un vecteur à n éléments, ce point vivra dans un espace à n dimensions. Pour simplifier la vie (et le code ci-dessous), supposons que c'est 2D. Comme un bout de papier.
Ensuite, imaginez que nous dessinons des points aléatoires sur ce plan et que nous les divisons en deux ensembles en traçant une ligne droite sur le papier. Cette ligne divise les points en deux ensembles, un au-dessus et un en dessous de la ligne. Les deux ensembles sont alors dits linéairement séparables.
Un perceptron, aussi simple que cela puisse paraître, est capable de savoir où se trouve cette ligne, et lorsqu'il a fini de s'entraîner, il peut déterminer si un point donné est au-dessus ou en dessous de cette ligne.
Histoireinventions
L'algorithme de cette méthode a été inventé en 1957 au Cornell Aviation Laboratory par Frank Rosenblatt (souvent nommé d'après lui), financé par l'US Office of Naval Research. Le perceptron était destiné à être une machine, pas un programme, et bien que sa première implémentation ait été dans un logiciel pour l'IBM 704, il a ensuite été implémenté sur du matériel personnalisé sous le nom de "Mark 1 Perceptron". Cette machine a été conçue pour la reconnaissance d'images: elle comportait un réseau de 400 photocellules reliées aléatoirement à des neurones. Les poids étaient encodés dans des potentiomètres et la mise à jour des poids pendant l'entraînement se faisait par des moteurs électriques.
Lors d'une conférence de presse organisée par l'US Navy en 1958, Rosenblatt a fait des déclarations sur le perceptron qui ont provoqué un débat houleux au sein de la jeune communauté de l'IA; sur la base des affirmations de Rosenblatt, le New York Times a rapporté que le perceptron est "l'ordinateur électronique embryonnaire que la Marine s'attend à pouvoir marcher, parler, voir, écrire, se reproduire et être conscient de son existence".
Développements ultérieurs
Bien que le perceptron ait initialement semblé prometteur, il a été rapidement prouvé que les perceptrons ne pouvaient pas être entraînés à reconnaître de nombreuses classes de motifs. Cela a conduit à une stagnation dans le domaine de la recherche avec les réseaux de neurones perceptrons pendant de nombreuses années avant qu'il ne soit reconnu qu'un réseau de neurones à réaction à deux couches ou plus (également appeléperceptron multicouche) avait beaucoup plus de puissance de traitement que les perceptrons à une seule couche (également appelés perceptrons à une seule couche). Un perceptron monocouche n'est capable d'étudier que des structures linéairement séparables. En 1969, le célèbre livre "Perceptrons" de Marvin Minsky et Seymour Papert a montré que ces classes de réseaux ne pouvaient pas apprendre la fonction XOR. Cependant, cela ne s'applique pas aux fonctions de classification non linéaires qui peuvent être utilisées dans un perceptron monocouche.
L'utilisation de telles fonctions étend les capacités du perceptron, y compris l'implémentation de la fonction XOR. On suppose souvent (à tort) qu'ils ont également supposé qu'un résultat similaire serait valable pour un réseau de perceptron multicouche. Cependant, ce n'est pas le cas, puisque Minsky et Papert savaient déjà que les perceptrons multicouches étaient capables de produire une fonction XOR. Trois ans plus tard, Steven Grossberg a publié une série d'articles présentant des réseaux capables de modéliser des fonctions différentielles, des fonctions d'amélioration du contraste et des fonctions XOR.
Oeuvres ont été publiées en 1972 et 1973. Cependant, le texte souvent négligé de Minsky/Papert a provoqué une baisse significative de l'intérêt et du financement de la recherche avec le perceptron de réseau neuronal. Dix autres années se sont écoulées avant que la recherche sur les réseaux de neurones ne soit relancée dans les années 1980.
Caractéristiques
L'algorithme du noyau Perceptron a été introduit en 1964 par Yzerman et al. Mori et Rostamizadeh (2013), qui étendent les résultats précédents et donnent de nouvelles bornes L1.
Perceptron est un modèle simplifié d'un neurone biologique. Alors que la complexité des modèles neuronaux biologiques est souvent nécessaire pour comprendre pleinement le comportement neuronal, la recherche montre qu'un modèle linéaire de type perceptron peut induire une partie du comportement observé dans les vrais neurones.
Le Perceptron est un classificateur linéaire, il n'entrera donc jamais dans un état avec tous les vecteurs d'entrée correctement classés si l'ensemble d'apprentissage D n'est pas linéairement séparable, c'est-à-dire si les exemples positifs ne peuvent pas être séparés des exemples négatifs par un hyperplan. Dans ce cas, aucune solution "approximative" ne passera pas à pas par l'algorithme d'apprentissage standard, mais l'apprentissage échouera complètement. Par conséquent, si la séparabilité linéaire de l'ensemble d'apprentissage n'est pas connue a priori, l'une des options d'apprentissage ci-dessous doit être utilisée.
Algorithme de poche
L'algorithme de poche à cliquet résout le problème de robustesse de l'apprentissage du perceptron en gardant la meilleure solution trouvée jusqu'à présent "dans la poche". L'algorithme de poche renvoie alors la solution dans la poche plutôt que la dernière solution. Il peut également être utilisé pour des ensembles de données non séparables où l'objectif est de trouver un perceptron avec peu d'erreurs de classification. Cependant, ces solutions semblent stochastiques et donc l'algorithme de poche ne leur convient pas.progressivement au cours de l'entraînement, et il n'est pas garanti qu'ils soient détectés après un certain nombre d'étapes d'entraînement.
Algorithme Maxover
L'algorithme de Maxover est "robuste" dans le sens où il convergera indépendamment de la connaissance de la séparabilité linéaire de l'ensemble de données. Dans le cas d'un découpage linéaire, cela résoudra le problème d'apprentissage, éventuellement même avec une stabilité optimale (marge maximale entre les classes). Pour les ensembles de données non séparables, une solution avec un petit nombre d'erreurs de classification sera renvoyée. Dans tous les cas, l'algorithme se rapproche progressivement de la solution au cours du processus d'apprentissage, sans se souvenir des états précédents et sans sauts aléatoires. La convergence réside dans l'optimalité globale pour les ensembles de données partagés et l'optimalité locale pour les ensembles de données non séparables.
A voté Perceptron
L'algorithme Voted Perceptron est une variante utilisant plusieurs perceptrons pondérés. L'algorithme démarre un nouveau perceptron chaque fois qu'un exemple est mal classé, en initialisant le vecteur de poids avec les poids finaux du dernier perceptron. Chaque perceptron se verra également attribuer un poids différent correspondant au nombre d'exemples qu'il classe correctement avant d'en classer un par erreur, et à la fin, le résultat sera un vote pondéré sur l'ensemble du perceptron.
Demande
Dans les problèmes séparables, l'entraînement au perceptron peut également viser à trouver la plus grande frontière de séparation entre les classes. Soi-disantUn perceptron de stabilité optimal peut être déterminé à l'aide de schémas d'entraînement et d'optimisation itératifs tels que l'algorithme Min-Over ou AdaTron. AdaTron exploite le fait que le problème d'optimisation quadratique correspondant est convexe. Le perceptron de stabilité optimale, associé à l'astuce du noyau, constitue la base conceptuelle de la machine à vecteurs de support.
Alternative
Une autre façon de résoudre des problèmes non linéaires sans utiliser plusieurs couches consiste à utiliser des réseaux d'ordre supérieur (bloc sigma-pi). Dans ce type de réseau, chaque élément du vecteur d'entrée est développé par chaque combinaison par paire d'entrées multipliées (deuxième ordre). Ceci peut être étendu à un réseau d'ordre n. Le Perceptron est une chose très flexible.
Cependant, rappelez-vous que le meilleur classificateur n'est pas nécessairement celui qui classe avec précision toutes les données d'entraînement. En effet, si nous avions la contrainte préalable que les données proviennent de distributions gaussiennes à variantes égales, une division linéaire dans l'espace d'entrée est optimale et une solution non linéaire est remplacée.
Les autres algorithmes de classification linéaire incluent Winnow, le vecteur de support et la régression logistique. Perceptron est un ensemble universel d'algorithmes.
Portée principale de l'apprentissage supervisé
L'apprentissage supervisé est une tâche d'apprentissage automatique qui apprend une fonction qui mappe l'entrée à la sortiesur la base d'exemples de paires d'E/S. Ils déduisent une caractéristique à partir de données d'entraînement étiquetées constituées d'un ensemble d'exemples. Dans l'apprentissage supervisé, chaque exemple est une paire composée d'un objet d'entrée (généralement un vecteur) et d'une valeur de sortie souhaitée (également appelée signal de contrôle).
L'algorithme d'apprentissage supervisé analyse les données de formation et produit une fonction estimée qui peut être utilisée pour afficher de nouveaux exemples. Le scénario optimal permettrait à l'algorithme de déterminer correctement les étiquettes de classe pour les instances invisibles. Cela nécessite que l'algorithme d'apprentissage généralise les données d'apprentissage à des situations invisibles d'une manière "raisonnable".
La tâche parallèle en psychologie humaine et animale est souvent appelée apprentissage conceptuel.