Part 5 – Bases de l’Intelligence Artificielle – Deep le… — Transcript

Introduction au deep learning dans l'IA, ses concepts, applications et différences avec le machine learning classique.

Key Takeaways

  • Le deep learning est une extension du machine learning utilisant des réseaux de neurones multicouches.
  • Il est particulièrement adapté aux problèmes complexes avec de grandes quantités de données.
  • Les applications du deep learning couvrent la vision par ordinateur et le traitement du langage naturel.
  • Avant 2012, l'extraction manuelle des caractéristiques était nécessaire pour le machine learning classique.
  • L'IA générative, basée sur ces concepts, est la prochaine étape majeure à étudier.

Summary

  • Rappel des bases de l'intelligence artificielle et du machine learning abordées dans les parties précédentes.
  • Présentation des différents algorithmes de machine learning, notamment SVM, régressions, arbres de décision et réseaux de neurones.
  • Introduction au deep learning comme sous-domaine du machine learning utilisant des réseaux de neurones artificiels multicouches.
  • Explication de l'importance des réseaux de neurones dans les problèmes complexes nécessitant de grandes quantités de données.
  • Applications majeures du deep learning : reconnaissance faciale, reconnaissance d'objets, vision par ordinateur et traitement du langage naturel (NLP).
  • Différence entre machine learning classique et deep learning, notamment sur la nécessité d'extraire manuellement les caractéristiques dans le premier cas.
  • Mention des machines de Boltzmann comme alternative moins courante au deep learning basé sur les réseaux de neurones.
  • Importance des frameworks comme TensorFlow et PyTorch pour le développement de modèles de deep learning.
  • Évolution des capacités matérielles, notamment les cartes graphiques Nvidia, qui ont permis l'essor du deep learning.
  • Annonce des prochaines séances consacrées à l'IA générative, domaine clé et très exploité actuellement.

Full Transcript — Download SRT & Markdown

