From a0d73353e68c16b228c66c6687aac83b51bec4f5 Mon Sep 17 00:00:00 2001 From: Yorick Barbanneau Date: Tue, 14 Nov 2023 00:53:37 +0100 Subject: [PATCH] Add Deep learning course --- .../images/Neuron-figure-fr.svg | 82 ++ .../3_deep_learning/images/neurone_formel.svg | 824 ++++++++++++++++++ .../images/reseau_neurones.svg | 411 +++++++++ content/ia/3_deep_learning/index.md | 108 +++ 4 files changed, 1425 insertions(+) create mode 100644 content/ia/3_deep_learning/images/Neuron-figure-fr.svg create mode 100644 content/ia/3_deep_learning/images/neurone_formel.svg create mode 100644 content/ia/3_deep_learning/images/reseau_neurones.svg create mode 100644 content/ia/3_deep_learning/index.md diff --git a/content/ia/3_deep_learning/images/Neuron-figure-fr.svg b/content/ia/3_deep_learning/images/Neuron-figure-fr.svg new file mode 100644 index 0000000..28da1e0 --- /dev/null +++ b/content/ia/3_deep_learning/images/Neuron-figure-fr.svg @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + Biological Neuron + 02/06/2007 + + + Nicolas P. Rougier + + + + + + Neuron + Biology + Brain + + + A simple biological neuron + + + + + + + + + + + + + + + + Cellules de Schwann + + + Noeud de Ranvier + + Axone + + + + + Dendrites + + Terminaisons de l'axone + + Noyau + + Corps cellulaire + + + + + Gaine de myéline + + + \ No newline at end of file diff --git a/content/ia/3_deep_learning/images/neurone_formel.svg b/content/ia/3_deep_learning/images/neurone_formel.svg new file mode 100644 index 0000000..856ebe4 --- /dev/null +++ b/content/ia/3_deep_learning/images/neurone_formel.svg @@ -0,0 +1,824 @@ + + + + + Schéma d'un neurone formel + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + W2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Schéma d'un neurone formel + + + ephase - https://xieme-art.org + + + + + CC BY-SA + + + + 2023.11.14 + + + + + + + + + + + + diff --git a/content/ia/3_deep_learning/images/reseau_neurones.svg b/content/ia/3_deep_learning/images/reseau_neurones.svg new file mode 100644 index 0000000..eca23de --- /dev/null +++ b/content/ia/3_deep_learning/images/reseau_neurones.svg @@ -0,0 +1,411 @@ + + + + + Schéma d'un réseau de neurone + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Schéma d'un réseau de neurone + 2023.11.14 + + + ephase - https://xieme-art.org + + + + + CC BY-SA + + + + + + diff --git a/content/ia/3_deep_learning/index.md b/content/ia/3_deep_learning/index.md new file mode 100644 index 0000000..80fb394 --- /dev/null +++ b/content/ia/3_deep_learning/index.md @@ -0,0 +1,108 @@ +--- +title: "IA : Deep Learing" +date: 2023-10-24 +tags: ["IA", "jeux"] +categories: ["Intelligence artificielle", "Cours"] +mathjax: true +--- + +L'apprentissage profond -- ou *deep learing* -- est une branche de +l'intelligence artificielle. Il utilise les réseaux de neurones pour résoudre +des tâches complexes. Ces techniques ont permi des progès significatif et rapide +dans des domaines tels que la reconnaissances d'écritures, la vision par +ordinateur, les traitements automatisés du lancages etc. + +Il existe deux catégories d'apprentissage profond : + + * **supervisé**: l'algorithme d'apprentissage est entraîné avec des jeux de + données etiquettés afin de produire les résultats attendus; + * **non supervisé**: les données ne sont pas étiquetées, c'est à l'algorithme + de découvrir les structures sous-jascentes. + +Ces deux méthodes sont totalement différentes, nou étudirons seulement +l'entraînement supervisé dans le cadre de ce cours. + +## Un neurone + +D'abord il y a le neurone biologique en voici un schéma, crédits +[Nicolas Rougier][wiki_neurone] CC-BY. + +![Schéma de neurone biologique ](./images/Neuron-figure-fr.svg) + + +En 1943, les travaux de [Mc Culloch][mcculloch] et [Pitts][pitts] mène à la +publication de l'article *« A logical calculus of the Ideas Immanent in Nervous +activity »* dans *Bulletin of Mathematical Biophysics, University of Chicago +Press*. Ces travaux mènerons à la définission du **neurone formel*. + +### Neurone formel + +C'est une représentation mathématique et informatique d'un neuronne. + +![Schéma de fonctionnement de neurone formel](./images/neurone_formel.svg) + +Il se compose d'une ou plusieurs **entrées** associés à des **coefficients** +(poids). Notre neurone formel calcule la *somme pondérée* des entrées à laquelle +il ajoute un **biais** puis envoie la sortie dans une **fonction d'activation**. + +### Premiers pas en Python + +Pour implémenter notre premier neurone formel, nous utiliserons *Python* et la +bibliothèque *Numpy*. + +```python +import numpy as np + +""" +La définition mathématique du neurone + +x: entrée +w: poids +b: biais +f: fonction d'activation +""" +def neron(x, w , b, f): + x = np.dot(x, w) + b + return f(2) + +# et maintenant nous allons utiliser notre neurone +# -- + +# Définissons les entrées +x = np.array([1,2,3,4]) +# Nous mettons les poids à 1 +w = np.array([1,1,1,1]) +# Et notre biais à 1 +b = np.array([1]) + +## Et on l'utilise +neuron(x, w, b, lambda z: np.exp(z)) +``` + +### Fonctions d'activation + +C'est une fonction mathématique appliquée à un signal en sortie de notre +neurone. Son nom viens de son équivalent biologique **potentiel d'activation** +qui représente le seuil qui entraîne une réponse du neurone une fois atteint. + +N'importe quel fonction mathématique peut faire l'affaire, on utilisera +cependant les fonctions suivants **leurs caractéristiques** : + + * Linéaire; + * Seuil; + * ReLU (*Rectified Linear Unit*): \\(f(x) = max(0, z)\\) + * Radiale : \\( f(x) = \sqrt{1/2\pi{e}^{(-z^{2}/2)}}\\) + +## les réseaux de neurones + +D'un neurone vers l'infini... + +![Exemple d'un réseau de neurones](./images/reseau_neurones.svg) + +Dans un réseau de neurones, chacune a son propre poid et biais, les paramètres +du réseau sont composés de l'ensemble des poids et biais. Tous les neurones +d'une même couche ont **les mêmes fonctions**. + +[wiki_neurone]:https://commons.wikimedia.org/w/index.php?title=User:Nicolas.Rougier +[mcculloch]:https://fr.wikipedia.org/wiki/Warren_McCulloch +[pitts]:https://fr.wikipedia.org/wiki/Walter_Pitts