Les bases du Deep Learning en Intelligence Artificielle.
Consiste à faire circuler les données de la première couche jusqu'à la dernière couche pour afin produire une sortie y.
Elle permet de calculer la moyenne des erreurs de notre modèle.
Qui consiste à determiner comment la sortie du réseau varie en fonction des paramètres (w, b) présents dans chaque couche. Pour cela on calcule une chaine de gradient à savoir comment la sortie de la dernière couche varie en fonction de l'avant dernière, puis comment la sortie de l'avant dernière varie en fonction de l'avant avant dernière ainsi de suite jusqu'à la dernière couche.
Grâce aux gradients, on peut alors mettre à jour les paramètres (w, b) de chaque couche de telle sorte à ce qu'ils minimisent l'erreur entre la sortie du modèle et la réponse attendue.
Pour développer et entrainer un Réseau de Neurones Artificiels, on répète en boucle les quatre étapes suivantes:
La fonction de faire cette transformation en probabilité est appélée Sigmoïd
Exemple 1:
Exemple 2:
Exemple: Si une plante est toxique et que notre modèle nous donne une probabilité de 0.8
Alors pour calculer la vraisemblance de notre modèle nous allons nous servir de la loi de Bernoulli
- Si le résultat de notre modèle est proche de 100% ce qui signifie que notre modèle à une vraisemblable proche de 100%
- Sinon si le résultat de notre modèle est proche de 0% ce qui signifie que notre modèle à une vraisemblable proche de 0%
Comme les probabilités sont des nombres inférieure à 1, alors plus on fait le produit des nombres inférieur à 1 plus on tend vers 0.
Pour eviter que la vraisemblance de notre modèle ne converse vers 0, on l'applique le logarithme.
Comme La fonction logarithme est une fonction monotône croissante alors elle conserve l'ordre de nos termes.
Cela signifie que lorsqu'on cherche le maximum de nos vraisemblances, il sufit de chercher le maximum du log de la vraisemblance. voir graphique
Alors par deduction on aura:
Pour la formule de log loss: Au fait on veut maximiser la vraisemblance or en mathématique il n'existe pas de fonction de maximisation mais il n'existe que des fonctions de minimisation par conséquent on essaie de prendre l'inverse de la fonction de minisation. C'est à dire qu'on multiplie par (-1) puis on normalise par (1/m).
La fonction Log Loss elle tire son origine de la maximisation de la vraisemblance(Likelihood)
- Si la dérivée est négative ça nous indique que la dérivée diminue lorsque w augmente.
- Si la dérivée est positive ça nous indique que la dérivé augmente lorsque w augmente.
- Descente de Gradient
- en répetant cette formule, le gradient descent jusqu'au minimum de notre fonction.
A la base, on a un Dataset de de x1 et x2 variables indépendantes et y variable dépendante.
- Au en Python, il nous reste qu'à calculer W et B.
Pour développer notre modèle, nous allons partir d'un dataset de 100 ligne de x1, x2 et y.
Pour créer un réseau de neurones, nous allons ajouter un second neurone à côté de celui que nous avons crée précedemment.
- Si on veut ajouter autant de couches, on aura ce forme:
On peut construire autant de couches que l'on desire dont chaque couche est constituée de plusieurs neurones d'où le nom Deep Learning
Voici les trois points les plus importants à retenir:
- A la place, il faut vectoriser l'ensemble de ses équations par un vecteur.
- Ce qui nous donne:
- L'avantage de cette technique, c'est ce que si vous voulez rajouter un autre neurone à votre couche, alors tout ce que vous avez à faire est d'ajouter une autre colonne à votre matrice W et un paramètre de biais b à votre matrice B et par le calcule matriciel vous obtiendrez une matrice m*(n+1) automatiquement.
- Parfois il arrive qu'on trouve dans certains documents, la matrice X transposée ou renversée pourque celle-ci soit compatible à nos dimensions dans nos équations, mais cela n'a aucune influence sur les résultats de nos calcules.
-
On determine la dérivée partielle de L par rapport à A
-
On determine la dérivée partielle de A par rapport à Z
- Puis pour terminer, onn determine les dérivées partielles de Z par rapport à W et b.
- Tout ça là, nous donnes les équations suivantes:
- Mais on peut les simplifier pour obtenir les équations suivantes: