# data[].attributes.headline
COURS 1 (S1E1): Les Bases du Machine Learning et du Deep Learning

# data[].attributes.subject
COURS 1 (S1E1): Les Bases du Machine Learning et du Deep Learning

# data[].attributes.body
Cette formation sur le Deep Learning vous apprendra à développer des réseaux de neurones artificiels, en voyant tous les détails mathématiques qui se cachent derrière l'intelligence artificielle.
Nous apprendrons à développer des modeles de Deep Learning avec Numpy, mais aussi avec Keras et Tensorflow. Nous verrons en détails le modele du perceptron, les fonctions d'activations, la backpropagation, et nous réaliserons des projets de Deep Learning tels que le célebre projet MNIST.

00:00 : Introduction MNIST
01:57 : Les Bases du Machine Learning et du Deep Learning
05:19 : Le Neurone Artificiel de McCulloch et Pitts
10:47 : Le Perceptron de Frank Rosenblatt
15:13 : Le Perceptron Multicouches de Geoffrey Hinton
20:47 : Le Deep Learning Moderne
25:14 : Programme de cette Formation
28:06 : Informations Importantes et Conclusion

# data[].attributes.headline
CORS 2(S1E2) :LE PERCEPTRON - DEEP LEARNING 

# data[].attributes.subject
CORS 2(S1E2) :LE PERCEPTRON - DEEP LEARNING 

# data[].attributes.body
Le Perception est l'unité de base des réseaux de neurones artificiels. Pour apprendre le Deep Learning, il faut commencer par apprendre les équations de bases d'un neurone : la fonction d'activation sigmoïde (ou fonction logistique) la fonction Coût log loss, et la descente de gradient stochastique.

00:00 : Introduction
00:25 : PARTIE 1 : Le Perceptron
03:10 : La fonction Sigmoïde
05:55 : La Loi de Bernoulli
07:41 : PARTIE 2 : La Fonction Coût
08:39 : Maximum de Vraisemblance
13:38 : Démonstration : Le Log Loss
17:34 : PARTIE 3 : La descente de gradient
19:02 : L'algorithme de Descente de gradient
20:59 : Exercice pour la prochaine vidéo
23:17 : Conclusion et Bonus !

# data[].attributes.headline
COURS 3 (S1E3 ) :LES GRADIENTS D'UN NEURONE - DEEP LEARNING

# data[].attributes.subject
COURS 3 (S1E3 ) :LES GRADIENTS D'UN NEURONE - DEEP LEARNING

# data[].attributes.body
En Deep Learning, l'algorithme de la descente de gradient nécessite de connaitre l'expression des gradients de la fonction Cout (Log-Loss ou autre). C'est ce que nous calculons dans cette vidéo, pour ensuite pouvoir coder notre premier neurone artificiel.

00:00 : Objectif et formules de Bases
03:40 : Règle des chaines
06:10 : Dérivée dL / da
10:25 : Dérivée da / dz (partie 1)
16:57 : Dérivée da / dz (partie 2 - simplification)
22:10 : Dérivée dz / dw
23:30 :  Assemblage final
29:00 : Les autres dérivées...

# data[].attributes.attachment_link.title
LES GRADIENTS D'UN NEURONE - DEEP LEARNING (03)

# data[].attributes.headline
COURS 4 (S1E4): La VECTORISATION des équations - DEEP LEARNING 

# data[].attributes.subject
COURS 4 (S1E4): La VECTORISATION des équations - DEEP LEARNING 

# data[].attributes.body
Pour développer des réseaux de neurones avec Python, il est important de vectoriser nos équations pour le modèle, la fonction d'activation, la fonction coût, et la descente de gradient. Cela permet de traiter toutes nos données X, y d'un seul coup sans avoir a passer par des boucles FOR.
Pour réussir a faire cela, il est conseillé de maîtriser les bases du calcul matriciel, particulièrement les opérations d'addition, de transposée, et de multiplication. Je vous montre tout dans cette vidéo.

00:00 : Introduction
00:40 : Définition Vectorisation
02:53 : Rappel sur le calcul matriciel
07:09 : Vectorisation de (X, y)
08:03 : Vectorisation de Z
10:00 : Vectorisation de A
10:48 : Vectorisation de la Fonction Coût
12:20 : Vectorisation de la Descente de Gradient
14:10 : Vectorisation des Gradients
17:06 : Application à N-Variables

# data[].attributes.attachment_link.title
La VECTORISATION des équations - DEEP LEARNING (04)

# data[].attributes.headline
COURS 5(S1E5 ):PROGRAMMATION d'un NEURONE ARTIFICIEL (DEEP LEARNING )

# data[].attributes.subject
COURS 5(S1E5 ):PROGRAMMATION d'un NEURONE ARTIFICIEL (DEEP LEARNING )

# data[].attributes.body
Pour programmer un neurone artificiel avec Numpy, il est important de connaitre les formules de la descente de gradients que nous avons développées précédemment. Dans cette vidéo, nous utilisons une approche d'apprentissage supervisé, en partant d'un dataset X, y a 2 variables. Mais le code développé ici peut aussi être utilisé avec N variables, tout s'adapte automatiquement !

Timecode :
00:00 : Introduction
00:27 : Diagramme fonctionnel
02:52 : Implémentation des fonctions
11:43 : Assemblage final
16:30 : Effectuer de futures prédictions
23:30 : Tracer la frontière de décision
27:54 : Visualisations 3D et Animation
29:49 : Généralisation a N variables
30:35 : Application Chat vs Chien
37:20 : Vidéo Bonus !

# data[].attributes.attachment_link.title
PROGRAMMATION d'un NEURONE ARTIFICIEL (DEEP LEARNING 5)

# data[].attributes.headline
COURS 6 (S1E6) : NEURONE ARTIFICIEL - CHAT VS CHIEN - DEEP LEARNING

# data[].attributes.subject
COURS 6 (S1E6) : NEURONE ARTIFICIEL - CHAT VS CHIEN - DEEP LEARNING

# data[].attributes.body
Les réseaux de neurones sont des modèles de Deep Learning très puissants, capable de faire de la détection d'objet, de la reconnaissance vocale, et pleins d'autres applications. Ici, nous développons un modèle de neurone artificiel pour tenter de classer des photos de chats et de chiens. Cependant, cela ne suffit pas, car un tel modelé est trop biaisé pour traiter des images. Il s'agit d'un modèle linéaire. Pour réussir, il faudra ajouter des neurones et des couches, chose que nous verrons dans la suite de la formation.

00:00 : Introduction
01:27 : Remise en contexte
02:45 : Reshape des données
07:10 : Overflow de l'Exponentielle
12:40 : Erreur dans le Logarithme
17:00 : La Normalisation
19:30 : Préparation de l'expérience sur la Normalisation
27:40 : Visualisation des résultats de la Normalisation
31:15 : Visualisation de la Descente de Gradients
33:40 : Normalisation MinMax
39:17 : Réglage des hyper-paramètres
46:35 : Diagnostique d'over-fitting
53:00 : Que faire pour améliorer le modèle ?

# data[].attributes.attachment_link.title
NEURONE ARTIFICIEL - CHAT VS CHIEN - DEEP LEARNING 6

# data[].attributes.headline
COURS 7 ( S1E7):RÉSEAU DE NEURONES (2 COUCHES) - DEEP LEARNING 

# data[].attributes.subject
COURS 7 ( S1E7):RÉSEAU DE NEURONES (2 COUCHES) - DEEP LEARNING 

