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

Images Discussion :

débuter avec les HMM


Sujet :

Images

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 17
    Points : 10
    Points
    10
    Par défaut débuter avec les HMM
    bonsoir
    je débute avec les HMM et je me pose quelque question:
    je veux faire une classification et je veux justement utiliser les HMM
    et j'ai 7 classes j'applique un prétraitement à mes images et comme résultat j'ai un vecteur caractéristique pour chaque image.
    1. est ce que je dois utiliser un modèle hmm pour chaque classe ou raisonner comme pour les svm si je considère la méthode un contre on donc je dois avoir 21 modèle.
    2. j'applique la règle des deux tiers pour l'apprentissage et le tiers pour l'évaluation comment puis je faire ça.
    3.comment dois je utiliser mes modèles pour tester mon système.
    sur matlab :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     [TRANS,EMIS] = hmmestimate(seq,states);
    permet d'estimer justement un hmm mais si j'ai plusieurs séquences représentant le même état comment faire leurs apprentissage je sais il y a hmmtrain mais je ne vois pas comment l'utiliser pour l'apprentissage de plusieurs séquence à la fois.
    merci de m'éclercir.

  2. #2
    Membre à l'essai
    Inscrit en
    Septembre 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    merci même si je n'ai pas eu de réponse mais en gros voila ce que j'ai fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     a=[1 1 1 1 3];b=[1 1 1 2 3];c=[1 1 2 2 3];d=[1 2 2 2 3];
     seq={a, b, c, d};
     e=ones(size(a));
    states={e,e,e,e*2};
     
     [TRANS,EMIS] = hmmestimate(seq,states);
    et voila l'erreur obtenue:
    Error using cell/unique (line 85)
    Input A must be a cell array of strings.
    
    Error in hmmestimate (line 67)
    uniqueSymbols = unique(seq);
    
    Error in hmmbrouillon (line 19)
     [TRANS,EMIS] = hmmestimate(seq,states);

  3. #3
    Modérateur

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Août 2014
    Messages
    1 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 1 295
    Points : 2 385
    Points
    2 385
    Par défaut
    Bonjour,

    Je ne peux pas trop t'aider car je ne connais pas la statistics toolbox, mais il semblerait ici que seq doit être un tableau de cellules contenant des strings.

    Peut être ceci?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     seq={'a', 'b', 'c', 'd'};
    Si vous cherchez des réponses sur ce forum il faudra avant tout expliquer clairement votre problème et exposer la démarche que vous avez entreprise pour le résoudre. Fournissez une base de travail et de réflexion à vos interlocuteurs!

  4. #4
    Membre à l'essai
    Inscrit en
    Septembre 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    bonjour
    mon problème n'est toujours pas réglé.
    quand la séquence est en faite une série de vecteurs (en cellule) comment dois je organiser mes states pour utiliser hmmestimate

  5. #5
    Membre habitué
    Profil pro
    Doctorante
    Inscrit en
    Mai 2012
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Doctorante

    Informations forums :
    Inscription : Mai 2012
    Messages : 130
    Points : 197
    Points
    197
    Par défaut
    Salut,

    Alors pour commencer, pour faire ta classification, ça va marcher classe par classe (= 1 HMM par émotion)

    Ensuite il va falloir que tu sois plus spécifique sur le type de "vecteurs caratéristiques" que tu as pour chaque image. En particulier parce qu'un HMM est à la base construit pour traiter des données dynamiques = séries de vecteurs. Pour chaque image (vidéo?) d'émotion, il serait donc intéressant d'avoir une série de vecteurs ordonnés. Je vais te laisser nous spécifier ce que tu as comme données pour voir ensuite comment traiter ça.

    Troisièmement, si je comprends bien ce que tu veux faire, à savoir : créer des modèles pour représenter chaque émotion par le biais d'un HMM, tu n'utilises pas la bonne fonction.
    hmmestimate permet d'estimer les matrices de transition et d'émission à partir des données ET de la suite connues des states (ou états) auxquels ces données correspondent. Ce n'est pas ton cas a priori.
    Pour entraîner un modèle, c'est hmmtrain qu'il faut utiliser. Ca prend les données en entrée (pour savoir si il faut des cell ou autre format >> help hmmtrain) + une estimation des matrices de transition et d'émission (que tu peux prendre random pour débuter ou utiliser une méthode des moments).

    Pour les hmms, les fonctionnalités de Matlab sont assez limitées. Je te conseille de jeter un coup d'oeil à la toolbox développée par Kevin Murphy qui intègre beaucoup plus de fonctions, des exemples et qui permet plus de flexibilité dans la création des modèles HMMs (sur Matlab, tu remarqueras par exemple que la distribution du state initiale n'est pas intégrée).

    Je vais essayer de suivre cette discussion bien que je sois un peu débordée en ce moment. Ne t'attends pas à une solution toute faite mais pour les discussions constructives, je serais là

  6. #6
    Membre à l'essai
    Inscrit en
    Septembre 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    merci d'avoir répondu après avoir attendue longtemps je me suis orienté vers la quantification des séquences ( matrices), mais c'est pas encore fait.
    oui mes séquences sont des coefficients en curvelets mais si vous pouvez me donner un exemple simples avec les hmm cela m'aiderais vraiment merci encore une fois et bon courage

  7. #7
    Membre habitué
    Profil pro
    Doctorante
    Inscrit en
    Mai 2012
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Doctorante

    Informations forums :
    Inscription : Mai 2012
    Messages : 130
    Points : 197
    Points
    197
    Par défaut
    Je n'ai pas vraiment le temps pour coder un exemple. La toolbox que je t'ai indiquée en fournit et tu peux trouver beaucoup de cours sur internet qui donnent des exemples simples pour comprendre le fonctionnement des HMMs. Si tu as ensuite une question vraiment très précise, tu peux toujours revenir ici la poser. Si tu as un bout de code, c'est encore mieux. Bon courage à toi.

  8. #8
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2009
    Messages : 110
    Points : 57
    Points
    57
    Par défaut
    salut tous le monde,
    esqu'on peu combiner les HMM et SVM pour la classification audio, parceque j'ai pas trouver grande chose sur internet, si vous avez des conseils ou des tuto simple merci de les partager,
    slt

  9. #9
    Membre habitué
    Profil pro
    Doctorante
    Inscrit en
    Mai 2012
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Doctorante

    Informations forums :
    Inscription : Mai 2012
    Messages : 130
    Points : 197
    Points
    197
    Par défaut
    Salut,

    Tu peux regarder cet article :
    http://www.ibug.doc.ic.ac.uk/media/u...ntic-FINAL.pdf

    et celui-ci :
    http://cs.brown.edu/~th/papers/AltTsoHof-ICML2003.pdf

    Il semble qu'il y ait plusieurs façons de combiner les 2. C'est un sujet qui n'a pas été beaucoup étudié. Il faut voir que ces deux méthodes reposent sur des principes totalement différents. Les SVMs sont discriminatifs, les HMMs génératifs. Les premiers ne permettent que de discriminer entre 2 classes, les seconds permettent de modéliser des données, et ont la capacité de générer des données similaires.

Discussions similaires

  1. [Delphi 7] Questions pour débuter avec les bases de données
    Par DamKre dans le forum Bases de données
    Réponses: 6
    Dernier message: 25/09/2007, 16h06
  2. Débuter avec les sessions
    Par Leena666 dans le forum Langage
    Réponses: 3
    Dernier message: 24/04/2007, 10h40
  3. [BCB6] Débuter avec les sockets
    Par randa1 dans le forum C++Builder
    Réponses: 1
    Dernier message: 08/02/2007, 11h23
  4. [VB .Net][MDI]Débuter avec les MDI
    Par toto4650 dans le forum Windows Forms
    Réponses: 15
    Dernier message: 19/01/2006, 11h27

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