Add Deep learning course
This commit is contained in:
parent
653d6ca0c3
commit
a0d73353e6
4 changed files with 1425 additions and 0 deletions
108
content/ia/3_deep_learning/index.md
Normal file
108
content/ia/3_deep_learning/index.md
Normal file
|
@ -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.
|
||||
|
||||

|
||||
|
||||
|
||||
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.
|
||||
|
||||

|
||||
|
||||
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...
|
||||
|
||||

|
||||
|
||||
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
|
Loading…
Add table
Add a link
Reference in a new issue