Version final principal

This commit is contained in:
Louis Lacoste 2024-05-23 00:44:25 +02:00
parent 8a2e9b9c46
commit 08e4f80499
4 changed files with 64 additions and 205 deletions

View file

@ -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}

7
figures/network.tex Normal file
View file

@ -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;

Binary file not shown.

View file

@ -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 lUMR MIA Paris-Saclay, supervisé par Pierre Barbillon.
\item 2024 Avril--Sept., Détection de structures et clustering de réseaux
écologiques. Stage dans lUMR MIA Paris-Saclay, supervisé par
écologiques.\\
Stage dans lUMR 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}
\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} commun des n\oe uds des réseaux à comparer sur un même espace
\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{block}
}
\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}}%