# data[].attributes.body
Pour développer un réseau de neurone artificiel à 2 couches, il suffit de créer plusieurs modelés de neurones artificiels, en les organisant en couches, et en envoyant les résultats des neurones de la couche 1 vers ceux de la couche 2. C'est ce qu'on appelle la Forward Propagation. Ensuite, pour entraîner un tel modèle, il faut calculer ces gradient en comprenant comment la fonction coût évolue par rapport à la 2ieme couche du réseau, puis comment la 2ieme couche du réseau évolue par rapport à la 1ere. C'est ce qu'on appelle la Back Propagation.

00:00 : L'avantage des réseaux de neurones
02:40 : Couche [1]
05:20 : Couche [2]
08:39 : Résumé
9:55 : Vectorisation
13:27 : La Forward Propagation
15:36 : L'entrainement d'un Réseau de neurones
17:23 : La Back Propagation
19:37 : Exercice pour la prochaine vidéo
23:15 : Bonus !

# data[].attributes.attachment_link.title
RÉSEAU DE NEURONES (2 COUCHES) - DEEP LEARNING 7

# data[].attributes.headline
COURS 8 ( S1E8) : La BACK-PROPAGATION - DEEP LEARNING

# data[].attributes.subject
COURS 8 ( S1E8) : La BACK-PROPAGATION - DEEP LEARNING

# data[].attributes.body
En Deep Learning, la Back-propagation est la technique qui permet de calculer les gradients de tout le réseau de neurone, pour ensuite entraîner celui-ci a l'aide de la descente de gradient. Nous voyons ici comment faire une Back-propagation d'un réseau de neurones a 2 couches, avec les calculs mathématiques complets.

00:00 : Rappel sur la Forward Propagation
07:16 : Back-Propagation
09:05 : Calcul de dZ2
17:28 : Calcul de dW2
21:26 : Calcul de db2
23:38 : Calcul de dZ1
28:13 : Calcul de dW1
30:00 : Calcul de db1
31:00 : Bilan

# data[].attributes.headline
COURS 9 (S1E9): PROGRAMMER UN RÉSEAU DE NEURONES à 2 COUCHES - DEEP LEARNING

# data[].attributes.subject
COURS 9 (S1E9): PROGRAMMER UN RÉSEAU DE NEURONES à 2 COUCHES - DEEP LEARNING

# data[].attributes.body
Pour développer un réseau de neurones a 2 couches, il faut commencer par initialiser les paramètres du modèle, puis utiliser la fonction de Forward propagation, la back-propagation, et mettre a jour les paramètres du modèle. En répétant ces étapes en boucle avec l'algorithme de la descente de gradients, on peut engrainer notre réseau de neurones a apprendre des taches complexes.

00:00 : Structure du code
01:23 : Fonction d'initialisation
02:59 : Forward Propagation
05:22 : Back-Propagation
09:38 : Fonction Update
10:28 : Fonction predict
11:03 : Fonction Finale
15:09 : Expérience sur Dataset
18:30 : Benchmark sur le nombre de neurones
19:22 : Démonstration sur des photos de Chats
21:00 : Exercice de Généralisation

# data[].attributes.attachment_link.title
PROGRAMMER UN RÉSEAU DE NEURONES à 2 COUCHES - DEEP LEARNING 9

# data[].attributes.headline
COURS 10 (S1E10) : RÉSEAU DE NEURONES PROFOND - DEEP LEARNING 

# data[].attributes.subject
COURS 10 (S1E10) : RÉSEAU DE NEURONES PROFOND - DEEP LEARNING 

# data[].attributes.body
Le réseau de neurone Profond est l’emblème de l'intelligence artificiel. Pour en créer un avec Numpy, il faut généraliser les équations de la Forward-Propagation et celles de la Back-Propagation, en écrivant des boucles For, voici comment procéder :

00:00 : Introduction
00:38 : Initialisation
03:37 : Code
06:16 : Forward propagation
08:30 : Code
13:46 : Back Propagation
17:48 : Code
21:34 : Code final
23:42 : Visualisation de résultats
25:35 : Je vous offre un Cadeau !