IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Expectation - Maximization


Sujet :

Algorithmes et structures de données

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 37
    Points : 33
    Points
    33
    Par défaut Expectation - Maximization
    salut tout le monde

    j'ai une base de donnée X dont x(j)un simple élément ( j = 1...N) par exemple le cas de N points dans un repère de deux dimension et que les éléments sont répartis en "k" groupe ( gaussien )

    alors il faut estimer la probabilité du mélange gaussien par la méthode " Espérance- maximisation"

    donc j'ai un probleme de concevoir cette méthode dans l'etape "E" , bon je suis ce qui est dit dans la page 2 de cet extrait :

    http://www-rech.telecom-lille1.eu/co...64-lachkar.pdf

    j'ai compris les formules mais quand j'ai voulu l'implémenter je ne comprenais pas certains choses, par exemple dans l'initialisation :

    1/ comment déterminer le nombre des gaussiens au depart (k), et le centre de chaque gaussion ! est-ce que je l'initialise à (0,0) !

    2/ quand j'ai fait la premiere itération j'ai trouvé que je ne peux pas calculer la valeur de la formule(3)
    cad le poids de chaque gaussien alors comment je peut itérer si la premiere itération ne me renvois pas une valeur ( car il ya toujours l'inconnu "alpha" ) !!

    pouvez vous mexpliquer svp ça fait 3 jours que j'essaye de la comprendre sans succès

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par Qt forever Voir le message
    1/ comment déterminer le nombre des gaussiens au depart (k), et le centre de chaque gaussion ! est-ce que je l'initialise à (0,0) !
    L'algo EM ne permet pas de déterminer le nombre (ni le type) de modèles qu'il y a dans le mélange. Il faut donc déterminer la valeur de "k" d'une autre façon (cf. "Cluster analysis")

    2/ quand j'ai fait la premiere itération j'ai trouvé que je ne peux pas calculer la valeur de la formule(3)
    cad le poids de chaque gaussien alors comment je peut itérer si la premiere itération ne me renvois pas une valeur ( car il ya toujours l'inconnu "alpha" ) !!
    C'est à toi de fournir les paramètres initiaux (poids + paramètres).

    On peut bien sur initialiser au hasard, mais les chances pour que l'algo converge sont assez mince (on peut faire plusieurs essais d'initialisation et garder le meilleur résultat).

    Le plus commun c'est d'utiliser les résultats de la "Cluster analysis" pour déterminer les paramètres. Dans le cas des gaussiennes, le plus important est d'estimer précisément le centre µ. C'est généralement suffisant pour que l'algo EM converge.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 37
    Points : 33
    Points
    33
    Par défaut
    merci bcp de votre réponse

    donc :

    "" Il faut donc déterminer la valeur de "k" d'une autre façon (cf. "Cluster analysis")"""
    il cite dans l'extrait qu'il utilise k-means , mais si je jette un coup d'oeil sur ma basse pour voir que mes données sont repartis en (par exemple) deux clusters , peux-je dépasser cette étape et donner directement ce nombre comme initialisation !
    maintenant comment je pourrai initialiser les centres de ces deux clusters !


    """C'est à toi de fournir les paramètres initiaux (poids + paramètres)."""
    voilà ce qui ma fait un conflit, dans l'extrait , il a indiqué qu'on initialise que les (paramatres = matrice de cov & µ ) donc il fallait aussi dire qu'on donne une valeur initiale a alpha ( le poids ) de chaque gaussien ! si c'est cela ! selon quoi ! au hasard ! comme :
    alpha(1) = 0.6
    alpha(2) = 0.4


    j'ai compris de votre message que si je fais une erreur au depart dans l'initialisation des centres µ(i), ça risque que mon algo ne converge plus !

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par Qt forever Voir le message
    peux-je dépasser cette étape et donner directement ce nombre comme initialisation !
    maintenant comment je pourrai initialiser les centres de ces deux clusters !
    Oui, tu peux directement utiliser une valeur empirique (k=2) pour le nombre de modèles ainsi que leur centre (µ).

    Si tu ne précise que leur nombre, il faudra estimer au mieux la valeur de leur centre. Le k-means est un bon moyen pour cela.

    donc il fallait aussi dire qu'on donne une valeur initiale a alpha ( le poids ) de chaque gaussien ! si c'est cela ! selon quoi ! au hasard ! comme :
    alpha(1) = 0.6
    alpha(2) = 0.4
    Oui. Le plus simple c'est de mettre des poids uniformes (alpha1 = alpha2 = 0.5) et laisser l'algo converger.

    j'ai compris de votre message que si je fais une erreur au depart dans l'initialisation des centres µ(i), ça risque que mon algo ne converge plus !
    Avec les gaussiennes, il faut que les centres initiaux soient assez proche des centre réels, sinon ca ne converge pas bien.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 37
    Points : 33
    Points
    33
    Par défaut
    en passant par le lien de wikipedia dans " la section 3 " j'ai vu :

    pour qu'on calcule la log-vraisemblance on fait :
    "" la sommation du log d'une sommation "" alors que dans l'extrait que je me base il est ecrit
    ""la log du produit d'une sommation"" !
    la quelle j'utilise ! c'est une erreur ou des versions de calculs !

  6. #6
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par Qt forever Voir le message
    en passant par le lien de wikipedia dans " la section 3 " j'ai vu :

    pour qu'on calcule la log-vraisemblance on fait :
    "" la sommation du log d'une sommation "" alors que dans l'extrait que je me base il est ecrit
    ""la log du produit d'une sommation"" !
    la quelle j'utilise ! c'est une erreur ou des versions de calculs !
    Les deux sont exactes, car c'est une propriété de la fonction Log :

    Log(a*b*c*...*z) = Log(a) + Log(b) + Log(c) + ... + Log(z)

    Donc le Log d'un produit est égal a la sommation du Log
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Salut , si vous pouvez me dire avec quoi on initialise les matrices de covariances et de moyennes , et qu'elle est la taille de chaque matrice ?

  8. #8
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 37
    Points : 33
    Points
    33
    Par défaut
    @pseudocode:
    Quand on fréquente pas les math , l'oubli sera le resultat obtenu

    Citation Envoyé par atef086 Voir le message
    si vous pouvez me dire avec quoi on initialise les matrices de covariances et de moyennes , et qu'elle est la taille de chaque matrice ?
    1/ matrice de covariance := matrice d'identité ( diagonal = 1 )
    2/les k Vecteur moyen := centre de différents gaussiens que vous avez estimé avec k-means
    3/ pour les poids de chaque gaussien :
    Citation Envoyé par pseudocode Voir le message
    Le plus simple c'est de mettre des poids uniformes (alpha1 = alpha2 = 0.5) et laisser l'algo converger.
    Remarque :
    Avec les gaussiennes, il faut que les centres initiaux soient assez proche des centre réels, sinon ca ne converge pas bien.

    4/ pour la taille ( j'ai pas encore implémenté cette partie ) mais je pense que K*K
    où k le nombre de clusters (gaussiens ) ( en attendant la confirmation )

  9. #9
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par Qt forever Voir le message

    2/les k Vecteur moyen := centre de différents gaussiens que vous avez estimé avec k-means
    k vecteurs ? ça veut dire que si k == 3 alors j'ai 3 vecteurs ?? et la taille de chaque vecteur est d ?

    Citation Envoyé par Qt forever Voir le message
    4/ pour la taille ( j'ai pas encore implémenté cette partie ) mais je pense que K*K
    où k le nombre de clusters (gaussiens ) ( en attendant la confirmation )
    pour moi je pense que c'est d*d (avec d == la dimension de données utilisées)

    Et encore une petite demande, dans l'article de LACHKAR et al.
    j'ai pu implémenter l'équation 4, mais apparemment j'ai fait une erreur dans l'implémentation de l'équation 5 et 6, la moyenne et un vecteur et la covariance et une matrice alors comment met à jour ces deux variables ?
    et comment faire le calcule de (xj - ùi) , et sa transposée.

  10. #10
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 37
    Points : 33
    Points
    33
    Par défaut
    """ k vecteurs ? ça veut dire que si k == 3 alors j'ai 3 vecteurs ?? et la taille de chaque vecteur est d ?"""

    oui c'est ça .


    """pour moi je pense que c'est d*d (avec d == la dimension de données utilisées) """

    je m'excuse vous avez raison cad si vos données sont sous un plan ( 2 dimensions ) alors la taille de matrice de covariance sera 2X2

  11. #11
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par Qt forever Voir le message
    je m'excuse vous avez raison cad si vos données sont sous un plan ( 2 dimensions ) alors la taille de matrice de covariance sera 2X2
    Non ce n'est pas le cas, pas 2*2, si tu utilise une image couleur RVB alors d = 3, sinon si tu utilise une image en niveau de gris alors d = 1.

  12. #12
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 37
    Points : 33
    Points
    33
    Par défaut
    """ si tu utilise une image couleur RVB alors d = 3, sinon si tu utilise une image en niveau de gris alors d = 1."""

    je ne sais pas pour les images , je parlais des données simples

Discussions similaires

  1. [java] algorithme Expectation-maximization (EM)
    Par pseudocode dans le forum Contribuez
    Réponses: 20
    Dernier message: 30/03/2017, 11h10
  2. Expectation-Maximization
    Par hakimetudiant dans le forum Algorithmes et structures de données
    Réponses: 0
    Dernier message: 10/04/2015, 11h53
  3. Réponses: 0
    Dernier message: 14/03/2015, 09h55
  4. Algorithme Expectation Maximization
    Par yarf dans le forum Algorithmes et structures de données
    Réponses: 22
    Dernier message: 08/05/2009, 18h52
  5. Taille d'un TForm à l'état Maximized
    Par Altau dans le forum C++Builder
    Réponses: 2
    Dernier message: 13/06/2003, 12h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo