mpstarix a écrit 3 commentaires

  • [^] # Re: Algorithme génétique ?

    Posté par  . En réponse à la dépêche Améliorer les performances du noyau avec un algorithme génétique. Évalué à 1.

    Heu "tableau de décodage incorrect" d'après Adobe Reader 6...

    Je suis très sceptique quant à la nécessité d'avoir un problème gaussien pour utiliser les ML : je n'ai aucun souvenir d'une telle contrainte, et d'après les quelques sites qui parlent de ML, je n'ai pas trouvé cette contrainte dans les hypothèses. Et d'ailleurs, vu que ça repose sur le Théorème des fonctions implicites qui lui même repose, si mes souvenirs sont bons sur le théorème d'inversion locale), il n'y a pas d'hypothèse sur la répartition statistique des points. Du reste, j'imagine qu'au prix d'une mesure de distance appropriée, et en regardant le problème de suffisamment loin, on ne doit pas être trop loin d'une loi Gaussienne (le théorème central limite aide un peu).

    Et puis les problèmes de reconnaissance / tri sont souvent basés sur le concept "une collection de prototypes, et je cherche à trouver le prototype le plus proche de mon exemple", donc l'idée que ce soit gaussien n'est pas complètement inepte. Enfin ça doit dépendre de ce pour quoi tu voudrais utiliser des SVM.
  • [^] # Re: Algorithme génétique ?

    Posté par  . En réponse à la dépêche Améliorer les performances du noyau avec un algorithme génétique. Évalué à 2.

    Exactement : Il faut trouver un vecteur (a1,...an,b) tel que pour chaque vecteur (x1,x2,..,xn), le produit (a1*x1 + ... + an*xn + b) soit plus grand que 1 ou plus petit que -1, ce qui s'interprete géométriquement comme la distance entre X et ton plan de séparation.

    En augmentant d'une dimension, avec pour coordonnée 1 le vecteur X, et en prenant les coords du plan noté sous la forme du vecteur A (a1,...,an,b), et quitte à changer des signes, il suffit d'avoir

    A.X >= 1 pour tout vecteur X. Avec m points, on a une famille de Xi (1<i<m) qui forme m contraintes

    et là, on optimize la fonction de la mort l1*A*X1 + ... + lm*A*Xm (où l1,..lm sont les multiplicateurs de Lagrange).

    Et la magie, c'est que les multiplicateurs de Lagrange sont non nuls si et seulement si le point réalise la limite de la contrainte.

    Donc, il y a un moyen mathématique connu (et simple ?) de trouver les points qui réalisent la limite.


    Par contre, je ne vois pas le rapport avec la gaussianité des problèmes. Le but est de réduire une population d'échantillons bien triés aux cas limite pour avoir un apprentissage (statistique) qui n'explose pas avec le nombre de samples. Typiquement, pour les points du plans, s'ils sont bien séparables, tu passes de n points à 3 ou 4 points. Au maximum 10.

    Si le problème n'est pas gaussien dans la dimension où tu le regardes, peut être qu'il l'est en dimension supérieure, ou avec un noyau plus astucieux que les polynômes.
  • [^] # Re: Algorithme génétique ?

    Posté par  . En réponse à la dépêche Améliorer les performances du noyau avec un algorithme génétique. Évalué à 7.

    En gros, le principe de base d'une SVM est le suivant :
    Séparer par un (hyper)plan des points d'un espace avec une marge maximale.

    "Avec les mains", tu imagines une population de points rouges et une autre de points bleus que tu sais séparer avec une droite. Ensuite, tu imagines que ta droite va enfler comme un matelas pneumatique et s'épaissir. Elle finit par prendre appui sur des points rouges et des points bleus "limite".

    Dans ce cas, tu prends le milieu de ton matelas pneumatique, et tu dis, "cette droite sépare mes points rouges et mes points bleus avec une marge (la moitié de l'épaisseur du matelas) maximale".

    L'intérêt principal de la méthode, c'est que tu n'as plus besoin de TOUS les points rouges et de TOUS les points bleus. Seuls les points "limite" suffisent à définir ta frontière.

    Maintenant, si on s'intéresse au cas non séparable, il faut faire un compromis sur la marge d'erreur (saleté de point bleu qui s'est mis au milieu des rouges !).

    Enfin, on peut essayer de passer dans des dimensions supérieures. Ca permet, en revenant à la dimension initiale, d'avoir une forme de délimitation plus complexe qu'un demi espace. Par exemple, en passant de la dimension 2 à la dimension 6, on sépare par des côniques (ellipse, parabole, hyperbole) au lieu de bête droites.

    Ce qui deivent intéressant, c'est de ne pas trier des points rouges et des points bleus, mais des vrais mails et du SPAM, en s'appuyant sur quelques mails "limite" définis par l'utilisateur.

    Pour plus d'infos sur la théorie, il faut commencer à maîtriser les multiplicateurs de Lagrange.

    D'autres explications sur http://www.kernel-machines.org/(...)