Théorie de l'information et du codage (2013-2014)

Last modification: 23 December 2013 10:00

Evaluations

Les points ne sont plus disponibles.

Informations

  • Suite à une remarque après la répétition du 10/10, petite précision:
    La factorisation P(A,B,C) = P(C).P(B|C).P(A|B) correspond bien à deux réseaux bayésiens (A→B→C et C→B→A). Plusieurs réseaux peuvent effectivement correspondre à la même factorisation de la distribution conjointe.
  • Agenda

    19/09
    26/09 Projet 1 Présentation du travail
    Enoncé, Fichiers Matlab
    3/10 Q & R Séance de questions/réponses pour le projet 1
    6/10 Deadline Date limite de remise du projet 1
    10/10 TP

    Projet 1

    Projet 2
    Séance d'exercices sur les réseaux bayésiens (Enoncé)

    Feedback

    Présentation du travail
    Enoncé, Fichiers Matlab
    17/10 Q & R Séance de questions/réponses pour le projet 2
    22/10 Deadline Date limite de remise du projet 2
    24/10 Projet 2

    Projet 3
    Feedback

    Présentation du travail
    Enoncé, Fichiers Matlab
    31/10 Q & R Séance de questions/réponses pour le projet 3
    7/11 Q & R Séance de questions/réponses pour le projet 3
    10/11 Deadline Date limite de remise du projet 3
    14/11 Projet 3

    Projet 4
    Feedback

    Présentation du travail
    Enoncé, Fichiers Matlab
    21/11 Q & R Séance de questions/réponses pour le projet 4
    28/11 Q & R Séance de questions/réponses pour le projet 4
    1/12 Deadline Date limite de remise du projet 4
    5/12 - -
    12/12 - -
    19/12 Projets 3 et 4

    TP
    Feedback

    Séance d'exercices récapitulatifs (Enoncé)

    Questions fréquemment posées (F.A.Q.)

    Il est fortement conseillé d'assister à la séance de Q/R et de lire la F.A.Q. avant de poser des questions par mail.

      Général

    • Rédaction des rapports
      Les rapports peuvent être rédigés, au choix, en anglais ou en français.

    • Envoi des rapports
      Les rapports doivent être envoyés au format PDF. Cela n'impose pas l'utilisation de Latex pour autant, il est possible de générer des fichiers PDF à partir de Word et autres programmes de traitement de texte.

    • Projet 1

    • Comment calculer un logarithme particulier dans Matlab?
      Les logarithmes les plus courants sont déjà définis dans Matlab. Il existe par exemple des fonctions log2, log10. Pour des bases moins répandues, utilisez un quotient de logarithmes.

    • Un exemple de fonctionnement de la première fonction...

      entropy(data,musc) = 0.9934

      N'oubliez pas de laisser les fonctions sous la forme de l'énoncé. Par exemple, entropy(data,var,node_sizes) n'est pas bon.

    • Projet 2

    • J'ai du mal à saisir l'intérêt de cette toolbox dans les deux premières questions, un raisonnement "à la main" n'est-il pas suffisant?
      L'idée de ce projet est vous familiariser avec une représentation du réseau bayésien et avec la toolbox. Oui, il est vrai que la toolbox n'est pas nécessaire pour les 4 fonctions demandées. Un raisonnement à la main aurait évidemment été possible mais ici, l'objectif est d'utiliser la toolbox pour principalement être capable de créer un réseau bayésien sous la forme d'une matrice d'adjacence. Cela servira dans le prochain projet (où la difficulté sera placée ailleurs que dans la création du réseau).

    • Pour la question 3: est-ce un simple raisonnement sur la matrice d'adjacence? C'est-à-dire: la fonction prend une matrice d'adjacence et un noeud en entrée et donne les noeuds directement accessibles? Par ailleurs, ce graphe est-il dirigé ou non-dirigé?
      Oui, la fonction n'a pas besoin de savoir si le graphe est dirigé ou non. Il faut juste juste réfléchir sur le sens du parcours et si le parcours est possible ou non dans le cas d'un arc dirigé ou non-dirigé.

    • Pour la fonction node_parent, pourriez-vous donner un exemple d'utilisation ? C'est surtout par rapport à l'argument candidates que j'ai des doutes: est-ce un vecteur de 2 nœuds ou 2,3,4.. nœuds ? Car la fonction ask_oracle ne permet d'utiliser que deux nœuds et cette dernière est utilisée dans la détection de la v-structure.
      Je vous propose un exemple assez bateau de manière à illustrer ce que fait la fonction, n'hésitez pas à me demander un exemple plus précis si ce n'est pas assez clair.

      node_parent([la maman de Mathilde, le papa de Mathilde, le papa de France, la maman de France], Mathilde)
      → [maman de Mathilde, papa de Mathilde]
      node_parent([maman de Matthieu, papa de Matthieu], Mathilde)
      → []
      node_parent([maman de Mathilde, papa de France],Mathilde)
      → []
      Et supposons qu'un noeud ait 3 parents et que tous les noeuds (sauf le noeud considéré) soient dans "candidates", la fonction retournerait les 3 parents.
      La fonction retourne, dans tous les cas, un vecteur de noeuds (vide éventuellement).

    • Qu'est-ce que "progager l'information de direction" veut dire?
      Cela signifie qu'une fois qu'une v-structure a été détectée, il est possible d'orienter certains arcs.

    • Projet 3

      Pour le projet 3, il est conseillé de lire attentivement la théorie à propos de la comparaison d'encodages dont les tailles d'alphabet sont différentes!
    • Je n'arrive pas à utiliser bn_mut_inf, je reçois toujours un message d'erreur: (ligne 11) if not(isequal(marg.domain,variables)). Je fais "bn_mut_inf(marg,i,j,[ ]);" où marg est une matrice qui contient les probabilités conjointes des variables n° i et j (donc "marg(a,b) = P(Xi=a et Xj=b)" ) Est-ce bien comme cela qu'il faut utiliser cette fonction?
      Oui, c'est bien la bonne façon de l'utiliser. Cependant, la distribution marginale doit être du même format que celle retournée par le moteur d'inférence de Matlab, autrement dit une structure particulière, comme le mentionne l'aide de la fonction (en début de fichier) avec

      Its format (and ordering) is the same as the result of a call to an inference engine of the BNT.

      Par exemple pour deux variables, il s'agit d'une structure 1x1 qui possède quatre parties : domain, T (matrice 3x1), mu (vide) et sigma (vide).

    • Si je comprends bien, je dois utiliser un moteur d'inférence pour calculer cette distribution marginale? Dans ce cas, je dois créer un moteur d'inférence dans matlab, mais j'ai pour cela besoin de lui fournir un réseaux bayesien, que je ne connait pas puisque c'est pour sa création que j'utilise le moteur. Comment puis-je contourner ce fait de tourner en rond? Dois-je créer un réseau provisoire avec ce qui est écrit dans le user guide sous "maximum likelihood parameter estimation from complete data"?
      Vous avez la structure du réseau bayésien sous forme d'une matrice d'adjacence dans les données sous le nom "dag".

    • Projet 4