diff --git a/backup-slides.tex b/backup-slides.tex index fa752e5..321d354 100644 --- a/backup-slides.tex +++ b/backup-slides.tex @@ -10,7 +10,7 @@ \section{Modèles à variables latentes pour collection de réseaux bipartites} \begin{frame} - \frametitle{Latent Block Model (LBM\footnotemark[2])} + \frametitle{Latent Block Model (LBM)} %DONE remplacer i \in bullet par Zi = \bullet Proposé par~\cite{govaertEMAlgorithmBlock2005}. \begin{columns} @@ -18,92 +18,7 @@ \begin{figure}[H] \center \begin{tikzpicture}[scale=0.35] - \tikzstyle{every state}=[draw, text=black,scale=0.95, - transform shape] - \tikzstyle{every state}=[draw=none,text=black,scale=0.75, - transform shape] - \tikzset{edge_proba/.style={draw=white, fill=none, - text=black}} - - \tikzstyle{every node}=[fill=blueind] - \node[edge_proba] (pi1) at (1,5.7) - {\textbf{$\pi_{{\color{blueind}\bullet}}$}}; - \node[state, draw=black!50] (R11) at (0,5) {\textbf{R11}}; - \node[state, draw=black!50] (R12) at (1,5) {\textbf{R12}}; - \node[state, draw=black!50] (R13) at (2,5) {\textbf{R13}}; - - \tikzstyle{every node}=[fill=cyanind] - \node[edge_proba] (pi2) at (6.75,5.7) - {\textbf{$\pi_{{\color{cyanind}\bullet}}$}}; - \node[state, draw=black!50] (R21) at (6.25,5) - {\textbf{R21}}; - \node[state, draw=black!50] (R22) at (7.25,5) - {\textbf{R22}}; - - \tikzstyle{every node}=[fill=electricblue] - \node[edge_proba] (pi3) at (10,5.7) - {\textbf{$\pi_{{\color{electricblue}\bullet}}$}}; - \node[state, draw=black!50] (R31) at (10,5) {\textbf{R31}}; - - \tikzstyle{every node}=[fill=burntorange, shape=rectangle] - \node[edge_proba] (pi3) at (0.5,-0.7) - {\textbf{$\rho_{{\color{burntorange}\bullet}}$}}; - \tikzstyle{every state}=[draw=none,text=black,scale=0.75, - transform shape, shape=rectangle] - \node[state, draw=black!50] (B1) at (0,0) {\textbf{C11}}; - \node[state, draw=black!50] (B2) at (1,0) {\textbf{C12}}; - \tikzstyle{every node}=[fill=goldenyellow, shape=rectangle] - \node[edge_proba] (pi3) at (4,-0.7) - {\textbf{$\rho_{{\color{goldenyellow}\bullet}}$}}; - \node[state, draw=black!50] (B3) at (3.5,0) {\textbf{C21}}; - \node[state, draw=black!50] (B4) at (4.5,0) {\textbf{C22}}; - \tikzstyle{every node}=[fill=peach, shape=rectangle] - \node[edge_proba] (pi3) at (10,-0.7) - {\textbf{$\rho_{{\color{peach}\bullet}}$}}; - \node[state, draw=black!50] (B5) at (10,0) {\textbf{C31}}; - - \tikzstyle{every edge}=[-,>=stealth',shorten - >=1pt,auto,draw,line width=1.5pt,draw opacity=0.2] - - \path (R11) edge[-,>=stealth',shorten - >=1pt,auto,draw=gray,line width=1.5pt, fill=gray, opacity=1] node[left, - fill=none] {$\alpha_{{\color{blueind}\bullet}{\color{burntorange}\bullet}}$} - (B1); - \path (R11) edge (B2); - \path (R11) edge (B3); - \path (R11) edge (B4); - - \path (R12) edge [] (B1); - \path (R12) edge (B2); - \path (R12) edge (B3); - \path (R12) edge (B4); - - \path (R13) edge [] (B1); - \path (R13) edge (B2); - \path (R13) edge (B3); - \path (R13) edge[-,>=stealth',shorten - >=1pt,auto,draw=gray,line width=1.5pt, fill=gray, opacity=1] node[midway, left, - fill=none] {$\alpha_{{\color{blueind}\bullet}{\color{goldenyellow}\bullet}}$} - (B4); - - \path (R21) edge[-,>=stealth',shorten - >=1pt,auto,draw=gray,line width=1.5pt, fill=gray, opacity=1] node[midway, - right, fill=none] - {$\alpha_{{\color{cyanind}\bullet}{\color{goldenyellow}\bullet}}$} (B3); - \path (R21) edge (B4); - \path (R21) edge (B5); - - \path (R22) edge (B3); - \path (R22) edge (B4); - \path (R22) edge[-,>=stealth',shorten - >=1pt,auto,draw=gray,line width=1.5pt, fill=gray, opacity=1] node[midway, left, - fill=none] {$\alpha_{{\color{cyanind}\bullet}{\color{peach}\bullet}}$} (B5); - - \path (R31) edge[-,>=stealth',shorten - >=1pt,auto,draw=gray,line width=1.5pt, fill=gray, opacity=1] node[midway, - right, fill=none] - {$\alpha_{{\color{electricblue}\bullet}{\color{peach}\bullet}}$} (B5); - + \input{figures/lbm.tex} \end{tikzpicture} \caption{Exemple de LBM\footnotemark} \label{fig:LBMvisu} @@ -284,92 +199,7 @@ \begin{adjustbox}{trim=0 0 1 1.5cm} \begin{tikzpicture}[scale=.33] \begin{scope}[xshift=18cm, yshift=2cm] - \tikzstyle{every state}=[draw=none, text=black,scale=0.75, - transform shape] - \tikzset{edge_proba/.style={draw=white, fill=none, - text=black}} - - \tikzstyle{every node}=[fill=blueind] - \node[edge_proba] (pi1) at (1,5.7) - {\textbf{$\pi_{{\color{blueind}\bullet}}$}}; - \node[state, draw=black!50] (R11) at (0,5) {\textbf{R11}}; - \node[state, draw=black!50] (R12) at (1,5) {\textbf{R12}}; - \node[state, draw=black!50] (R13) at (2,5) {\textbf{R13}}; - - \tikzstyle{every node}=[fill=cyanind] - \node[edge_proba] (pi2) at (6.75,5.7) - {\textbf{$\pi_{{\color{cyanind}\bullet}}$}}; - \node[state, draw=black!50] (R21) at (6.25,5) - {\textbf{R21}}; - \node[state, draw=black!50] (R22) at (7.25,5) - {\textbf{R22}}; - - \tikzstyle{every node}=[fill=electricblue] - \node[edge_proba] (pi3) at (10,5.7) - {\textbf{$\pi_{{\color{electricblue}\bullet}}$}}; - \node[state, draw=black!50] (R31) at (10,5) {\textbf{R31}}; - - \tikzstyle{every node}=[fill=burntorange, shape=rectangle] - \node[edge_proba] (rho1) at (0.5,-1) - {\textbf{$\rho_{{\color{burntorange}\bullet}}$}}; - \tikzstyle{every state}=[draw=none,text=black,scale=0.75, - transform shape, shape=rectangle] - \node[state, draw=black!50] (B1) at (0,0) {\textbf{C11}}; - \node[state, draw=black!50] (B2) at (1,0) {\textbf{C12}}; - \tikzstyle{every node}=[fill=goldenyellow, shape=rectangle] - \node[edge_proba] (rho2) at (4,-1) - {\textbf{$\rho_{{\color{goldenyellow}\bullet}}$}}; - \node[state, draw=black!50] (B3) at (3.5,0) {\textbf{C21}}; - \node[state, draw=black!50] (B4) at (4.5,0) {\textbf{C22}}; - \tikzstyle{every node}=[fill=peach, shape=rectangle] - \node[edge_proba] (rho3) at (10,-1) - {\textbf{$\rho_{{\color{peach}\bullet}}$}}; - \node[state, draw=black!50] (B5) at (10,0) {\textbf{C31}}; - - \node[font=\small, text justified,draw=none, fill=none, - below = 0.05cm of rho2] {BiSBM}; - - \tikzstyle{every edge}=[-,>=stealth',shorten - >=1pt,auto,draw,line width=1.5pt,draw opacity=0.2] - - \path (R11) edge (B2); - \path (R11) edge (B3); - \path (R11) edge (B4); - - \path (R12) edge [] (B1); - \path (R12) edge (B2); - \path (R12) edge (B3); - \path (R12) edge (B4); - - \path (R13) edge [] (B1); - \path (R13) edge (B2); - \path (R13) edge (B3); - - \path (R21) edge (B4); - \path (R21) edge (B5); - - \path (R22) edge (B3); - \path (R22) edge (B4); - - \path (R11) edge[-,>=stealth',shorten - >=1pt,auto,draw=gray,line width=1.5pt, fill=gray, opacity=1] node[left, - fill=none] {$\alpha_{{\color{blueind}\bullet}{\color{burntorange}\bullet}}$} - (B1); - \path (R13) edge[-,>=stealth',shorten - >=1pt,auto,draw=gray,line width=1.5pt, fill=gray, opacity=1] node[midway, left, - fill=none] {$\alpha_{{\color{blueind}\bullet}{\color{goldenyellow}\bullet}}$} - (B4); - \path (R21) edge[-,>=stealth',shorten - >=1pt,auto,draw=gray,line width=1.5pt, fill=gray, opacity=1] node[midway, - anchor=center, fill=none] - {$\alpha_{{\color{cyanind}\bullet}{\color{goldenyellow}\bullet}}$} (B3); - \path (R22) edge[-,>=stealth',shorten - >=1pt,auto,draw=gray,line width=1.5pt, fill=gray, opacity=1] node[midway, left, - fill=none] {$\alpha_{{\color{cyanind}\bullet}{\color{peach}\bullet}}$} (B5); - \path (R31) edge[-,>=stealth',shorten - >=1pt,auto,draw=gray,line width=1.5pt, fill=gray, opacity=1] node[midway, - right, fill=none] - {$\alpha_{{\color{electricblue}\bullet}{\color{peach}\bullet}}$} (B5); + \input{figures/lbm.tex} \end{scope} \begin{scope}[xshift=3cm, yshift = 1cm] @@ -846,3 +676,13 @@ \bigskip \end{frame} + +\section{Autres questions} +\begin{frame}{\emph{Message passing} et \emph{Graph Convolutional Network}} + TODO Formule + Fonction de perte possible +\end{frame} + +\begin{frame}{Distance de Wasserstein} + TODO +\end{frame} \ No newline at end of file diff --git a/figures/network.tex b/figures/network.tex new file mode 100644 index 0000000..43e6548 --- /dev/null +++ b/figures/network.tex @@ -0,0 +1,7 @@ +\draw[thick] +(-0.5,0) node[vertex] (n1^4) {} +-- (0.25,2.2) node[vertex] (n2^4) {} +-- (2,1.6) node[vertex] (n3^4) {} +-- (-0.7,1.4) node[vertex] (n4^4) {} +-- (-0.9,1.0) node[vertex] (n5^4) {} +-- (0.8,1.2) node[vertex] (n6^4) {} -- cycle; \ No newline at end of file diff --git a/presentation.pdf b/presentation.pdf index 5483c90..d0ab119 100644 Binary files a/presentation.pdf and b/presentation.pdf differ diff --git a/principal.tex b/principal.tex index ed1e317..8e37732 100644 --- a/principal.tex +++ b/principal.tex @@ -8,7 +8,7 @@ AgroParisTech\\ {\small Cours optionnels suivis : statistiques spatiales, mathématiques pour la santé, ingénierie par la simulation informatique \dots} - \item 2022--2023, Année de césure + \item 2022--2023, Année de césure : stages \item 2023--2024, M2 Mathématiques pour les Sciences du Vivant, Université Paris-Saclay\\ {\small UC à choix 2\ieme semestre : modèles à variables @@ -24,11 +24,12 @@ Eurofins Food France. \item 2023 Janv.--Juillet, Détection de structures dans des collections de - réseaux bipartites et écriture du package implémentant la méthode. + réseaux bipartites et écriture du package implémentant la méthode.\\ Stage dans l’UMR MIA Paris-Saclay, supervisé par Pierre Barbillon. \item 2024 Avril--Sept., Détection de structures et clustering de réseaux - écologiques. Stage dans l’UMR MIA Paris-Saclay, supervisé par + écologiques.\\ + Stage dans l’UMR MIA Paris-Saclay, supervisé par Pierre Barbillon et Sophie Donnet. \end{itemize} @@ -88,7 +89,8 @@ \note[item]{Par exemple la détection de communauté, les calculs de métriques comme la centralité} \end{itemize} - Mais des motivations pour considérer des collections : + Mais des motivations pour proposer des méthodes adaptées aux collections + de réseaux : \begin{itemize} \item Espèces différentes, rôles analogues. % Des espèces différentes dans plusieurs réseaux pourrait @@ -169,7 +171,7 @@ \end{frame} \begin{frame}{Apport déjà réalisé} \begin{itemize} - \item Écriture du modèle colBiSBM. + \item Écriture du modèle \emph{colBiSBM}. \item Dérivation des formules d'inférence et d'un critère de sélection de modèle par vraisemblance pénalisée (choix du nombre de blocs). \item Implémentation des formules et du critère et développement @@ -178,7 +180,7 @@ \item Développement d'une méthode de partitionnement d'une large collection de réseaux basée sur la maximisation d'un critère de sélection de modèle. - \item Implémentation du code intégrée au package\footnote{ + \item Écriture du code et intégration au package\footnote{ \scalebox{0.8}{\faGithub~ \url{https://github.com/Chabert-Liddell/colSBM}}} \emph{colSBM}. \note[item]{Pendant mon stage actuel} @@ -290,37 +292,42 @@ \end{figure} \footnotesize - \only<1>{ \begin{block}{\small Problème des graphes pour les réseaux de neurones : - \textbf{prise en compte des invariances}} + \textbf{prise en compte des invariances par permutation}} \begin{itemize} - \item Utilisation des \emph{Graph Convolutional Networks} de - \cite{kipfSemiSupervisedClassificationGraph2017} résout ce problème. - \item Utiliser des \emph{Variational AutoEncoder} de - \cite{kingmaAutoEncodingVariationalBayes2022c} et de - \cite{kipfVariationalGraphAutoEncoders2016} pour projection des - n\oe uds dans un espace latent. - \item Explorer le \emph{Deep Latent Space Model} - de~\cite{yangDeepLatentSpace2024} + \item Utilisation des \emph{Graph Convolutional Networks} + résout ce problème. \parencite{ + kipfSemiSupervisedClassificationGraph2017} + \item Utiliser des \emph{Variational AutoEncoder} + pour projeter les n\oe uds dans un espace latent. + \parencite{kingmaAutoEncodingVariationalBayes2022c, + kipfVariationalGraphAutoEncoders2016} + \item Explorer le \emph{Deep Latent Space Model}. + \parencite{yangDeepLatentSpace2024} \end{itemize} \end{block} - } - \only<2>{ - \begin{block}{Idées à explorer pour la comparaison de réseaux} - \begin{itemize} - \item \emph{Embedding} commun des n\oe uds des réseaux à comparer sur un même espace - latent. Puis comparaison des distributions ainsi obtenues. - \item Encodeurs différents mais un décodeur commun pour comparer les - représentations obtenues - \end{itemize} - \end{block} - } - + \end{frame} +\begin{frame}{À développer pour la comparaison de réseaux} + \begin{figure} + \centering + \includegraphics[scale=0.17]{img/vae.png} + \caption{Schéma d'\cite{AutoencodeurVariationnel2024}} + \end{figure} + \begin{itemize} + \item \emph{Embedding} joint des n\oe uds des $M$ réseaux à comparer sur un même espace + latent. Puis comparaison des distributions ainsi obtenues. + \item Encodeurs différents mais un décodeur commun pour comparer les + représentations obtenues + \end{itemize} \end{frame} + + + + % \begin{frame}[allowframebreaks]{\emph{Graph Neural Networks}} % \begin{figure} % \includegraphics[scale=0.4]{img/Message_passing.pdf} @@ -376,8 +383,13 @@ \begin{column}{0.4\textwidth} \begin{figure}[t] \centering - TODO Ici une image avec des liens de probas proches pour faire commentaire + % TODO Ici une image avec des liens de probas proches pour faire commentaire % \includegraphics[scale=0.25]{img/plot_model_function_eps.png} + \begin{tikzpicture}[ + vertex/.style = {circle, draw, inner sep=1pt, fill=blue!30!white}, + ] + \input{figures/network.tex} + \end{tikzpicture} \caption{Réseau de co-occurence inféré} \label{fig:otu-synthetiques} \end{figure} @@ -389,13 +401,13 @@ OTU\footnote{Unité Taxonomique Opérationnelle} \item Incertitude d'inférence disponible mais négligée par la suite, important pour les réseaux microbiens seulement inférés - \item Autre limites et détails + \item Détails et autre limites dans~\cite{matchadoNetworkAnalysisMethods2021} \end{itemize} \end{frame} -\begin{frame}{Idées à explorer pour l'inférence jointe de réseaux} +\begin{frame}{À développer pour l'inférence jointe de réseaux} \begin{itemize} \item Avec $M$ tableaux d'OTU, on peut supposer : \begin{block}{Modèle hiérarchique} @@ -420,7 +432,7 @@ \centering \begin{chronology}[1]{2024}{2028}{\textwidth}[110ex] \eventspan {\decimaldate{1}{10}{2024}}{\decimaldate{1}{6}{2025}}% - {\small\textbf{\color{blue} Collections \& modèles à variables latentes}}[blue][.3][0.1] + {\textbf{\color{blue} Collections \& modèles à variables latentes}}[blue][.3][0.1] \eventspan {\decimaldate{1}{5}{2025}}{\decimaldate{1}{10}{2026}}% {\textbf{\color{red} \emph{Embedding} de n\oe uds par \emph{Deep Learning}}}[red][.3][0.1] \eventspan {\decimaldate{1}{3}{2026}}{\decimaldate{1}{4}{2027}}%