Accéder au contenu principal

Stanford 2017 - Neural Language Processing et Techniques associées (1/18)

Chapitre 1- Introduction Générale  

Introduction générale au Traitement Linguistique et l’Apprentissage Probabilisé

Le traitement linguistique (NLP pour Natural Language Processing) est une discipline que l’on peut définir à l’intersection de 3 domaines de recherche anciens : l’informatique, la linguistique et l’intelligence artificielle. Son but est de rendre l’ordinateur capable de traiter voire de comprendre le langage naturel afin de faire des choses utiles comme la traduction automatique d’une langue à une autre, la réponse à des requêtes écrites ou orales, l’extraction d’information d’un ensemble de textes, la classification automatique, etc.

La représentation et la compréhension totales du langage humain par une machine est objectif très ambitieux et très difficile à atteindre. Et en raison de cette difficulté que l’Apprentissage Probabilisé (AI) a été utilisé  

Quelques spécificités du langage humain

Le langage humain est spécifiquement élaboré pour transmettre les idées d’une personne à une autre. C’est un système de signaux discrets, symboliques et catégoriques qui a comme particularité d’être encodé d’une façon rapide à apprendre (un enfant de 3 ans est déjà capable d’en saisir les principales nuances).

De plus, les symboles composant le langage humain ont d’autres supports vecteurs comme les sons, les gestes et les intonations des interlocuteurs dans le cas du langage parlé. Les symboles sont donc invariants quelques soit le système de codage utilisé.

Une autre particularité du langage humain est que ces symboles catégoriques sont compris par le cerveau humain à partir une séquence continue de stimuli (d’activations) sonore ou visuel.

Qu’est-ce que l’Apprentissage Probabilisé ?

Le terme Apprentissage Probabilisé est un des termes possibles utilisés pour traduire Deep Learning, également traduit par Apprentissage Profond. Cette discipline est une sous-discipline de l’Apprentissage Automatique (Machine Learning).

Dans le cas courant, les techniques d’apprentissage automatique reposent sur l’adéquation progressive (itérative) entre des données organisées sous forme de caractéristiques prédéfinies (features) et des représentations du monde réel, définies manuellement par l’homme.
  • La définition de ces caractéristiques prédéfinies (features) n’est pas simple, demande l’intervention d’experts dans chaque domaine concerné, est peu transférable d’un domaine à un autre, et finalement demande beaucoup de temps et d’efforts.
  • Le processus d’apprentissage automatique n’est qu’une opération d’optimisation numérique pour itérativement améliorer la représentation des données en entrée en fonction de ces features afin de mieux respecter un jeu d’entraînement connu par l’ordinateur. Le postulat de base est qu’une optimisation sur un jeu de données connu entraînera une meilleure prédiction sur un jeu de donnée nouveau.
A la différence de ce qui est fait en apprentissage automatique, aucune feature n’est fourni à un programme d’apprentissage probabilisé qui va lui-même définir ces caractéristiques grâce à une approche itérative d’essais-erreurs. La machine apprend donc quelle est la meilleure représentation des données pour un problème donné et l’utilise afin d’améliorer sa prédictibilité sur une jeu de données inconnu.
  • Les caractéristiques proposées par la machine sont plus flexibles et ne demandent que peu d’interventions humaines expertes du domaine en question. 
  • Ces techniques peuvent fonctionner avec des jeux de données labélisés ou pas suivant le problème à résoudre (recherche de schémas dans les données, classification, ect.).
Les techniques utilisées dans les approches d’apprentissage automatique et d’apprentissage probabilisé ne sont pas nouvelles mais elles ont pu être implémentées avec succès depuis le début des années 2010 grâce à l’accès à des quantités astronomiques de données et l’apparition de processeurs graphiques performants permettant de traiter ces énormes quantités d’information. Enfin, il ne faut pas oublier les progrès nouveaux et constants dans les domaines de la régularisation (permettant de résoudre les problèmes d’over-fitting) et d’optimisation des algorithmes.

Les applications de l’apprentissage probabilisé sont nombreuses et dépassent le traitement linguistique.

