2. AI, ML, DL… ?
Réseaux de neurones linéaires (NN)
Vers des architectures plus profondes
Réseaux de neurones récurrents (RNN)
Long Short-Term Memory cells (LSTM RNN)
Encodeurs, Décodeurs, Séquences vers séquences (seq2seq)
Autres modèles avancés
Exercices
3. AI, ML, DL… ?
Réseaux de neurones linéaires (NN)
Vers des architectures plus profondes
Réseaux de neurones récurrents (RNN)
Long Short-Term Memory cells (LSTM RNN)
Encodeurs, Décodeurs, Séquences vers séquences (seq2seq)
Autres modèles avancés
Exercices
8. Ray Kurzweil
Directeur de l'ingénierie de
Google
Un futuriste bien connu
Sur ses 147 prédictions depuis les
années 1990, Kurzweil dit avoir
un taux d'exactitude de 86%
Selon lui, la singularité arrivera en
2029 environ
Page wiki intéressante :
https://en.wikipedia.org/wiki/Predictions_made_by_Ray_Kurzweil
9. AI, ML, DL… ?
Réseaux de neurones (NN)
Vers des architectures plus profondes
Réseaux de neurones récurrents (RNN)
Long Short-Term Memory cells (LSTM RNN)
Encodeurs, Décodeurs, Séquences vers séquences (seq2seq)
Autres modèles avancés
Exercices
15. Analogie : régression linéaire, les moindres carrés
But : créer un modèle mathématique en fonction des données.
Fonction d’objectif à minimiser :
E = Σ( (y - Y)² )
Modèle :
Y = a⋅x + b
Apprentissage itératif :
a = a - k*dE/da
b = b - k*dE/db
16. Minimiser l’erreur à la sortie du réseau:
E = Erreur quadratique totale (Mean Squared Error - MSE).
Puis, apprentissage par ajustement des poids:
Comparaison des résultats pour apprentissage
17. Plan :
y(x) = a⋅x + b
Plan d'un plan :
Avec h(x) = a⋅x + b :
y(x) = c⋅h(x) + d = c⋅(a⋅x + b) + d
y(x) = m⋅x + e
⇒ Le plan d’un plan reste un plan.
Non-linéarités
19. AI, ML, DL… ?
Réseaux de neurones (NN)
Vers des architectures plus profondes
Réseaux de neurones récurrents (RNN)
Long Short-Term Memory cells (LSTM RNN)
Encodeurs, Décodeurs, Séquences vers séquences (seq2seq)
Autres modèles avancés
Exercices
21. Une solution : ReLU
Utiliser le “Rectifier Linear Unit” (ReLU, à droite) :
22. Solution supplémentaire : Highway network
Couches de neurones “highway” avec connections résiduelles :
Simple addition entre les entrées et les sorties d’une même couche.
Permet une propagation aisée des gradients lors de la dérivation.
23. AI, ML, DL… ?
Réseaux de neurones (NN)
Vers des architectures plus profondes
Réseaux de neurones récurrents (RNN)
Long Short-Term Memory cells (LSTM RNN)
Encodeurs, Décodeurs, Séquences vers séquences (seq2seq)
Autres modèles avancés
Exercices
31. AI, ML, DL… ?
Réseaux de neurones (NN)
Vers des architectures plus profondes
Réseaux de neurones récurrents (RNN)
Long Short-Term Memory cells (LSTM RNN)
Encodeurs, Décodeurs, Séquences vers séquences (seq2seq)
Autres modèles avancés
Exercices
40. AI, ML, DL… ?
Réseaux de neurones (NN)
Vers des architectures plus profondes
Réseaux de neurones récurrents (RNN)
Long Short-Term Memory cells (LSTM RNN)
Encodeurs, Décodeurs, Séquences vers séquences (seq2seq)
Autres modèles avancés
Exercices
46. “king - man + woman = queen”
Mathématique des mots possibles et fonctionne pour :
Masculin vs féminin
Singulier vs pluriel
Changer les temps de verbes
Pays vers capitales, et l’inverse
Etc…
1 mot = 1 vecteur
47. Exemples
En pratique : cela peut être fait avec des architectures
Skip-gram ou CBOW à la seq2seq ou à la word2vec.
51. Traiter différents types de signaux
Combiner avec les CNN qui sont très utile pour des données spatiales
(CNN pas abordés dans cette présentation)
52. Applications possibles… beaucoup !
Traduction dans n’importe quelle langues (E.x.: Google Traduction)
Texte vers images, ou images vers texte (E.x.: Google Images)
Synthétisation/interprétation d’audio ou de voix (E.x.: Siri)
Systèmes de recommandation (E.x.: Netflix, Youtube)
Vision: interprétation/génération de vidéo
Prédiction des marchés boursiers pour le trading à haute fréquence
Analyse de sentiments à partir de textes (peut être combiné pour la prédiction de marchés boursiers)
Génération de texte / chatbots (E.x.: Siri? Cleverbot?)
Transfert de style visuel pour les images
55. AI, ML, DL… ?
Réseaux de neurones (NN)
Vers des architectures plus profondes
Réseaux de neurones récurrents (RNN)
Long Short-Term Memory cells (LSTM RNN)
Encodeurs, Décodeurs, Séquences vers séquences (seq2seq)
Autres modèles avancés
Exercices
56. Mécanisme d’attention
Attention (a.tɑ̃.sjɔ̃) :
« L'attention est la prise de possession par l'esprit, sous une forme claire et vive,
d'un objet ou d'une suite de pensées parmi plusieurs qui semblent possibles
[…] Elle implique le retrait de certains objets afin de traiter plus efficacement les
autres » — William James
65. AI, ML, DL… ?
Réseaux de neurones (NN)
Vers des architectures plus profondes
Réseaux de neurones récurrents (RNN)
Long Short-Term Memory cells (LSTM RNN)
Encodeurs, Décodeurs, Séquences vers séquences (seq2seq)
Autres modèles avancés
Exercices
66. TensorFlow
Graphe pour un réseau de
neurones à 2 couches avec
ReLU, pour classification.
Puis à droite, un graphe
comparatif simplifié pour
une régression linéaire.
y
MSE
y_model
x
67. Régression linéaire avec TensorFlow
import tensorflow as tf
import numpy as np
trX, trY = someTrainingData(...) # Données linéaires avec un peu de bruit
X = tf.placeholder("float") # Données d’entrée du graphe TensorFlow
Y = tf.placeholder("float")
w = tf.Variable(0.0, name="weights") # Variable modifiable pour l’apprentissage
y_model = tf.multiply(X, w)
cost = tf.square(Y - y_model) # MSE (minimiser une “loss” selon les moindres carrés)
train_op = tf.train.GradientDescentOptimizer(0.01).minimize(cost) # Demander “train_op” plus tard roulera une étape d’optimisation
with tf.Session() as sess: # Rouler le graphe dans une session pour l’entrainement
tf.global_variables_initializer().run() # Initialiser les variables (ici, seulement “w”)
for i in range(100):
for (x, y) in zip(trX, trY): # Pour chaques données disponibles
sess.run(train_op, feed_dict={X: x, Y: y}) # Étape d’entrainement
prediction = sess.run(y_model, feed_dict={X: trX[0]}) # Prédiction pour le premier point d'entrainement
68. Démo et Exercices
Avec TensorFlow :
https://github.com/guillaume-chevalier/LSTM-Human-Activity-Recognition
https://github.com/guillaume-chevalier/seq2seq-signal-prediction
Tout cela est aussi accessible dans le ZIP au lien drive envoyé par courriel :
https://drive.google.com/drive/folders/0B1BexDr8jCulME16NlVIN3J1akk?usp=sharing