Algorithme SMO de John C.Platt

Fermé
idimed Messages postés 1 Date d'inscription vendredi 12 décembre 2008 Statut Membre Dernière intervention 12 décembre 2008 - 12 déc. 2008 à 11:57
 Rachid - 21 janv. 2009 à 22:02
Bonjour,
Je travaille sur les SVM pour la classification et je suis en phase d'implémenter l'algorithme smo de John C. Platt .
Quelqu'un pourrait m'expliquer comment choisir les paires des multiplicateurs Lagrange à optimiser ?

1. Est ce qu'on applique les 2 heuristiques de choix sur l'ensemble des données d'apprentissage (choix de la paire dans cet ensemble) pour ensuite optimiser les non-bornés ?

2. Ou bien on choisit alpha1 dans l'ensemble des données et alpha2 dans les non bornés pour ensuite aller dans l'ensemble des non bornés pour leur optimisation?

Je vous en remercie d'avance.

1 réponse

L’implémentation de l’algorithme SMO est construite autour de 4 étapes :
Etape 1 : elle concerne le choix du premier multiplicateur, cad la premiere heuristique,
• Parcourir l’ensemble des données pour chercher violateur des conditions de KKT ;
• s’il existe, aller à l’étape 2 ;
• Sinon parcourir l’ensemble des non bornés pour chercher violateur KKT ;
• S’il existe aller à l’étape 2 ;
• On alterne entre les 2 ensembles pour chercher . Lorsque tous les multiplicateurs vérifient les conditions de KKT, l’algorithme s’arrête.
Etape 2 : c le choix du deuxieme multiplicateur, cad la deuxieme heuristique,
• Chercher dans l’ensemble des non bornés qui maximise l’écart de prédiction .
• Si et identiques, abandonner la valeur de et aller à l’étape 3.
• Sinon, calculer L, H pour :
Si L=H : ( ne fait pas l’optimisation) : abandonner la valeur de et aller à l’étape 3.
Sinon calculer la valeur du pas :
Si >0 : MAJ de selon formule adéquate
Si =0 : Calculer les valeurs de la fonction objectif aux points L et H, et prendre la valeur qui augmente la fonction objectif
Si << tolérance, abandonner sa valeur et aller à l’étape 3.
Sinon aller à l’étape 4.

Etape 3 : tjrs le deuxieme multiplicateur
•Parcourir l’ensemble des non bornés en commençant par un choix aléatoire, jusqu’à trouver qui fait l’optimisation de l’étape 2.
•S’il n’existe pas, parcourir l’ensemble des données, commençant par un choix aléatoire jusqu’à trouver qui fait l’optimisation de l’étape 2.
•Si n’existe pas dans les deux cas, abandonner trouvé et retourner à l’étape1 pour choisir violateur des conditions de KKT.
Etape 4 :
•Calculer la nouvelle valeur de , mettre à jour (biais b, erreurs caches Ei)et stocker les nouvelles valeurs de et .
•Retour à l’étape 1


Bon courage
4