4.8 KiB
ADAptative LINear Element
ADALINE est une variante de la descente du gradient
La descente du gradient attend d'avoir évalué chaque exemple du dataset avant de corriger les poids synaptiques et de calculer l'erreur quadratique moyenne. ADALINE rends le processus plus rapide en corrigeant les poids à chaque exemple, comme le Perceptron.
On peut considérer ADALINE comme un Perceptron avec la fonction linéaire comme fonction d'activation et une condition d'arrêt de l'entraînement qui utilise l'erreur quadratique moyenne.
Structure d'ADALINE
Pas de changement par rapport à la structure de la Descente du gradient.
Fonctionnement de l'entraînement
En comparaison à la Descente du gradient, la correction des poids se fait à chaque évaluation d'un exemple, comme pour le Perceptron.
- On initialise les poids synaptiques.
- On commence l'entraînement : pour chaque exemple du dataset choisi, on évalue la sortie du Perceptron (
y). - On fait le calcul de l'erreur (notée
e), en soustrayant la sortie du Perceptron à la sortie attendue (le label). - On met à jour les poids synaptiques avec la même formule que le Perceptron : on ajoute à la valeur du poids l'erreur multipliée par la valeur de l'exemple assignée à l'entrée, multipliée par le Taux d'apprentissage. Ce qui donne :
w_i' = w_i + \eta \times (\text{label } - y) \times x_ipour tout poids synaptiqueioùw_i'est le poids synaptique corrigé etx_iest l'entrée numéroi. - Une fois tous les exemples du dataset parcourus, on calcule l'erreur quadratique moyenne (
E) avec les derniers poids synaptiques. - Si l'erreur quadratique moyenne est plus petite que l'erreur minimale ou que le nombre maximal d'époques a été atteint, l'entraînement est terminé. Sinon, on recommence à partir du point 2.
- Dataset :
Classification - Oblique (linéairement séparable)
Puis cliquez sur "Lancer" tout en laissant les autres paramètres intacts.
Cliquez sur le bouton Afficher uniquement l'erreur quadratique moyenne, la ligne que l'on peut voir est moins "douce" et contient des "bosses" avec les mêmes paramètres que la descente du gradient. Cela est dû au fait que les corrections se font à chaque exemple du dataset. Le taux d'apprentissage devrait être mis un peu plus bas pour faire disparaître ces "bosses", mais ici elles sont encore petites et ne posent pas de problèmes.
Ajustements du Taux d'apprentissage
La descente du gradient est plus lente que le Perceptron. Est-ce qu'ADALINE règle ce problème ?
- Dataset :
Classification - Oblique (linéairement séparable) - Taux d'apprentissage : entre
0.002et0.01(ex:0.005) - (Optionnel) Nombre maximum d'époques :
1000(plus d'époques seront affichées)
Puis cliquez sur "Lancer" tout en laissant les autres paramètres intacts.
On peut voir que le nombre d'époques que l'entraînement a pris est bien plus petit : de 200 à 900 époques en fonction du taux d'apprentissage choisi, contre presque 2000 pour le test contrôle.
Cliquez sur le bouton Afficher uniquement l'erreur quadratique moyenne, la ligne que l'on peut observer est encore moins douce. Les "bosses" sont amplifiées à cause de la hausse du taux d'apprentissage.
Avec un taux d'apprentissage trop haut
On a déjà vu avec la descente du gradient ce que faisait un taux d'apprentissage trop bas et trop haut. Mais comme on le voit, l'erreur quadratique moyenne du perceptron forme des bosses qui s'amplifient avec le taux d'apprentissage. Que se passe-t-il alors quand le paramètre est trop haut ?
- Dataset :
Classification - Oblique (linéairement séparable) - Taux d'apprentissage :
0.023
Puis cliquez sur "Lancer" tout en laissant les autres paramètres intacts.
Les erreurs vacillent et le neurone a du mal à converger.
Cliquez sur le bouton Afficher uniquement l'erreur quadratique moyenne, les bosses de la ligne sont trop amplifiées et l'entraînement se joue sur la chance de tomber sur le bon prochain exemple. Relancer l'entraînement plusieurs fois et vous aurez des nombres d'époque finale différents. Ce n'est bien sûr pas optimal sauf si l'on se sent chanceux.
Mettre une valeur de taux d'apprentissage encore plus haute va donner le même résultat que la descente du gradient : des valeurs de poids qui s'emballent dans des extrêmes.