00:05
Speaker A
Alors, euh, je rappelle que donc jusqu'à présent, euh, donc nous avons, euh, en fait, nous avons traité un certain nombre de concepts et de mise en œuvre, euh, concernant donc les bases de l'intelligence artificielle.
00:25
Speaker A
Donc, je rappelle juste là où on est maintenant parce que là on s'approche un petit peu de la fin. Donc on avait commencé par les concepts de base de l'intelligence artificielle de manière générale. Alors ensuite, donc on avait travaillé donc la
00:43
Speaker A
partie de machine learning. Euh, donc nous avons fait la partie régression classification. Nous avons également fait l'apprentissage non supervisé et donc voilà, donc ça c'était la dernière étape. Donc on avait fait une étude de cas dans laquelle nous
01:01
Speaker A
avons un peu fait une révision générale. Je pense que l'exemple, en fait, l'étude du cas ou bien l'exemple d'application de la dernière phase, c'est bénéfique pour beaucoup de gens qui ont, en fait, vu qu'il y a
01:14
Speaker A
beaucoup de, il y a beaucoup de choses. C'est vrai, il y a beaucoup de choses à prendre, mais en fait, si vous voulez en même temps, c'est vraiment pas compliqué, surtout pour des doctorants scientifiques. Généralement, je pense que c'est
01:29
Speaker A
vraiment, je le rappelle juste, c'est que ce cours-là, c'est fait pour tout le monde, honnêtement. Donc c'est-à-dire tout le monde en aura besoin, quelle que soit votre discipline. Euh, pourquoi je vous dis ça ? Parce que, euh, tous les
01:41
Speaker A
projets qu'on travaille dans le domaine de l'intelligence artificielle, euh voilà, on est toujours rapproché par il y a les médecins, il y a les biologistes, il y a les gens qui font le bâtiment, je sais pas, tout le monde
01:53
Speaker A
veut, euh, veut en fait savoir comprendre et surtout exploiter les outils de l'intelligence artificielle, euh, dans leur propre métier. Donc c'est, vous aurez un métier d'ici quelques années, mais dans votre métier, donc ça c'est des choses
02:11
Speaker A
vraiment à apprendre. Alors maintenant, bien sûr, si vous n'avez pas assez de temps pour prendre un peu les choses en profondeur, donc vous aurez toujours ce Classroom. Le jour où vous en aurez besoin, vous allez y revenir regarder un
02:25
Speaker A
peu les détails. C'est, c'est, c'est très important. Alors en fait, aujourd'hui, donc on est arrivé là, donc je vais aborder la partie deep learning et par la suite, donc on terminera les séances prochaines qui restent, on va la
02:41
Speaker A
consacrer à l'IA générative parce qu'il se trouve encore que l'IA générative, c'est aujourd'hui la partie de l'intelligence artificielle la plus exploitée, la plus importante encore. Ben il dit donc, mais pour faire l'IA générative, vous aurez besoin de ça,
02:55
Speaker A
tout ça parce que ça c'est la base de l'intelligence artificielle. Donc vous voyez, donc ici, donc nous sommes toujours, euh, dans le domaine de machine learning et dans machine learning, il y a beaucoup d'algorithmes de machine learning.
03:08
Speaker A
Euh, donc on a parlé de beaucoup d'algorithmes : SVM, la régression logistique, la régression linéaire, etc., etc., les arbres de décision, random forest, etc., et les réseaux de neurones. Donc vous voyez, donc il y a beaucoup d'algorithmes de machine
03:22
Speaker A
learning, c'est-à-dire d'apprentissage automatique, et les réseaux de neurones. Alors, les réseaux de neurones, c'est un cas particulier parce que les réseaux de neurones, euh, lui, euh, il est très fort pour les problèmes qui sont très forts.
03:37
Speaker A
Bon, c'est-à-dire quand vous êtes dans des problèmes classiques qui ne sont pas très complexes, bon, généralement, euh, dans la majorité des cas, avec les algorithmes classiques de machine learning que nous avons étudiés, donc c'est suffisant. Euh, mais dès
03:51
Speaker A
qu'il s'agit donc des problèmes un peu plus complexes qui ont besoin d'une grande quantité de données pour l'apprentissage, alors généralement, les réseaux de neurones sont, euh, sont importants. Donc vous voyez, donc parmi les algorithmes, il y a les réseaux
04:04
Speaker A
neurones et justement, euh, donc vous voyez, deep learning, c'est une partie de machine learning dans laquelle, euh, forcément, on utilise les réseaux de neurones artificiels. Donc ce qui fait que quand on parle d'IA, on parle déjà d'un seul type d'algorithme
04:19
Speaker A
principalement. Je dis pas à 100 %, euh, parce qu'il y a une autre façon de faire du deep learning. Il y a aussi ce qu'on appelle les machines de Boltzmann.
04:27
Speaker A
Donc ça c'est pas cité ici, euh, mais, euh, dans la quasi-majorité des applications, c'est en fait, c'est les réseaux de neurones artificiels. Alors justement, donc c'est ce qu'on va essayer donc de voir, euh, à
04:40
Speaker A
ce niveau-là. Donc d'abord, donc c'est quoi le, en fait, deep learning, c'est quoi d'abord ? Donc l'apprentissage profond, donc c'est un domaine de l'intelligence artificielle qui utilise principalement les réseaux neurones artificiels qui se composent souvent de
04:59
Speaker A
plusieurs couches parce que la dernière fois, nous avons vu, on a déjà utilisé les réseaux neurones artificiels multilayer perceptron notamment pour faire du machine learning classique. Et généralement, quand il s'agit de deep learning, nous allons voir que souvent on aura besoin de
05:14
Speaker A
d'empiler plusieurs couches de neurones. Donc, euh, si vous voulez l'apprentissage profond, alors l'apprentissage profond permet, euh, des progrès qui sont extrêmement importants dans différents domaines. Euh, notamment, euh, le domaine de l'analyse, traitement de signal, euh, traitement d'images. Euh, donc ça c'est
05:35
Speaker A
des domaines, tout ce qui concerne le signal, l'image, les vidéos, euh, les, c'est-à-dire des piliers, donc les réseaux neurones artificiels sont très, très importants. Alors quelques applications, on va retrouver ça. Donc toutes les applications de reconnaissance faciale,
05:49
Speaker A
de reconnaissance d'objets, reconnaissance d'images, la reconnaissance vocale, computer vision, toutes les applications de la vision artificielle et surtout également au niveau de NLP. NLP ça veut dire Natural Language Processing et donc c'est le traitement naturel du langage.
06:09
Speaker A
Justement, c'est ce qui fait fonctionner ChatGPT que vous utilisez souvent. Ça c'est du NLP, donc c'est-à-dire, euh, forcément un modèle LLM comme ChatGPT, donc généralement, euh, a exploité toutes les avancées scientifiques dans le domaine de NLP et donc avec des
06:25
Speaker A
implémentations principalement basées sur des réseaux de neurones. Donc voilà. Alors, généralement, euh, on peut dire juste pour vous donner une idée, vous savez, donc on a déjà vu le cas de machine learning classique. Alors, dans machine
06:40
Speaker A
learning, on peut utiliser des réseaux neurones avec des couches de neurones. Euh, sauf que dans les réseaux de neurones classiques, c'est-à-dire dans les applications de machine learning classique, bah en input, nous aurons besoin de donner, euh, ce qu'on
06:54
Speaker A
appelle les variables, euh, les variables indépendantes. C'est justement les caractéristiques, c'est-à-dire par exemple si vous voulez, si vous voulez faire la reconnaissance, par exemple, d'objet dans une image, n'est-ce pas ? C'est-à-dire vous avez une photo, par
07:10
Speaker A
exemple, en entrée et vous voulez savoir est-ce que c'est une moto, c'est un camion, est-ce que c'est, c'est... Alors généralement, si vous voulez travailler avec l'approche machine learning classique, bah on peut créer un simple réseau neurone, mais à condition, bah à
07:27
Speaker A
condition les inputs, qu'est-ce qu'on va lui donner ? Bah on va lui donner par exemple le nombre de roues. On va lui donner le, est-ce qu'il y a par exemple du vitre ou là, là, est-ce que par quelle
07:37
Speaker A
est la forme ? On va lui donner ce qu'il y a, un casque, c'est-à-dire l'input, on doit lui donner les caractéristiques de l'objet. Et donc à l'époque où il n'y avait pas les possibilités d'utiliser des modèles de
07:50
Speaker A
deep learning avant 2012, euh, généralement, euh, c'est ce qu'on faisait, c'est-à-dire on prend une image, on extrait, on utilise des techniques pour extraire les caractéristiques. Par exemple, à partir de l'image, on peut savoir est-ce qu'il y a un casque,
08:04
Speaker A
est-ce qu'il y a, est-ce qu'il y a par exemple deux roues ou bien quatre roues.
08:07
Speaker A
Et après, c'est ces caractéristiques-là qu'on va...
08:20
Speaker A
de de c'est-à-dire d'avant 2000 2012, n'est-ce pas ? Avant les les années 2010. Euh c'était c'était comme ça qu'on fait parce que à l'époque c'était compliqué de traiter de de mettre en place des réseaux de neurones euh aussi
08:33
Speaker A
profond euh qui sont capables de si vous voulez de traiter le les images. Alors donc juste pour vous rappeler si vous avez par exemple une image de 500 pixels x 400 donc c'està-dire au total vous allez avoir en entrée input c'est 200000
08:49
Speaker A
pixels. C'est-à-dire si vous voyez une image avec une simple une basse résolution euh de euh 500 x 400 et ben ça va vous donner de 100000 pixels. Donc c'est-à-dire si vous voulez créer un réseau de neuron qui reçoit tous les
09:04
Speaker A
pixels, bah il vous faut avoir la couche d'entrée. Il y a combien de pixels ? Il y a combien d'entrées de neurones ? Il y a 200000. 200000 si vous ajoutez encore les couches intermédiaires, c'est des des c'est beaucoup de c'est beaucoup de
09:18
Speaker A
neurones avec beaucoup de connexion. Et là ça ça crée des matrices euh si vous voulez qui sont très énormes. Ben du coup donc c'est c'est un peu compliqué.
09:29
Speaker A
Alors en tout cas, pour ne pas faire ce pour ne pas faire cette c'est-à-dire cette cette façon de faire et bien à partir de en fait de des années des années en fait 2012 exactement à partir des années 2010 2000 2012 en fait on a
09:44
Speaker A
aperçu que si on crée des réseaux de neuron avec beaucoup de couches intermédiaires, c'est-à-dire si on crée des réseaux de neuron euh ce qu'on appelle fou connecté, c'est-à-dire entièrement connecté avec beaucoup de couches neurones euh on peut donner directement l'image à
10:01
Speaker A
au réseau de neuron, c'est-à-dire avec tous les tous les pixels, on va les donner au réseau de neuron. Et après le réseau neuron donc qu'est-ce qu'il fait ? Ben, il prend il fait des calculs.
10:11
Speaker A
Donc au fur et à mesure qu'on rentre dans les couches, bah qu'est-ce qu'on aperçoit ? on aperçoit que et bien tout simplement ces nor des couches des couches cachées, c'est ces c'est ces nor qui vont détecter, qui vont extraire les
10:25
Speaker A
caractéristiques, c'est-à-dire au lieu de le ce qu'on faisait avant avec soit par des des experts ou bien par exemple des algorithmes et bien c'est c'est ces couches cachées une fois qu'on empile plusieurs couches cachées, ben ces couches cachées sont capables de
10:41
Speaker A
d'extraire ce qu'on appelle les features, les les les patterns. C'estàd ils sont capables d'extraire des des informations ou bien des patterns à partir de des objets d'entrée et après par la suite ils arrive à faire ce qu'on appelle une abstraction d'image. Et là
10:55
Speaker A
je je répète l'abstraction d'image c'est ça. Vous avez une image si vous voulez faire l'abstraction d'image ça veut dire vous allez dire est-ce combien de roues ? Est-ce qu'il y a des vitres ? Est-ce qu'il y a un casque et cetera et cetera.
11:06
Speaker A
Donc c'est-à-dire on prend toute l'image et après on extrait un ensemble de de caractéristiques. Donc voilà. Donc ça c'est c'est comme ça donc qu'on a qu'on a qu'on a commencé. Donc c'est-à-dire c'est des réseaux neurones entièrement connectés. Euh bien sûr à l'époque on
11:24
Speaker A
pouvait pas faire ça. Pourquoi ? Parce que quand vous mettez beaucoup de neurones avec beaucoup de couches, quand vous faites l'entraînement, ça prend ça fait beaucoup de calcul. Ça ça prend énormément de calcul. Euh c'est en fait je rappelle que le principe c'est de euh
11:39
Speaker A
c'est en fait la rétroagation du gradient. Euh donc c'est ça crée des matrices qui sont énormes et après avec ces calculs matriciels donc ça prend beaucoup de calculs. Donc il fallait attendre euh jusqu'à 2010. Alors en fait 2010, il y a quelque
11:54
Speaker A
chose qui s'est passé qui est très important, c'est que Nvidia que que vous tout le monde connaît maintenant euh c'est une entreprise avait créé des cartes graphiques euh ce qu'on appelait les GPO. Bon, à l'époque, ces GPU là,
12:06
Speaker A
c'est des cartes graphiques qui étaient uniquement utilisées par les gamers, c'est-à-dire pour les les jeux euh les jeux vidéos, c'est-à-dire euh tout tout ce qui font à l'époque dans les années de 2000 avant 2010, hein, parce que ces
12:20
Speaker A
cartes-là existaient avant 2010. Tous tous ceux qui qui jouaient des des qui travaillaient avec les les jeux vidéos à l'époque, il cherchait cette ces cartes graphiques Nvidia. Pourquoi ? Tout simplement parce que ces cartes graphiques Nvidia contiennent ce qu'on
12:36
Speaker A
appelle les GPO. Bah c'est quoi les GPO ? Ben tout simplement c'est c'est des cartes graphiques qui contiennent des milliers de petits microprocesseurs. Il y a beaucoup de petits microprocesseurs et si vous avez vous avez des milliers de petits
12:49
Speaker A
microprocesseurs. Si vous voulez faire le produit de deux matrices ou bien l'inversion des matrices, vous voulez déterminer le déterminant de de du matrice et cetera, et ben ça on fait ce qu'on appelle le calcul parallèle. au lieu de faire utiliser un CPU parce que
13:03
Speaker A
vous savez un CPU, un CPU c'est le le processeur classique que vous utilisez. Euh le si vous utilisez un seul CPU, on fait ce qu'on appelle le calcul séquentiel parce que un CPU ne peut exécuter qu'une seule instruction à la
13:17
Speaker A
fois. Mais si vous utilisez les GPU et bien vous pouvez exécuter euh des milliers d'opérations à la fois. C'est ce qu'on appelle le calcul parallèle.
13:27
Speaker A
Donc le petit exemple que je donne toujours, c'est c'est ça, c'est que vous avez vous voulez faire la somme la somme de deux matrices A et B. Par exemple, vous avez la matrice A et la matrice B. Alors, si vous faites le
13:43
Speaker A
calcul classique, ben tout simplement vous avez ici par exemple, vous avez ici euh à par exemple à 11 12 à 22 et là vous avez B 11, B12, B21 et B22. Bon, c'est juste après si quand vous faites le calcul, si vous
14:09
Speaker A
avez un seul processeur pour faire la somme de de de ces deux matrices, qu'est-ce qu'on va faire ? Bah, il faut d'abord faire à ce nombre là plus ce nombre. Ensuite, vous faites ce nombre là plus ce nombre. C'est-à-dire quoi ?
14:22
Speaker A
Il y a combien d'opérations que vous allez exécuter ? Quatre opérations. Ça c'est le calcul séquentiel. C'est-à-dire votre processeur, il va exécuter quatre opérations. Mais si vous avez un un GPU qui contient quatre processeurs quatre processeurs et bien tout simplement en
14:38
Speaker A
même temps chaque processeur va faire par le premier processeur, il va faire par exemple ce nombre plus ce nombre. Le deuxième processeur, il va additionner ces ces ces deux nombres et dit que donc finalement on va pas faire quatre
14:49
Speaker A
opérations, on on fait une seule opération et ça c'est ce qu'on appelle le calcul parallèle. Alors maintenant, si vous avez des matrices qui sont énormes, ben il vous faut des des GPO.
14:59
Speaker A
Bah c'est parce que c'est les GPU qui contiennent des des milliers de petits microprosseurs. Bon, ça c'est juste pour introduire la la problématique. Donc comme je disais au début on avait commencé comme ça mais après on a découvert à partir de 2012 il
15:14
Speaker A
y a il y a d'autres modèles de réseau de neurone artificiel comme par exemple CNN.
15:20
Speaker A
les réseaux de neurones convolutionnels, c'est ce que je vais vous expliquer tout à l'heure. Et ben tout simplement qu'ils sont encore beaucoup mieux qui donnent de de meilleurs résultats pour le cas des images au lieu d'utiliser des des
15:31
Speaker A
raisons de neuron entièrement connecté de manière classique. Alors les applications donc juste je rappelle ça je l'ai déjà présenté la dernière fois.
15:42
Speaker A
Alors c'est quoi un neurone artificiel ? Bon, un neurone artificiel, c'est une approximation du neurone biologique. Donc, un neurone artificiel c'est une fonction mathématique qui fait deux opérations en quelque sorte. Donc, qu'est-ce qu'il fait ? Ben, tout simplement, le neurone, il va prendre
15:59
Speaker A
les entrées Xi en entrée. Et après, qu'est-ce qu'il fait le neurone ? La première opération, il va faire ce qu'on appelle la sommation. il va calculer la somme de xi fois euh en fait la connexion c'est il a un poids. Donc ce
16:14
Speaker A
poidslà c'est le paramètre de le paramètre ce qu'on appelle de euh de des synapses et donc onit il fait la somme donc x1 x w1 + x2 w2 + x3 w3. Donc ça c'est la somme. Et puis il y a une
16:32
Speaker A
fonction qu'il va faire ce qu'on appelle c'est la fonction d'activation. Alors, la fonction d'activation va introduire la nonlinearité dans le le modèle. Et ben tout simplement euh on utilise des différentes fonctions. Par exemple, une fonction de seillage euh qui tout
16:48
Speaker A
simplement va faire un test. Si la somme calculée est supérieure à un seuil, par exemple, s'il est supérieur à 0,5, on va supposer que la sortie c'est 1. S'il est inférieur, on va supposer que c'est 0.
17:02
Speaker A
Donc c'est-à-dire à la fin la sortie des neurones, on va avoir soit zé soit soit 1. Et ça c'est une c'est une approximation du neurone biologique.
17:13
Speaker A
Pourquoi ? Parce que un neurone biologique, on peut le voir comme ça. Il y a ce qu'on appelle les les dendrites.
17:19
Speaker A
Donc les dendrites, c'est les les c'est si vous voulez les connexions qui va lier un neurone à d'autres neurones.
17:25
Speaker A
C'est-à-dire un neurone, il est lié à plusieurs neurones et après le neurone va recevoir des signaux à partir des dendrites. Mais ces signaux ça peut être soit des 1 soit des zéros. Donc les 1 et les zéos ça provient des autres
17:38
Speaker A
neurones. Bah qu'est-ce qu'il fait ? Euh tout simplement ici donc on va faire le ce qu' il y a la partie somma. En fait, la le somma c'est à peu près ça.
17:46
Speaker A
C'est-à-dire si là on va cumuler tous ces signaux là, on va faire une sommation et après par la suite si la somme est supérieure à un seuil, la sortie c'est 1. Ça veut dire on va émettre un signal. Donc il y a un signal
17:57
Speaker A
qui va qui va sortir de du de l'axome si vous voulez. Et après ce signal là, il va se il va vers l'entrée des autres neurones. Et et bien c'est comme ça que le cerveau humain à peu près, je dis
18:11
Speaker A
bien à peu près parce que Allah parce que c'est la vraie la vraie la vraie réalité parce que c'est que les c'est encore plus compliqué que ça, n'est-ce pas ? Mais ce que vous voyez donc les résaux de neurones, ils ont essayé
18:24
Speaker A
d'imiter d'imiter le cerveau humain. Donc ça c'est ce qui ce qui donne quelque chose de très intéressant. Et donc le voilà donc ça c'est le principe de base. Alors et du coup donc voilà donc vous avez euh des fonctions d'activation
18:42
Speaker A
euh qui sont utilisées parmi les fonctions d'activation qui sont connues à sigmoïde. Alors cette fonction là, elle est très très connue. Donc la sigmoïde donc c'est euh f(x) c'est 1/ exponentiel - x. Donc vous voyez donc c'est une fonction dont la valeur est
18:57
Speaker A
comprise entre 0 et 1. Donc forcément si vous mettez une sigmoïde à la sortie des neurones quel que soit la valeur qui de la somme à la fin ça va vous donner quoi ? Soit un un nombre entre 0 et et 1. Et
19:09
Speaker A
comme ça vous donne un nombre entre 0 et 1, ça veut dire que si c'est inférieur à 0,5 pour nous c'est 0. Si c'est supérieur à 0,5 ça va être 1 1. Donc c'est comme ça que ça marche. Alors vous
19:20
Speaker A
avez également teage ou bien tangente hyperbolique. Ça c'est utilisé également. Euh c'est 2 sur 1 + 2x - 1.
19:30
Speaker A
Euh il y a ça par contre dans le les réseaux de neuron euh convolutionnel donc on utilise relio. Ben reli c'est très simple c'est la la fonction f(x) est égale à 0 si x est inférieur à 0 est
19:43
Speaker A
égal à x si x est supérieur à 0. Donc c'est-à-dire si le si la somme est positive, on va garder la le nombre mais s'il est inférieur à zéro, si est négative, on va on va la remplacer par
19:57
Speaker A
zéro. Donc ça c'est rel et vous allez voir ça résolve beaucoup de problèmes dans le le cas des des réseaux neuronomes. Donc en principe parmi les les modèles classiques donc il y a les le percepton. Donc ça ça a été inventé
20:12
Speaker A
en 1957. En fait, le percepton c'est un c'est un classifiur binaire. C'est un réseau de neuron qui se dans lequel vous avez euh en fait un neurone qui reçoit les inputs euh qui sont pondérés par les poids.
20:30
Speaker A
Comme je viens de de vous dire, il fait la somme et après il il y a une fonction d'activation qui va introduire la non lineéarité. Et puis donc quand on va euh les les l'idée c'est quoi dans l'opé
20:43
Speaker A
dans l'entraînement l'entraînement revient à quoi ? C'est à déterminer les poids. C'est-à-dire quelles sont les valeurs des connexions de de ces poids de c des poids de ces connexions qui vont faire que qui vont lier les entrées et les sorties. Donc c'est ça
20:58
Speaker A
l'entraînement. L'entraînement revient à déterminer les poids de de ces neurones. Et bien tout simplement pour des cas plus simples linéaires donc vous pouvez le faire c'est des deux simples équations mathématiques, vous pouvez euh le le faire mais quand il s'agit de des
21:13
Speaker A
problèmes assez complexes donc il vous faut des algorithmes. Et donc justement les les l'idée du perceptrant c'est quoi ? c'est que d'abord comme je disais il fait la somme et puis vous avez la fonction de souillage par exemple si y
21:26
Speaker A
é= 1 si si la somme est supérieure à 0 et 1 c'est est inférieur à 0 et donc qu'est-ce qu'on va qu'est-ce qu'on va donner ? On va donner dans la la phase d'apprentissage on va donner euh les les
21:38
Speaker A
valeurs de des des variables indépendantes et à la fin on va obtenir une sortie. Donc la sortie euh c'est y. Donc on va obtenir une sortie et après on va faire la différence. Donc on va prendre la sortie moins la moins le output
21:56
Speaker A
réel. Donc c'est-à-dire je prends la sortie moins le output tri l'erreur. Et ben tout simplement l'erreur c'est-à-dire maintenant l'idée c'est quoi ? C'est de minimiser cette cette erreur. Et pour minimiser cette erreur là c'est-à-dire quoi ? il va
22:10
Speaker A
falloir chercher les poids W euh qui qui permettent de de minimiser l'erreur, c'est-à-dire d'avoir une erreur qui est proche de zéro. Et donc pour le faire donc dans le pour le faire et ben tout simplement qu'est-ce qu'on fait ? Ben tout
22:27
Speaker A
simplement une fois que nous avons l'erreur on va déterminer les les poids des neurones comme ça. Donc c'est W à l'instant t à l'instant t ég W à l'instant t- 1 c'estàdire précédent.
22:40
Speaker A
+ alpha multipli par l'erreur xi. Par exemple, si je veux déterminer W1, ça va être quoi ? C'est c'est W au début parce que au départ, je vais commencer par des valeurs aléatoires et après je vais lui ajouter
22:59
Speaker A
alpha les l'erreur que j'ai constaté multiplie par la valeur de x et ça me donne la la la valeur du poids. Donc ça c'est le c'est ce qu'on fait. Alors alpha, c'est ce qu'on appelle la vitesse d'apprentissage. Ça c'est important.
23:12
Speaker A
C'est un nombre qui est compris entre 0 et 1. Donc c'est un nombre que qu'on choisit de manière empirique. Ça peut être 0,5 0,9 et cetera, mais c'est ce qu'on appelle la vitesse d'apprentissage. Alors ça c'est le c'est
23:28
Speaker A
comme ça que ça a commencé donc le le perceptron. Et après donc vous avez donc si on fait ça, on le fait et on on on calcule les poids et on essaie encore on va donner les inputs, on regarde encore
23:42
Speaker A
il y a l'erreur et on reprend, n'est-ce pas ? On prend l'erreur, on corrige les poids, on va donner encore les inputs, ça nous donne l'erreur et on va répéter c ce processus là pendant plusieurs plusieurs itérations jusqu'à ce que euh
23:59
Speaker A
quand on fait quand on donne les inputs, on obtient la sortie égale la sortie réelle, c'est-à-dire il est proche de la sortie réelle, c'est-à-dire l'erreur doit être proche à à zéro. Et donc ce ce cet algorithme là, c'est ce qu'on
24:12
Speaker A
appelle la rétropropagation du gradient. Donc la rétroppropagation du gradient donc c'est l'idée principale de de cet algorithme qui qui fait que euh bah avec un ensemble d'itiration on arrive à déterminer quelles sont les valeurs du poids qui vont minimiser l'erreur. Donc
24:29
Speaker A
c'est ça l'idée principale. Donc après donc pour les applications les applications réelles donc on a beaucoup de input généralement beaucoup de variables d'entrée et du coup donc avec un seul neurone on peut pas résoudre le problème parce qu'en
24:47
Speaker A
fait le si vous avez un seul neurone donc vous vous êtes en train de de traiter purement un un problème linéaire classique. Mais si vous avez un problème qui n'est pas linéaire donc on aura besoin de créer plusieurs couches. Donc
25:01
Speaker A
c'est-à-dire vous avez une couche de input qui contient un ensemble de neurones. Généralement la couche de input il contient combien de neurones ? C'est le nombre d'entrées. Par exemple, c'est la dernière fois si vous rappelez de comment il
25:16
Speaker A
s'appelle Iris Iris dataset, il y a combien de caractéristiques ? Il y a quatre. Il y a le Calent, le et cetera et cetera. Donc j'ai même pas envie d'y revenir. Donc il y a quatre caractéristiques. Ça veut dire que le
25:30
Speaker A
input il y aura combien de neurones à l'entrée ? Il y en aura quatre. Et après vous avez des couches intermédiaires, c'est ce qu'on appelle les couches cachées. Alors maintenant les couches cachées on peut mettre c'est vraiment il
25:41
Speaker A
y a pas de règle qui permet de vous dire il y a combien de neurones qu'on va choisir. On met un nombre quelconque et après on va essayer donc de connecter la sortie de chaque neuron va être connectée au neuron de la couche
25:55
Speaker A
suivante. Et donc c'est ce qui va se passer. Ces neurones ils vont faire des calculs et à la fin on a une une couche de sortie.
26:04
Speaker A
Donc la couche de sortie, donc la même chose généralement ça dépend de si c'est un classifieur. Si c'est un classifieur, vous allez avoir si le nombre de classes. Par exemple, si c'est un classifieur par exemple que trois classes comme le cas de Iris, vous avez
26:19
Speaker A
trois types de fleurs, et ben tout simplement à la sortie on va voir combien de neurones ? 3 par exemple pour le pour la première classe, voilà la sortie pour la 2e classe et pour la 3e classe. Et après, on va regarder quel
26:32
Speaker A
est le neurone qui donne la valeur la plus grande. C'est-à-dire le neuron à la sortie qui donne la valeur la plus grande. Euh c'est-à-dire on va dire que cet input là, ça appartient à cette classe. Donc vous voyez, donc c'est
26:43
Speaker A
comme ça qu'on fait généralement. Voilà. Alors donc euh après il y a pour les les erreurs donc euh pour les algorithmes comme je disais de de d'optimisation qui permettent de de d'optimiser, c'est-à-dire de minimiser l'erreur. Euh donc euh il y a des
27:01
Speaker A
algorithmes qui sont inconnus comme SGD. Donc SGD c'est ça s'appelle stocastique gradient descentes. C'est le c'est un c'est un algorithme c'est l'un des premiers algorithmes qui qui ont commencé sur ce au niveau des réseaux neurones. Et après, il y a également il
27:16
Speaker A
y a un autre qui est très connu par ses performances, c'est Adam. Donc tout à l'heure quand on va écrire le code, vous allez beaucoup voir ce SGD Adams. Donc ça c'estd et après la vitesse d'apprentissage learning rate. Donc
27:28
Speaker A
comme je disais tout à l'heure, c'est c'est ce coefficient alpha euh ici. Donc ça c'est un paramètre également que qu'il faut prendre en considération. Et puis vous avez la loss function. Donc loss function c'est l'erreur. Alors maintenant comment vous voulez calculer
27:44
Speaker A
l'erreur ? Donc pour calculer l'erreur, donc vous avez par exemple euh mean squared error. Donc on a on en a déjà parlé quand on avait fait la régression, si vous rappelez c'est la somme la somme de la somme des des différences au
27:59
Speaker A
carré, c'est-à-dire y c'est la sortie réelle y c'est le le la sortie prédite. Donc c'est-à-dire je prends le réel moins euh la valeur prédite. Je fais la différence au carré, je fais la somme et ça me donne l'erreur globale sur
28:16
Speaker A
l'ensemble de du réseau. Et après, c'est c fonction qu'il faut minimiser, c'est-à-dire on va chercher à la fin jusqu'à ce que M squed error par exemple soit proche de zéro. Alors au niveau de des modèles de machine learning donc de de deep
28:34
Speaker A
learning donc il y a ce qu'on appelle les ANN, on les appelle comme ça. ANN, ça veut dire artificial Nora network.
28:42
Speaker A
Donc c'est où on les appelle les multilayer perceptron. C'est ce que je viens de de vous décrire. Donc il y a des problèmes de deep learning. Généralement quand on fait du machine learning classiqu généralement vous utilisez les les ANN. Les anines
28:56
Speaker A
sont largement suffisants pour euh résoudre beaucoup de problèmes. Mais quand vous êtes dans des problèmes par exemple de de de reconnaissance d'image ou vous êtes dans des cas de traitement de signal, alors généralement on va utiliser des des réseaux de neurones qui
29:10
Speaker A
sont spécialisés dans chaque domaine euh comme par exemple CNN. Alors CNN ça veut dire convolutional neural network. Donc c'est un réseau de neuron qui sont dédiés au problème de computer vision, c'est-à-dire tout ce qui est traitement d'image, la reconnaissance d'images, la
29:27
Speaker A
reconnaissance faciale, euh la reconnaissance des objets. Donc c'est très important. Euh maintenant, il y a des caméras euh qui sont capables de détecter des objets, de faire des choses et ben tout simplement parce qu'ils sont équipés par de par des modèle euh de
29:41
Speaker A
type CNN euh qui sont très forts pour détecter les objets euh des images. Alors les CNN aujourd'hui, les voitures les voitures vous savez l'intelligence artificielle parce que on oublie ça parce que l'intelligence artificielle aujourd'hui il sauf des vies parce que vous savez
30:02
Speaker A
dans les voitures maintenant ils sont équipés par exemple quand vous êtes proche d'un choc ben la voiture se se freine automatiquement n'est-ce pas et ben tout simplement c'est détecter l'obstacle détecter le le le je sais pas détecter le un danger
30:19
Speaker A
à la rigueur détecter les températures, tout ça c'est des capteurs, c'est des capteurs qui sont utilisés mais quand vous détectez par exemple un danger, alors forcément donc on utilise des modèles de type CNN par exemple. Oui.
30:37
Speaker A
Comment l'écran ? Ah, il n'est pas partagé juste Voilà. Donc ça c'est pour les CNN. Après donc euh pour euh il y a également les ce qu'on appelle les RN recurrent neural network euh parmi lesquel il y a d'autres variantes
30:55
Speaker A
notamment LSTM. LSTM c'est long short time memory. Le euh il y a GRU gated recurrent unit.
31:06
Speaker A
Alors tous ces réseaux-là euh RN, LSTM, GRO euh généralement c'est des réseaux de neuron qui sont très forts pour euh la prédiction dans les séquences temporelles. C'est-à-dire si vous avez par exemple une série temporelle euh par exemple prédire je sais pas à prédire
31:23
Speaker A
prédire par exemple le prix de le prix de vente d'une action en bourse, c'est en fonction de l'historique, en fonction de la séquence que je reçois, je peux prédire le futur. par exemple la météo.
31:36
Speaker A
Euh donc en fonction de en fonction de l'historique, je peux prédire par exemple est-ce qu'il va pleuvoir ou pas ? Encore par exemple prédire la consommation d'énergie. Alors tout ça c'est des problèmes dans lequels il y a la dimension temporelle. Donc si vous
31:51
Speaker A
avez un problème dans lequel vous avez la dimension temporelle, c'est-à-dire vous recevez un des données dans une séquence temporelle. Alors pour faire la prédiction euh généralement vous aurez besoin d'utiliser des réseaux neurones récurrents comme par exemple LSTM euh ou
32:07
Speaker A
bien GRU qui sont très forts. Euh voilà. Alors le principe c'est c'est très simple, je vais pas rentrer dans le détail maintenant. L'idée principale, c'est que vous voyez ici dans les les réseaux de neuron récurrent, vous avez par exemple le le la sortie de la sortie
32:23
Speaker A
de du neuron de la couche suivante, ben il devient encore l'entrée dans la couche euh précédente. Donc c'est à peu près on est dans une dans une boucle, n'est-ce pas ? J'ai la sortie de d'un neuron qui va revenir vers l'entrée de
32:38
Speaker A
des réseaux au début. Donc c'est-à-dire c'est comme ça qu'on peut on peut faire des prédictions sur des séquences temporelles. Alors sans rentrer dans les détails parce que c'est pas vraiment le le moment. Alors juste mais par contre le
32:50
Speaker A
les CNN on va s'y intéresser parce que il y a justement une un exemple d'application euh euh c'est-à-dire sur lequel on va travailler. Alors l'idée de de CNN c'est quoi ? c'est que le les réseaux rend convolutionnels, ils sont fait pour
33:08
Speaker A
recevoir une image à l'entrée. Donc une fois qu'on reçoit l'image à l'entrée, input c'est une image et après vous avez une couche de neuron ce qu'on appelle dans laquelle on applique des filtres de convolution. Et en fait vous savez dans
33:24
Speaker A
le domaine de du traitement d'image ou bien du traitement signal ben tout simplement les filtres leur rôle c'est quoi ? Les filtres permettent de de chercher des des caractéristiques, de chercher des features dans l'image. Donc ce qui fait que dans les
33:39
Speaker A
il y a une couche de ce qu'on appelle de convolution dans laquelle on va appliquer un ensemble de filtres. Donc je vais tout à l'heure vous expliquer la notion de filtre parce qu'elle est importante. Et une fois qu'on on
33:49
Speaker A
applique les filtres, ben on va on va essayer donc de capter des on essaie de capter les c'est-à-dire on va essayer de faire l'abstraction d'image.
33:59
Speaker A
Rappelez-vous tout à l'heure j'ai une image et je voudrais savoir est-ce qu'il y a combien de rou par exemple est-ce qu'il y a des ROS ou pas. Donc, j'ai besoin d'utiliser un filtre qui permet de de chercher dans l'image par exemple
34:10
Speaker A
les informations sur les les caractéristiques d'une roue. Donc on va appliquer plusieurs filtres dans la couche et après on va faire ce qu'on appelle un polling. En fait, le polling c'est une opération qui permet de conserver les informations les
34:25
Speaker A
plus importantes. Alors parmi les les opérations de polling, il y a ce qu'on appelle max polling. Dans le max polling, qu'est-ce qu'on fait ? Et ben tout simplement, on va on on va on va en fait on va garder que le les
34:40
Speaker A
informations les informations positives. C'est-à-dire si vous avez les informations pertinentes qui sont positives, on va les garder. Celles qui sont négatives, on va les remplacer par zéro. Donc le le c'est-à-dire c'est comme si vous vous prenez que les
34:53
Speaker A
informations les plus importantes et le reste vous le gardez euh vous gardez des zéros. Et après par la suite le fait d'avoir beaucoup de zéos dans des matrices ça permet de réduire la taille de de la matrice. C'est comme ça qu'on
35:06
Speaker A
va faire. Et après, on reprend, on va utiliser une couche de convolution et on utilise le polline, convolution, polline, convolution, polline et cetera.
35:16
Speaker A
Donc c'est-à-dire on va avoir plusieurs couches de convolution et de polline et à la fin on obtient des petites des petites matrices. Si vous regardez à la fin ici, vous allez obtenir beaucoup de petites matrices si vous voulez. Et si vous
35:30
Speaker A
regardez ces matrices là, finalement c'est quoi en réalité ? les caractéristiques qui existent dans l'image, c'est ces petites matrices qui vont vous dire il y a un casque, il y a il y a par exemple des roues, il y a par
35:42
Speaker A
exemple les yeux, il y a ça, il y a ça. Donc c'est-à-dire les CNN, c'est ce qu'ils font. Ils essayent à peu près. On s'approche en fait, on s'est c'est pas qu'on s'approche, on est en train d'imiter l'œil humaine. Parce que l'œil
35:56
Speaker A
humaine, comment il reconnaît les objets ? Bah, c'est comme ça généralement. Donc c'est-à-dire euh on applique des filtres, on fait des poulines mais sans que vous le sachiez. Mais en fait les scientifiques je sais pas comment ils font, mais en tout cas ils ont ils ont
36:08
Speaker A
trouvé cette approximation. Je dis toujours approximation parce que la réalité c'est vraiment il y a que le Dieu qui il sait ce qui ce qui se passe.
36:17
Speaker A
Mais en tout cas euh c'est des réseaux qui sont très forts dans la reconnaissance d'objets à partir des images. Et ça c'est important.
36:26
Speaker A
Alors donc une fois qu'on arrive là, on prend toutes ces matrices là, on va faire ce qu'on appelle un flaten.
36:32
Speaker A
Flaten, c'est-à-dire on va essayer de de prendre toutes ces matrices, on va les mettre dans un seul vecteur. C'est-à-dire les données des centaines de matrices de petites matrices, on va les remettre dans un seul vecteur. L'opération ça s'appelle
36:47
Speaker A
euh flat, c'est-à-dire on va aplatir soi-disant les matrices pour pour avoir un seul vecteur. Et comme j'ai ce vecteur là, et ben maintenant je peux utiliser un réseau de neuron multilayer perceptron classique, un classifieur.
37:01
Speaker A
C'està-dire je vais donner ces informations un simple réseau de neuron et après ce réseau là donc c'est-à-dire à la fin finalement je suis dans le machine learning classique, n'est-ce pas ? C'est-à-dire je donne maintenant ces caractéristiques que vous voyez là. Donc
37:16
Speaker A
c'est c'est ce que je disais tout à l'heure. Avant ce qu'on faisait c'était ça. On faisait ça manuellement. Il vous faut un expert, vous lui donnez la photo, ben il va vous dire il y a un casque, il y a deux roues, il y a ça, il
37:27
Speaker A
y a ça, il y a ça. Et après, on le donne un réseau de Nor classique, il prédit est-ce que est-ce que c'est une voiture ou bien c'est une moto. À l'époque on le faisait, c'est des c'est des experts qui
37:36
Speaker A
font ça, n'est-ce pas ? Mais maintenant avec CNN finalement c'est le c'est c'est ça c'est ça c'est-à-dire c'est la machine qui qui avec ces ces couches de convolution et de polline on arrive à à extraire les caractéristiques, c'est-à-dire on on fait ce qu'on appelle
37:54
Speaker A
l'abstraction d'imag et à la fin donc ça nous donne ça nous donne un voilà un classifieur qui permet de de déterminer ce que c'est c'est voilà est-ce que c'est un chien ou bien c'est un chat alors Comment ça marche ? Regardez,
38:10
Speaker A
j'ai ça fait quand même 4 5 ans 8 ans j'avais fait ces ces animations dans le cadre d'une conférence. J'étais content de les retrouver parce que depuis je les ai pas utilisé. Alors regardez, j'ai ici pour vous expliquer comment ça se passe.
38:23
Speaker A
Regardez, j'ai ici par exemple une image dans laquelle j'ai ici un x. Vous voyez donc les points blancs, les points blancs que vous voyez là, c'est c'est-à-dire c'est un et le reste c'est des mo-1. Donc tout ce qui est moins,
38:36
Speaker A
un, c'est-à-dire c'est du noir, n'est-ce pas ? Donc vous avez parce que une image une image finalement, c'est une matrice.
38:42
Speaker A
Bon, chaque élément de la matrice, c'est un pixel et le pixel a une couleur.
38:47
Speaker A
Supposant dans un cas plus simple comme ça, j'ai une matrice qui contient soit des 1, c'est des - 1. Alors ici, donc j'ai un x comme ça. Alors maintenant, ce que je vais faire euh je vais utiliser un
39:00
Speaker A
filtre. Alors pour utiliser un filtre, c'est ce qu'on appelle un kernel. Donc vous voyez un filtre c'est quoi ? C'est une petite matrice par exemple de 3 x 3. Donc c'est un c'est une petite mat un filtre c'est une matrice de 3 x 3. Je
39:14
Speaker A
vais prendre par exemple ce filtre là dans lequel j'ai ici 1 1 1 mais le reste c'est des 1. L'idée principale c'est quoi ? C'est avec ce filtre là je vais détecter les morceaux d'image qui comp dans laquelle vous avez le ces ces trois
39:28
Speaker A
points là. Et comment on va faire ? Et bien tout simplement, je prends c ce kernel et je vais l'appliquer à toute l'image. Par exemple, je vais prendre ce kernel. Je vais d'abord faire le le produit convolutionnel avec par exemple
39:44
Speaker A
ce c'est-à-dire cette partie-là. Ben comment on fait ça ? Donc ben tout simplement, on prend le 1*é par -1 + -1 x -1.
39:59
Speaker A
Alors donc vous voyez donc ça c'est - 1 x -1 plus quoi ? - 1 x - 1 + -1 x-1 + 1 x 1 + 1 x-1 vous faites cette somme et ça va vous donner quoi ? 0,70 donc vous voyez donc une petite
40:22
Speaker A
fenêtre à travers laquelle vous regardez H que la cette partie-là vous appliquez le filtre ça va vous donner une valeur et cette valeurl je vais la prendre c'est combien c'est 0 donc c'est-à-dire pour le le premier le premier coin la valeur le
40:39
Speaker A
filtre il m'a donné 0 78 je vais maintenant déplacer la fenêtre d'un d'un cran comme ça donc je déplace cette cette fenêtre convolé comme ça et je vais faire le même travail. Donc ça fois ça plus ça fois ça
40:55
Speaker A
fois ça ça va me donner encore la valeur c'est combien ? C'est - 0 011. Donc vous voyez donc je suis en train de déplacer la fenêtre c'est-à-dire d'une dimension de 1.
41:06
Speaker A
C'est-à-dire c'est ce qu'on appelle le stride. Stride ça veut dire quoi ? On va on va appliquer chaque fenêtre. Quand on déplace on déplace d'un seul pixel.
41:16
Speaker A
ainsi de suite. Mais après, vous allez voir dans un réseau de convolutionnel, ce paramètre là, c'est à vous de le donner. Est-ce que vous voulez vous déplacer d'un seul pixel ou bien de ou bien trois et cetera ? Et donc et on
41:26
Speaker A
continue. Regardez, je déplace et ça me donne cette valeur. Je me déplace comme ça. Une fois que j'arrive là, je me déplace encore en bas. Donc c'est comme si vous prenez des jumelles à travers lesquelles vous regardez. C'est un peu ça. Vous prenez
41:43
Speaker A
une petite jumelle et vous à travers laquelle vous regardez un si vous voulez vous vous allez parcourir un grand espace et vous essayez de faire ça. Et bien si vous faites ça, vous continuez à faire ça, ça ça
42:00
Speaker A
ça. C'est quelle couche qui fait ce ce calcul ? C'est la la couche de convolution.
42:06
Speaker A
Donc la couche de convolution, il va faire pour un filtre. Un filtre, ça c'est un filtre, il fait ça ce travail. Donc vous voyez donc input, qu'est-ce que j'ai ici ?
42:16
Speaker A
Input j'ai une image. Voilà l'image originale avec la couche de convolution. Qu'est-ce qu'il me donne ? Il me donne une autre matrice. Et comm vous voyez dans cette matrice là, qu'est-ce que je vois ? Je vois que les ici donc je détecte les si
42:31
Speaker A
vous voulez les les pixels qui sont diagonales qui sont de voisinage et et après j'ai ici des des mo-1, j'ai des zéros et cetera. J'ai des valeurs. Et ben regardez, on va faire ça. Ça c'est un filtre. On va prendre un autre filtre
42:47
Speaker A
qui est capable de détecter par exemple des coins qui sont arrondis et cetera. On fait le même travail et on fait ça pour plusieurs filtres. Et qu'est-ce que vous allez avoir par exemple pour ce filtre là ? Pour ce filtre que j'ai
43:00
Speaker A
ici, donc j'obtiens cette image et je vais utiliser la fonction d'activation. Et la fonction d'activation qui est utilisée dans les CN c'est reli et reli qu'est-ce qu'il fait ?
43:12
Speaker A
Regardez, j'ai l'image que j'ai obtenu et si vous appliquez reli ça veut dire quoi ? F(x) é= à à 0 si x est inférieur à 0, égal à x est supérieur à 0. On applique ça. Regardez, ça c'est par
43:27
Speaker A
exemple, ça c'est supérieur à zéro. Je vais garder la valeur. Ça c'est négatif. Est-ce que vous voyez ? Donc je vais le remplacer par é négatif, regardez, il devient des zéros qui sont en rouge. Et le fait d'avoir des des ça
43:44
Speaker A
veut dire quoi finalement ça ? Ça veut dire que je suis en train de de prendre que les posifs les les nombres positifs. Et donc si je prends les nombres positif maintenant donc le le convolution j'ai fait Rio
43:58
Speaker A
maintenant j'obtiens cette matrice là maintenant je vais utiliser le ce qu'on appelle le polline le polline le max polline je vais utiliser ici je vais encore utiliser un kernel par exemple de dimension 2 x 2. Donc c'est à nœ de préciser le kernel
44:14
Speaker A
il est de quelle dimension. Ben on prend la même chose. Donc je prends ce kernel, je le place sur une partie de de l'image et le max polline qu'est-ce qu'il permet de faire ? Il permet de prendre le
44:26
Speaker A
maximum. Regardez par exemple cette partie là valeur maximale c'est combien ? C'est c'est 1 ici. Et ben tout simplement toutes les informations que j'ai ici donc je vais garder que que 1 et je déplace.
44:41
Speaker A
Mais regardez, j'ai déplacé le de combien ? De 2. Donc ici, donc j'ai stride égal égal à 2 et je prends la valeur ici, c'est combien le max ? 0,3 et cetera. Je fais ça et à la fin me donne cette petite
45:02
Speaker A
matrice. OK ? Alors maintenant, une fois que je fais ça, je vais refaire ça pour un autre filtre.
45:09
Speaker A
C'est-à-dire voilà l'image originale. J'ai appliqué le premier filtre, ça m'a donné une image. J'ai appliqué reli max ping, ça m'a donné ça, n'est-ce pas ? et je vais utiliser un filtre de la même chose. Je refais pour l'image et ça me
45:25
Speaker A
donne également une petite image. Alors, si vous rappelez dans l'exemple que je vous ai montré ici, exactement, nous sommes en train de chercher les features ou bien les les patterns dans l'image. C'est ce que je vous disais là. Donc, voyez donc
45:43
Speaker A
j'utilise Convolution avec R et là, c'est max. Donc poline convolution relio et après j'obtiens des petites matrices que vous voyez là pour chaque filtre j'obtiens une petite matrice. Après qu'est-ce que je vais faire ? Le flat. Donc je vais
46:04
Speaker A
faire aplatir le les les matrices et ça me donne voilà et ça me donne ça tout simplement. Donc ça me donne un seul vecteur qui contient toutes ces informations là. Ben je les prends comme ça ligne par ligne et je les place sous
46:23
Speaker A
forme de vecteur. Et maintenant je peux utiliser un simple réseau de neuron classique. J'ai à la sortie j'ai deux neurones. Par exemple, je voudrais savoir est-ce que c'est un X ou bien c'est un c'est un O. Donc bon, c'est
46:37
Speaker A
juste pour savoir à la fin ce que c'est. Et voilà. Donc une fois que je fais ici un un réseau de neuron entièrement connecté, donc je suis en train de créer ce qu'on appelle un classifieur. Donc vous voyez donc cette
46:50
Speaker A
partie làà c'est la classification qui me donne à la fin à la sortie de c'est-à-dire de quel objet s'agit-il.
46:57
Speaker A
S'il s'agit par exemple d'une reconnaissance de d'objet. Est-ce que vous avez compris le principe ? Alors dans la partie de lurine donc la partie il faut il faut oui il faut vraiment la comprendre. Oui monsieur euh j'ai j'ai une question euh concernant le
47:21
Speaker A
choix des filtres. Est-ce qu'on les remplit euh aléatoirement ? Alors ça c'est une très bonne question. Alors maintenant les filtres est-ce que c'est à moi de choisir les filtres ? Non c'est maintenant vous allez utiliser des framework. Il se trouve que parmi les
47:34
Speaker A
framework qui sont connus qu'on va utiliser tout à l'heure, il y a un framework qui s'appelle Tinorflow. Il y a également kas plutôt il y a p torche parce qu'en fait vous avez deux framework qui sont qui faut généralement
47:46
Speaker A
qui sont les plus populaire pour faire le deep learning torflow et p torchorf flow c'est développé par Google et pche est développé par Facebook. Et quand vous utilisez des réseaux de neon avec des framework et ben c'est le framework
48:02
Speaker A
il qui dispose déjà des centaines de filtres. Donc pour moi quand je crée mon réseau de neuron, c'est pas à moi de choisir les filtres. Je vais lui demander juste utilise 32 filtres ou bien 50 filtres ou bien 16 filtres et après donc il va
48:17
Speaker A
choisir 10 filtres et après il va les appliquer. Donc ça c'est le c'est un peu c'est la réponse à ta question. Est-ce que c'est clair ?
48:26
Speaker A
Merci. Voilà. Alors juste avant de commencer la partie pratique. Alors d'abord justement quels sont les principaux frameworks de deep learning ? Alors donc forcément donc si vous faites du deep learning utiliser des framework comme tensorflow donc qui est développé par
48:46
Speaker A
Google. Donc principalement c'est développé en Python C++ et JavaScript. Donc c'est-à-dire si vous voulez si vous travaillez avec tensurflow, vous pouvez il y a la version JavaScript, il y a la version euh Python, mais le noyau c'est c'est fait
49:04
Speaker A
en C++. Pourquoi ? Alors je vais vous expliquer ça. Regardez bien l'architecture de Torfow. Alors en fait, il est fait pour c'est pour faire des calculs parallèles. Alors pourquoi non pas learn ? n'est-ce pas ? Parce que tansflow il est il est lui qu'est-ce
49:26
Speaker A
qu'il a fait tansurflow c'est que il a déjà développé vous savez dans l'algèbre l'algèbre linéaire vous avez des opérations la somme des matrices le produit des matrice le le le déterminant hein. Alors toutes les opérations de l'algèbre linéaire, le calcul matriciel,
49:46
Speaker A
il les a implémenté de manière parallèle en utilisant les GPO. Et donc vous savez notre matériel c'est quand on fait du deep learningurning comme ça ça fait ça prend beaucoup de calcul donc nous aurons besoin de des machines qui sont dotées
50:00
Speaker A
des GPU. En fait je rappelle que le GPU c'est ce genre de de cartes que vous voyez là.
50:06
Speaker A
Donc c'est des cartes que vous allez quand il s'agit de des stations de de calcul souvent c'est des cartes que vous pouvez acheter et d'installer à l'intérieur de de d'un serveur et c'est ça rend votre serveur plus plus puissant
50:19
Speaker A
si vous voulez. Et si par exemple vous vous achetez ça dans euh vous achetez un un laptop euh bah tout simplement c'est dans la carte mère il y a il y a des GPU qui sont euh qui sont qui qui font
50:33
Speaker A
partie de de votre carte mère. Et dans généralement dans des machines, vous voyez ici par exemple, c'est une machine qui contient combien de cartes ? une 2 dans laquelle on a installé 8 GPU. Et après bon, c'est chaque GP contient des
50:50
Speaker A
milliers de petits microprocesseurs et plus vous avez beaucoup de GPO, vous avez vraiment une machine de calcul incroyable mais ça consomme beaucoup d'énergie. C'est ça le problème.
51:01
Speaker A
C'est-à-dire c'est c'est ce qui fait que le le dipl lei ça coûte cher. C'est-à-dire les gens qui font du de leur, ils ont besoin d'acheter des serveurs qui sont pas vous hein. Parce que pour vous c'est les calculs qu'on va
51:13
Speaker A
faire, c'est pas des des gros des gros calculs. On prend toujours des dataset juste pour plutôt comprendre. Mais généralement avec des simples GPU, on arrive à faire des des choses intéressantes. Mais quand il y a de des des par exemple les gens qui ont
51:28
Speaker A
entraîné chat GPT euh Open I pour entraîner chat GPT, vous imaginez le nombre de GPU qu'ils ont utilisé.
51:38
Speaker A
Alors si vous avez le chiffre, vous allez prendre votre tête. et un GPO, un GPO euh de par exemple Tesla euh qui qui est très puissant euh ça coûte aujourd'hui parce que les prix ont vraiment gré grimpé parce qu'il y a un
51:54
Speaker A
il y a une demande incroyable. euh c'est à peu près 200000 dirham. Donc c'est-à-dire 200000 dirham pour un GPO. Mais après si vous faites si vous avez beaucoup de données à à traiter alors généralement bon ce qui fait que voilà donc dans les
52:14
Speaker A
laboratoires de recherche généralement aujourd'hui tous les laboratoires de recherche euh dès qu'ils ont des petits budgets en des petits budgets bah on pense toujours, on demande on trouve toujours, on demande les GPO parce qu'on en a besoin. Les doctorants ont besoin
52:28
Speaker A
d'utiliser les les GPO. Ici à l'INET, nous avons euh pas mal de machines qui sont dotées de de GPU qui sont très puissants et on avait d'ailleurs euh c'est donc il a d'ailleurs il vous a envoyé un mail pour
52:42
Speaker A
vous vous demander ceux qui ont besoin de d'exploiter le les GPU. Donc en tout cas pour ceux qui ont des des travaux de d'intelligence artificielle de type leur donc voilà. Alors en tout cas il y a le matériel notre matériel contient quoi ?
52:57
Speaker A
les CPU et les GPU. Est-ce que vous vous êtes obligé d'avoir un GPU pour faire des deep learning ? Non. La preuve c'est que vous allez faire du deep learning sans utiliser de GPU. Sauf que quand vous allez lancer l'entraînement, vous
53:12
Speaker A
avez intérêt à aller prendre un petit café, le temps, pas un petit café, beaucoup de café parfois pour revenir et trouver encore votre machine. Il est en train de de faire des calculs. Donc plus vous avez de des GPU, plus ça devient
53:27
Speaker A
vraiment très rapide. En tout cas, alors donc les GPO, qu'est-ce qui crée les GPO ? Donc euh principalement, d'abord c'est Nvidia.
53:40
Speaker A
Donc Nvidia, c'est elle qui a euh créé le les GPU au début. Mais après, il y a par exemple Apple. Maintenant, Apple possède ses propres GPU qui sont intégrés dans les les MacBook. Donc ça veut dire que les
53:57
Speaker A
MacBook Actuel Proil des GPU mais c'est pas du Nvidia. Donc c'est c'est des solutions qui sont fournies par Apple.
54:07
Speaker A
Et donc si vous utilisez les cartes graphiques de Nvidia, il faut savoir une chose, c'est que pour faire le calcul parallèle, pour faire le calcul parallèle, on en fait Nvidia avait développé une librairie qui s'appelle CUDA.
54:22
Speaker A
C'est très important. Alors KDUA, c'est une librairie qui est développée en langage C, c'est-à-dire le le principalement en langage C, c'est cette librairie là qui permet de faire des calculs parallèles.
54:33
Speaker A
C'est cette librairie qui permet d'accéder au GPU. Et donc avec en fait coda euh c'est-à-dire qui qui fournit et ben tout simplement et donc le si vous voulez torfow il est obligé d'utiliser le langage C au départ parce que il a on a
54:55
Speaker A
besoin d'exploiter des librairies de kouda qui sont principalement en langage C. Donc c'est-à-dire le le le bas niveau du framework transfow c'est du langage C. Mais on va pas demander aux gens de programmer en langage C pour faire du du
55:10
Speaker A
deep learning parce que sinon il y a personne qui va le faire parce que vous savez langage c'est un peu compliqué pour surtout pour les gens qui veulent faire vite. Bah du coup donc et ben la couche supérieure deonf c'est dit
55:24
Speaker A
Python ou bien C++ C++ ou bien euh GSP JavaScript c'est pas du Java c'est du JavaScript donc ça veut dire que si vous avez une application JavaScript vous pouvez directement exploiter les GPO vous pouvez faire des des calculs
55:42
Speaker A
parallèles. Si vous avez une application C++, vous pouvez exploiter le calcul parallèle. Et si vous utilisez Python, vous pouvez faire du calcul parallèle. Alors maintenant, en fait ça c'est la couche la couche supérieure de Tansorfow. Mais pour encore faciliter
55:59
Speaker A
encore la création des modèles CNN, RN et cetera, il y a une librairie qui a été développée qui s'appelle Kas.
56:08
Speaker A
Donc si vous travaillez dans la majorité des cas les gens qui font des diplorines, ils vont utiliser Kas. Donc vous voyez donc Kas maintenant actuellement il fait partie de Turflou. Donc vous utilisez Kas pour créer des des réseaux de neuron euh CNN
56:22
Speaker A
par exemple et donc vous voyez donc c'est du Python mais derrière il y a tout ça qui fait que votre application peut exploiter le le matériel. Alors, ça c'est en quelque sorte euh bon ça je disais donc c'est du
56:39
Speaker A
JS mais il y a du Java, c'est je je corrigiste. C'est pas du JS, c'est du Java. Pourquoi ? Parce qu'en fait dans Java on a développé en fait il y avait en fait une librairie qui s'appelle Jikoua qui a été
56:54
Speaker A
développé en Java. Ben c'est Jikuda. Avec Jikuda, vous pouvez programmer en Java et votre Jikoua va utiliser coda. Ce qui fait que grâce à à JKUDA, il y a des framework, un framework qui est très connu en Java qui
57:11
Speaker A
s'appelle Diplony 4G DL 4G. Donc ça c'est purement du Java, c'est pas ton flow. Donc ce qui fait que il y a il y a également la possibilité pour les applications Java. Il y a beaucoup d'entreprises euh parce qui travaillent
57:23
Speaker A
beaucoup avec Java et qui ont dans des applications préférées utiliser euh des PL forg qui est euh principalement fait avec du Java. Bon mais il faut savoir une chose, c'est que euh en fait euh il y a une maintenant jusque jusque là tout ça
57:46
Speaker A
c'est le backend. Mais la question maintenant, est-ce qu' navigateur ? Si quand vous naviguez sur le web, votre navigateur, quand vous lancez un browser web, est-ce que votre navigateur web est capable si votre machine si la machine où se trouve le
58:03
Speaker A
navigateur web contient des GPU ? Ben la question est-ce comment browser est capable d'utiliser les GPU ? Avant c'était pas le cas mais après maintenant c'est c'est c'est possible. Pourquoi ?
58:14
Speaker A
parce qu'en fait, il y avait une librairie qui s'appelle Open GL qui a été développée euh à euh c'est-à-dire au-dessus duquel il y a WebGL. Et bien justement à Tensorflow, il y a une version qui a été développée en JS. Ça
58:28
Speaker A
s'appelle Tensorflow JS et avec Tensorflow JS on peut facilement créer des dans les applications front-end flow front-end, on peut exploiter les GPO.
58:40
Speaker A
Donc c'est-à-dire pour faire du deep learning ou des applications de reconnaissance. Donc vous voyez donc euh vous pouvez utiliser ce qui est bien avec Torfow, c'est que vous pouvez l'utiliser en backend qu'en frontend.
58:53
Speaker A
Pour les applications mobiles, les applications euh par exemple web. Bah les applications web, ils peuvent en temps en temps réel faire des choses qui sont très intéressantes, notamment qui parfois qui exploitent les GPO.
59:07
Speaker A
Alors, ça c'est une architecture euh qui peut vous donner à peu près une idée euh si vous voulez euh comment ça marche. Mais ce qui vous intéresse pour la plupart d'entre vous, c'est tout simplement c'est que pour faire du deep
59:23
Speaker A
learningurine, vous avez il y aurflow mais c'est pas la seule livrae qui est connue. Il y a également P torche.
59:30
Speaker A
Python s développé avec par Facebook MTA alors Kas alors Kas en réalité c'est pas le c'est pas un framework deple learninguring c'est juste ce qu'on appelle un un enveloppeur uner qui permet de faciliter l'utilisation de de torf flow donc c'est-à-dire c'est
59:50
Speaker A
c'est une API qui va faire permettre de faciliter plutôt l'exploitation de tensor flow et donc voilà et d'ailleurs kas au début on que on pourrait l'utiliser avec Tensorfow et on pouvait l'utiliser avec d'autres framework mais depuis donc c'est intégré avec avec Torf
60:08
Speaker A
actuellement donc vous n'avez pas besoin de les séparer. Donc pour les applications Java il y a également à l'époque il y a 3 ans 4 ans euh c'est que le problème pourquoi je vous parle de ça ? Parce que la
60:22
Speaker A
réalité des entreprises à l'époque dans il y a quelques années, c'est que la majorité des entreprises, il y a personne qui utilise Python pour pour développer des applications euh des applications de l'entreprise. La majorité des entreprises utilisaient des
60:36
Speaker A
langages comme Java, comme C#ARP.net et cetera pour développer les applications. Et le problème dès qu'il y a une partie de d'intelligence artificielle, bah on est obligé d'utiliser Pytan. Pourquoi Pyt ? parce que à l'époque les seuls framework tensurflow et Python c'est c'est du
60:55
Speaker A
Python, n'est-ce pas ? Donc ce qui fait que à un moment donné c'est pour cela qu'il y a un framework qui a été créé par Deep Mind. Skymind c'est pas Deep Mind.
61:05
Speaker A
Skymind euh il a développé un framework qui entre entièrement du Java exactement comme Torflow.
61:14
Speaker A
Donc c'était un framework qui qui a qui a été exploité par quelques entreprises, mais euh c'est un fr c'est-à-dire c'est pas très utilisé. C'est vraiment il y a quelques entreprises qui qui sentent vraiment le besoin euh euh de
61:28
Speaker A
l'utiliser, ils l'ont exploité mais comme c'est un framework qui n'est pas très mise à jour, la communauté n'est pas très grande donc c'est-à-dire il a stagné. Donc ce qui fait que si vous voulez faire de du deep learningurine, donc généralement euh
61:44
Speaker A
c'est la majorit dans la majorité des cas c'est c'est Python qu'on va utiliser. Et après, il y a des moyens pour connecter les applications Java avec les applications Python, mais ça c'est ça relève plutôt de l'ingénierie, c'est que autre
61:57
Speaker A
chose. Voilà. Alors, j'ai expliqué les concepts de base. Donc, je vais passer à la partie la partie démonstration et j'ai je vous ai préparé de deux cas. Le premier cas euh c'est un exemple dans lequel je reviens toujours euh vers le
62:12
Speaker A
le datasetist. Donc, je vous rappelle que EMNIST, c'est un dataset dans lequel vous trouverez donc des nombres manuscrits de 0 jusqu'à 9. Voici c'est des petites images. Donc voilà. Donc Eminis, c'est un dataset qui est euh très connu, donc qui a été en fait
62:30
Speaker A
développé par Yan Locan. Locan, c'est c'est l'un c'est l'une de c'est l'un des des chercheurs dans le domaine de l'intelligence artificielle qui sont très connus dans dans le domaine de de l'intelligence artificielle et qui a rejoint Facebook à un moment donné. Et
62:45
Speaker A
donc voilà donc on va on va essayer de voir comment utiliser ce dataset qui qu'on peut récupérer facilement et c'est un dataset qui n'est pas très grand.
62:53
Speaker A
C'est des petites images. Donc ça nous permet de dans des machines dans c'est-à-dire ça vous permet de d'expérimenter tout tout en fait les les les toutes les techniques de deep learning notamment de ANN et CNN et pour créer un classifieur pour
63:10
Speaker A
euh voilà pour classifier est-ce que l'image est-ce que c'est un 3 ou bien c'est un 0 ou bien c'est un 4 1 et cetera. Donc vous avez donc ça c'est le c'est ce qu'on va essayer de faire. Est-ce que c'est clair ? S'il y a
63:24
Speaker A
pas de questions sur la la partie concept de base, donc je vais passer directement, je vais enregistrer le TR.
63:29
Speaker A
Oui. Est-ce qu'on est obligé d'utiliser passer par Est-ce que vous êtes obligé d'utiliser framework pour faire le Oui. Alors, en fait techniquement parlant, vous pouvez faire du deep learning sans utiliser ces framework. Sauf que le seul problème c'est ça, c'est que quand tu veux faire
63:49
Speaker A
du diploring, quand tu as beaucoup de beaucoup de couches de neurones ou bien quand il y a beaucoup de calculs à faire matriciel qui sont très grands, il faut faire des calculs parallèles. Et si tu veux faire tes
64:02
Speaker A
calculs parallèles, si tu veux même le faire toi-même sans sans passer par ces framework, bah c'est c'est à toi de d'écrire ça, d'écrire beaucoup de codes coua qui permet de paralléliser les fonctions. Donc et ce travail là c'est
64:19
Speaker A
déjà fait par ton flow. Donc c'est juste je le disais toujours parce que c'est vrai on est ici à l'in on faisait des calculs parallèle avant même avant même que ton sfow existe, n'est-ce pas ? Et à l'époque
64:35
Speaker A
avant les années 2000 2010, vous savez ce qui s'est passé avant déjà en 2010, c'est que tout le monde commence à découvrir c'est quoi les GPU et cetera. Et donc à l'époque dans la recherche scientifique euh euh en fait les
64:50
Speaker A
chercheurs ont commencé à faire des implémentations des calculs de des calculs parallèles en utilisant coda. Et donc c'est-à-dire au début, il y avait juste pour faire le calcul de le produit de don matrice. Si tu veux faire le produit de
65:07
Speaker A
don matrice de manière parallèle et il faut y créer beaucoup de beaucoup de trucs comme ça parce que COD c'est lui qui va communiquer avec les GPO et ça c'est c'est un peu compliqué et Google qu'est-ce qu'il a fait ? Le
65:22
Speaker A
moment où peut-être nous on était en train d'écrire des articles comme vous le faites maintenant [Musique] vous. On est très content quand un article il est publié. Oh, j'ai atteint la la complexité telle et tout ça. Alors Google, lui il publ rien. C'est que il a
65:38
Speaker A
il a il a implémenté tout ce tout ce que peut-être la recherche scientifique sont en train de publier. Il a implémenté de c'est-à-dire c'est il a il a fait ses implémentations parallèles dans sa librairie et ben il a créé tout
65:50
Speaker A
simplement ton sfot. Donc vous voyez donc tens flow c'est juste un ensemble de fonctions qui ont principalement paralléliser le l'algèbre linéaire les calculs de l'algèbre linéaire et ça c'est un travail énorme.
66:06
Speaker A
Et donc ce qui fait si vous utilisez tens flow et ben tout simplement vous imaginez vous allez gagner beaucoup de vous allez gagner beaucoup de temps et c'est pareil pour pas torche. La question elle est intéressante dans ce
66:20
Speaker A
sens-l. Voilà. Alors donc je vais passer à nouveau sur on va passer euh comment on a changé l'enregistreur ? On va arrêter cet enregistreur d'abord sur la partie.
Topics:intelligence artificielledeep learningmachine learningréseaux de neuronesapprentissage profondvision par ordinateurtraitement du langage naturelNLPTensorFlowPyTorch

Frequently Asked Questions

Qu'est-ce que le deep learning dans le contexte de l'intelligence artificielle ?

Le deep learning est un sous-domaine du machine learning qui utilise principalement des réseaux de neurones artificiels multicouches pour traiter des problèmes complexes nécessitant de grandes quantités de données.

Quels sont les domaines d'application principaux du deep learning mentionnés dans la vidéo ?

Les applications principales incluent la reconnaissance faciale, la reconnaissance d'objets, la vision par ordinateur et le traitement du langage naturel (NLP), comme dans le cas de ChatGPT.

Quelle est la différence entre machine learning classique et deep learning selon le professeur ?

Dans le machine learning classique, il faut extraire manuellement les caractéristiques des données en entrée, tandis que le deep learning permet d'apprendre automatiquement ces caractéristiques via des réseaux de neurones multicouches.

Get More with the Söz AI App

Transcribe recordings, audio files, and YouTube videos — with AI summaries, speaker detection, and unlimited transcriptions.

Or transcribe another YouTube video here →