Files
Ninluc 6d4fdffee9
linter / quality (push) Successful in 5m1s
tests / ci (8.4) (push) Successful in 5m8s
tests / ci (8.5) (push) Successful in 6m31s
Wiki
2026-09-15 19:44:58 +02:00

52 lines
3.0 KiB
Markdown

# Le Réseau Monocouche
Jusqu'ici, nous avons vu des réseaux avec un seul neurone. Une des limites d'un tel réseau est qu'**un seul neurone ne peut séparer que deux classes**. En effet, un neurone ne peut pas donner simultanément l'appartenance ou non à plusieurs classes.
Pour séparer des données de plusieurs classes, il devient nécessaire d'utiliser plusieurs neurones, chacun étant spécialisé pour détecter l'appartenance ou non à une classe spécifique.
Exemples :
- Pour séparer 3 classes, il faut au moins 3 neurones.
- Pour séparer 2 classes, un seul neurone suffit (si $y > 0.5$ alors classe A, sinon classe B).
C'est exactement ce qu'un réseau monocouche fait : il permet d'avoir une quantité infinie de neurones. Le nombre de neurones est contrôlé automatiquement par PerceptronViewer en fonction du nombre de classes différentes dans le dataset.
<div class="exercice">
Reprenons le dataset oblique afin de pouvoir comparer les résultats avec ceux d'un réseau à un neurone :
- <span>Dataset</span> : `Classification - Oblique (linéairement séparable)`
Puis cliquez sur "Lancer" tout en laissant les autres paramètres intacts.
On peut voir maintenant des zones apparaître sur le graphe de décision. Chacune de ces zones représente la ligne de décision d'un neurone : si un point se trouve dans une de ces zones, il sera considéré comme faisant partie de la classe correspondante.
</div>
## Structure du réseau monocouche
Le réseau monocouche permet de choisir quel type de neurone utiliser. Dans le cadre de PerceptronViewer, des neurones ADALINE ont été utilisés.
Afin de clarifier les schémas de réseaux complexes, les perceptrons sont représentés par un cercle.
![Schéma général de la structure d'un réseau de neurones monocouche](helptext/img/monolayerSchema.png)
Chaque neurone est connecté à toutes les entrées et la valeur de leur sortie va déterminer la classe à laquelle l'exemple appartient.
## Fonctionnement de l'entraînement
L'entraînement va dépendre du type de neurone utilisé. Globalement, deux approches principales existent :
1. Entraîner tous les neurones simultanément : au moment de la correction des poids synaptiques, on parcourt tous les neurones.
2. Entraîner les neurones séparément : considérer les neurones comme des réseaux séparés. On entraîne le premier réseau, puis on passe au suivant.
La méthode d'entraînement utilisée dans PerceptronViewer est la première car elle se rapproche de l'entraînement du réseau multicouches, ce qui évite d'implémenter des méthodes différentes.
<div class="exercice">
Exploitons l'avantage du réseau monocouche en utilisant un dataset composé de 3 classes :
- <span>Dataset</span> : `Classification - 3 classes (linéairement séparable)`
Puis cliquez sur "Lancer" tout en laissant les autres paramètres intacts.
On obtient une séparation nette entre les 3 classes qui est assez bien généralisée (si l'on ajoute un nouveau point, il sera dans la classe la plus proche)
</div>