Apprentissage Automatique et Réseaux Neuronaux - page 54

 

Cours 3.1 — Apprendre les poids d'un neurone linéaire



Cours 3.1 — Apprendre les poids d'un neurone linéaire [Neural Networks for Machine Learning]

sa vidéo présente l'algorithme d'apprentissage d'un neurone linéaire, qui réalise quelque chose de différent de l'algorithme d'apprentissage d'un perceptron. Dans un perceptron, les poids se rapprochent toujours d'un bon ensemble de poids, tandis que dans un neurone linéaire, les sorties se rapprochent toujours des sorties cibles.

La procédure de convergence du perceptron garantit que la modification des poids nous rapproche d'un bon ensemble de poids. Cependant, cette garantie ne peut pas être étendue à des réseaux plus complexes car la moyenne de deux bons ensembles de poids peut entraîner un mauvais ensemble de poids. Par conséquent, pour les réseaux de neurones multicouches, nous n'utilisons pas la procédure d'apprentissage du perceptron, et la preuve de l'amélioration au cours de l'apprentissage est également différente.

Les réseaux de neurones multicouches, souvent appelés perceptrons multicouches (MLP), nécessitent une approche différente pour montrer les progrès. Au lieu de montrer que les poids se rapprochent d'un bon ensemble de poids, nous démontrons que les valeurs de sortie réelles se rapprochent des valeurs de sortie cibles. Cela est vrai même pour les problèmes non convexes, où la moyenne des poids de deux bonnes solutions ne donne pas une bonne solution.

L'algorithme d'apprentissage d'un neurone linéaire est illustré par un exemple jouet. Cela implique de commencer par des suppositions aléatoires pour les prix des portions, puis d'ajuster ces suppositions de manière itérative pour s'adapter aux prix observés. L'approche itérative utilise la règle delta pour mettre à jour les pondérations en fonction du taux d'apprentissage, du nombre de portions et de l'erreur résiduelle.

La règle delta est dérivée en différenciant la mesure d'erreur par rapport à l'un des poids. La règle d'apprentissage stipule que la variation d'un poids est égale au taux d'apprentissage multiplié par la valeur d'entrée et la différence entre les sorties cible et réelle. En appliquant de manière itérative la règle delta, les pondérations peuvent être ajustées pour minimiser l'erreur.

La procédure d'apprentissage utilisant la règle delta ne garantit pas que les poids individuels s'amélioreront toujours. Cependant, l'écart entre l'objectif et les extrants estimés tend à s'améliorer. Le taux d'apprentissage détermine la vitesse d'apprentissage, et avec un taux d'apprentissage suffisamment petit, les poids peuvent approcher la meilleure approximation pour les cas de formation donnés.

Il est important de noter que même pour les systèmes linéaires, le processus d'apprentissage peut être lent, en particulier lorsque les dimensions d'entrée sont fortement corrélées. Déterminer le poids à attribuer à chaque dimension d'entrée devient difficile dans de tels cas. De plus, il existe une similitude entre la version en ligne de la règle delta et la règle d'apprentissage du perceptron, où le vecteur de poids est ajusté en fonction du vecteur d'entrée et de l'erreur. Cependant, la règle delta intègre le taux d'apprentissage et l'erreur résiduelle. Le choix d'un rythme d'apprentissage approprié est crucial pour un apprentissage stable et efficace.

Le processus d'apprentissage itératif décrit pour le neurone linéaire peut converger vers une solution qui minimise la mesure d'erreur. Cependant, il est important de noter qu'il n'y a peut-être pas de solution parfaite qui corresponde exactement aux résultats souhaités pour tous les cas de formation. Au lieu de cela, l'objectif est de trouver un ensemble de pondérations qui fournit la meilleure approximation et minimise la mesure d'erreur dans tous les cas de formation. En rendant le taux d'apprentissage suffisamment petit et en permettant au processus d'apprentissage de se poursuivre suffisamment longtemps, nous pouvons nous approcher de cette meilleure approximation.

La vitesse d'apprentissage peut varier, même pour les systèmes linéaires. Lorsque deux dimensions d'entrée sont fortement corrélées, il devient difficile de déterminer le poids à attribuer à chaque dimension d'entrée. Par exemple, si le nombre de portions de ketchup et de chips est toujours le même, le processus d'apprentissage peut prendre beaucoup de temps pour attribuer correctement le prix à chaque composant.

Fait intéressant, il existe une relation entre la règle delta et la règle d'apprentissage pour les perceptrons. La version en ligne de la règle delta, où les poids sont mis à jour après chaque cas de formation, présente des similitudes avec la règle d'apprentissage du perceptron. Dans l'apprentissage du perceptron, le vecteur de poids est incrémenté ou décrémenté par le vecteur d'entrée, mais uniquement lorsqu'une erreur se produit. Dans la version en ligne de la règle delta, le vecteur de poids est également ajusté par le vecteur d'entrée, mais mis à l'échelle à la fois par l'erreur résiduelle et le taux d'apprentissage.

L'un des défis liés à l'utilisation de la règle delta consiste à sélectionner un taux d'apprentissage approprié. Si le taux d'apprentissage est trop important, le système peut devenir instable, rendant difficile la convergence vers une solution. D'autre part, si le taux d'apprentissage est trop faible, le processus d'apprentissage peut prendre un temps inutilement long pour atteindre un ensemble raisonnable de poids.

L'algorithme d'apprentissage d'un neurone linéaire vise à minimiser l'erreur entre les sorties cibles et les sorties réelles. Il ajuste itérativement les pondérations à l'aide de la règle delta, qui intègre le taux d'apprentissage, les valeurs d'entrée et la différence entre les sorties cibles et réelles. Bien que le processus d'apprentissage puisse être lent et que les pondérations ne s'améliorent pas individuellement, l'objectif global est d'approcher la meilleure approximation pour les cas de formation donnés.

