Qu’est ce que le deep learning (Apprentissage profond) ?

274

C’est quoi le deep learning ?

Le deep learning est sous domaine du machine learning, le machine learning est un sous domaine de l’intelligence artificielle. Le but du machine learning est de donner une réponse (output) à une question (input) et cela par le biais d’un algorithme entrainé sur un jeu de données spécifique à cette question. Par exemple, on veut faire de la détection d’objet. Simplifions le processus pour mieux comprendre:
– la première étape sera d’entrainer notre algorithme (notre modèle).
– Ensuite le modèle étant déjà entrainé on lui présente une nouvelle image (qui n’était pas dans le jeu de données d’entrainement).
– Il nous donne une réponse.
En fait, dans cet exemple la seule chose qui fait qu’il y a plusieurs catégories en machine learning c’est bien évidement l’algorithme (le modèle) qui diffère. Le deep learning se différentie des autres approches par le fait que les algorithmes sont inspirés du cerveau humain.

Pour une définition plus formelle

Le deep Learning ou l’apprentissage en profondeur fait partie d’une famille plus large de méthodes d’apprentissage automatique (machine learning) basées sur l’apprentissage de représentations de données (un ensemble de techniques permettant à un système de découvrir automatiquement les représentations nécessaires pour la détection de caractéristiques ou pour la classification à partir de données brutes.), par opposition à des algorithmes spécifiques à une tâche. L’apprentissage peut être supervisé, semi-supervisé ou non supervisé.

Wikipédia – Deep learning

Bon on oublie le formalisme on passe au concret !
On a dit précédemment que les algorithmes de deep learning sont inspirés du cerveau humain, alors le cerveau humain il fonctionne comment ?

Le cerveau humain constitué  de centaines de milliards de cellules appelées neurones. Chaque neurone assure la transmission d’information sous forme d’un signal bio-électrique (influx nerveux).  Ces neurones sont donc les éléments de base du systèmes nerveux responsable des actions de l’humain. Lorsque le cerveau reçoit une information, les neurones reçoivent des informations qu’elles traitent et les transmettent à d’autres neurones, et ainsi de suite. Ce processus permet donc la prise de décision chez l’humain. Je suis pas un spécialiste en neuroscience mais j’espère qu’on s’est compris. Pour ceux qui veulent en savoir plus à ce sujet peuvent regarder cette vidéo.

Bon revenons à nos assiettes, le deep learning étant inspiré du cerveau utilise lui aussi un genre de “système nerveux”  appelés réseaux de neurones 😉 . Cependant, bien qu’un réseau de neurones soit semblable à un système nerveux, il y a de très grandes différences dues à l’architecture du réseau de neurones. Nous allons le découvrir dans la suite de notre article.

Deep Learning
credits https://fr.mathworks.com/discovery/deep-learning.html

Dans l’image ci-dessus on a un exemple d’architecture d’un réseau de neurones sous forme d’un graphe.

Comment ça marche un réseau de neurones ?

On peut considérer un réseau de neurones comme une boite noire qui prend des éléments en entrée (inputs), les traite et donne un ou plusieurs résultats en sorties (outputs).
En effet, sur le graphe sur l’image ci-dessus on voit plusieurs noeuds : ce sont nos fameux neurones qui sont tous connectés (on parle alors de réseau).

plusieurs neurones connectés = réseaux de neurones

évident ?🤔

Ensuite on remarque que ces neurones sont groupés en “colonnes” appelées couches (layers). La première couche est la couche d’entrée (input layer) et la dernière est la couche de sortie (output layer). Les autres couches du milieu sont les couches cachées (Hidden Layers).
Chaque couche est connectée à une une autre par le biais de connexions pondérées (weighted connections).

deep learning neural network
credits https://www.youtube.com/watch?v=rEDzUT3ymw4

Dans la figure précédente, on a un exemple de connexions pondérées. Déjà il faut savoir qu’à l’intérieur d’un neurone est contenu une valeur N. Dans cet exemple pour obtenir la valeur N3, Il suffit juste de multiplier le poids de chaque connexion par la valeur du neurone précédent faire la somme en la stocker dans une variable X.

⛔️Vous pouvez installer un plugin MathJax pour mieux visualiser les formules.⛔️
Ainsi dans notre exemple nous aurons

X=3.14N1 2.71N2

Ensuite il faut savoir que

N3=fX

f étant une fonction d’activation
Un exemple de fonction d’activation (la sigmoïde) :

fX=11 + eX

Après ce calcul par la fonction d’activation le processus se répète pour les autres neurones jusqu’à ce qu’on ait un résultat en sortie. Mais…. ? Si vous avez remarqué on a pas parlé des poids des connexions🤨. En effet, ces poids sont calculés lors de l’apprentissage (learning step). Le challenge  sera alors d’avoir les bons poids afin d’avoir un résultat correct en sortie.

Un exemple ?

Les chiens et les chats 😄. Imaginons qu’on entraine un réseau de neurones pour classifier des images de chiens et de chats.

deep learningdeep learning

Notre réseau reçoit en entrée des images avec des labels (chien ou chat). Une image étant juste une matrice de pixels, on a donc une matrice de pixels en entrée du réseau de neurones. Les poids du réseau seront calculés en fonction des images utilisées pour l’entrainement.

De cette façon, en sortie il aura un seul neurone qui aura une valeur (0 pour un chien et 1 pour un chat par exemple).

Les différents types de réseaux de neurones

Il faut savoir qu’il y a différent type de réseaux de neurones, notamment :

  • Feedforward neural network (Autoencoder, Probabilistic neural network, Time delay neural network,Convolutional neural network)
  • Regulatory feedback network
  • Radial basis function network
  • Recurrent neural network

et bien d’autres. Nous allons présenter ces différents types de réseaux de neurones dans nos prochaines articles.

Pourquoi le deep learning ?

La réponse à cette question est vraiment essentielle, elle nous permet de comprendre l’engouement autour du deep learning. Le graphe ci-dessus l’explique clairement.

performance deep learning

Sa capacité à améliorer ses performances s’il y a une grande quantité de données (le passage à l’échelle) fait vraiment rêver vu que nous sommes à l’ère du big data et nous voulons exploiter au mieux nos données .

En Conclusion

Dans cet article nous avons essayé de présenter le plus facilement possible le deep learning et les réseaux de neurones. Pour ceux qui veulent aller encore plus loin dans ce domaine nous vous préparons une série d’articles sur les réseaux de neurones, des bases théoriques à son implémentation sur TensorFlow ou Keras.

On espère que vous avez aimé cet article 😉 .

3 commentaires
  1. alfred dit

    Salut super article sur les IA j ai vraiment adoré
    Une très belle initiative, je cherche depuis longtemps de très bon livre (free) en français sur le sujet des conseils ?

    1. Henri Michel dit

      Salut, en vérité il n’y pas assez de livre de data science en français.
      Cependant je te présente des livres que j’ai bien aimé.
      Machine Learning Yearning, by Andrew Ng
      Python for Data Analysis: Data Wrangling With Pandas, NumPy and IPython, by Wes McKinney.
      J’espère que j’ai pu t’aider 😉

  2. Salma dit

    Très bon article! Bonne continuation

Laisser un commentaire

Votre adresse email ne sera pas publiée.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Voulez-vous en savoir plus sur la Data Science ?

Inscrivez-vous alors à notre newsletter et vous receverez gratuitement nos derniers articles et actualités ! 
S'INSCRIRE MAINTENANT 
close-link