L'exercice a pour objectif de démontrer qu'il n'existe pas de neurone linéaire à seuil calculant la fonction xor ce qui montre les limites de la séparation linéaire pour des fonctions Booléennes.
L'exercice montre que les fonctions or et and sur trois variables sont calculables par un neurone linéaire à seuil. Vous pouvez le montrer en écrivant les inéquations comme dans l'exercice précédent mais c'est un peu fastidieux donc nous allons faire fonctionner notre cerveau.
L'exercice montre des fonctions Booléennes linéairement séparables et non linéairement séparables.
L'exercice a pour objectif d'illustrer le fonctionnement de l'algorithme par correction d'erreur et noter le nombre de passages complets de l'échantillon.
En suivant l'exemple 12 sur la présentation des exemples avec en vecteur initial (1,1,1), il faut 5 présentations complète de l'échantillon et passer par les vecteurs distincts de poids successifs (1,1,1), (0,1,1), (-1,1,0), (-2,0,0), (-1,1,1), (-2,1,0), (-1,2,1), (-2,2,0), (-3,1,0), (-2,2,1), (-3,1,1), (-2,2,2) et (-3,2,1). Un passage complet permet de vérifier que ce vecteur de coefficients classe correctement les quatre exemples. Pour le vecteur initial, (-0.5,-0.5,1), on obtient (-1.5,-0.5,0), (-0.5,0.5,1), (-1.5,0.5,0), (-0.5,1.5,1), (-1.5,1.5,0), (-2.5,0.5,0), (-1.5,1.5,1), (-2.5,0.5,1), (-1.5,1.5,2), (-2.5,1.5,1).
L'exercice a pour objectif d'étudier le comportement de la correction d'erreur pour un échantillon non linéairement séparable.
J'ai choisi d'initialiser les poids à (1,1,1) et de passer les exemples dans l'ordre (0,0), (0,1), (1,0) et (1,1) de classes respectives -1, +1, +1 et -1. En procédant comme précédemment, on trouve la séquence de vecteurs de poids distincts (1,1,1), (0,1,1), (-1,0,0), (0,0,1), (-1,-1,0), (0,-1,1), (1,0,1), (0,-1,0), (-1,-1,0), (0,-1,1), (1,0,1) et (0,-1,0). On "voit" alors qu'on boucle sur ces quatre derniers vecteurs (-1,-1,0), (0,-1,1), (1,0,1) et (0,-1,0). Donc le programme ne termine pas ! On peut penser à modifier l'algorithme pour repérer que l'algorithme entre dans une boucle sans fin. Mais il existe des arguments théoriques (théorème 4 page 80) qui montrent que cette méthode n'est pas utilisable en pratique car la complexité de l'algorithme serait trop élevée.
L'exercice montre que différentes initialisations conduisent à des séparateurs linéaires différents.
Dans l'exemple 13, nous avons obtenu le séparateur x2 = 1/3 x1 - 1/3.
Avec l'initialisation par le vecteur (-3,0,1), si on passe l'exemple (0,2) (le vecteur (1,0,2) en ajoutant l'entrée x0 égale à 1) de classe +1, on modifie les poids en (-2,0,3). Si on continue à faire passer les exemples, le vecteur de poids n'est plus jamais modifié et donc l'algorithme converge vers le séparateur linéaire d'équation x2 = 1.5.
Avec l'initialisation par le vecteur (-3,-1,-1), si on passe les exemples dans le même ordre que dans l'exemple 13, on trouve les vecteurs de poids différents successifs (-3,-1,-1), (4,0,1.5), (3,-2,1.5). Ce vecteur de poids n'est plus jamais modifié et définit le séparateur linéaire d'équation x2 = 4/3 x1 -2.
L'exercice étudie des caractérisations et propriétés des fonctions convexes.
L'exercice applique le gradient stochastique pour comprendre les différences avec la correction d'erreur. Notez que le pas de gradient de 0.5 n'est pas une valeur usuelle car on choisit en général une valeur plus petite. Certains algorithmes diminuent le pas de gradient avec les étapes.
Faisons passer l'exemple (0,2) de classe +1. La sortie calculée avec le vecteur de coefficients (-3,0,1) est -3 x 1 + 0 x 0 + 1 x 2 = -1. On applique la formule (4.8) de la page 89, on obtient le vecteur de coefficients (-2.5,0,2). On fait passer l'exemple (1,1) de classe +1. La sortie calculée vaut -0.5. On obtient le vecteur de coefficients (-2.125,0.375,2.375). On fait passer l'exemple (1,2.5) de classe +1. La sortie calculée vaut 4.1875. On obtient le vecteur de coefficients (-2.921875,-0.421875,0.3828125). Il faut alors itérer ce calcul qui n'est pas possible manuellement et nécessite l'écriture d'un programme avec un critère d'arrêt.
Pour le fait que la solution est meilleure, nous avons vu dans l'exercice 38 que le séparateur linéaire obtenu avec l'algorithme par correction d'erreur dépend fortement de l'initialisation. En général, la descente de gradient va produire un séparateur plus robuste que la correction d'erreur.
L'exercice illustre des notions de base sur les SVMs.
L'exercice illustre une étude où il faut choisir le paramètre de régularisation C.
L'exercice illustre une étude pour le choix du noyau.