Les objectifs de ce cours

Ce cours est d’un niveau élevé et a trois objectifs principaux :
  1. Les méthodes modernes d’apprentissage probabilisé
  2. Compréhension générale des langages humains
  3. Systèmes algorithmiques basés sur TensorFlow en traitement linguistique

Les difficultés du traitement linguistique

Représenter, apprendre et utiliser une connaissance linguistique dans une situation particulière et un contexte donné est une tâche très complexe car le langage humain est souvent ambigu.

NLP Probabilisé, la combinaison du DL et du NLP

Afin de résoudre les difficultés inhérentes au traitement linguistique, il a été imaginé de combiner les principes, les méthodes et les objectifs de cette discipline avec l’apprentissage probabilisé. Et avec des nombreux succès récents au niveau du traitement linguistique simple, intermédiaire ou même très complexe (analyse des sentiments, réponses automatiques à des questions complexe, traduction automatique).

L’idée fondatrice de ce mariage des deux disciplines est la représentation de tout mot, toute phrase d’un texte ou d’une conversation sous la forme d’un vecteur analysable par la machine. Avec une représentation des éléments d’un texte sous la forme de vecteurs respectifs, il est possible de calculer la similarité de ces éléments sous forme mathématique (distance, produit scalaire, etc..).

Jérôme

Commentaires

Posts les plus consultés de ce blog

Une source de données pour expérimentation en NLP

Une source de données pour expérimentation en NLP Les données, encore les données, toujours les données. C'est un des principaux problèmes de nos travaux en Intelligence Artificielle. Souvent les idées sont la, le code ou les outils prêts mais manquent les données pour l'entrainement des modèles ou la calibration des algorithmes. https://github.com/niderhoff/nlp-datasets Dans la page indiquée ici, vous trouverez de nombreux liens vers de bases de données NLP structurées ou non. A vous d'explorer et de trouver la ou les perles rares qui feront de votre projet IA un succès !

Stanford 2017 - Classification de mots par fenêtre glissante et Réseau de Neurones (4/18)

Chapitre 4- Classification de mots par fenêtre glissante et Réseau de Neurones Beaucoup de choses nouvelle dans ce cours. Il est dense mais il présente à la fois la base du principe de classification appliquée au langage, le notion de fonction Softmax, sa dérivée, le principe fondamental de régularisation et enfin la généralisation des principes précédents aux réseaux de neurones. Accrochons-nous ensemble, cela vaut le coup. Classification On commence par rappeler les notations utilisées dans ce chapitre ainsi que les notions de base. Un processus de classification est le plus souvent un processus supervisé, c’est-à-dire que l’on entraîne le réseau de neurones en lui donnant des données dont on connaît la catégorie (le label). En conséquence, les données d’entraînement sont constituées d’un nombre N d’échantillons, chacun de ces points de données étant défini par un couple {donnée, label} et noté {xi, y i } pour i entre 1 et N. Les valeurs yi de chaque c...

Stanford 2017 - Représentation vectorielle des mots, Word2Vec et Glove (3/18)

Chapitre 3- Représentation Vectorielle des mots, Word2Vec et Glove Word2Vec On se souvient que l’approche retenue pour Word2Vec est celle du skip-gram qui considère une fenêtre glissante de taille fixée se déplaçant successivement d’un mot à l’autre d’un texte pour analyser le mot central de cette fenêtre  et son contexte, c'est-à-dire les mots associés à ce mot central, de chaque coté. La probabilité d’un mot du contexte est exprimée sous la forme d’une probabilité conditionnelle dépendante du mot central et suivant une loi softmax. La fonction objective à minimiser dépend donc non seulement des mots présents dans la fenêtre à l’instant t, mais aussi de tous les mots présents dans le vocabulaire (V) et donc les probabilités conditionnelles servent à normaliser celles des mots de la fenêtre. Avec un vocabulaire contenant des dizaines voire des centaines de milliers de mots, le calcul des gradients est très long et met en jeu une large proportion de vecteurs m...