fin section NN

This commit is contained in:
François Pelletier 2019-12-09 17:39:09 -05:00
parent 5631098783
commit bafaf80420
15 changed files with 249 additions and 3 deletions

BIN
640px-The_LSTM_cell.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

1
architecture-rnn.drawio Normal file
View file

@ -0,0 +1 @@
<mxfile host="www.draw.io" modified="2019-12-09T20:55:51.364Z" agent="Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0" etag="gbRGOCg12nzJpPMpdyyz" version="12.3.9" pages="1"><diagram id="tcLufJGUZsxbtUHuoaIE" name="Page-1">7Zttj6I6FMc/jS9nAuX55Ti7683dvTcmk+xu9l2FAo1gTamjzqffVooCrdG5OwrhYiaZclqezu+clvNHJ9ZzvptRuE7/IRHKJsCIdhPr0wQA0wZgIv6MaF9agsqQUBzJQSfDC35D0mhI6wZHqGgMZIRkDK+bxpCsVihkDRuklGybw2KSNc+6hglSDC8hzFTrDxyxtLT6wDvZ/0I4Saszm25Q9uSwGizvpEhhRLY1k/V5Yj1TQljZynfPKBPOq/xS7vflTO/xwihasWt2mL6mL85sGS5nfy/f5t9/zhbhrwd5lFeYbeQNpxPgZvyA02Kz4M1ENJkYV1r58Wsd8s7YvnIXJZtVhMQZTd69TTFDL2sYit4tDxBuS1meye4YZ9kzyQg97GvFcQzCUJyZUbJEtZ7IXbiOezxf/Z6rG0CUoV3NJH0wQyRHjO75kKrXkTxkQLqW3N6e8JqetKU1tBVHKCMqOR765HTekH5/BwOgMNjpGAyGgOU6FwkA+54ErOuyYDgEgmYOOLocCO5JwFYI7IdNoJUDduc54CgENopf+RK2Fk1+6zDLUEYSCnPukDWimF8Fou2++anjEoaiXPqNR9d06x9PRRRB5MdaRG7oo0V8m4XCcVVER2x1RO6tEAUKou1ZRIw7GL0RcbwGnqP9PWiqJxeDbyQZLArZDkmOQ9k+8jMC13b4DGN4RsBnEd/VAHSQH9k6gD5YWK7Yg/CrwUy43jE+KOW8yzzBXXlWz7g1oK/9AdoiQAmDDJNVG7fZTFdtvl7GHWHKn97Lw29RwW40y+qQ62bZ2yFXF7qzxHF+qE3q4MStY16cPGU4Ea5iZF2zfoMLlM1JgaUjF4QxIubnTHRMYbhMDitjc7XjHz7kcLKnYl3WUIIwrDZivBNr6VRez6eUMVF8PQlPgC9htAKPmJdfMeZrLn3kIcStEWSQ/xP2gv+PyYo9QA6Wu5Fvml4g/LiA9CFMIeXlBfAf16vkP4bmDSYHy3GUSPEcNVAq28cHiroej4HSg0CxbadngeKOgdLHQHFAdzMKXv3MZ4b973yfuF9n32dzMnu7XmaY9krsUTyu4XIWgms2s1VX6N6szNJSuFpqGBIFu5kKumL3ZnKDlsLVcsOQKLRyweo8F4YoOfwRIttoJco9JQctIvXh4n8mOfxZyoHLPG8mOWh5egrPUXFoKQ4fO8neU3HQEvcV4meBj+XBu8qDD50aQNflgSouj3HShzgJnH7FiUa0HgOlB4HieT2bUMzrBQcwmCLL7/K9rh7D9YrDgDC0vuCgq3XvqzhoXvyckxwGhKGVDaD7bBg1h/YDRutrDrqK5b6ag+aNxig6vCPp2q8yOxcdzFF1uK3qoMyznasO5ig79LJKaE8OZudVwqg79DJQgtb3HDoPFDDqDr0MFNMAd5tS+Obp9zKHvtqvjqzPvwE=</diagram></mxfile>

BIN
architecture-rnn.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View file

