« home

Dropout

Creator: Petar Veličković (original)

Tags

machine learningneural networksregularization

Illustration of applying dropout with a rate of p=0.5p = 0.5 to a multilayer perceptron.


Dropout

  Edit

Overleaf Logo Open in Overleaf

  Download

PNG PNG (HD) PDF SVG TeX

  Code

dropout.tex (71 lines)

\documentclass[tikz]{standalone}

\usetikzlibrary{positioning}

\def\layersep{2}
\def\nodesep{1.5}

\begin{document}
\begin{tikzpicture}[
    node/.style={circle, draw, thick},
  ]

  \foreach \y in {1,...,5}{
      \node[node] (i\y) at (0,\nodesep*\y) {};
      \node[node, right=\layersep of i\y] (h1\y) {};
      \node[node, right=\layersep of h1\y] (h2\y) {};
    }

  \node[node, right=\layersep of h22] (o1) {};
  \node[node, right=\layersep of h24] (o2) {};

  \foreach \source in {1,...,5}
  \foreach \dest in {1,...,5}{
      \path[-stealth, thick] (i\source) edge (h1\dest);
      \path[-stealth, thick] (h1\source) edge (h2\dest);
    }
  \foreach \source in {1,...,5}
  \foreach \dest in {1,2}
  \draw[-stealth, thick] (h2\source) -- (o\dest);

  \draw[-stealth, thick] (7.5,3*\nodesep) -- node[above,font=\Large\bfseries] {dropout} (9.5, 3*\nodesep);

  % Boundary

  \foreach \y in {1,...,5}
  \node[node, right=15em of h2\y] (di\y) {};

  \node[red,font=\huge] at (di1) {$\times$};
  \node[red,font=\huge] at (di3) {$\times$};

  \foreach \y in {1,...,5}
  \node[node, right=\layersep of di\y] (dh1\y) {};

  \node[red,font=\huge] at (dh11) {$\times$};
  \node[red,font=\huge] at (dh13) {$\times$};
  \node[red,font=\huge] at (dh14) {$\times$};

  \foreach \y in {1,...,5}
  \node[node, right=\layersep of dh1\y] (dh2\y) {};

  \node[red,font=\huge] at (dh22) {$\times$};
  \node[red,font=\huge] at (dh24) {$\times$};

  \node[node, right=\layersep of dh22] (do1) {};
  \node[node, right=\layersep of dh24] (do2) {};

  \foreach \source in {2,4,5}
  \foreach \dest in {2,5}
  \draw[-stealth, thick] (di\source) -- (dh1\dest);

  \foreach \source in {2,5}
  \foreach \dest in {1,3,5}
  \draw[-stealth, thick] (dh1\source) -- (dh2\dest);

  \foreach \source in {1,3,5}
  \foreach \dest in {1,2}
  \draw[-stealth, thick] (dh2\source) -- (do\dest);

\end{tikzpicture}
\end{document}