Lecture 3.1 — Learning the weights of a linear neuron [Neural Networks for Machine Learning]
Lecture 3.1 — Learning the weights of a linear neuron [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
For cool updates on AI research, follow me at https://twitter.com/iamvriad.Lecture from the course Neural Networks for Machine Learning, as taught by Geoffre...
 

Cours 3.2 — La surface d'erreur pour un neurone linéaire



Cours 3.2 — La surface d'erreur pour un neurone linéaire [Neural Networks for Machine Learning]

Dans cette vidéo, nous allons explorer la surface d'erreur d'un neurone linéaire, qui donne un aperçu du processus d'apprentissage. En visualisant cette surface, nous pouvons acquérir une compréhension géométrique de la façon dont les poids sont appris dans un neurone linéaire. L'espace que nous considérons est similaire à l'espace de poids utilisé dans les perceptrons mais avec une dimension supplémentaire.

Imaginez un espace où les dimensions horizontales représentent les poids et la dimension verticale représente l'erreur. Dans cet espace, différents réglages de poids sont représentés sous forme de points sur le plan horizontal, et la hauteur de chaque point correspond à l'erreur associée à ce réglage de poids, additionnée sur tous les cas d'apprentissage. Pour un neurone linéaire, les erreurs pour chaque réglage de poids définissent une surface d'erreur, qui prend la forme d'un bol quadratique. Une coupe verticale de la surface d'erreur donne toujours une parabole, tandis qu'une coupe horizontale forme une ellipse. Il est important de noter que ce comportement n'est vrai que pour les systèmes linéaires avec une erreur au carré. Au fur et à mesure que nous passons aux réseaux de neurones non linéaires multicouches, la surface d'erreur devient plus complexe.

Alors que les poids restent dans une fourchette raisonnable, la surface d'erreur reste lisse mais peut avoir de nombreux minima locaux. Pour faciliter l'apprentissage, nous utilisons la règle delta, qui consiste à calculer la dérivée de l'erreur par rapport aux poids. Ajuster les poids proportionnellement à cette dérivée équivaut à effectuer la descente la plus raide sur la surface d'erreur. La visualisation de la surface d'erreur d'en haut révèle des lignes de contour elliptiques. La règle delta nous guide perpendiculairement à ces courbes de niveau. Dans l'apprentissage par lots, où le gradient est calculé sur tous les cas d'apprentissage, la règle delta nous conduit dans la bonne direction. Cependant, nous pouvons également utiliser l'apprentissage en ligne, où les poids sont mis à jour après chaque cas d'entraînement, à la manière des perceptrons. Dans ce cas, le changement de poids nous déplace vers les plans de contraintes formés par les cas d'apprentissage.

En alternant entre les cas d'apprentissage, nous pouvons zigzaguer vers le point de solution où les lignes de contrainte se croisent, indiquant les poids qui satisfont les deux cas. De plus, l'examen de la surface d'erreur nous permet de comprendre les conditions qui entraînent un apprentissage lent. Si l'ellipse représentant les lignes de contour est très allongée, ce qui se produit lorsque les lignes correspondant à deux cas d'apprentissage sont presque parallèles, le gradient présente une propriété défavorable. Le gradient devient grand dans la direction où nous ne voulons pas aller loin et petit dans la direction où nous voulons faire des progrès significatifs. Ce décalage empêche un apprentissage efficace et rend difficile la traversée de la structure en forme de ravin de la surface d'erreur le long de son axe allongé.

La visualisation de la surface d'erreur d'un neurone linéaire fournit des informations précieuses sur le processus d'apprentissage. Comprendre la géométrie de la surface nous aide à saisir le comportement de la règle delta et ses implications sur la vitesse d'apprentissage.

Lecture 3.2 — The error surface for a linear neuron [Neural Networks for Machine Learning]
Lecture 3.2 — The error surface for a linear neuron [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
For cool updates on AI research, follow me at https://twitter.com/iamvriad.Lecture from the course Neural Networks for Machine Learning, as taught by Geoffre...
 

Cours 3.3 — Apprentissage des poids du neurone de sortie logistique


Cours 3.3 — Apprentissage des poids du neurone de sortie logistique [Réseaux de neurones pour l'apprentissage automatique]

Pour étendre la règle d'apprentissage d'un neurone linéaire à des réseaux multicouches de neurones non linéaires, nous devons suivre deux étapes. Tout d'abord, nous devons généraliser la règle d'apprentissage pour un seul neurone non linéaire, en particulier un neurone logistique. Bien que les neurones logistiques soient utilisés à titre d'exemple, d'autres types de neurones non linéaires pourraient également être utilisés.

Un neurone logistique calcule son logit, noté z, qui est la somme de son biais et de la somme pondérée de ses lignes d'entrée. La sortie, notée y, est une fonction non linéaire lisse du logit. Dans le graphique, on peut observer que la fonction se rapproche de zéro lorsque z est grand et négatif, se rapproche de un lorsque z est grand et positif, et présente des changements lisses et non linéaires entre les deux. La continuité de la fonction logistique fournit des dérivées commodes pour l'apprentissage. Pour obtenir les dérivées d'un neurone logistique par rapport aux poids (ce qui est crucial pour l'apprentissage), nous calculons d'abord la dérivée du logit lui-même par rapport à un poids. Cette dérivée se simplifie à la valeur sur la ligne d'entrée, notée xi. De même, la dérivée du logit par rapport à xi est le poids wi.

La dérivée de la sortie par rapport au logit peut être exprimée en termes de sortie elle-même. Plus précisément, si la sortie est représentée par y, alors dy/dz est donné par y * (1 - y). La dérivation mathématique de ce résultat est fournie sur la diapositive suivante, et elle implique des calculs fastidieux mais simples. Après avoir obtenu la dérivée de la sortie par rapport au logit et la dérivée du logit par rapport au poids, nous pouvons maintenant déterminer la dérivée de la sortie par rapport au poids. En appliquant la règle de la chaîne, nous avons dz/dw comme xi et dy/dz comme y * (1 - y). Par conséquent, nous arrivons à une règle d'apprentissage pour un neurone logistique qui ressemble beaucoup à la règle delta.

La variation de l'erreur, notée de/dwi, lorsque nous modifions un poids, est obtenue en additionnant sur tous les cas d'apprentissage (n) le produit de la valeur sur une ligne d'entrée (xin) et le résidu, qui est la différence entre la sortie cible et la sortie réelle du neurone. Cependant, il existe un terme supplémentaire issu de la pente de la fonction logistique, à savoir yn * (1 - yn). Avec cette légère modification de la règle delta, nous arrivons à la règle d'apprentissage de descente de gradient pour l'entraînement d'un neurone logistique.

En appliquant la règle d'apprentissage de descente de gradient à un neurone logistique, nous pouvons former efficacement des réseaux multicouches de neurones non linéaires. Cela étend la règle d'apprentissage au-delà des systèmes linéaires et nous permet d'aborder des tâches plus complexes. Pour comprendre comment cette règle d'apprentissage fonctionne dans le contexte de réseaux multicouches, considérons un simple réseau à deux couches comme exemple. Nous avons une couche d'entrée avec plusieurs neurones et une couche de sortie avec un seul neurone logistique. Les poids entre les couches sont notés W et les biais b.

Le processus d'apprentissage comporte deux étapes. Tout d'abord, nous calculons la sortie du réseau pour une entrée donnée. Cela se fait en propageant les entrées vers l'avant à travers le réseau, en appliquant la fonction logistique à l'entrée totale de chaque neurone (logit) et en obtenant la sortie finale. Ensuite, nous calculons les gradients de l'erreur par rapport aux poids en utilisant la règle de la chaîne. À partir de la couche de sortie, nous calculons la dérivée de l'erreur par rapport à la sortie, qui est simplement la différence entre la sortie cible et la sortie réelle du réseau. Nous propageons ensuite ce gradient d'erreur vers l'arrière à travers le réseau, en le multipliant par la dérivée de la fonction logistique au niveau de chaque neurone pour obtenir les gradients au niveau de la couche cachée. Enfin, nous mettons à jour les poids en utilisant les gradients calculés et un taux d'apprentissage. Le taux d'apprentissage détermine la taille du pas dans la mise à jour du poids et peut être ajusté pour contrôler la vitesse d'apprentissage. La mise à jour des poids suit l'équation : ΔW = learning_rate * error_gradient * input, où ΔW représente la variation des poids.

Ce processus de propagation vers l'avant, de rétropropagation des erreurs et de mise à jour du poids est répété de manière itérative pendant un nombre défini d'époques ou jusqu'à ce que le réseau atteigne un niveau de performances souhaité. En ajustant les pondérations de manière itérative, le réseau apprend progressivement à faire de meilleures prédictions ou à classer les entrées avec plus de précision. Il est important de noter que la règle d'apprentissage dont nous avons discuté pour les neurones logistiques peut également être généralisée à d'autres types de fonctions d'activation non linéaires. La clé est de calculer les dérivées des fonctions d'activation avec précision pour propager efficacement les gradients d'erreur à travers le réseau.

En étendant la règle d'apprentissage des neurones linéaires aux neurones logistiques et en l'appliquant aux réseaux multicouches, nous pouvons entraîner des modèles non linéaires complexes. Cela nous permet de résoudre un large éventail de tâches, y compris la reconnaissance de formes, la classification et la régression, en ajustant de manière itérative les poids en fonction des gradients d'erreur.

Lecture 3.3 — Learning weights of logistic output neuron [Neural Networks for Machine Learning]
Lecture 3.3 — Learning weights of logistic output neuron [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
For cool updates on AI research, follow me at https://twitter.com/iamvriad.Lecture from the course Neural Networks for Machine Learning, as taught by Geoffre...
 

Cours 3.4 — L'algorithme de rétropropagation



Cours 3.4 — L'algorithme de rétropropagation [Réseaux de neurones pour l'apprentissage automatique]

Maintenant que nous avons couvert les préliminaires, abordons le problème central de l'apprentissage de plusieurs couches de fonctionnalités. Dans cette vidéo, nous décrirons enfin l'algorithme de rétropropagation, apparu dans les années 1980 et qui a suscité un regain d'intérêt pour les réseaux de neurones.

Avant de plonger dans la rétropropagation, discutons d'abord d'un autre algorithme qui n'est pas aussi efficace mais qui mérite d'être mentionné. Une fois que nous savons apprendre les poids d'une unité logistique, le prochain défi consiste à apprendre les poids des unités cachées. Les réseaux de neurones sans unités cachées sont limités dans les mappages d'entrée-sortie qu'ils peuvent modéliser. Alors qu'une couche de fonctionnalités codées à la main, comme dans un perceptron, améliore la puissance du réseau, la conception de ces fonctionnalités pour une nouvelle tâche reste un processus difficile et manuel.

Idéalement, nous aimerions automatiser la boucle de conception des fonctionnalités, permettant à l'ordinateur de trouver de bonnes fonctionnalités sans nécessiter de connaissances humaines ni d'essais et d'erreurs répétés. C'est là que le concept d'apprentissage en perturbant les poids vient à l'esprit. Perturber aléatoirement un poids s'apparente à une mutation, et nous pouvons observer si cela améliore les performances du réseau. Si les performances s'améliorent, nous enregistrons ce changement de poids, ressemblant à une forme d'apprentissage par renforcement.

Cependant, cette méthode est très inefficace. Pour évaluer si la modification d'un poids améliore le réseau, plusieurs passages vers l'avant sur un ensemble représentatif de cas de formation sont nécessaires. L'évaluation de l'impact d'un changement de poids sur la base d'un seul cas d'entraînement est insuffisante. De plus, à mesure que l'apprentissage progresse, de grands changements de poids ont tendance à aggraver les choses, car les valeurs relatives appropriées entre les poids sont cruciales. Vers la fin de l'apprentissage, non seulement l'évaluation de chaque changement de poids prend du temps, mais les changements eux-mêmes doivent être minimes.

Il existe des façons légèrement meilleures d'utiliser les perturbations pour l'apprentissage. Une approche consiste à perturber tous les poids en parallèle, puis à corréler le gain de performance avec les changements de poids. Cependant, cette méthode n'apporte pas d'amélioration significative. Le défi réside dans la nécessité de nombreux essais avec différentes perturbations aléatoires de tous les poids pour isoler l'effet du changement d'un poids parmi le bruit causé par le changement des autres.

Une approche alternative qui montre une certaine amélioration consiste à perturber de manière aléatoire les activités des unités cachées au lieu des poids. Une fois qu'il est déterminé que perturber l'activité d'une unité cachée sur un cas d'entraînement spécifique améliore les performances, les changements de poids peuvent être calculés. Puisqu'il y a moins d'activités que de poids, l'algorithme devient plus efficace. Cependant, la rétropropagation surpasse encore ces méthodes en efficacité, avec un facteur égal au nombre de neurones dans le réseau.

L'idée centrale derrière la rétropropagation est que même si nous ne savons pas ce que les unités cachées devraient faire (d'où le terme "caché"), nous pouvons calculer à quelle vitesse l'erreur change lorsque nous modifions l'activité d'une unité cachée sur un cas d'entraînement particulier. Au lieu d'utiliser les activités des unités cachées comme états souhaités, nous utilisons les dérivées d'erreur par rapport aux activités. Étant donné que chaque unité cachée peut influencer plusieurs unités de sortie, ses effets doivent être combinés, ce qui peut être fait efficacement.

Pour résumer l'algorithme de rétropropagation pour un seul cas d'apprentissage, nous commençons par définir l'erreur comme la différence au carré entre les valeurs cibles des unités de sortie et les valeurs réelles produites par le réseau. En différenciant cette erreur, nous obtenons l'expression de la façon dont l'erreur change par rapport à la sortie d'une unité de sortie. Nous pouvons ensuite calculer les dérivées d'erreur pour les unités cachées en additionnant les effets de toutes les connexions sortantes de l'unité cachée en utilisant les dérivées d'erreur précédemment calculées de la couche au-dessus.

L'algorithme de rétropropagation nous permet de propager efficacement les dérivées d'erreur d'une couche à la couche précédente. Une fois que nous avons les dérivées d'erreur pour les unités cachées, nous pouvons facilement calculer les dérivées d'erreur pour les poids entrant dans une unité cachée. Cela se fait en multipliant la dérivée d'erreur par rapport à l'entrée totale reçue par l'unité par l'activité de l'unité dans la couche inférieure. Les dérivées d'erreur calculées pour les poids représentent la façon dont l'erreur change lorsque nous modifions un poids particulier.

Maintenant, décrivons les étapes impliquées dans l'algorithme de rétropropagation pour un seul cas de formation :

  1. Définissez l'erreur comme la différence au carré entre les valeurs cibles et les valeurs de sortie réelles du réseau.

  2. Calculez la dérivée d'erreur par rapport à la sortie de chaque unité de sortie en appliquant la règle de la chaîne, qui consiste à multiplier la dérivée de la sortie par rapport à l'entrée totale par la dérivée d'erreur par rapport à la sortie.

  3. Calculez la dérivée d'erreur par rapport à la sortie de chaque unité cachée en additionnant les effets de toutes les connexions sortantes de l'unité cachée. Cela implique de multiplier le poids de chaque connexion par la dérivée d'erreur calculée dans la couche ci-dessus.

  4. Répétez l'étape 3 pour toutes les couches masquées, en propageant les dérivées d'erreur vers l'arrière à travers le réseau.

  5. Calculez les dérivées d'erreur pour les poids entrant dans chaque unité. Cela se fait en multipliant la dérivée d'erreur par rapport à l'entrée totale reçue par l'unité par l'activité de l'unité dans la couche inférieure.

En suivant ces étapes, nous pouvons calculer efficacement les dérivées d'erreur pour tous les poids du réseau sur la base d'un seul cas d'apprentissage. L'algorithme de rétropropagation nous permet de comprendre comment la modification de chaque poids affecte l'erreur globale et facilite le processus d'apprentissage. Comprendre et mettre en œuvre l'algorithme de rétropropagation est crucial pour former des réseaux de neurones profonds avec plusieurs couches de fonctionnalités. Bien que cette explication puisse nécessiter une étude approfondie, la compréhension des concepts et des calculs sous-jacents sera essentielle pour utiliser efficacement la rétropropagation dans la formation des réseaux neuronaux.

Une fois que nous avons calculé les dérivées d'erreur pour tous les poids du réseau à l'aide de l'algorithme de rétropropagation, nous pouvons utiliser ces informations pour mettre à jour les poids et améliorer les performances du réseau. Ce processus est connu sous le nom d'ajustement du poids ou de mise à jour du poids. La mise à jour des poids implique généralement l'utilisation d'un algorithme d'optimisation, tel que la descente de gradient, pour ajuster de manière itérative les poids dans la direction qui minimise l'erreur. L'idée de base est de mettre à jour chaque poids en soustrayant une petite fraction de sa dérivée d'erreur correspondante, multipliée par un paramètre de taux d'apprentissage.

Le taux d'apprentissage détermine la taille du pas dans l'espace de poids et affecte la vitesse de convergence du processus d'entraînement. Choisir un rythme d'apprentissage approprié est important pour assurer un apprentissage stable et efficace. Un taux d'apprentissage trop élevé peut entraîner une divergence des poids, tandis qu'un taux d'apprentissage trop faible peut entraîner une convergence lente. Pendant le processus de mise à jour des poids, il est courant de mettre à jour les poids par petits lots ou même sur un seul exemple d'entraînement à la fois. Cette approche est connue sous le nom de descente de gradient stochastique ou descente de gradient en mini-lot, et elle permet d'accélérer le processus d'apprentissage et d'éviter de rester coincé dans les optima locaux.

Le processus de mise à jour du poids est généralement répété pour plusieurs époques, chaque époque consistant à parcourir l'intégralité de l'ensemble de données d'apprentissage. Cela permet au réseau d'ajuster progressivement les pondérations en fonction des erreurs accumulées à partir de plusieurs exemples d'apprentissage, améliorant ainsi ses performances de généralisation. Il est important de noter que la rétropropagation et la mise à jour du poids sont effectuées pendant la phase d'apprentissage d'un réseau de neurones. Une fois le réseau formé, il peut être utilisé pour faire des prédictions sur de nouvelles données invisibles en faisant simplement passer l'entrée par le réseau et en obtenant la sortie.

La rétropropagation et la capacité à apprendre plusieurs couches de fonctionnalités ont joué un rôle crucial dans le succès de l'apprentissage en profondeur. Grâce à l'algorithme de rétropropagation, les réseaux de neurones peuvent apprendre automatiquement des représentations complexes de données, ce qui leur permet de résoudre un large éventail de tâches, notamment la reconnaissance d'images et de la parole, le traitement du langage naturel, etc.

L'algorithme de rétropropagation est une technique puissante pour calculer efficacement les dérivées d'erreur dans les réseaux de neurones à plusieurs couches. En propageant les informations d'erreur vers l'arrière à travers le réseau, nous pouvons déterminer comment les changements de poids affectent l'erreur globale. Ces informations sont ensuite utilisées pour mettre à jour les pondérations de manière itérative, permettant au réseau d'apprendre et d'améliorer ses performances au fil du temps.

Lecture 3.4 — The backpropagation algorithm [Neural Networks for Machine Learning]
Lecture 3.4 — The backpropagation algorithm [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
For cool updates on AI research, follow me at https://twitter.com/iamvriad.Lecture from the course Neural Networks for Machine Learning, as taught by Geoffre...
 

Cours 3.5 — Utilisation des dérivées de la rétropropagation



Cours 3.5 — Utilisation des dérivées de la rétropropagation [Réseaux de neurones pour l'apprentissage automatique]

Pour apprendre efficacement dans les réseaux de neurones multicouches, il est crucial d'obtenir les dérivées d'erreur pour tous les poids. Cependant, plusieurs autres considérations doivent être prises en compte pour spécifier pleinement une procédure d'apprentissage.

L'une de ces considérations est de déterminer la fréquence des mises à jour de poids et d'empêcher le surajustement lors de l'utilisation d'un grand réseau. L'algorithme de rétropropagation calcule efficacement les dérivées pour chaque poids sur la base d'un seul cas d'apprentissage, mais ce n'est pas un algorithme d'apprentissage complet. Pour développer une procédure d'apprentissage appropriée, des facteurs supplémentaires doivent être spécifiés.

Les problèmes d'optimisation entrent en jeu lors de l'utilisation des dérivés de poids pour découvrir un ensemble optimal de poids. Une question est de savoir à quelle fréquence les pondérations doivent être mises à jour. Une approche consiste à mettre à jour les pondérations après chaque cas d'apprentissage, ce qui entraîne des zigzags en raison de la variation des dérivées d'erreur. Cependant, en moyenne, de petits changements de poids peuvent mener dans la bonne direction. Alternativement, la formation complète par lots implique de parcourir toutes les données de formation, de résumer les dérivées d'erreur des cas individuels et de faire un petit pas dans cette direction. Cependant, cette approche peut être coûteuse en calcul, surtout si les poids initiaux sont faibles. L'apprentissage par mini-batch offre un compromis en sélectionnant au hasard un petit échantillon de cas d'apprentissage pour mettre à jour les poids. Cela réduit les zigzags tout en restant efficace en termes de calcul, ce qui le rend couramment utilisé pour former de grands réseaux de neurones sur de grands ensembles de données.

La détermination de l'ampleur des mises à jour de poids est un autre problème d'optimisation. Au lieu de choisir manuellement un taux d'apprentissage fixe, il est souvent plus judicieux d'adapter le taux d'apprentissage. Par exemple, si l'erreur oscille, le taux d'apprentissage peut être réduit, tandis que si des progrès constants sont réalisés, le taux d'apprentissage peut être augmenté. Il est même possible d'attribuer différents taux d'apprentissage à différentes connexions dans le réseau pour permettre à certains poids d'apprendre plus rapidement que d'autres. De plus, plutôt que de suivre strictement la direction de la descente la plus raide, il peut être avantageux d'explorer des directions alternatives qui conduisent à une meilleure convergence. Cependant, trouver ces directions alternatives peut être difficile.

Le deuxième ensemble de problèmes concerne la capacité à généraliser les pondérations apprises à des cas non observés. Les données d'entraînement contiennent à la fois des informations sur les régularités et deux types de bruit. Le premier type est constitué de valeurs cibles non fiables, ce qui est généralement une préoccupation mineure. Le deuxième type est l'erreur d'échantillonnage, où des régularités accidentelles peuvent survenir en raison des cas de formation spécifiques choisis. Les modèles ne peuvent pas distinguer les régularités accidentelles des vraies régularités qui se généralisent bien. Par conséquent, les modèles ont tendance à s'adapter aux deux types de régularités, ce qui conduit à une mauvaise généralisation si le modèle est trop complexe.

Pour remédier au surajustement, diverses techniques ont été développées pour les réseaux de neurones et d'autres modèles. Ces techniques comprennent la décroissance des poids, où les poids sont maintenus petits ou à zéro pour simplifier le modèle, et le partage des poids, où de nombreux poids ont la même valeur pour réduire la complexité. L'arrêt précoce implique la surveillance d'un faux ensemble de tests pendant la formation et l'arrêt lorsque les performances sur le faux ensemble de tests commencent à se détériorer. La moyenne des modèles implique la formation de plusieurs réseaux de neurones et la moyenne de leurs prédictions pour réduire les erreurs. L'ajustement bayésien des réseaux de neurones est une forme de moyenne de modèle qui intègre les principes bayésiens. L'abandon est une technique qui améliore la robustesse du modèle en omettant de manière aléatoire les unités cachées pendant l'entraînement. La pré-formation générative, une approche plus avancée, sera abordée plus tard dans le cours.

L'obtention des dérivées d'erreur pour tous les poids dans un réseau multicouche est essentielle pour un apprentissage efficace. Cependant, pour développer une procédure d'apprentissage complète, d'autres facteurs tels que la fréquence de mise à jour du poids, la prévention du surajustement, les techniques d'optimisation et la généralisation à des cas invisibles doivent être pris en compte et traités.

Lecture 3.5 — Using the derivatives from backpropagation [Neural Networks for Machine Learning]
Lecture 3.5 — Using the derivatives from backpropagation [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
For cool updates on AI research, follow me at https://twitter.com/iamvriad.Lecture from the course Neural Networks for Machine Learning, as taught by Geoffre...
 

Cours 4.1 — Apprendre à prédire le mot suivant



Conférence 4.1 — Apprendre à prédire le mot suivant [Réseaux de neurones pour l'apprentissage automatique]

Les prochaines vidéos se concentreront sur l'utilisation de l'algorithme de rétropropagation pour apprendre la signification d'un mot grâce à la représentation des caractéristiques. Dans cette introduction, nous commencerons par un cas simple des années 1980 pour illustrer comment les informations relationnelles peuvent être transformées en vecteurs de caractéristiques à l'aide de la rétropropagation.

L'affaire concerne deux arbres généalogiques, l'un anglais et l'autre italien, avec des structures similaires. En exprimant les informations contenues dans ces arbres généalogiques sous forme de propositions utilisant des relations spécifiques (par exemple, fils, fille, père, mère), nous pouvons considérer la tâche d'apprentissage de ces informations relationnelles comme la recherche de régularités dans un ensemble de triplets.

Au lieu de rechercher des règles symboliques, nous pouvons utiliser un réseau de neurones pour capturer ces informations en prédisant le troisième terme d'un triplet à partir des deux premiers termes. L'architecture du réseau se compose de plusieurs couches conçues pour apprendre des représentations intéressantes. Nous encodons les informations en utilisant une représentation neutre, garantissant que toutes les personnes sont traitées comme des entités distinctes.

Le réseau apprend en s'entraînant sur un ensemble de propositions, en ajustant progressivement les poids à l'aide de la rétropropagation. Nous pouvons examiner la couche cachée responsable de l'encodage de la personne un pour comprendre les représentations apprises. Différentes unités de cette couche révèlent des caractéristiques telles que la nationalité, la génération et la branche de l'arbre généalogique de la personne.

Ces fonctionnalités sont utiles pour prédire la personne de sortie, car elles capturent les régularités dans le domaine. Le réseau découvre ces fonctionnalités de manière autonome sans aucune indication explicite. La couche intermédiaire du réseau combine les caractéristiques de la personne d'entrée et les caractéristiques de la relation pour prédire les caractéristiques de la personne de sortie.

La performance du réseau peut être évaluée en le testant sur des triplets incomplets et en observant sa généralisation. Avec des données d'entraînement limitées, il atteint un bon taux de précision pour un choix de 24 voies. S'il est formé sur un ensemble de données plus grand, il peut généraliser à partir d'une plus petite fraction des données.

Bien que l'exemple présenté ici soit un cas jouet, en pratique, nous pouvons appliquer des techniques similaires à des bases de données contenant des millions de faits relationnels. En formant un réseau pour découvrir les représentations vectorielles de caractéristiques des entités et des relations, nous pouvons nettoyer et valider efficacement la base de données.

Plutôt que de prédire le troisième terme à partir des deux premiers, nous pouvons également estimer la probabilité d'exactitude d'un fait en utilisant plusieurs termes. Cette approche nécessite des exemples de faits corrects et incorrects pour la formation.

En utilisant la rétropropagation et les réseaux de neurones, nous pouvons apprendre des représentations significatives à partir d'informations relationnelles et faire des prédictions ou évaluer la plausibilité des faits dans une base de données.

L'entraînement d'un réseau de neurones pour estimer la probabilité d'exactitude d'un fait nécessite un ensemble de données contenant une variété de faits corrects et une source fiable de faits incorrects. En présentant le réseau avec des exemples corrects et en encourageant un rendement élevé, et en l'exposant à des exemples incorrects et en encourageant un faible rendement, il peut apprendre à faire la distinction entre les faits plausibles et invraisemblables.

Cette approche fournit un outil puissant pour nettoyer les bases de données. Le réseau peut signaler des faits potentiellement incorrects ou suspects, permettant une enquête et une vérification plus approfondies. Par exemple, si la base de données indique que Bach est né en 1902, le réseau pourrait identifier cela comme hautement invraisemblable sur la base des relations et d'autres faits connexes qu'il a appris.

Avec les progrès de la puissance informatique et la disponibilité de vastes bases de données contenant des millions de faits relationnels, l'application de réseaux de neurones pour découvrir des représentations vectorielles de caractéristiques est devenue plus pratique. En tirant parti de la capacité des réseaux de neurones à apprendre des modèles et des relations complexes, nous pouvons obtenir des informations précieuses et faire des prédictions basées sur les représentations apprises.

Il convient de noter que l'exemple discuté ici a été mené dans les années 1980 pour démontrer les capacités de la rétropropagation et des réseaux de neurones. Depuis lors, le domaine a fait des progrès significatifs et les chercheurs ont appliqué des techniques similaires à divers domaines, notamment le traitement du langage naturel, la vision par ordinateur et les systèmes de recommandation.

En conclusion, l'utilisation de l'algorithme de rétropropagation et des réseaux de neurones pour apprendre les représentations des caractéristiques à partir d'informations relationnelles fournit une approche puissante pour comprendre et faire des prédictions basées sur des ensembles de données complexes. En formant le réseau sur des exemples de faits corrects et incorrects, nous pouvons exploiter ses capacités pour valider et améliorer la qualité des bases de données, les rendant plus fiables et utiles pour diverses applications.

Lecture 4.1 — Learning to predict the next word [Neural Networks for Machine Learning]
Lecture 4.1 — Learning to predict the next word [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
For cool updates on AI research, follow me at https://twitter.com/iamvriad.Lecture from the course Neural Networks for Machine Learning, as taught by Geoffre...
 

Cours 4.2 — Un bref détour par les sciences cognitives



Cours 4.2 — Une brève diversion vers les sciences cognitives [Réseaux de neurones pour l'apprentissage automatique]

En sciences cognitives, il y a eu un débat de longue date sur la relation entre les représentations vectorielles de caractéristiques et les représentations relationnelles des concepts. Ce débat n'intéresse pas beaucoup les ingénieurs, ils peuvent donc sauter cette discussion.

La théorie des caractéristiques postule que les concepts sont définis par un ensemble de caractéristiques sémantiques, ce qui est utile pour expliquer les similitudes entre les concepts et pour l'apprentissage automatique. D'autre part, la théorie structuraliste soutient que le sens d'un concept réside dans ses relations avec d'autres concepts, favorisant une représentation graphique relationnelle.

Dans les années 1970, Marvin Minsky a utilisé les limites des perceptrons pour plaider en faveur des représentations de graphes relationnels. Cependant, les deux côtés du débat sont considérés comme incorrects car ils considèrent les théories comme des rivales alors qu'elles peuvent en fait être intégrées.

Les réseaux de neurones peuvent implémenter des graphes relationnels en utilisant des vecteurs de caractéristiques sémantiques. Dans le cas de l'apprentissage des arbres généalogiques, le réseau de neurones transmet les informations sans règles d'inférence explicites. La réponse est intuitivement évidente pour le réseau en raison de l'influence des micro-caractéristiques probabilistes et de leurs interactions.

Alors que des règles explicites sont utilisées pour un raisonnement conscient, une grande partie de notre bon sens et de notre raisonnement analogique implique de « simplement voir » la réponse sans étapes intermédiaires conscientes. Même dans le raisonnement conscient, il est nécessaire de trouver un moyen d'identifier rapidement les règles applicables pour éviter une régression infinie.

La mise en œuvre d'un graphe relationnel dans un réseau de neurones n'est pas aussi simple que d'affecter des neurones à des nœuds de graphe et des connexions à des relations binaires. Différents types de relations et de relations ternaires posent des défis. La méthode précise de mise en œuvre des connaissances relationnelles dans un réseau neuronal est encore incertaine, mais il est probable que plusieurs neurones soient impliqués dans la représentation de chaque concept, formant une représentation distribuée où des mappages plusieurs à plusieurs existent entre les concepts et les neurones.

Dans une représentation distribuée, plusieurs neurones sont probablement utilisés pour représenter chaque concept, et chaque neurone peut être impliqué dans la représentation de plusieurs concepts. Cette approche, connue sous le nom de représentation distribuée, permet un encodage plus flexible et efficace des connaissances conceptuelles dans les réseaux de neurones.

Cependant, les détails de mise en œuvre spécifiques de la façon de représenter les connaissances relationnelles dans un réseau de neurones sont toujours à l'étude. L'hypothèse qu'un neurone correspond à un nœud dans le graphe relationnel et que les connexions représentent des relations binaires n'est pas suffisante. Les relations se présentent sous différents types et saveurs, et les connexions neuronales n'ont que de la force, n'ayant pas la capacité de capturer divers types de relations.

De plus, les relations ternaires, telles que "A est entre B et C", doivent également être prises en compte. L'approche optimale pour intégrer les connaissances relationnelles dans un réseau de neurones est encore incertaine, et les recherches en cours visent à relever ce défi.

Néanmoins, les preuves suggèrent qu'une représentation distribuée est impliquée dans la représentation des concepts par les réseaux de neurones. Cette approche permet la flexibilité et la capacité de gérer divers concepts et leurs relations, ouvrant la voie à une modélisation et une compréhension cognitives plus sophistiquées dans le domaine des sciences cognitives.

Lecture 4.2 — A brief diversion into cognitive science [Neural Networks for Machine Learning]
Lecture 4.2 — A brief diversion into cognitive science [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
For cool updates on AI research, follow me at https://twitter.com/iamvriad.Lecture from the course Neural Networks for Machine Learning, as taught by Geoffre...
 

Cours 4.3 — La fonction de sortie softmax [Réseaux de neurones pour l'apprentissage automatique]



Cours 4.3 — La fonction de sortie softmax [Réseaux de neurones pour l'apprentissage automatique]

Maintenant, approfondissons le sujet de la fonction de sortie softmax. La fonction softmax est une technique utilisée pour garantir que les sorties d'un réseau de neurones s'additionnent à un, leur permettant de représenter une distribution de probabilité entre des alternatives mutuellement exclusives.

Avant de continuer à discuter de la façon dont les vecteurs de caractéristiques sont appris à représenter des mots, prenons une diversion technique. Jusqu'à présent, nous avons utilisé la mesure de l'erreur au carré comme critère d'entraînement pour les réseaux de neurones, ce qui convient aux neurones linéaires. Cependant, la mesure de l'erreur quadratique a ses limites.

Par exemple, si la sortie souhaitée est 1, mais que la sortie réelle d'un neurone est extrêmement proche de zéro, il y a très peu de gradient disponible pour faciliter les mises à jour de poids. En effet, la pente de la sortie du neurone est presque horizontale, ce qui entraîne des ajustements de poids lents malgré une erreur importante.

De plus, lors de l'attribution de probabilités à des étiquettes de classe mutuellement exclusives, il est crucial que la sortie totalise un. Une réponse telle que l'attribution d'une probabilité de trois quarts à la fois à la classe A et à la classe B est absurde. Par conséquent, nous devons fournir au réseau la connaissance que ces alternatives s'excluent mutuellement.

Pour résoudre ces problèmes, nous avons besoin d'une fonction de coût différente capable de gérer de manière appropriée des classes mutuellement exclusives. La fonction softmax nous permet d'atteindre cet objectif. Il s'agit d'une version continue de la fonction maximale, garantissant que les sorties du groupe softmax représentent une distribution de probabilité.

Dans le groupe softmax, chaque unité reçoit une entrée accumulée, appelée logit, de la couche inférieure. La sortie de chaque unité, notée yi, dépend non seulement de son propre logit mais aussi des logits accumulés par les autres unités du groupe softmax. Mathématiquement, la sortie du ième neurone est calculée à l'aide de l'équation e^zi divisée par la somme de la même quantité pour tous les neurones du groupe softmax.

Cette équation softmax garantit que la somme de tous les yi est égale à un, ce qui représente une distribution de probabilité. De plus, les valeurs de yi se situent entre zéro et un, imposant la représentation d'alternatives mutuellement exclusives sous forme de distribution de probabilité.

La dérivée de la fonction softmax a une forme simple, similaire à l'unité logistique, ce qui la rend pratique pour les calculs. La dérivée de la sortie par rapport à l'entrée d'un neurone individuel dans le groupe softmax est donnée par yi fois (1 - yi).

Il est crucial de déterminer la fonction de coût appropriée lors de l'utilisation d'un groupe softmax pour les sorties. La probabilité logarithmique négative de la bonne réponse, également connue sous le nom de fonction de coût d'entropie croisée, est couramment utilisée. Cette fonction de coût vise à maximiser la probabilité logarithmique de fournir la bonne réponse.

Pour calculer la fonction de coût d'entropie croisée, nous additionnons toutes les réponses possibles, en attribuant une valeur de zéro aux mauvaises réponses et une valeur de un à la bonne réponse. En calculant la probabilité logarithmique négative, on obtient le coût associé à la bonne réponse.

L'un des principaux avantages de la fonction de coût d'entropie croisée est son grand gradient lorsque la valeur cible est 1 et que la sortie est proche de zéro. Même de petits changements dans la sortie améliorent considérablement la valeur de la fonction de coût. Par exemple, une valeur de un sur un million est considérablement meilleure qu'une valeur de un sur un milliard, même si la différence est infime.

Pour illustrer davantage ce point, imaginez placer un pari basé sur la conviction que la réponse est un sur un million ou un sur un milliard. Parier à une cote de un sur un million et se tromper entraînerait la perte d'un million de dollars. Inversement, si la réponse était un sur un milliard, le même pari ferait perdre un milliard de dollars.

Cette propriété de la fonction de coût d'entropie croisée garantit une dérivée abrupte lorsque la réponse est significativement incorrecte, ce qui équilibre la planéité du changement de sortie lorsque l'entrée change. En multipliant ces facteurs ensemble, nous obtenons la dérivée de la fonction de coût d'entropie croisée par rapport au logit entrant dans l'unité de sortie i. La règle de la chaîne est utilisée pour ce calcul.

La dérivée de la fonction de coût par rapport à la production d'une unité, multipliée par la dérivée de la production par rapport au logit zi, donne la production réelle moins la production cible. La pente de cette différence est de un ou moins un lorsque les résultats et les cibles sont significativement différents, et la pente est proche de zéro uniquement lorsqu'ils sont presque identiques, indiquant qu'une réponse correcte est produite.

La fonction de sortie softmax est utilisée pour garantir que les sorties d'un réseau neuronal représentent une distribution de probabilité entre des alternatives mutuellement exclusives. En utilisant l'équation softmax, les sorties sont contraintes de se résumer à un, indiquant les probabilités pour différentes classes.

Cependant, l'utilisation de la mesure de l'erreur quadratique comme fonction de coût pour la formation des réseaux de neurones présente des inconvénients, tels que des ajustements de poids lents lorsque la sortie souhaitée est loin de la sortie réelle. Pour résoudre ce problème, la fonction de coût d'entropie croisée est introduite. Il calcule la probabilité logarithmique négative de la bonne réponse et produit un gradient plus important lorsque la valeur cible est 1 et que la sortie est proche de zéro. Cette propriété permet un apprentissage plus efficace et évite d'attribuer des probabilités égales à des alternatives mutuellement exclusives.

La fonction softmax, associée à la fonction de coût d'entropie croisée, fournit une combinaison puissante pour former des réseaux de neurones afin de produire des sorties probabilistes. En ajustant les poids et les biais par rétropropagation et descente de gradient stochastique, le réseau peut apprendre à faire des prédictions précises et à représenter des relations complexes entre les données.

Il est important de noter que ces concepts et techniques constituent la base de la formation aux réseaux de neurones et sont applicables dans divers domaines, notamment le traitement du langage naturel, la vision par ordinateur et la reconnaissance de formes. La recherche et les progrès continus dans ces domaines contribuent à améliorer les performances et les capacités des réseaux de neurones pour résoudre les problèmes du monde réel.

Lecture 4.3 — The softmax output function [Neural Networks for Machine Learning]
Lecture 4.3 — The softmax output function [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
For cool updates on AI research, follow me at https://twitter.com/iamvriad.Lecture from the course Neural Networks for Machine Learning, as taught by Geoffre...
 

Cours 4.4 — Modèles de langage neuro-probabilistes



Cours 4.4 — Modèles de langage neuro-probabilistes [Réseaux de neurones pour l'apprentissage automatique]

Dans cette vidéo, nous explorons une application pratique des vecteurs de caractéristiques représentant des mots, en particulier dans les systèmes de reconnaissance vocale. Avoir une bonne compréhension de ce que quelqu'un pourrait dire ensuite est crucial pour reconnaître avec précision les sons qu'il émet.

La reconnaissance vocale est confrontée à des défis pour identifier avec précision les phonèmes, en particulier dans les discours bruyants où l'entrée acoustique est souvent ambiguë et où plusieurs mots peuvent s'adapter au signal de la même manière. Cependant, nous ne remarquons généralement pas cette ambiguïté car nous nous appuyons sur le sens de l'énoncé pour entendre les mots corrects. Ce processus inconscient de reconnaissance de la parole met en évidence la nécessité pour les reconnaisseurs de la parole de prédire les prochains mots probables.

Heureusement, les mots peuvent être prédits efficacement sans comprendre pleinement le contenu parlé. La méthode du trigramme est une approche standard pour prédire les probabilités de différents mots qui peuvent suivre. Cela implique de compter les fréquences des triplets de mots dans un grand corpus de texte et d'utiliser ces fréquences pour estimer les probabilités relatives du mot suivant compte tenu des deux mots précédents.

La méthode des trigrammes était une approche de pointe jusqu'à récemment, car elle fournit des probabilités basées sur deux mots précédents. L'utilisation de contextes plus larges entraînerait une explosion de possibilités et la plupart du temps des décomptes nuls. Dans les cas où le contexte n'est pas visible, comme la "pizza dinosaure", le modèle recourt à des prédictions de mots individuels. Il est important de ne pas attribuer de probabilités nulles simplement parce qu'un exemple n'a jamais été rencontré auparavant.

Cependant, le modèle de trigramme néglige des informations précieuses qui peuvent aider à prédire le mot suivant. Par exemple, comprendre les similitudes entre des mots comme « chat » et « chien » ou « écrasé » et « aplati » peut améliorer la précision des prédictions. Pour surmonter cette limitation, les mots doivent être transformés en vecteurs de caractéristiques qui capturent leurs caractéristiques sémantiques et syntaxiques. En utilisant les caractéristiques des mots précédents, un contexte plus large (par exemple, 10 mots précédents) peut être utilisé pour la prédiction.

Joshua Bengio a été le pionnier de cette approche en utilisant des réseaux de neurones, et son modèle initial ressemble au réseau des arbres généalogiques mais appliqué à la modélisation du langage avec plus de complexité. En saisissant l'index d'un mot et en propageant l'activité à travers des couches cachées, le réseau peut apprendre des représentations distribuées de mots en tant que vecteurs de caractéristiques. Ces vecteurs sont ensuite utilisés pour prédire les probabilités de divers mots à l'aide d'une couche de sortie softmax.

Une amélioration supplémentaire est l'utilisation de connexions de couche de saut qui connectent directement les mots d'entrée aux mots de sortie. Les mots d'entrée individuels contiennent des informations précieuses sur les mots de sortie potentiels. Le modèle de Bengio s'est initialement comporté légèrement moins bien que les trigrammes, mais s'est révélé prometteur lorsqu'il est combiné avec des trigrammes.

Depuis les travaux de Bengio, les modèles de langage utilisant des vecteurs de caractéristiques pour les mots ont considérablement amélioré et dépassé les modèles de trigrammes. Cependant, un défi se pose lorsqu'il s'agit d'un grand nombre de mots de sortie, car la couche de sortie softmax peut nécessiter un nombre considérable de poids (par exemple, des centaines de milliers). Un surajustement peut se produire si la dernière couche cachée est trop grande, mais la réduction de sa taille conduit à la prédiction précise d'un grand nombre de probabilités.

Dans la vidéo suivante, nous explorerons des approches alternatives pour gérer le grand nombre de mots de sortie, en considérant que les probabilités grandes et petites sont pertinentes pour les systèmes de reconnaissance vocale.

Lecture 4.4 — Neuro-probabilistic language models [Neural Networks for Machine Learning]
Lecture 4.4 — Neuro-probabilistic language models [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
For cool updates on AI research, follow me at https://twitter.com/iamvriad.Lecture from the course Neural Networks for Machine Learning, as taught by Geoffre...
 

Cours 4.5 — Traiter de nombreux résultats possibles



Conférence 4.5 — Traiter de nombreuses sorties possibles [Réseaux de neurones pour l'apprentissage automatique]

Dans cette vidéo, nous explorerons différentes approches pour éviter le besoin d'un nombre excessif d'unités de sortie dans un softmax lorsqu'il s'agit d'un vocabulaire important. Au lieu d'avoir des centaines de milliers d'unités de sortie pour obtenir des probabilités de mots, nous pouvons utiliser des architectures alternatives.

Une approche est une architecture en série, où nous saisissons des mots de contexte et un mot candidat. En parcourant le réseau, nous générons un score indiquant la pertinence du mot candidat dans ce contexte. Cette approche nécessite d'exécuter le réseau plusieurs fois, mais la plupart des calculs ne doivent être effectués qu'une seule fois. Nous pouvons réutiliser les mêmes entrées du contexte pour différents mots candidats, et la seule partie qui doit être recalculée est les entrées spécifiques du mot candidat et la sortie du score final.

Pour apprendre dans cette architecture série, nous calculons des scores pour chaque mot candidat et appliquons une fonction softmax pour obtenir des probabilités de mot. En comparant les probabilités des mots avec leurs probabilités cibles (généralement une pour le mot correct et zéro pour les autres), nous pouvons dériver des dérivés de zone d'entropie croisée. Ces dérivés guident les ajustements de poids pour augmenter le score du mot candidat correct et diminuer les scores des rivaux de haut rang. Pour optimiser l'efficacité, nous pouvons considérer un plus petit ensemble de mots candidats suggérés par un autre prédicteur au lieu d'évaluer tous les candidats possibles.

Une autre méthode pour éviter un grand softmax est d'organiser les mots dans une structure arborescente binaire. Cela implique d'organiser tous les mots comme des feuilles dans l'arbre et d'utiliser le contexte des mots précédents pour générer un vecteur de prédiction. En comparant ce vecteur avec un vecteur appris pour chaque nœud de l'arbre, nous pouvons déterminer la probabilité de prendre la branche droite ou gauche. En parcourant récursivement l'arbre, on peut arriver au mot cible. Lors de l'apprentissage, nous n'avons qu'à considérer les nœuds le long du chemin correct, ce qui réduit considérablement la charge de calcul.

Une approche différente pour l'apprentissage des vecteurs de caractéristiques de mots consiste à tirer parti du contexte passé et futur. À l'aide d'une fenêtre de mots, nous plaçons le mot correct ou un mot aléatoire au milieu de la fenêtre. En entraînant un réseau de neurones pour générer des scores élevés pour le mot correct et des scores faibles pour des mots aléatoires, nous pouvons apprendre des vecteurs de caractéristiques qui capturent les distinctions sémantiques. Ces vecteurs de caractéristiques sont ensuite utiles pour diverses tâches de traitement du langage naturel.

Pour visualiser les vecteurs de caractéristiques apprises, nous pouvons les afficher sur une carte bidimensionnelle en utilisant des techniques telles que t-SNE. Cette visualisation permet d'identifier des mots et des groupes similaires, fournissant des informations sur la compréhension du réseau neuronal des significations des mots. Les vecteurs appris peuvent révéler des relations et des distinctions sémantiques, démontrant le pouvoir des informations contextuelles dans la détermination des significations des mots.

Voici un autre exemple de la représentation cartographique bidimensionnelle des vecteurs de caractéristiques apprises. Dans cette section de la carte, nous pouvons observer un groupe de mots liés aux jeux. Des mots tels que matchs, jeux, courses, joueurs, équipes et clubs sont regroupés, indiquant leur similitude de sens. De plus, il identifie les éléments associés aux jeux, y compris les prix, les coupes, les bols, les médailles et autres récompenses. La capacité du réseau de neurones à capturer ces relations sémantiques lui permet de déduire que si un mot convient à un contexte particulier, d'autres mots du même groupe sont susceptibles de l'être également.

Passant à une autre partie de la carte, nous rencontrons un cluster dédié aux lieux. En haut, on trouve divers États américains, suivis de villes, principalement celles situées en Amérique du Nord. De plus, la carte montre d'autres villes et pays, démontrant la compréhension du réseau neuronal des relations géographiques. Par exemple, il relie Cambridge à Toronto, Détroit et Ontario, tous appartenant au Canada anglophone, tout en regroupant Québec avec Berlin et Paris, en l'associant au Canada francophone. De même, cela suggère une similitude entre l'Irak et le Vietnam.

Explorons un autre exemple sur la carte. Cette section se concentre sur les adverbes, présentant des mots comme probable, probablement, éventuellement et peut-être, qui partagent des significations similaires. De même, il identifie les similitudes sémantiques entre entièrement, complètement, pleinement et grandement. De plus, il reconnaît d'autres modèles de similitude, tels que quoi et cela, qui et quoi, et comment, si et pourquoi.

L'aspect fascinant de ces vecteurs de caractéristiques apprises est qu'ils capturent des nuances sémantiques subtiles uniquement en analysant des séquences de mots de Wikipédia, sans aucune indication explicite. Cette information contextuelle joue un rôle crucial dans la compréhension du sens des mots. En fait, certaines théories suggèrent que c'est l'un des principaux mécanismes par lesquels nous acquérons la sémantique des mots.

En conclusion, ces différentes approches pour gérer de grands vocabulaires et apprendre des représentations de mots offrent des alternatives efficaces à l'architecture softmax traditionnelle. En tirant parti des architectures en série, des structures arborescentes ou des informations contextuelles, les réseaux de neurones peuvent générer des représentations de mots significatives et similaires. Ces représentations s'avèrent précieuses dans diverses tâches de traitement du langage naturel, démontrant la capacité du réseau à capturer les relations sémantiques et les distinctions entre les mots.

Lecture 4.5 — Dealing with many possible outputs [Neural Networks for Machine Learning]
Lecture 4.5 — Dealing with many possible outputs [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
Lecture from the course Neural Networks for Machine Learning, as taught by Geoffrey Hinton (University of Toronto) on Coursera in 2012. Link to the course (l...