@ -716,16 +716,258 @@ Inconvénients
![Réseau de neurones](neural-network-1.png)
### Word2vec
## Word2vec
- CBOW (Continuous bag of words)
### CBOW
- Skip-gram
**CBOW** (Continuous bag of words): Représentation d'un mot cible à partir d'une fenêtre de mots source. Par exemple, prendre 3 mots d'une phrase et tenter de prédire le quatrième.
### Skip-gram
**Skip-gram**: Représentation d'un contexte cible à partir d'un mot source. Par exemple, tenter de prédire les 3 mots précédant le quatrième mot.
![CBOW et Skip-Gram](Illustration-of-the-word2vec-models-a-CBOW-b-skip-gram-16-33.png)
### Étapes
- Assigner des poids aléatoires
- Corpus d'entraînement
- Fenêtre de mots
- One-hot vector pour chaque mot (entrée)
- Prédire la probabilité des mots de contexte (sortie)
- Calculer l'entropie croisée pour $T$ instances (fonction de coût)
$$
J = - \frac{1}{T} \sum_{i=1}^T \log\,p(c_i|w_i)
$$
- Corriger les poids (rétro-propagation)
$$
w_{ij}^{\prime\,(new)} = w_{ij}^{\prime\,(old)} - \eta \cdot \sum_{c=1}^C(y_{c,j}-t_{c,j}) \cdot h_i
$$
- Récupérer les plongements (poids des liens vers un mot ou un contexte) et les conserver dans une structure de données
- Similarité de vecteurs de mot $v_j$ et de contexte $c_k$:
- produit scalaire des vecteurs correspondants dans les matrices de poids.
![Embeddings depuis le modèle skip-gram](skip-gram-embeddings.png)
- Avec le modèle Skip-gram, on obtient des probabilités de cooccurences en utilisant un softmax.
- Problème: le dénominateur est couteux à calculer.
$$
p(w_j|w_k) = \frac{\exp(c_k \cdot v_j)}{\sum_{i \in |V|} \exp(c_i \cdot v_j)}
$$
### Negative sampling
On choisir au hasard des mots qui ne sont pas dans le contexte du mot cible.
On minimise $L(\theta)$:
$$
\begin{aligned}
P(+|t,c) &= \frac{1}{1+e^{-t \cdot c}}\\
P(-|t,c) &= \frac{e^{-t \cdot c}}{1+e^{-t \cdot c}}\\
L(\theta) &= \sum_{(t,c) \in +} log\,P(+|t,c) + \sum_{(t,c) \in -} log\,P(-|t,c)
\end{aligned}
$$
### Propriétés
- Visualisation
- Listes de mots similaires
- Par regroupement de mots (clustering)
- Propriétés des embeddings
- Petite fenêtre de mots: représentation syntaxique (catégorie grammaticale)
- Grande fenêtre de mots: représentation lexicale (thème)
- Analogie:
```
vecteur(king)-vecteur(man)+vecteur(woman) -> vecteur(queen)
```
- superlatif (strong, stronger, strongest) tous sur le même axe
- Autres plongements:
- Glove (matrice de cooccurences)
- FastText (mots et n-grammes de caractères)
- Elmo (plusieurs vecteurs de contexte)
- Bert (plongements contextuels)
- Tensorflow Lite SGNNs (prédiction synamique des plongements)
# Modèles et applications
## Modèle de langue (feedforward)
- Le réseau de neurones approxime la matrice de probabilités
- L'historique des N-grammes est représenté par des plongements
- Plongements pré-entrainés + N-grammes = prédiction du prochain mot
- On réutilise toujours le même réseau
![Modèle de langue avec réseau de neurones](neural-net-modele-langue.png)
Approche:
- Assignation du vecteur de plongement à chaque mot
- Concaténation des vecteurs ($1 \times Nd$)
- On propage les valeurs sur la couche cachée ($1 \times h$)
- La dernière couche prédit le scode de chaque mot du vocabulaire.
- Conversion en probabilités avec softmax.
Nouveaux mots:
- Les mots similaires ont des plongements similaires
- Remplace le lissage
Avantages de l'approche RN:
- Pas de lissage
- Historique plus long
- Pouvoir prédictif plus élevé pour un même corpus
- Modèles réutilisables pour d'autres tâches
Désavantage:
- Temps d'entraînement beaucoup plus important
### Apprentissage simultané des plongements
- Il est possible d'apprendre les plongements de mots simultanément avec le modèle en utilisant des one-hot vectors en entrée.
- La matrice de poids de projection $E$ est partagée pour tous les mots.
- Initialisation avec poids aléatoires
- Pratique pour apprendre la polarité en analyse de sentiments
![Modèle de langue et apprentissage des plongements avec réseau de neurones](neural-net-modele-langue-2.png)
## Classification de texte (feedforward)
- **Enjeu**: textes de longueurs variables
- **Solution**: continuous bag of words
$$
\text{CBOW}(f_q,\ldots,f_k) = \frac{1}{k}\sum_{i=1}^k v(f_i)
$$
- **Amélioration**: Utiliser un poids relatif pour chaque mot, par exemple tf*idf
$$
\text{WCBOW}(f_q,\ldots,f_k) = \frac{1}{\sum_{i=1}^k a_i}\sum_{i=1}^k v(f_i)
$$
- **Avantages: efficace, bon *baseline* pour évaluer d'autres algorithmes
## POS tagging et réseaux de neurones (RNN)
Caractéristique du problème du POS tagging:
- Une étiquette pour chaque mot, qui dépend aussi des étiquettes précédentes
- La longueur des phrases varie, on ne peut pas utiliser une fentêtre fixe
- L'ordre des mots est important
Besoin: architecture adaptée
- On a vu précédemment les MEMM qui répondent à ce besoin
- On utilise un réseau de neurones récurrent: l'étiquette $y_t$ dépend du mot $x_t$ et du contexte précédent $h_{t-1}$
![Inférence POS dans un réseau RNN](inference-rnn.png)
- Les poids U, W et V sont les mêmes à chaque étape du réseau de neurones
![Architecture du RNN](architecture-rnn.png)
Approches:
1. Choisir l'étiquette la plus probable à chaque étape
2. Trouver la meilleure séquence d'étiquettes avec Viterbi (aussi appelé CRF)
- Considère les probabilités de transition $P(tag_t|tag_{t-1})$
Extension:
- On aimerait aussi considérer le contexte à droite au lieu de seulement le contexte à gauche.
3. Réseau bidirectionnel. On combine les deux couches cachées $h^{forward}$ et $h^{backward}$ avant de calculer la couche de sortie.
- Problèmes avec l'utilisation des mots:
- Lexique volumineux = plongement pour tous les mots
- Mots inconnus (fautes, noms propres, autre langue, termes techniques, ...)
4. Utilisation du mot et de la séquence de caractères
- Identification de la langue
- Analyse grammaticale (forme du mot)
- Augmentation de la représentation du mot avec les caractères (avec son propre RNN)
## Autres applications des RNN
- Modèle de langue: permet d'estimer les probabilités ou encore de faire de la génération de texte
- Classification de texte:
- RNN pour effectuer l'**encodage en un seul vecteur de contexte** $h_n$ de tout le texte
- On peut aussi utiliser un réseau bidirectionnel pour éviter que la classification dépende trop des mots à la fin du texte
- Réseau feedforward pour la classification.
- Entités nommées:
- Plusieurs approches récurrentes
![RNN pour NER](ner-rnn.png)
## Extension des RNN
Problèmes des RNN:
- Gradient evanescent (le signal s'atténue rapidement lors de la rétro-propagation)
- Chaque unité a de l'information locale principalement
- Information distante parfois importante (coréférences par exemple)
- Les poids servent à deux choses:
- décision sur le contexte actuel
- propager l'information utile pour les décisions futures
On se retrouve avec différentes unités de traitement, dont la complexité peut être encapsulée dans la neurone.
### Gated-recurrent unit (GRU)
- Vecteur de portes booléennes $p$.
- L'état $h_t$ provient en partie de l'état précédent $h_{t-1}$ et de l'inférence au temps $t$
- Les portes r et x sont calculées dynamiquement en fonction de $h_{t-1}$ et $x_t$ ou apprises en fonction du problème.
$$
h^{\prime} = p \cdot x + (1-p) \cdot h
$$
![Gated recurrent unit](780px-Gated_Recurrent_Unit,_type_2.svg.png)
### Long short-term memory (LSTM)
- Mémoire à long terme $c_t$
- 3 portes:
- $f$ (forget)
- $i$ (input)
- $o$ (output)
![Long short-term memory](640px-The_LSTM_cell.png)
## Traduction automatique (Seq2Seq)
- Neural machine translation
- Un seul réseau qui encore la phrase source comme un vecteur et génère la phrase correspondante dans la langue cible
- Encodeur-décodeur
- Un réseau récurrent encore la phraise initiale
- Un autre réseau décode cette phrase
- Sortie du décodeur:
- 1 meilleur (mot le plus probable, vorace, pas de garantie de trouver la traduction la plus probable)
- k meilleur (beam search)
![Encoder-decoder Models (Neubig)](encoder-decoder-translation.png)
- Limitation importante: tout est encodé dans un seul vecteur de longueur fixe
- On conserve un vecteur pour chaque mot de la phrase source
- On réfère à ces vecteurs pour le décodage
- Les références varient selon le contexte
- Mécanisme d'attention
- Permet de reproduire le principe des alignements
- Score d'attention $a_{ij}$ après normalisation
- Encodage dans des vecteur $h_j$
- Contexte: $c_i = \sum_j a_{ij} \cdot h_j$
- Plusieurs options:
- produit scalaire de $h_t^{(e)}$ et $h_t^{(f)}$
- fonction bilinéaire de $h_t^{(e)}$, $W$ et $h_t^{(f)}$
- MLP avec tanh où on calcule $\mathbf{v}^T \tanh(W_f h_t^{(f)} + W_e h_t^{(e)})$

1
inference-rnn.drawio Normal file
View file

@ -0,0 +1 @@
<mxfile host="www.draw.io" modified="2019-12-09T20:51:17.591Z" agent="Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0" etag="lGBUvdF-KN31ZJB36K88" version="12.3.9" type="device" pages="1"><diagram id="tcLufJGUZsxbtUHuoaIE" name="Page-1">7Vptj6I6FP41Jns/zASKIHx0nN252exNJpnc3c39VqBAY6FsqaMzv/6eQpFXo27UNRON0fY5pYXzPO05rU6sRbp5EjhP/uEhYRNkhJuJ9ThByJwiNFFvI3yrEK8GYkFD3agBXug70aCh0RUNSdFpKDlnkuZdMOBZRgLZwbAQfN1tFnHWHTXHMRkALwFmQ/QHDWVSoS6aNfjfhMZJPbLpeJUlxXVj/SRFgkO+bkHW54m1EJzLqpRuFoQp59V+qa77ssO6vTFBMnnIBQ+vyYv9tAyWT1+X78/ffz75wX93updXzFb6gZMJchh0+FCsfCjGqihVuwqF/lsG/WTyrXaX4KssJGpEE8zrhErykuNAWdcgEMASmTJtjihjC864KK+1oihCQaBGloIvScsSOr5jO9vxXomQZLPTDebWuaBKwlMixRs0qS+wNR9akI6l6+uGXnOmsaRFbc0j1oqKt103ToeC9vsRHKABB5sxDj4MA5Zj72UATS/JgHXYLPg4DHjdOWCPzQHvkgxMBwy8fWwGenNg+sfngD1gYDXwK4SwXBXhOTFjhPFY4BQckhNB4S6I6NueG8M+Gooq9Bv3jum0X7MhRSEmbjRKkRO4xI/OEyhsZ0jRlrY2Rc65KPIGFK13UiTBweSdq/469GzxY6ipMxcDKjHDRaHLAU9poMtb/gzPmdqwwhgzw4NVxHVGCLSJG07HCHSRbznqCg53Q6VyvW2caMrN9vOJLspnneO2CH29HkJ7DAgusaQ869Ntdqfr6HzdT3dIBWTvVfdrUsgzrbJjlI+tsuejfJhw1zEt4vBQbeqdXyteG+4qf8+hgenkm8ZYx8CjwqVR9m8UPJIp3nz6fkS281cLru54RwwG1mRPdR32M56RnlQ0hBmNlQ4CYLlUs9IAhS3ZXBtSGoZqmFGZN7Hf+E2ln0B4DuquNWPh3bxoeDeHOe5phHdUpqyFF3/698htJrhFff44Ymd0U+pBSjUP2ApcdDtsDvcCO4MiTcvjmzZ3fQokz1voN+wT9swLqmONz6XkKoVlyvCAg2Vc0tLdEMALmpSDzYu8OmZS/sd1JaIbReSDvp/HREp1PjVXnkBfgjBD9zTgWUSBcHEPjAIaYonhS+GFlugdhtgHboSqOfOUH30s7oIEC5gayL3Ps/jPKaWfP1m2PVDKzB4KpcZOL5ThluUmlCsQynRqX5lQnJtQrlEoNrq2FWV2piTpkUJKQf1VqRFkhET5SXAf+5RROVlYk7lX4oVKdcqqpL9WREqF3NKY/WtOL42x0EgaY180jXHPpCUlD9eDzTi0CHCQ1Oqp+vZFI5CbbvbqBrkHpL/GRXUzPOU7jW6eGc9ikpKyj3AFHymXN5Ecsrj0f7AaOwm+6C+Gw4PD02hkAY2A6So8VQtLUH2FpW5ua8zvrDHmxeQD1eYPBaWt9bcM6/P/</diagram></mxfile>

BIN
inference-rnn.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
ner-rnn.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

View file

@ -0,0 +1 @@
<mxfile host="www.draw.io" modified="2019-12-09T19:38:22.904Z" agent="Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0" etag="r_k2fpLJ1TCk_jrYTKVk" version="12.3.9" pages="1"><diagram id="B5kJGFcbWXHN9RkpErfs" name="Page-1">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</diagram></mxfile>

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

View file

@ -0,0 +1 @@
<mxfile host="www.draw.io" modified="2019-12-09T19:40:41.041Z" agent="Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0" etag="o0mPHSsaUDsNrbH2fwx5" version="12.3.9" type="device" pages="1"><diagram id="B5kJGFcbWXHN9RkpErfs" name="Page-1">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</diagram></mxfile>

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

BIN
skip-gram-embeddings.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB