Finish writing

Signed-off-by: Riccardo Finotello <riccardo.finotello@gmail.com>
This commit is contained in:
2020-11-12 18:24:15 +01:00
parent 3aef870c4d
commit 77139f0386
17 changed files with 1474 additions and 31 deletions

96
img/ccnn.pgf Normal file
View File

@@ -0,0 +1,96 @@
%\newlength{\layer}
\newlength{\layerheight}
\newlength{\perspective}
\newlength{\filters}
%\newlength{\unit}
\setlength{\layer}{3cm}
\setlength{\layerheight}{3cm}
\setlength{\perspective}{1cm}
\setlength{\filters}{0.01cm}
\setlength{\unit}{0.225cm}
\begin{tikzpicture}
% first layer
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (\layer, 0cm) -- (\layer + 180 * \filters, 0cm) -- (\layer + 180 * \filters + \perspective, \perspective) -- (\layer + \perspective, \perspective) -- cycle;
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (\layer + \perspective, \perspective) -- (\layer + 180 * \filters + \perspective, \perspective) -- (\layer + 180 * \filters + \perspective, \perspective + \layerheight) -- (\layer + \perspective, \perspective + \layerheight) -- cycle;
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (\layer, 0cm) -- (\layer + \perspective, \perspective) -- (\layer + \perspective, \perspective + \layerheight) -- (\layer, \layerheight) -- cycle;
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (\layer, 0cm) -- (\layer + 180 * \filters, 0cm) -- (\layer + 180 * \filters, \layerheight) -- (\layer, \layerheight) -- cycle;
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (\layer + 180 * \filters, 0cm) -- (\layer + 180 * \filters + \perspective, \perspective) -- (\layer + 180 * \filters + \perspective, \perspective + \layerheight) -- (\layer + 180 * \filters, \layerheight) -- cycle;
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (\layer, \layerheight) -- (\layer + 180 * \filters, \layerheight) -- (\layer + 180 * \filters + \perspective, \perspective + \layerheight) -- (\layer + \perspective, \perspective + \layerheight) -- cycle;
\node[anchor=north west, scale=0.65] at (\layer, 0cm) {$180 @ 12 \times 15$};
% second layer
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (2 * \layer, 0cm) -- (2 * \layer + 100 * \filters, 0cm) -- (2 * \layer + 100 * \filters + \perspective, \perspective) -- (2 * \layer + \perspective, \perspective) -- cycle;
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (2 * \layer + \perspective, \perspective) -- (2 * \layer + 100 * \filters + \perspective, \perspective) -- (2 * \layer + 100 * \filters + \perspective, \perspective + \layerheight) -- (2 * \layer + \perspective, \perspective + \layerheight) -- cycle;
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (2 * \layer, 0cm) -- (2 * \layer + \perspective, \perspective) -- (2 * \layer + \perspective, \perspective + \layerheight) -- (2 * \layer, \layerheight) -- cycle;
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (2 * \layer, 0cm) -- (2 * \layer + 100 * \filters, 0cm) -- (2 * \layer + 100 * \filters, \layerheight) -- (2 * \layer, \layerheight) -- cycle;
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (2 * \layer + 100 * \filters, 0cm) -- (2 * \layer + 100 * \filters + \perspective, \perspective) -- (2 * \layer + 100 * \filters + \perspective, \perspective + \layerheight) -- (2 * \layer + 100 * \filters, \layerheight) -- cycle;
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (2 * \layer, \layerheight) -- (2 * \layer + 100 * \filters, \layerheight) -- (2 * \layer + 100 * \filters + \perspective, \perspective + \layerheight) -- (2 * \layer + \perspective, \perspective + \layerheight) -- cycle;
\node[anchor=north west, scale=0.65] at (2 * \layer, 0cm) {$100 @ 12 \times 15$};
% third layer
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (3 * \layer, 0cm) -- (3 * \layer + 40 * \filters, 0cm) -- (3 * \layer + 40 * \filters + \perspective, \perspective) -- (3 * \layer + \perspective, \perspective) -- cycle;
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (3 * \layer + \perspective, \perspective) -- (3 * \layer + 40 * \filters + \perspective, \perspective) -- (3 * \layer + 40 * \filters + \perspective, \perspective + \layerheight) -- (3 * \layer + \perspective, \perspective + \layerheight) -- cycle;
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (3 * \layer, 0cm) -- (3 * \layer + \perspective, \perspective) -- (3 * \layer + \perspective, \perspective + \layerheight) -- (3 * \layer, \layerheight) -- cycle;
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (3 * \layer, 0cm) -- (3 * \layer + 40 * \filters, 0cm) -- (3 * \layer + 40 * \filters, \layerheight) -- (3 * \layer, \layerheight) -- cycle;
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (3 * \layer + 40 * \filters, 0cm) -- (3 * \layer + 40 * \filters + \perspective, \perspective) -- (3 * \layer + 40 * \filters + \perspective, \perspective + \layerheight) -- (3 * \layer + 40 * \filters, \layerheight) -- cycle;
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (3 * \layer, \layerheight) -- (3 * \layer + 40 * \filters, \layerheight) -- (3 * \layer + 40 * \filters + \perspective, \perspective + \layerheight) -- (3 * \layer + \perspective, \perspective + \layerheight) -- cycle;
\node[anchor=north west, scale=0.65] at (3 * \layer, 0cm) {$40 @ 12 \times 15$};
% fourth layer
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (4 * \layer, 0cm) -- (4 * \layer + 20 * \filters, 0cm) -- (4 * \layer + 20 * \filters + \perspective, \perspective) -- (4 * \layer + \perspective, \perspective) -- cycle;
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (4 * \layer + \perspective, \perspective) -- (4 * \layer + 20 * \filters + \perspective, \perspective) -- (4 * \layer + 20 * \filters + \perspective, \perspective + \layerheight) -- (4 * \layer + \perspective, \perspective + \layerheight) -- cycle;
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (4 * \layer, 0cm) -- (4 * \layer + \perspective, \perspective) -- (4 * \layer + \perspective, \perspective + \layerheight) -- (4 * \layer, \layerheight) -- cycle;
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (4 * \layer, 0cm) -- (4 * \layer + 20 * \filters, 0cm) -- (4 * \layer + 20 * \filters, \layerheight) -- (4 * \layer, \layerheight) -- cycle;
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (4 * \layer + 20 * \filters, 0cm) -- (4 * \layer + 20 * \filters + \perspective, \perspective) -- (4 * \layer + 20 * \filters + \perspective, \perspective + \layerheight) -- (4 * \layer + 20 * \filters, \layerheight) -- cycle;
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (4 * \layer, \layerheight) -- (4 * \layer + 20 * \filters, \layerheight) -- (4 * \layer + 20 * \filters + \perspective, \perspective + \layerheight) -- (4 * \layer + \perspective, \perspective + \layerheight) -- cycle;
\node[anchor=north west, scale=0.65] at (4 * \layer, 0cm) {$20 @ 12 \times 15$};
% flatten layer
\foreach \x in {2,...,7} {
\filldraw[fill=cyan!10, draw=black] (4 * \layer + 3cm, 0.5cm * \x) circle (\unit);
\draw (4 * \layer + 3cm + \unit, 0.5cm * \x) -- (5 * \layer + 2cm - \unit, 2.5cm);
};
\node[anchor=north, scale=0.5, below=15pt, align=center] at (4 * \layer + 3cm, 1cm) {flatten};
% output layer
\filldraw[fill=cyan!10, draw=black] (5 * \layer + 2cm, 2.5cm - \unit) -- (5 * \layer + 2cm, 2.5cm) circle (\unit) -- (5 * \layer + 2cm, 2.5cm + \unit);
\draw (5 * \layer + 2cm + 0.05cm, 2.5cm) node[anchor=north, below=10pt, text width=2cm, scale=0.35, align=center] {output layer [1 unit]} -- (5 * \layer + 2cm + 0.10cm, 2.5cm) -- (5 * \layer + 2cm + 0.15cm, 2.5cm + 0.05cm);
% draw first convolution
\filldraw[fill=red!50, draw=black, fill opacity=0.5] (\layer + 180 * \filters, \layerheight) -- (\layer + 180 * \filters + 0.4 * \perspective, \layerheight + 0.4 * \perspective) -- (\layer + 180 * \filters + 0.4 * \perspective, \layerheight + 0.4 * \perspective - 0.3 * \layerheight) -- (\layer + 180 * \filters, \layerheight - 0.3 * \layerheight) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.5] (\layer + 180 * \filters + 0.4 * \perspective, \layerheight + 0.4 * \perspective) -- (2 * \layer, 0.8 * \layerheight) -- (\layer + 180 * \filters + 0.4 * \perspective, \layerheight + 0.4 * \perspective - 0.3 * \layerheight) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.5] (\layer + 180 * \filters, \layerheight - 0.3 * \layerheight) -- (2 * \layer, 0.8 * \layerheight) -- (\layer + 180 * \filters + 0.4 * \perspective, \layerheight + 0.4 * \perspective - 0.3 * \layerheight) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.5] (\layer + 180 * \filters, \layerheight) -- (2 * \layer, 0.8 * \layerheight) -- (\layer + 180 * \filters, \layerheight - 0.3 * \layerheight) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.5] (\layer + 180 * \filters + 0.4 * \perspective, \layerheight + 0.4 * \perspective) -- (2 * \layer, 0.8 * \layerheight) -- (\layer + 180 * \filters, \layerheight) -- cycle;
% draw second convolution
\filldraw[fill=red!50, draw=black, fill opacity=0.5] (2 * \layer + 100 * \filters, 0.4 * \layerheight) -- (2 * \layer + 100 * \filters + 0.4 * \perspective, 0.4 * \layerheight + 0.4 * \perspective) -- (2 * \layer + 100 * \filters + 0.4 * \perspective, 0.4 * \layerheight + 0.4 * \perspective - 0.3 * \layerheight) -- (2 * \layer + 100 * \filters, 0.4 * \layerheight - 0.3 * \layerheight) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.5] (2 * \layer + 100 * \filters + 0.4 * \perspective, 0.4 * \layerheight + 0.4 * \perspective) -- (3 * \layer, 0.2 * \layerheight) -- (2 * \layer + 100 * \filters + 0.4 * \perspective, 0.4 * \layerheight + 0.4 * \perspective - 0.3 * \layerheight) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.5] (2 * \layer + 100 * \filters, 0.4 * \layerheight - 0.3 * \layerheight) -- (3 * \layer, 0.2 * \layerheight) -- (2 * \layer + 100 * \filters + 0.4 * \perspective, 0.4 * \layerheight + 0.4 * \perspective - 0.3 * \layerheight) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.5] (2 * \layer + 100 * \filters, 0.4 * \layerheight) -- (3 * \layer, 0.2 * \layerheight) -- (2 * \layer + 100 * \filters, 0.4 * \layerheight - 0.3 * \layerheight) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.5] (2 * \layer + 100 * \filters + 0.4 * \perspective, 0.4 * \layerheight + 0.4 * \perspective) -- (3 * \layer, 0.2 * \layerheight) -- (2 * \layer + 100 * \filters, 0.4 * \layerheight) -- cycle;
% draw third convolution
\filldraw[fill=red!50, draw=black, fill opacity=0.5] (3 * \layer + 40 * \filters, 0.6 * \layerheight) -- (3 * \layer + 40 * \filters + 0.4 * \perspective, 0.6 * \layerheight + 0.4 * \perspective) -- (3 * \layer + 40 * \filters + 0.4 * \perspective, 0.6 * \layerheight + 0.4 * \perspective - 0.3 * \layerheight) -- (3 * \layer + 40 * \filters, 0.6 * \layerheight - 0.3 * \layerheight) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.5] (3 * \layer + 40 * \filters + 0.4 * \perspective, 0.6 * \layerheight + 0.4 * \perspective) -- (4 * \layer, 0.3 * \layerheight) -- (3 * \layer + 40 * \filters + 0.4 * \perspective, 0.6 * \layerheight + 0.4 * \perspective - 0.3 * \layerheight) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.5] (3 * \layer + 40 * \filters, 0.6 * \layerheight - 0.3 * \layerheight) -- (4 * \layer, 0.3 * \layerheight) -- (3 * \layer + 40 * \filters + 0.4 * \perspective, 0.6 * \layerheight + 0.4 * \perspective - 0.3 * \layerheight) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.5] (3 * \layer + 40 * \filters, 0.6 * \layerheight) -- (4 * \layer, 0.3 * \layerheight) -- (3 * \layer + 40 * \filters, 0.6 * \layerheight - 0.3 * \layerheight) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.5] (3 * \layer + 40 * \filters + 0.4 * \perspective, 0.6 * \layerheight + 0.4 * \perspective) -- (4 * \layer, 0.3 * \layerheight) -- (3 * \layer + 40 * \filters, 0.6 * \layerheight) -- cycle;
% draw the "flatenisation"
\draw[dashed] (4 * \layer + 20 * \filters, \layerheight) -- (4 * \layer + 3 cm, 3.5cm + \unit) -- (4 * \layer + 20 * \filters + \perspective, \layerheight + \perspective) -- cycle;
\draw[dashed] (4 * \layer + 20 * \filters, 0cm) -- (4 * \layer + 3 cm, 1cm - \unit) -- (4 * \layer + 20 * \filters + \perspective, \perspective) -- cycle;
% hidden layer labels
\node[anchor=base, align=center, text width=3.9cm, scale=0.75] (c) at (11cm, 5.5cm) {convolutional layers ($5 \times 5$ kernel, ReLU activation)};
\draw[->] (c) -- (\layer + 180 * \filters + \perspective, \layerheight + \perspective + \unit);
\draw[->] (c) -- (2 * \layer + 100 * \filters + \perspective, \layerheight + \perspective + \unit);
\draw[->] (c) -- (3 * \layer + 40 * \filters + \perspective, \layerheight + \perspective + \unit);
\draw[->] (c) -- (4 * \layer + 0.5 * \perspective, \layerheight + \perspective + \unit);
\end{tikzpicture}
% vim: ft=tex

BIN
img/cicy_best_plots.pdf Normal file

Binary file not shown.

BIN
img/cicy_matrix_plots.pdf Normal file

Binary file not shown.

BIN
img/corr-matrix_orig.pdf Normal file

Binary file not shown.

160
img/fc.pgf Normal file
View File

@@ -0,0 +1,160 @@
\newlength{\unit}
\newlength{\layer}
\setlength{\unit}{0.225cm}
\setlength{\layer}{1cm}
\begin{tikzpicture}
% draw the first layer
\filldraw[fill=cyan!10, draw=black] (\layer, -0.75cm - \unit) -- (\layer, -0.75cm) circle (\unit) -- (\layer, -0.75cm + \unit);
\draw (\layer + 0.05cm, -0.75cm) node[anchor=north, below=10pt, text width=2cm, scale=0.35, align=center] {FC layer [876 units]} -- (\layer + 0.10cm, -0.75cm) -- (\layer + 0.15cm, -0.75cm + 0.05cm);
\node[anchor=base, scale=0.35] at (\layer, -0.75cm + 1.25 * \unit) {$\vdots$};
\foreach \x in {0,...,5} {
\filldraw[fill=cyan!10, draw=black] (\layer, 0.5cm * \x - \unit) -- (\layer, 0.5cm * \x) circle (\unit) -- (\layer, 0.5cm * \x + \unit);
\draw (\layer + 0.05cm, 0.5cm * \x) -- (\layer + 0.10cm, 0.5cm * \x) -- (\layer + 0.15cm, 0.5cm * \x + 0.05cm);
};
\filldraw[fill=cyan!10, draw=black] (\layer, 3.25cm - \unit) -- (\layer, 3.25cm) circle (\unit) -- (\layer, 3.25cm + \unit);
\draw (\layer + 0.05cm, 3.25cm) -- (\layer + 0.10cm, 3.25cm) -- (\layer + 0.15cm, 3.25cm + 0.05cm);
\node[anchor=base, scale=0.35] at (\layer, 3.25cm - 2\unit) {$\vdots$};
% draw the second layer
\filldraw[fill=cyan!10, draw=black] (2 * \layer, -\unit) -- (2 * \layer, 0cm) circle (\unit) -- (2 * \layer, \unit);
\draw (2 * \layer + 0.05cm, 0cm) node[anchor=north, below=10pt, text width=2cm, scale=0.35, align=center] {FC layer [461 units]} -- (2 * \layer + 0.10cm, 0cm) -- (2 * \layer + 0.15cm, 0.05cm);
\node[anchor=base, scale=0.35] at (2 * \layer, 1.25 * \unit) {$\vdots$};
\foreach \x in {1.5,...,3.5} {
\filldraw[fill=cyan!10, draw=black] (2 * \layer, 0.5cm * \x - \unit) -- (2 * \layer, 0.5cm * \x) circle (\unit) -- (2 * \layer, 0.5cm * \x + \unit);
\draw (2 * \layer + 0.05cm, 0.5cm * \x) -- (2 * \layer + 0.10cm, 0.5cm * \x) -- (2 * \layer + 0.15cm, 0.5cm * \x + 0.05cm);
};
\filldraw[fill=cyan!10, draw=black] (2 * \layer, 2.5cm - \unit) -- (2 * \layer, 2.5cm) circle (\unit) -- (2 * \layer, 2.5cm + \unit);
\draw (2 * \layer + 0.05cm, 2.5cm) -- (2 * \layer + 0.10cm, 2.5cm) -- (2 * \layer + 0.15cm, 2.5cm + 0.05cm);
\node[anchor=base, scale=0.35] at (2 * \layer, 2.5cm - 2\unit) {$\vdots$};
% draw the third layer
\filldraw[fill=cyan!10, draw=black] (3 * \layer, -\unit) -- (3 * \layer, 0cm) circle (\unit) -- (3 * \layer, \unit);
\draw (3 * \layer + 0.05cm, 0cm) node[anchor=north, below=10pt, text width=2cm, scale=0.35, align=center] {FC layer [437 units]} -- (3 * \layer + 0.10cm, 0cm) -- (3 * \layer + 0.15cm, 0.05cm);
\node[anchor=base, scale=0.35] at (3 * \layer, 1.25 * \unit) {$\vdots$};
\foreach \x in {1.5,...,3.5} {
\filldraw[fill=cyan!10, draw=black] (3 * \layer, 0.5cm * \x - \unit) -- (3 * \layer, 0.5cm * \x) circle (\unit) -- (3 * \layer, 0.5cm * \x + \unit);
\draw (3 * \layer + 0.05cm, 0.5cm * \x) -- (3 * \layer + 0.10cm, 0.5cm * \x) -- (3 * \layer + 0.15cm, 0.5cm * \x + 0.05cm);
};
\filldraw[fill=cyan!10, draw=black] (3 * \layer, 2.5cm - \unit) -- (3 * \layer, 2.5cm) circle (\unit) -- (3 * \layer, 2.5cm + \unit);
\draw (3 * \layer + 0.05cm, 2.5cm) -- (3 * \layer + 0.10cm, 2.5cm) -- (3 * \layer + 0.15cm, 2.5cm + 0.05cm);
\node[anchor=base, scale=0.35] at (3 * \layer, 2.5cm - 2\unit) {$\vdots$};
% draw the fourth layer
\filldraw[fill=cyan!10, draw=black] (4 * \layer, -0.75cm - \unit) -- (4 * \layer, -0.75cm) circle (\unit) -- (4 * \layer, -0.75cm + \unit);
\draw (4 * \layer + 0.05cm, -0.75cm) node[anchor=north, below=10pt, text width=2cm, scale=0.35, align=center] {FC layer [929 units]} -- (4 * \layer + 0.10cm, -0.75cm) -- (4 * \layer + 0.15cm, -0.75cm + 0.05cm);
\node[anchor=base, scale=0.35] at (4 * \layer, -0.75cm + 1.25 * \unit) {$\vdots$};
\foreach \x in {0,...,5} {
\filldraw[fill=cyan!10, draw=black] (4 * \layer, 0.5cm * \x - \unit) -- (4 * \layer, 0.5cm * \x) circle (\unit) -- (4 * \layer, 0.5cm * \x + \unit);
\draw (4 * \layer + 0.05cm, 0.5cm * \x) -- (4 * \layer + 0.10cm, 0.5cm * \x) -- (4 * \layer + 0.15cm, 0.5cm * \x + 0.05cm);
};
\filldraw[fill=cyan!10, draw=black] (4 * \layer, 3.25cm - \unit) -- (4 * \layer, 3.25cm) circle (\unit) -- (4 * \layer, 3.25cm + \unit);
\draw (4 * \layer + 0.05cm, 3.25cm) -- (4 * \layer + 0.10cm, 3.25cm) -- (4 * \layer + 0.15cm, 3.25cm + 0.05cm);
\node[anchor=base, scale=0.35] at (4 * \layer, 3.25cm - 2\unit) {$\vdots$};
% draw the fifth layer
\filldraw[fill=cyan!10, draw=black] (5 * \layer, -\unit) -- (5 * \layer, 0cm) circle (\unit) -- (5 * \layer, \unit);
\draw (5 * \layer + 0.05cm, 0cm) node[anchor=north, below=10pt, text width=2cm, scale=0.35, align=center] {FC layer [404 units]} -- (5 * \layer + 0.10cm, 0cm) -- (5 * \layer + 0.15cm, 0.05cm);
\node[anchor=base, scale=0.35] at (5 * \layer, 1.25 * \unit) {$\vdots$};
\foreach \x in {1.5,...,3.5} {
\filldraw[fill=cyan!10, draw=black] (5 * \layer, 0.5cm * \x - \unit) -- (5 * \layer, 0.5cm * \x) circle (\unit) -- (5 * \layer, 0.5cm * \x + \unit);
\draw (5 * \layer + 0.05cm, 0.5cm * \x) -- (5 * \layer + 0.10cm, 0.5cm * \x) -- (5 * \layer + 0.15cm, 0.5cm * \x + 0.05cm);
};
\filldraw[fill=cyan!10, draw=black] (5 * \layer, 2.5cm - \unit) -- (5 * \layer, 2.5cm) circle (\unit) -- (5 * \layer, 2.5cm + \unit);
\draw (5 * \layer + 0.05cm, 2.5cm) -- (5 * \layer + 0.10cm, 2.5cm) -- (5 * \layer + 0.15cm, 2.5cm + 0.05cm);
\node[anchor=base, scale=0.35] at (5 * \layer, 2.5cm - 2\unit) {$\vdots$};
% draw the output layer
\filldraw[fill=cyan!10, draw=black] (6 * \layer, 1.25cm - \unit) -- (6 * \layer, 1.25cm) circle (\unit) -- (6 * \layer, 1.25cm + \unit);
\draw (6 * \layer + 0.05cm, 1.25cm) node[anchor=north, below=10pt, text width=2cm, scale=0.35, align=center] {output layer [1 unit]} -- (6 * \layer + 0.10cm, 1.25cm) -- (6 * \layer + 0.15cm, 1.25cm + 0.05cm);
% draw weights 1 --> 2 and 4 --> 5
\foreach \x in {\layer, 4 * \layer} {
\foreach \y in {-0.75cm, 3.25cm} {
\foreach \z in {0cm, 2.5cm} {
\draw (\x + \unit, \y) -- (\x + \layer - \unit, \z);
};
};
\foreach \y in {0,...,5} {
\foreach \z in {1.5,...,3.5} {
\draw (\x + \unit, 0.5cm * \y) -- (\x + \layer - \unit, 0.5cm * \z);
};
\foreach \z in {0cm, 2.5cm} {
\draw (\x + \unit, 0.5 * \y) -- (\x + \layer - \unit, \z);
};
};
\foreach \y in {1.5,...,3.5} {
\draw (\x + \unit, 3.25cm) -- (\x + \layer - \unit, 0.5cm * \y);
\draw (\x + \unit, -0.75cm) -- (\x + \layer - \unit, 0.5cm * \y);
};
};
% draw weights 2 --> 3
\foreach \y in {0cm, 2.5cm} {
\foreach \z in {0cm, 2.5cm} {
\draw (2 * \layer + \unit, \y) -- (2 * \layer + \layer - \unit, \z);
};
};
\foreach \y in {1.5,...,3.5} {
\foreach \z in {1.5,...,3.5} {
\draw (2 * \layer + \unit, 0.5cm * \y) -- (2 * \layer + \layer - \unit, 0.5cm * \z);
};
\foreach \z in {0cm, 2.5cm} {
\draw (2 * \layer + \unit, 0.5cm * \y) -- (2 * \layer + \layer - \unit, \z);
};
};
\foreach \y in {1.5,...,3.5} {
\draw (2 * \layer + \unit, 2.5cm) -- (2 * \layer + \layer - \unit, 0.5cm * \y);
\draw (2 * \layer + \unit, 0cm) -- (2 * \layer + \layer - \unit, 0.5cm * \y);
};
% draw weights 3 --> 4
\foreach \y in {0cm, 2.5cm} {
\foreach \z in {-0.75cm, 3.25cm} {
\draw (3 * \layer + \unit, \y) -- (3 * \layer + \layer - \unit, \z);
};
};
\foreach \y in {1.5,...,3.5} {
\foreach \z in {0,...,5} {
\draw (3 * \layer + \unit, 0.5cm * \y) -- (3 * \layer + \layer - \unit, 0.5cm * \z);
};
\foreach \z in {0cm, 2.5cm} {
\draw (3 * \layer + \unit, 0.5cm * \y) -- (3 * \layer + \layer - \unit, \z);
};
};
\foreach \y in {0,...,5} {
\draw (3 * \layer + \unit, 2.5cm) -- (3 * \layer + \layer - \unit, 0.5cm * \y);
\draw (3 * \layer + \unit, 0cm) -- (3 * \layer + \layer - \unit, 0.5cm * \y);
};
% draw weights 5 --> output
\foreach \y in {0cm, 2.5cm} {
\draw (5 * \layer + \unit, \y) -- (5 * \layer + \layer - \unit, 1.25cm);
};
\foreach \y in {1.5,...,3.5} {
\draw (5 * \layer + \unit, 0.5cm * \y) -- (5 * \layer + \layer - \unit, 1.25cm);
};
% draw hidden layers legend
\node[anchor=base, align=center, text width=3.5cm, scale=0.5] (h) at (4cm, 4.5cm) {hidden layers (ReLU activation)};
\draw[->] (h) -- (\layer + \unit, 3.6cm);
\draw[->] (h) -- (2 * \layer + \unit, 2.85cm);
\draw[->] (h) -- (3 * \layer + 0.5 * \unit, 2.85cm);
\draw[->] (h) -- (4 * \layer, 3.6cm);
\draw[->] (h) -- (5 * \layer - 0.5 * \unit, 2.85cm);
\end{tikzpicture}
% vim: ft=tex

193
img/icnn.pgf Normal file
View File

@@ -0,0 +1,193 @@
%\newlength{\layer}
%\newlength{\layerheight}
%\newlength{\perspective}
%\newlength{\filters}
%\newlength{\unit}
\newlength{\upperlevel}
\newlength{\bottomlevel}
\newlength{\concatheight}
\setlength{\layer}{3cm}
\setlength{\layerheight}{3cm}
\setlength{\perspective}{1cm}
\setlength{\filters}{0.01cm}
\setlength{\unit}{0.225cm}
\setlength{\upperlevel}{2.25cm}
\setlength{\bottomlevel}{-2.25cm}
\setlength{\concatheight}{0cm}
\usetikzlibrary{decorations.pathreplacing}
\begin{tikzpicture}
% input layer
\filldraw[fill=cyan!20, draw=black, fill opacity=0.5] (1cm, 0cm) -- (1cm + \perspective, \perspective) -- (1cm + \perspective, \perspective + \layerheight) -- (1cm, \layerheight) -- cycle;
\node[anchor=south west, scale=0.65, rotate=45] at (1cm, \layerheight) {$1 @ 12 \times 15$};
\node[anchor=north west, scale=0.65] at (1cm, 0cm) {input layer};
% first layer
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (\layer, \upperlevel) -- (\layer + 32 * \filters, \upperlevel) -- (\layer + 32 * \filters + \perspective, \upperlevel + \perspective) -- (\layer + \perspective, \upperlevel + \perspective) -- cycle;
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (\layer + \perspective, \upperlevel + \perspective) -- (\layer + 32 * \filters + \perspective, \upperlevel + \perspective) -- (\layer + 32 * \filters + \perspective, \upperlevel + \perspective + \layerheight) -- (\layer + \perspective, \upperlevel + \perspective + \layerheight) -- cycle;
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (\layer, \upperlevel) -- (\layer + \perspective, \upperlevel + \perspective) -- (\layer + \perspective, \upperlevel + \perspective + \layerheight) -- (\layer, \upperlevel + \layerheight) -- cycle;
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (\layer, \upperlevel) -- (\layer + 32 * \filters, \upperlevel) -- (\layer + 32 * \filters, \upperlevel + \layerheight) -- (\layer, \upperlevel + \layerheight) -- cycle;
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (\layer + 32 * \filters, \upperlevel) -- (\layer + 32 * \filters + \perspective, \upperlevel + \perspective) -- (\layer + 32 * \filters + \perspective, \upperlevel + \perspective + \layerheight) -- (\layer + 32 * \filters, \upperlevel + \layerheight) -- cycle;
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (\layer, \upperlevel + \layerheight) -- (\layer + 32 * \filters, \upperlevel + \layerheight) -- (\layer + 32 * \filters + \perspective, \upperlevel + \perspective + \layerheight) -- (\layer + \perspective, \upperlevel + \perspective + \layerheight) -- cycle;
\node[anchor=south west, scale=0.65, rotate=45] at (\layer, \upperlevel + \layerheight) {$32 @ 12 \times 15$};
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (\layer, \bottomlevel) -- (\layer + 32 * \filters, \bottomlevel) -- (\layer + 32 * \filters + \perspective, \bottomlevel + \perspective) -- (\layer + \perspective, \bottomlevel + \perspective) -- cycle;
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (\layer + \perspective, \bottomlevel + \perspective) -- (\layer + 32 * \filters + \perspective, \bottomlevel + \perspective) -- (\layer + 32 * \filters + \perspective, \bottomlevel + \perspective + \layerheight) -- (\layer + \perspective, \bottomlevel + \perspective + \layerheight) -- cycle;
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (\layer, \bottomlevel) -- (\layer + \perspective, \bottomlevel + \perspective) -- (\layer + \perspective, \bottomlevel + \perspective + \layerheight) -- (\layer, \bottomlevel + \layerheight) -- cycle;
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (\layer, \bottomlevel) -- (\layer + 32 * \filters, \bottomlevel) -- (\layer + 32 * \filters, \bottomlevel + \layerheight) -- (\layer, \bottomlevel + \layerheight) -- cycle;
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (\layer + 32 * \filters, \bottomlevel) -- (\layer + 32 * \filters + \perspective, \bottomlevel + \perspective) -- (\layer + 32 * \filters + \perspective, \bottomlevel + \perspective + \layerheight) -- (\layer + 32 * \filters, \bottomlevel + \layerheight) -- cycle;
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (\layer, \bottomlevel + \layerheight) -- (\layer + 32 * \filters, \bottomlevel + \layerheight) -- (\layer + 32 * \filters + \perspective, \bottomlevel + \perspective + \layerheight) -- (\layer + \perspective, \bottomlevel + \perspective + \layerheight) -- cycle;
\node[anchor=south west, scale=0.65, rotate=45] at (\layer, \bottomlevel + \layerheight) {$32 @ 12 \times 15$};
% first concatenation
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (2 * \layer, \concatheight) -- (2 * \layer + 64 * \filters, \concatheight) -- (2 * \layer + 64 * \filters + \perspective, \concatheight + \perspective) -- (2 * \layer + \perspective, \concatheight + \perspective) -- cycle;
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (2 * \layer + \perspective, \concatheight + \perspective) -- (2 * \layer + 64 * \filters + \perspective, \concatheight + \perspective) -- (2 * \layer + 64 * \filters + \perspective, \concatheight + \perspective + \layerheight) -- (2 * \layer + \perspective, \concatheight + \perspective + \layerheight) -- cycle;
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (2 * \layer, \concatheight) -- (2 * \layer + \perspective, \concatheight + \perspective) -- (2 * \layer + \perspective, \concatheight + \perspective + \layerheight) -- (2 * \layer, \concatheight + \layerheight) -- cycle;
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (2 * \layer, \concatheight) -- (2 * \layer + 64 * \filters, \concatheight) -- (2 * \layer + 64 * \filters, \concatheight + \layerheight) -- (2 * \layer, \concatheight + \layerheight) -- cycle;
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (2 * \layer + 64 * \filters, \concatheight) -- (2 * \layer + 64 * \filters + \perspective, \concatheight + \perspective) -- (2 * \layer + 64 * \filters + \perspective, \concatheight + \perspective + \layerheight) -- (2 * \layer + 64 * \filters, \concatheight + \layerheight) -- cycle;
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (2 * \layer, \concatheight + \layerheight) -- (2 * \layer + 64 * \filters, \concatheight + \layerheight) -- (2 * \layer + 64 * \filters + \perspective, \concatheight + \perspective + \layerheight) -- (2 * \layer + \perspective, \concatheight + \perspective + \layerheight) -- cycle;
\node[anchor=south west, scale=0.65, rotate=45] at (2 * \layer, \concatheight + \layerheight) {$64 @ 12 \times 15$};
\draw (\layer + 32 * \filters + 1.2 * \perspective, \upperlevel + 0.5 * \layerheight) -- (\layer + 32 * \filters + 1.7 * \perspective, \upperlevel + 0.5 * \layerheight) -- (\layer + 32 * \filters + 1.7 * \perspective, \bottomlevel + 0.5 * \layerheight) -- (\layer + 32 * \filters + 1.2 * \perspective, \bottomlevel + 0.5 * \layerheight);
\filldraw[fill=red!20, draw=black] (\layer + 32 * \filters + 1.7 * \perspective, \concatheight + 0.5 * \layerheight) node[anchor=center, scale=0.8] {$C$} circle (\unit);
\draw[-latex] (\layer + 32 * \filters + 1.7 * \perspective + \unit, \concatheight + 0.5 * \layerheight) -- (\layer + 32 * \filters + 1.7 * \perspective + 3 * \unit, \concatheight + 0.5 * \layerheight);
% second layer
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (3 * \layer, \upperlevel) -- (3 * \layer + 64 * \filters, \upperlevel) -- (3 * \layer + 64 * \filters + \perspective, \upperlevel + \perspective) -- (3 * \layer + \perspective, \upperlevel + \perspective) -- cycle;
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (3 * \layer + \perspective, \upperlevel + \perspective) -- (3 * \layer + 64 * \filters + \perspective, \upperlevel + \perspective) -- (3 * \layer + 64 * \filters + \perspective, \upperlevel + \perspective + \layerheight) -- (3 * \layer + \perspective, \upperlevel + \perspective + \layerheight) -- cycle;
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (3 * \layer, \upperlevel) -- (3 * \layer + \perspective, \upperlevel + \perspective) -- (3 * \layer + \perspective, \upperlevel + \perspective + \layerheight) -- (3 * \layer, \upperlevel + \layerheight) -- cycle;
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (3 * \layer, \upperlevel) -- (3 * \layer + 64 * \filters, \upperlevel) -- (3 * \layer + 64 * \filters, \upperlevel + \layerheight) -- (3 * \layer, \upperlevel + \layerheight) -- cycle;
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (3 * \layer + 64 * \filters, \upperlevel) -- (3 * \layer + 64 * \filters + \perspective, \upperlevel + \perspective) -- (3 * \layer + 64 * \filters + \perspective, \upperlevel + \perspective + \layerheight) -- (3 * \layer + 64 * \filters, \upperlevel + \layerheight) -- cycle;
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (3 * \layer, \upperlevel + \layerheight) -- (3 * \layer + 64 * \filters, \upperlevel + \layerheight) -- (3 * \layer + 64 * \filters + \perspective, \upperlevel + \perspective + \layerheight) -- (3 * \layer + \perspective, \upperlevel + \perspective + \layerheight) -- cycle;
\node[anchor=south west, scale=0.65, rotate=45] at (3 * \layer, \upperlevel + \layerheight) {$64 @ 12 \times 15$};
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (3 * \layer, \bottomlevel) -- (3 * \layer + 64 * \filters, \bottomlevel) -- (3 * \layer + 64 * \filters + \perspective, \bottomlevel + \perspective) -- (3 * \layer + \perspective, \bottomlevel + \perspective) -- cycle;
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (3 * \layer + \perspective, \bottomlevel + \perspective) -- (3 * \layer + 64 * \filters + \perspective, \bottomlevel + \perspective) -- (3 * \layer + 64 * \filters + \perspective, \bottomlevel + \perspective + \layerheight) -- (3 * \layer + \perspective, \bottomlevel + \perspective + \layerheight) -- cycle;
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (3 * \layer, \bottomlevel) -- (3 * \layer + \perspective, \bottomlevel + \perspective) -- (3 * \layer + \perspective, \bottomlevel + \perspective + \layerheight) -- (3 * \layer, \bottomlevel + \layerheight) -- cycle;
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (3 * \layer, \bottomlevel) -- (3 * \layer + 64 * \filters, \bottomlevel) -- (3 * \layer + 64 * \filters, \bottomlevel + \layerheight) -- (3 * \layer, \bottomlevel + \layerheight) -- cycle;
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (3 * \layer + 64 * \filters, \bottomlevel) -- (3 * \layer + 64 * \filters + \perspective, \bottomlevel + \perspective) -- (3 * \layer + 64 * \filters + \perspective, \bottomlevel + \perspective + \layerheight) -- (3 * \layer + 64 * \filters, \bottomlevel + \layerheight) -- cycle;
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (3 * \layer, \bottomlevel + \layerheight) -- (3 * \layer + 64 * \filters, \bottomlevel + \layerheight) -- (3 * \layer + 64 * \filters + \perspective, \bottomlevel + \perspective + \layerheight) -- (3 * \layer + \perspective, \bottomlevel + \perspective + \layerheight) -- cycle;
\node[anchor=south west, scale=0.65, rotate=45] at (3 * \layer, \bottomlevel + \layerheight) {$64 @ 12 \times 15$};
% second concatenation
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (4 * \layer, \concatheight) -- (4 * \layer + 128 * \filters, \concatheight) -- (4 * \layer + 128 * \filters + \perspective, \concatheight + \perspective) -- (4 * \layer + \perspective, \concatheight + \perspective) -- cycle;
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (4 * \layer + \perspective, \concatheight + \perspective) -- (4 * \layer + 128 * \filters + \perspective, \concatheight + \perspective) -- (4 * \layer + 128 * \filters + \perspective, \concatheight + \perspective + \layerheight) -- (4 * \layer + \perspective, \concatheight + \perspective + \layerheight) -- cycle;
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (4 * \layer, \concatheight) -- (4 * \layer + \perspective, \concatheight + \perspective) -- (4 * \layer + \perspective, \concatheight + \perspective + \layerheight) -- (4 * \layer, \concatheight + \layerheight) -- cycle;
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (4 * \layer, \concatheight) -- (4 * \layer + 128 * \filters, \concatheight) -- (4 * \layer + 128 * \filters, \concatheight + \layerheight) -- (4 * \layer, \concatheight + \layerheight) -- cycle;
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (4 * \layer + 128 * \filters, \concatheight) -- (4 * \layer + 128 * \filters + \perspective, \concatheight + \perspective) -- (4 * \layer + 128 * \filters + \perspective, \concatheight + \perspective + \layerheight) -- (4 * \layer + 128 * \filters, \concatheight + \layerheight) -- cycle;
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (4 * \layer, \concatheight + \layerheight) -- (4 * \layer + 128 * \filters, \concatheight + \layerheight) -- (4 * \layer + 128 * \filters + \perspective, \concatheight + \perspective + \layerheight) -- (4 * \layer + \perspective, \concatheight + \perspective + \layerheight) -- cycle;
\node[anchor=south west, scale=0.65, rotate=45] at (4 * \layer, \concatheight + \layerheight) {$128 @ 12 \times 15$};
\draw (3 * \layer + 64 * \filters + 1.1 * \perspective, \upperlevel + 0.5 * \layerheight) -- (3 * \layer + 64 * \filters + 1.6 * \perspective, \upperlevel + 0.5 * \layerheight) -- (3 * \layer + 64 * \filters + 1.6 * \perspective, \bottomlevel + 0.5 * \layerheight) -- (3 * \layer + 64 * \filters + 1.1 * \perspective, \bottomlevel + 0.5 * \layerheight);
\filldraw[fill=red!20, draw=black] (3 * \layer + 64 * \filters + 1.6 * \perspective, \concatheight + 0.5 * \layerheight) node[anchor=center, scale=0.8] {$C$} circle (\unit);
\draw[-latex] (3 * \layer + 64 * \filters + 1.6 * \perspective + \unit, \concatheight + 0.5 * \layerheight) -- (3 * \layer + 64 * \filters + 1.6 * \perspective + 3 * \unit, \concatheight + 0.5 * \layerheight);
% third layer
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (5 * \layer, \upperlevel) -- (5 * \layer + 32 * \filters, \upperlevel) -- (5 * \layer + 32 * \filters + \perspective, \upperlevel + \perspective) -- (5 * \layer + \perspective, \upperlevel + \perspective) -- cycle;
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (5 * \layer + \perspective, \upperlevel + \perspective) -- (5 * \layer + 32 * \filters + \perspective, \upperlevel + \perspective) -- (5 * \layer + 32 * \filters + \perspective, \upperlevel + \perspective + \layerheight) -- (5 * \layer + \perspective, \upperlevel + \perspective + \layerheight) -- cycle;
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (5 * \layer, \upperlevel) -- (5 * \layer + \perspective, \upperlevel + \perspective) -- (5 * \layer + \perspective, \upperlevel + \perspective + \layerheight) -- (5 * \layer, \upperlevel + \layerheight) -- cycle;
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (5 * \layer, \upperlevel) -- (5 * \layer + 32 * \filters, \upperlevel) -- (5 * \layer + 32 * \filters, \upperlevel + \layerheight) -- (5 * \layer, \upperlevel + \layerheight) -- cycle;
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (5 * \layer + 32 * \filters, \upperlevel) -- (5 * \layer + 32 * \filters + \perspective, \upperlevel + \perspective) -- (5 * \layer + 32 * \filters + \perspective, \upperlevel + \perspective + \layerheight) -- (5 * \layer + 32 * \filters, \upperlevel + \layerheight) -- cycle;
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (5 * \layer, \upperlevel + \layerheight) -- (5 * \layer + 32 * \filters, \upperlevel + \layerheight) -- (5 * \layer + 32 * \filters + \perspective, \upperlevel + \perspective + \layerheight) -- (5 * \layer + \perspective, \upperlevel + \perspective + \layerheight) -- cycle;
\node[anchor=south west, scale=0.65, rotate=45] at (5 * \layer, \upperlevel + \layerheight) {$32 @ 12 \times 15$};
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (5 * \layer, \bottomlevel) -- (5 * \layer + 32 * \filters, \bottomlevel) -- (5 * \layer + 32 * \filters + \perspective, \bottomlevel + \perspective) -- (5 * \layer + \perspective, \bottomlevel + \perspective) -- cycle;
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (5 * \layer + \perspective, \bottomlevel + \perspective) -- (5 * \layer + 32 * \filters + \perspective, \bottomlevel + \perspective) -- (5 * \layer + 32 * \filters + \perspective, \bottomlevel + \perspective + \layerheight) -- (5 * \layer + \perspective, \bottomlevel + \perspective + \layerheight) -- cycle;
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (5 * \layer, \bottomlevel) -- (5 * \layer + \perspective, \bottomlevel + \perspective) -- (5 * \layer + \perspective, \bottomlevel + \perspective + \layerheight) -- (5 * \layer, \bottomlevel + \layerheight) -- cycle;
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (5 * \layer, \bottomlevel) -- (5 * \layer + 32 * \filters, \bottomlevel) -- (5 * \layer + 32 * \filters, \bottomlevel + \layerheight) -- (5 * \layer, \bottomlevel + \layerheight) -- cycle;
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (5 * \layer + 32 * \filters, \bottomlevel) -- (5 * \layer + 32 * \filters + \perspective, \bottomlevel + \perspective) -- (5 * \layer + 32 * \filters + \perspective, \bottomlevel + \perspective + \layerheight) -- (5 * \layer + 32 * \filters, \bottomlevel + \layerheight) -- cycle;
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (5 * \layer, \bottomlevel + \layerheight) -- (5 * \layer + 32 * \filters, \bottomlevel + \layerheight) -- (5 * \layer + 32 * \filters + \perspective, \bottomlevel + \perspective + \layerheight) -- (5 * \layer + \perspective, \bottomlevel + \perspective + \layerheight) -- cycle;
\node[anchor=south west, scale=0.65, rotate=45] at (5 * \layer, \bottomlevel + \layerheight) {$32 @ 12 \times 15$};
% third concatenation
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (6 * \layer, \concatheight) -- (6 * \layer + 64 * \filters, \concatheight) -- (6 * \layer + 64 * \filters + \perspective, \concatheight + \perspective) -- (6 * \layer + \perspective, \concatheight + \perspective) -- cycle;
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (6 * \layer + \perspective, \concatheight + \perspective) -- (6 * \layer + 64 * \filters + \perspective, \concatheight + \perspective) -- (6 * \layer + 64 * \filters + \perspective, \concatheight + \perspective + \layerheight) -- (6 * \layer + \perspective, \concatheight + \perspective + \layerheight) -- cycle;
\filldraw[dashed, fill=orange!20, draw=black, fill opacity=0.5] (6 * \layer, \concatheight) -- (6 * \layer + \perspective, \concatheight + \perspective) -- (6 * \layer + \perspective, \concatheight + \perspective + \layerheight) -- (6 * \layer, \concatheight + \layerheight) -- cycle;
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (6 * \layer, \concatheight) -- (6 * \layer + 64 * \filters, \concatheight) -- (6 * \layer + 64 * \filters, \concatheight + \layerheight) -- (6 * \layer, \concatheight + \layerheight) -- cycle;
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (6 * \layer + 64 * \filters, \concatheight) -- (6 * \layer + 64 * \filters + \perspective, \concatheight + \perspective) -- (6 * \layer + 64 * \filters + \perspective, \concatheight + \perspective + \layerheight) -- (6 * \layer + 64 * \filters, \concatheight + \layerheight) -- cycle;
\filldraw[thick, fill=orange!20, draw=black, fill opacity=0.5] (6 * \layer, \concatheight + \layerheight) -- (6 * \layer + 64 * \filters, \concatheight + \layerheight) -- (6 * \layer + 64 * \filters + \perspective, \concatheight + \perspective + \layerheight) -- (6 * \layer + \perspective, \concatheight + \perspective + \layerheight) -- cycle;
\node[anchor=south west, scale=0.65, rotate=45] at (6 * \layer, \concatheight + \layerheight) {$64 @ 12 \times 15$};
\draw (5 * \layer + 32 * \filters + 1.2 * \perspective, \upperlevel + 0.5 * \layerheight) -- (5 * \layer + 32 * \filters + 1.7 * \perspective, \upperlevel + 0.5 * \layerheight) -- (5 * \layer + 32 * \filters + 1.7 * \perspective, \bottomlevel + 0.5 * \layerheight) -- (5 * \layer + 32 * \filters + 1.2 * \perspective, \bottomlevel + 0.5 * \layerheight);
\filldraw[fill=red!20, draw=black] (5 * \layer + 32 * \filters + 1.7 * \perspective, \concatheight + 0.5 * \layerheight) node[anchor=center, scale=0.8] {$C$} circle (\unit);
\draw[-latex] (5 * \layer + 32 * \filters + 1.7 * \perspective + \unit, \concatheight + 0.5 * \layerheight) -- (5 * \layer + 32 * \filters + 1.7 * \perspective + 3 * \unit, \concatheight + 0.5 * \layerheight);
% flatten layer
\foreach \x in {0,...,4} {
\filldraw[fill=cyan!10, draw=black] (6 * \layer + 3cm, \concatheight + \unit + 0.75 * \x cm) circle (\unit);
\draw (6 * \layer + 3cm + \unit, \concatheight + \unit + 0.75 * \x cm) -- (7 * \layer + 2cm - \unit, \concatheight + \unit + 0.5 * \layerheight);
};
\node[anchor=north, scale=0.5, below=15pt, align=center] at (6 * \layer + 3cm, \concatheight + \unit) {flatten};
% draw the "flatenisation"
\draw[dashed] (6 * \layer + 64 * \filters, \layerheight) -- (6 * \layer + 3 cm, 3cm + 2 * \unit) -- (6 * \layer + 64 * \filters + \perspective, \layerheight + \perspective) -- cycle;
\draw[dashed] (6 * \layer + 64 * \filters, 0cm) -- (6 * \layer + 3 cm, 0cm) -- (6 * \layer + 64 * \filters + \perspective, \perspective) -- cycle;
% output layer
\filldraw[fill=cyan!10, draw=black] (7 * \layer + 2cm, \concatheight + \unit + 0.5 * \layerheight - \unit) -- (7 * \layer + 2cm, \concatheight + \unit + 0.5 * \layerheight) circle (\unit) -- (7 * \layer + 2cm, \concatheight + \unit + 0.5 * \layerheight + \unit);
\draw (7 * \layer + 2cm + 0.05cm, \concatheight + \unit + 0.5 * \layerheight) node[anchor=north, below=10pt, text width=2cm, scale=0.35, align=center] {output layer [1 unit]} -- (7 * \layer + 2cm + 0.10cm, \concatheight + \unit + 0.5 * \layerheight) -- (7 * \layer + 2cm + 0.15cm, \concatheight + \unit + 0.5 * \layerheight + 0.05cm);
% draw the first convolution
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (1cm, 0.9 * \layerheight) -- (1cm + \perspective, 0.9 * \layerheight + \perspective) -- (1cm + \perspective, \layerheight + \perspective) -- (1cm, \layerheight) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (1cm, 0.9 * \layerheight) -- (\layer, \upperlevel + 0.9 * \layerheight) -- (1cm + \perspective, 0.9 * \layerheight + \perspective) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (1cm, \layerheight) -- (\layer, \upperlevel + 0.9 * \layerheight) -- (1cm + \perspective, \layerheight + \perspective) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (1cm + \perspective, 0.9 * \layerheight + \perspective) -- (\layer, \upperlevel + 0.9 * \layerheight) -- (1cm + \perspective, \layerheight + \perspective) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (1cm, 0.9 * \layerheight) -- (\layer, \upperlevel + 0.9 * \layerheight) -- (1cm, \layerheight) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (1cm, 0cm) -- (1cm + 0.2 * \perspective, 0.2 * \perspective) -- (1cm + 0.2 * \perspective, \layerheight + 0.2 * \perspective) -- (1cm, \layerheight) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (1cm, 0cm) -- (\layer, \bottomlevel + 0.9 * \layerheight) -- (1cm + 0.2 * \perspective, 0.2 * \perspective) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (1cm + 0.2 * \perspective, 0.2 * \perspective) -- (\layer, \bottomlevel + 0.9 * \layerheight) -- (1cm + 0.2 * \perspective, \layerheight + 0.2 * \perspective) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (1cm + 0.2 * \perspective, \layerheight + 0.2 * \perspective) -- (\layer, \bottomlevel + 0.9 * \layerheight) -- (1cm, \layerheight) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (1cm, 0cm) -- (\layer, \bottomlevel + 0.9 * \layerheight) -- (1cm, \layerheight) -- cycle;
% draw the second convolution
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (2 * \layer + 64 * \filters, 0.4 * \layerheight) -- (2 * \layer + 64 * \filters + \perspective, 0.4 * \layerheight + \perspective) -- (2 * \layer + 64 * \filters + \perspective, 0.5 * \layerheight + \perspective) -- (2 * \layer + 64 * \filters, 0.5 * \layerheight) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (2 * \layer + 64 * \filters, 0.4 * \layerheight) -- (3 * \layer, \upperlevel + 0.6 * \layerheight) -- (2 * \layer + 64 * \filters + \perspective, 0.4 * \layerheight + \perspective) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (2 * \layer + 64 * \filters, 0.5 * \layerheight) -- (3 * \layer, \upperlevel + 0.6 * \layerheight) -- (2 * \layer + 64 * \filters + \perspective, 0.5 * \layerheight + \perspective) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (2 * \layer + 64 * \filters + \perspective, 0.4 * \layerheight + \perspective) -- (3 * \layer, \upperlevel + 0.6 * \layerheight) -- (2 * \layer + 64 * \filters + \perspective, 0.5 * \layerheight + \perspective) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (2 * \layer + 64 * \filters, 0.4 * \layerheight) -- (3 * \layer, \upperlevel + 0.6 * \layerheight) -- (2 * \layer + 64 * \filters, 0.5 * \layerheight) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (2 * \layer + 64 * \filters + 0.3 * \perspective, 0.3 * \perspective) -- (2 * \layer + 64 * \filters + 0.4 * \perspective, 0.4 * \perspective) -- (2 * \layer + 64 * \filters + 0.4 * \perspective, \layerheight + 0.4 * \perspective) -- (2 * \layer + 64 * \filters + 0.3 * \perspective, \layerheight + 0.3 * \perspective) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (2 * \layer + 64 * \filters + 0.3 * \perspective, 0.3 * \perspective) -- (3 * \layer, \bottomlevel + 0.9 * \layerheight) -- (2 * \layer + 64 * \filters + 0.4 * \perspective, 0.4 * \perspective) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (2 * \layer + 64 * \filters + 0.4 * \perspective, 0.4 * \perspective) -- (3 * \layer, \bottomlevel + 0.9 * \layerheight) -- (2 * \layer + 64 * \filters + 0.4 * \perspective, \layerheight + 0.4 * \perspective) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (2 * \layer + 64 * \filters + 0.4 * \perspective, \layerheight + 0.4 * \perspective) -- (3 * \layer, \bottomlevel + 0.9 * \layerheight) -- (2 * \layer + 64 * \filters + 0.3 * \perspective, \layerheight + 0.3 * \perspective) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (2 * \layer + 64 * \filters + 0.3 * \perspective, 0.3 * \perspective) -- (3 * \layer, \bottomlevel + 0.9 * \layerheight) -- (2 * \layer + 64 * \filters + 0.3 * \perspective, \layerheight + 0.3 * \perspective) -- cycle;
% draw the second convolution
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (2 * \layer + 64 * \filters, 0.4 * \layerheight) -- (2 * \layer + 64 * \filters + \perspective, 0.4 * \layerheight + \perspective) -- (2 * \layer + 64 * \filters + \perspective, 0.5 * \layerheight + \perspective) -- (2 * \layer + 64 * \filters, 0.5 * \layerheight) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (2 * \layer + 64 * \filters, 0.4 * \layerheight) -- (3 * \layer, \upperlevel + 0.6 * \layerheight) -- (2 * \layer + 64 * \filters + \perspective, 0.4 * \layerheight + \perspective) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (2 * \layer + 64 * \filters, 0.5 * \layerheight) -- (3 * \layer, \upperlevel + 0.6 * \layerheight) -- (2 * \layer + 64 * \filters + \perspective, 0.5 * \layerheight + \perspective) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (2 * \layer + 64 * \filters + \perspective, 0.4 * \layerheight + \perspective) -- (3 * \layer, \upperlevel + 0.6 * \layerheight) -- (2 * \layer + 64 * \filters + \perspective, 0.5 * \layerheight + \perspective) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (2 * \layer + 64 * \filters, 0.4 * \layerheight) -- (3 * \layer, \upperlevel + 0.6 * \layerheight) -- (2 * \layer + 64 * \filters, 0.5 * \layerheight) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (2 * \layer + 64 * \filters + 0.3 * \perspective, 0.3 * \perspective) -- (2 * \layer + 64 * \filters + 0.4 * \perspective, 0.4 * \perspective) -- (2 * \layer + 64 * \filters + 0.4 * \perspective, \layerheight + 0.4 * \perspective) -- (2 * \layer + 64 * \filters + 0.3 * \perspective, \layerheight + 0.3 * \perspective) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (2 * \layer + 64 * \filters + 0.3 * \perspective, 0.3 * \perspective) -- (3 * \layer, \bottomlevel + 0.9 * \layerheight) -- (2 * \layer + 64 * \filters + 0.4 * \perspective, 0.4 * \perspective) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (2 * \layer + 64 * \filters + 0.4 * \perspective, 0.4 * \perspective) -- (3 * \layer, \bottomlevel + 0.9 * \layerheight) -- (2 * \layer + 64 * \filters + 0.4 * \perspective, \layerheight + 0.4 * \perspective) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (2 * \layer + 64 * \filters + 0.4 * \perspective, \layerheight + 0.4 * \perspective) -- (3 * \layer, \bottomlevel + 0.9 * \layerheight) -- (2 * \layer + 64 * \filters + 0.3 * \perspective, \layerheight + 0.3 * \perspective) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (2 * \layer + 64 * \filters + 0.3 * \perspective, 0.3 * \perspective) -- (3 * \layer, \bottomlevel + 0.9 * \layerheight) -- (2 * \layer + 64 * \filters + 0.3 * \perspective, \layerheight + 0.3 * \perspective) -- cycle;
% draw the third convolution
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (4 * \layer + 128 * \filters, 0.4 * \layerheight) -- (4 * \layer + 128 * \filters + \perspective, 0.4 * \layerheight + \perspective) -- (4 * \layer + 128 * \filters + \perspective, 0.5 * \layerheight + \perspective) -- (4 * \layer + 128 * \filters, 0.5 * \layerheight) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (4 * \layer + 128 * \filters, 0.4 * \layerheight) -- (5 * \layer, \upperlevel + 0.6 * \layerheight) -- (4 * \layer + 128 * \filters + \perspective, 0.4 * \layerheight + \perspective) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (4 * \layer + 128 * \filters, 0.5 * \layerheight) -- (5 * \layer, \upperlevel + 0.6 * \layerheight) -- (4 * \layer + 128 * \filters + \perspective, 0.5 * \layerheight + \perspective) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (4 * \layer + 128 * \filters + \perspective, 0.4 * \layerheight + \perspective) -- (5 * \layer, \upperlevel + 0.6 * \layerheight) -- (4 * \layer + 128 * \filters + \perspective, 0.5 * \layerheight + \perspective) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (4 * \layer + 128 * \filters, 0.4 * \layerheight) -- (5 * \layer, \upperlevel + 0.6 * \layerheight) -- (4 * \layer + 128 * \filters, 0.5 * \layerheight) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (4 * \layer + 128 * \filters + 0.3 * \perspective, 0.3 * \perspective) -- (4 * \layer + 128 * \filters + 0.4 * \perspective, 0.4 * \perspective) -- (4 * \layer + 128 * \filters + 0.4 * \perspective, \layerheight + 0.4 * \perspective) -- (4 * \layer + 128 * \filters + 0.3 * \perspective, \layerheight + 0.3 * \perspective) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (4 * \layer + 128 * \filters + 0.3 * \perspective, 0.3 * \perspective) -- (5 * \layer, \bottomlevel + 0.9 * \layerheight) -- (4 * \layer + 128 * \filters + 0.4 * \perspective, 0.4 * \perspective) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (4 * \layer + 128 * \filters + 0.4 * \perspective, 0.4 * \perspective) -- (5 * \layer, \bottomlevel + 0.9 * \layerheight) -- (4 * \layer + 128 * \filters + 0.4 * \perspective, \layerheight + 0.4 * \perspective) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (4 * \layer + 128 * \filters + 0.4 * \perspective, \layerheight + 0.4 * \perspective) -- (5 * \layer, \bottomlevel + 0.9 * \layerheight) -- (4 * \layer + 128 * \filters + 0.3 * \perspective, \layerheight + 0.3 * \perspective) -- cycle;
\filldraw[fill=red!50, draw=black, fill opacity=0.2] (4 * \layer + 128 * \filters + 0.3 * \perspective, 0.3 * \perspective) -- (5 * \layer, \bottomlevel + 0.9 * \layerheight) -- (4 * \layer + 128 * \filters + 0.3 * \perspective, \layerheight + 0.3 * \perspective) -- cycle;
% hidden layer labels
\draw[decorate, decoration={brace}] (\layer, \upperlevel + 1.25 * \layerheight + \perspective) -- (2 * \layer + 64 * \filters + \perspective, \upperlevel + 1.25 * \layerheight + \perspective) node[midway, anchor=south, above=2cm, align=center] {concatenation module 1} node[midway, anchor=south, above=0.8cm, align=center, text width=4cm] {hor: $1 \times 15$ kernel ver: $12 \times 1$ kernel} node[midway, anchor=south] {(ReLU activation)};
\draw[decorate, decoration={brace}] (3 * \layer, \upperlevel + 1.25 * \layerheight + \perspective) -- (4 * \layer + 128 * \filters + \perspective, \upperlevel + 1.25 * \layerheight + \perspective) node[midway, anchor=south, above=2cm, align=center] {concatenation module 2} node[midway, anchor=south, above=0.8cm, align=center, text width=4cm] {hor: $1 \times 15$ kernel ver: $12 \times 1$ kernel} node[midway, anchor=south] {(ReLU activation)};
\draw[decorate, decoration={brace}] (5 * \layer, \upperlevel + 1.25 * \layerheight + \perspective) -- (6 * \layer + 64 * \filters + \perspective, \upperlevel + 1.25 * \layerheight + \perspective) node[midway, anchor=south, above=2cm, align=center] {concatenation module 3} node[midway, anchor=south, above=0.8cm, align=center, text width=4cm] {hor: $1 \times 15$ kernel ver: $12 \times 1$ kernel} node[midway, anchor=south] {(ReLU activation)};
\end{tikzpicture}
% vim: ft=tex

Binary file not shown.

Binary file not shown.

BIN
img/input_mat.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Binary file not shown.

422
img/marchenko-pastur.nb Normal file
View File

@@ -0,0 +1,422 @@
(* Content-type: application/vnd.wolfram.mathematica *)
(*** Wolfram Notebook File ***)
(* http://www.wolfram.com/nb *)
(* CreatedBy='Mathematica 12.1' *)
(*CacheID: 234*)
(* Internal cache information:
NotebookFileLineBreakTest
NotebookFileLineBreakTest
NotebookDataPosition[ 158, 7]
NotebookDataLength[ 18991, 414]
NotebookOptionsPosition[ 18069, 390]
NotebookOutlinePosition[ 18498, 407]
CellTagsIndexPosition[ 18455, 404]
WindowFrame->Normal*)
(* Beginning of Notebook Content *)
Notebook[{
Cell[BoxData[{
RowBox[{
RowBox[{
RowBox[{"n", "=", "10000"}], ";"}], " ",
RowBox[{"(*", " ", "rows", " ", "*)"}]}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{"p", "=", "1000"}], ";"}], " ",
RowBox[{"(*", " ", "columns", " ", "*)"}]}]}], "Input",
CellChangeTimes->{{3.814164590690421*^9, 3.814164608377831*^9}, {
3.8141648314838877`*^9, 3.8141648430424347`*^9}, {3.814165688469067*^9,
3.814165694713544*^9}},
CellLabel->"In[1]:=",ExpressionUUID->"e07ea3b1-6853-427d-a42f-55af95fd957a"],
Cell[BoxData[{
RowBox[{
RowBox[{
RowBox[{"eig", "=",
RowBox[{"RandomVariate", "[",
RowBox[{"MatrixPropertyDistribution", "[",
RowBox[{
RowBox[{
RowBox[{"Eigenvalues", "[", "x", "]"}], "/", "n"}], ",",
RowBox[{"Distributed", "[",
RowBox[{"x", ",",
RowBox[{"WishartMatrixDistribution", "[",
RowBox[{"n", ",",
RowBox[{"IdentityMatrix", "[", "p", "]"}]}], "]"}]}], "]"}]}],
"]"}], "]"}]}], ";"}], " ",
RowBox[{"(*", " ",
RowBox[{"eigenvalues", " ", "distribution"}], " ",
"*)"}]}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"eighist", "=",
RowBox[{"Histogram", "[",
RowBox[{"eig", ",",
RowBox[{"{", "0.05", "}"}], ",", "\"\<PDF\>\""}], "]"}]}],
";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{"marcpast", "=",
RowBox[{"Plot", "[",
RowBox[{
RowBox[{"PDF", "[",
RowBox[{
RowBox[{"MarchenkoPasturDistribution", "[",
RowBox[{"p", "/", "n"}], "]"}], ",", "x"}], "]"}], ",",
RowBox[{"{",
RowBox[{"x", ",", "0", ",", "1.8"}], "}"}], ",",
RowBox[{"PlotStyle", "\[Rule]", "Thick"}], ",",
RowBox[{"PlotRange", "\[Rule]", "All"}], ",",
RowBox[{"PlotLegends", "\[Rule]", "None"}], ",",
RowBox[{"Exclusions", "\[Rule]", "None"}]}], "]"}]}], ";"}], " ",
RowBox[{"(*", " ",
RowBox[{"MP", " ", "distribution"}], " ", "*)"}]}]}], "Input",
CellChangeTimes->{{3.81416457947685*^9, 3.814164825544231*^9}, {
3.814164859931432*^9, 3.8141648687684603`*^9}, {3.814164899060389*^9,
3.8141649473920717`*^9}, {3.814165059908477*^9, 3.814165064986815*^9}, {
3.8141652656624937`*^9, 3.814165289294182*^9}, 3.814165482471281*^9, {
3.814165576485319*^9, 3.814165589899877*^9}, {3.814165670536396*^9,
3.814165713057708*^9}},
CellLabel->"In[3]:=",ExpressionUUID->"888d2e13-08b5-4891-9154-b2c963d80b02"],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"mpplot", "=",
RowBox[{"Labeled", "[",
RowBox[{
RowBox[{"Show", "[",
RowBox[{
RowBox[{"{",
RowBox[{"eighist", ",", "marcpast"}], "}"}], ",",
RowBox[{"ImageSize", "\[Rule]", "Large"}], ",",
RowBox[{
"PlotLabel", "\[Rule]",
"\"\<Distribution of the Eigenvalues of a Wishart Data Matrix and \
Marchenko-Pastur Limiting Distribution\>\""}]}], "]"}], ",",
"\"\<n = \!\(\*SuperscriptBox[\(10\), \(4\)]\), p = \!\(\*SuperscriptBox[\
\(10\), \(3\)]\)\>\""}], "]"}]}]], "Input",
CellChangeTimes->{{3.814164924131678*^9, 3.814164957440431*^9}, {
3.814165071108502*^9, 3.814165168626462*^9}, {3.81416519957753*^9,
3.8141652259696913`*^9}, 3.814165261963818*^9, {3.8141657313926287`*^9,
3.81416573420116*^9}, {3.814167350854034*^9, 3.8141673998497458`*^9}},
CellLabel->"In[6]:=",ExpressionUUID->"8a44eccc-ab0a-4669-9976-f4eef79642cb"],
Cell[BoxData[
TemplateBox[{
GraphicsBox[{{{
Directive[
EdgeForm[
Directive[
Thickness[Small],
Opacity[0.504]]],
RGBColor[0.987148, 0.8073604000000001, 0.49470040000000004`]], {{}, {
Directive[
EdgeForm[
Directive[
Thickness[Small],
Opacity[0.504]]],
RGBColor[0.987148, 0.8073604000000001, 0.49470040000000004`]], {{{
RectangleBox[{0.45, 0}, {0.5, 0.2600000000000001},
"RoundingRadius" -> 0]}}, {{
RectangleBox[{0.5, 0}, {0.55, 0.7999999999999994},
"RoundingRadius" -> 0]}}, {{
RectangleBox[{0.55, 0}, {0.6000000000000001, 0.9799999999999992},
"RoundingRadius" -> 0]}}, {{
RectangleBox[{0.6000000000000001, 0}, {0.65, 1.0600000000000014`},
"RoundingRadius" -> 0]}}, {{
RectangleBox[{0.65, 0}, {0.7, 1.1000000000000014`},
"RoundingRadius" -> 0]}}, {{
RectangleBox[{0.7, 0}, {0.75, 1.119999999999999},
"RoundingRadius" -> 0]}}, {{
RectangleBox[{0.75, 0}, {0.8, 1.119999999999999},
"RoundingRadius" -> 0]}}, {{
RectangleBox[{0.8, 0}, {0.8500000000000001, 1.119999999999999},
"RoundingRadius" -> 0]}}, {{
RectangleBox[{0.8500000000000001, 0}, {0.9, 1.0800000000000014`},
"RoundingRadius" -> 0]}}, {{
RectangleBox[{0.9, 0}, {0.95, 1.0600000000000014`},
"RoundingRadius" -> 0]}}, {{
RectangleBox[{0.95, 0}, {1., 0.9599999999999992},
"RoundingRadius" -> 0]}}, {{
RectangleBox[{1., 0}, {1.05, 0.9999999999999991},
"RoundingRadius" -> 0]}}, {{
RectangleBox[{1.05, 0}, {1.1, 0.9199999999999993},
"RoundingRadius" -> 0]}}, {{
RectangleBox[{1.1, 0}, {1.1500000000000001`, 0.8599999999999993},
"RoundingRadius" -> 0]}}, {{
RectangleBox[{1.1500000000000001`, 0}, {1.2, 0.860000000000003},
"RoundingRadius" -> 0]}}, {{
RectangleBox[{1.2, 0}, {1.25, 0.8199999999999993},
"RoundingRadius" -> 0]}}, {{
RectangleBox[{1.25, 0}, {1.3, 0.7599999999999993},
"RoundingRadius" -> 0]}}, {{
RectangleBox[{1.3, 0}, {1.35, 0.6999999999999994},
"RoundingRadius" -> 0]}}, {{
RectangleBox[{1.35, 0}, {1.4000000000000001`, 0.6399999999999995},
"RoundingRadius" -> 0]}}, {{
RectangleBox[{1.4000000000000001`, 0}, {1.45, 0.6200000000000022},
"RoundingRadius" -> 0]}}, {{
RectangleBox[{1.45, 0}, {1.5, 0.5999999999999995},
"RoundingRadius" -> 0]}}, {{
RectangleBox[{1.5, 0}, {1.55, 0.45999999999999963`},
"RoundingRadius" -> 0]}}, {{
RectangleBox[{1.55, 0}, {1.6, 0.3999999999999997},
"RoundingRadius" -> 0]}}, {{
RectangleBox[{1.6, 0}, {1.6500000000000001`, 0.3599999999999997},
"RoundingRadius" -> 0]}}, {{
RectangleBox[{1.6500000000000001`, 0}, {1.7,
0.24000000000000082`}, "RoundingRadius" -> 0]}}, {{
RectangleBox[{1.7, 0}, {1.75, 0.09999999999999992},
"RoundingRadius" ->
0]}}}}, {}, {}}}, {{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, \
{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}}}, {{{{}, {},
TagBox[{
Directive[
Opacity[1.],
RGBColor[0.368417, 0.506779, 0.709798],
AbsoluteThickness[1.6],
Thickness[Large]],
LineBox[CompressedData["
1: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
"]]},
Annotation[#, "Charting`Private`Tag$2636#1"]& ]}}, {}}}, {
ImageSize -> Large, PlotLabel ->
FormBox["\"Distribution of the Eigenvalues of a Wishart Data Matrix and \
Marchenko-Pastur Limiting Distribution\"", TraditionalForm], AspectRatio ->
NCache[GoldenRatio^(-1), 0.6180339887498948], Axes -> {True, True},
AxesLabel -> {None, None}, AxesOrigin -> {0.424, 0},
FrameLabel -> {{None, None}, {None, None}},
FrameTicks -> {{Automatic, Automatic}, {Automatic, Automatic}},
GridLines -> {None, None}, GridLinesStyle -> Directive[
GrayLevel[0.5, 0.4]], PlotRange -> {{0.45, 1.75}, {All, All}},
PlotRangePadding -> {{
Scaled[0.02],
Scaled[0.02]}, {
Scaled[0.02],
Scaled[0.05]}}, Ticks -> {Automatic, Automatic}}],
"\"n = \\!\\(\\*SuperscriptBox[\\(10\\), \\(4\\)]\\), p = \
\\!\\(\\*SuperscriptBox[\\(10\\), \\(3\\)]\\)\""},
"Labeled",
DisplayFunction->(GridBox[{{
TagBox[
ItemBox[
PaneBox[
TagBox[#, "SkipImageSizeLevel"], Alignment -> {Center, Baseline},
BaselinePosition -> Baseline], DefaultBaseStyle -> "Labeled"],
"SkipImageSizeLevel"]}, {
ItemBox[#2, DefaultBaseStyle -> "LabeledLabel"]}},
GridBoxAlignment -> {"Columns" -> {{Center}}, "Rows" -> {{Center}}},
AutoDelete -> False,
GridBoxItemSize -> {"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}},
BaselinePosition -> {1, 1}]& ),
InterpretationFunction->(RowBox[{"Labeled", "[",
RowBox[{#, ",", #2}], "]"}]& )]], "Output",
CellChangeTimes->{{3.8141649350400352`*^9, 3.814164957792368*^9}, {
3.814165074474577*^9, 3.814165106326329*^9}, {3.8141651475548*^9,
3.814165169222849*^9}, {3.8141652623143*^9, 3.814165302492792*^9},
3.814165533438848*^9, {3.814165585850946*^9, 3.8141655989169416`*^9},
3.814165681040098*^9, 3.814165734914089*^9, 3.8141674097658978`*^9},
CellLabel->"Out[6]=",ExpressionUUID->"cfd9fe62-75fc-4a7d-a43e-e70326d3e274"]
}, Open ]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"Export", "[",
RowBox[{
RowBox[{"FileNameJoin", "[",
RowBox[{"{",
RowBox[{
RowBox[{"NotebookDirectory", "[", "]"}], ",",
"\"\<marchenko-pastur.pdf\>\""}], "}"}], "]"}], ",", "mpplot", ",",
"\"\<PDF\>\""}], "]"}]], "Input",
CellChangeTimes->{{3.8141657274690123`*^9, 3.814165866323689*^9}},
CellLabel->"In[7]:=",ExpressionUUID->"353f095a-0bff-4b63-bbe1-d484dee8f355"],
Cell[BoxData["\<\"/home/riccardo/documents/thesis_beamer/img/marchenko-pastur.\
pdf\"\>"], "Output",
CellChangeTimes->{
3.814165786375692*^9, {3.8141658293920183`*^9, 3.814165839439434*^9},
3.8141658714284563`*^9, 3.814167414286223*^9},
CellLabel->"Out[7]=",ExpressionUUID->"b0e30f48-ebd4-4574-9684-78b2d9ef9265"]
}, Open ]]
},
WindowSize->{1097.25, 573.75},
WindowMargins->{{0, Automatic}, {-0.75, Automatic}},
Magnification:>0.8 Inherited,
FrontEndVersion->"12.1 for Linux x86 (64-bit) (June 19, 2020)",
StyleDefinitions->"Default.nb",
ExpressionUUID->"330d46d3-10f2-431d-beb3-d05b4008f49d"
]
(* End of Notebook Content *)
(* Internal cache information *)
(*CellTagsOutline
CellTagsIndex->{}
*)
(*CellTagsIndex
CellTagsIndex->{}
*)
(*NotebookFileOutline
Notebook[{
Cell[558, 20, 517, 12, 40, "Input",ExpressionUUID->"e07ea3b1-6853-427d-a42f-55af95fd957a"],
Cell[1078, 34, 1919, 47, 75, "Input",ExpressionUUID->"888d2e13-08b5-4891-9154-b2c963d80b02"],
Cell[CellGroupData[{
Cell[3022, 85, 922, 19, 58, "Input",ExpressionUUID->"8a44eccc-ab0a-4669-9976-f4eef79642cb"],
Cell[3947, 106, 13320, 259, 348, "Output",ExpressionUUID->"cfd9fe62-75fc-4a7d-a43e-e70326d3e274"]
}, Open ]],
Cell[CellGroupData[{
Cell[17304, 370, 425, 10, 25, "Input",ExpressionUUID->"353f095a-0bff-4b63-bbe1-d484dee8f355"],
Cell[17732, 382, 321, 5, 26, "Output",ExpressionUUID->"b0e30f48-ebd4-4574-9684-78b2d9ef9265"]
}, Open ]]
}
]
*)

BIN
img/marchenko-pastur.pdf Normal file

Binary file not shown.

BIN
img/ml_map.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 757 KiB

Binary file not shown.

BIN
img/svd_orig.pdf Normal file

Binary file not shown.

View File

@@ -1,4 +1,4 @@
\documentclass[10pt, aspectratio=169]{beamer}
\documentclass[10pt, aspectratio=169, compress]{beamer}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
@@ -119,30 +119,30 @@
\end{center}
}
% \setbeamertemplate{footline}{%
% \usebeamerfont{footnote}
% \usebeamercolor{footnote}
% \hfill
% \insertframenumber{}~/~\inserttotalframenumber{}
% \hspace{1em}
% \vspace{1em}
% \par
% }
\setbeamertemplate{footline}{%
\usebeamerfont{footnote}
\usebeamercolor{footnote}
\hfill
\insertframenumber{}~/~\inserttotalframenumber{}
\hspace{1em}
\vspace{1em}
\par
}
% \AtBeginSection[]
% {%
% {%
% \setbeamertemplate{footline}{}
% \usebackgroundtemplate{%
% \transparent{0.1}
% \includegraphics[width=\paperwidth]{img/torino.png}
% }
% \addtobeamertemplate{background canvas}{\transfade[duration=0.25]}{}
% \begin{frame}[noframenumbering]{\contentsname}
% \tableofcontents[currentsection]
% \end{frame}
% }
% }
\AtBeginSection[]
{%
{%
\setbeamertemplate{footline}{}
\usebackgroundtemplate{%
\transparent{0.1}
\includegraphics[width=\paperwidth]{img/torino.png}
}
\addtobeamertemplate{background canvas}{\transfade[duration=0.25]}{}
\begin{frame}[noframenumbering]{\contentsname}
\tableofcontents[currentsection]
\end{frame}
}
}
\begin{document}
@@ -601,7 +601,7 @@
\end{frame}
\begin{frame}{Doubling Trick and Spinor Representation}
\begin{block}{Doubling Trick}
\begin{equationblock}{Doubling Trick}
\begin{equation*}
\partial_z \mathcal{X}( z )
=
@@ -628,12 +628,12 @@
}
\end{equation*}
where $\mathscr{H}_{\gtrless}^{(t)} = \qty{z \in \mathds{C} \mid \Im z \gtrless 0~\text{or}~z \in D_{(t)} }$ and $\updelta_{\pm} = \upeta \pm i 0^+$.
\end{block}
\end{equationblock}
\pause
\begin{tikzpicture}[remember picture, overlay]
\draw[line width=4pt, red] (31em,6em) ellipse (0.8cm and 1.2cm);
\draw[line width=4pt, red] (31em,6em) ellipse (0.8cm and 1cm);
\end{tikzpicture}
\pause
@@ -700,8 +700,7 @@
\frac{1}{\Upgamma( c_n )}\,
\tensor[_2]{F}{_1}( a_n,\, b_n;\, c_n;\, \upomega_z )
\\
\qty( -\upomega_z )^{1 - c_n}\,
\frac{1}{\Upgamma( 2 - c_n )}\,
\frac{\qty( -\upomega_z )^{1 - c_n}}{\Upgamma( 2 - c_n )}\,
\tensor[_2]{F}{_1}( a_n + 1 - c_n,\, b_n + 1 - c_n;\, 2 - c_n;\, \upomega_z )
)
\end{equation*}
@@ -1177,13 +1176,586 @@
\subsection[NBO]{Null Boost Orbifold}
\begin{frame}{Null Boost Orbifold}
Start from $\qty( x^+,\, x^-,\, x^2,\, \vec{x} ) \in \mathscr{M}^{1,\, D-1}$:
\begin{equation*}
\begin{cases}
u & = x^-
\\
z & = \frac{x^2}{\Updelta\, x^-}
\\
v & = x^+ - \frac{1}{2} \frac{\qty( x^2 )^2}{x^-}
\end{cases}
\qquad
\Rightarrow
\qquad
\dd{s}^2 = -2 \dd{u} \dd{v} + \qty( \Updelta\, u )^2\, \dd{z}^2 + \updelta_{ij} \dd{x}^i \dd{x}^j
\end{equation*}
\pause
\begin{equationblock}{Killing Vector and Null Boost Oribfold}
\begin{equation*}
\upkappa = -i \qty( 2 \uppi \Updelta ) J_{+2} = 2 \uppi \partial_z
\Rightarrow
z \sim z + 2 \uppi n
\end{equation*}
\end{equationblock}
\pause
Consider \highlight{scalar QED:}
\begin{equation*}
\upphi_{\qty{ k_+,\, l,\, \vec{k},\, r}}\qty( u,\, v,\, z,\, \vec{x} )
=
e^{i \qty( k_+ v + l z + \vec{k} \cdot \vec{x} )}\,
\widetilde{\upphi}_{\qty{ k_+,\, l,\, \vec{k},\, r}}\qty( u )
=
\frac{e^{i \qty( k_+ v + l z + \vec{k} \cdot \vec{x} )}}{\sqrt{\qty( 2 \uppi )^D\, \abs{2 \Updelta k_+ u}}}\,
e^{-i \frac{l^2}{2 \Updelta^2 k_+} \frac{1}{u} + i \frac{\norm{\vec{k}}^2 + r}{2 k_+} u}
\end{equation*}
\end{frame}
\begin{frame}{Scalar QED Interactions}
Scalar--photon interactions:
\begin{equation*}
S_{\text{sQED}}^{\text{(int)}}
=
\int\limits_{\Upomega} \dd[D]{x} \sqrt{- g }\,
\qty(%
-i\, e\, g^{\upalpha\upbeta} a_{\upalpha} \qty( \upphi^*\, \partial_{\upbeta} \upphi - \partial_{\upbeta} \upphi^*\, \upphi )
+ e^2\, g^{\upalpha\upbeta} a_{\upalpha} a_{\upbeta} \abs{\upphi}^2
- \frac{g_4}{4}\, \abs{\upphi}^4
)
\end{equation*}
\pause
Terms involved:
\begin{equation*}
\begin{split}
\mathcal{I}^{\qty[\upnu]}_{\qty{N}}
& =
\int\limits_{-\infty}^{+\infty} \dd{u}
\abs{\Updelta\, u} u^{\upnu}
\prod\limits_{i = 1}^N
\widetilde{\upphi}_{\qty{ k_{+\, (i)},\, l_{(i)},\, \vec{k}_{(i)},\, r_{(i)}}}\qty( u )
\\
\mathcal{J}^{\qty[\upnu]}_{\qty{N}}
& =
\int\limits_{-\infty}^{+\infty} \dd{u}
\abs{\Updelta} \abs{u}^{1 + \upnu}
\prod\limits_{i = 1}^N
\widetilde{\upphi}_{\qty{ k_{+\, (i)},\, l_{(i)},\, \vec{k}_{(i)},\, r_{(i)}}}\qty( u )
\end{split}
\end{equation*}
\pause
\begin{center}
\it
most terms \textbf{do not converge} and cannot be recovered even with a \textbf{distributional interpretions} due to the term $\propto u^{-1}$ in the exponentatial
\end{center}
\end{frame}
\begin{frame}{String and Field Theory}
So far:
\begin{itemize}
\item field theory presents \textbf{divergences}
\pause
\item issues are \textbf{still present} in sQED (eikonal?)
\pause
\item divergences are \textbf{not (only) gravitational}
\end{itemize}
\pause
\begin{equationblock}{Massive String States}
\begin{equation*}
V_M\qty( x;\, k,\, S,\, \upxi )
=
\colon
\qty(%
\frac{i}{\sqrt{2 \upalpha'}}\,
\upxi \cdot \partial^2_x X( x,\, x )
+
\qty( \frac{i}{\sqrt{2 \upalpha'}} )^2\,
S_{\upalpha\upbeta}
\partial_x X^{\upalpha}( x,\, x )
\partial_x X^{\upbeta}( x,\, x )
)
e^{i k \cdot X( x,\, x )}
\colon
\end{equation*}
\end{equationblock}
\pause
\begin{center}
\it
string theory cannot do \textbf{better than field theory} (EFT) if the latter \textbf{does not exist} (even a Wilson line around $z$ does not prevent such behaviour)
\end{center}
\end{frame}
\begin{frame}{Resolution and Motivation}
Introduce the \highlight{generalised NBO:}
\begin{equation*}
\begin{cases}
u & = x^-
\\
z & = \frac{1}{2 x^-} \qty( \frac{x^2}{\Updelta_2} + \frac{x^3}{\Updelta_3} )
\\
w & = \frac{1}{2 x^-} \qty( \frac{x^2}{\Updelta_2} - \frac{x^3}{\Updelta_3} )
\\
v & = x^+ - \frac{1}{2 x^-} \qty( \qty( x^2 )^2 + \qty( x^3 )^2 )
\end{cases}
\qquad
\Rightarrow
\qquad
\upkappa
=
-2 \uppi i \qty( \Updelta_2 J_{+2} + \Updelta_3 J_{+3} )
=
2 \uppi \partial_z
\end{equation*}
\pause
\begin{equationblock}{Distributional Interpretation}
\begin{equation*}
\widetilde{\upphi}_{\qty{ k_+,\, p,\, l,\, \vec{k},\, r}}\qty( u )
=
\frac{1}{2 \sqrt{\qty(2 \uppi)^D \abs{\Updelta_2 \Updelta_3 k_+}}}
\frac{1}{\abs{u}}
e^{-i\, \qty( \frac{1}{8 k_+ u} \qty[ \frac{(l + p)^2}{\Updelta_2^2} + \frac{(l - p)^2}{\Updelta_3^2} ] - \frac{\norm{\vec{k}}^2 + r}{2 k_+} u )}
\end{equation*}
\end{equationblock}
\end{frame}
\begin{frame}{On the Divergences and Their Nature}
\begin{itemize}
\item divergences are present in sQED and \textbf{open string} sector
\pause
\item singularities $\Rightarrow$ \textbf{massive states} are no longer spectators
\pause
\item vanishing volume (\textbf{compact orbifold directions}) $\Rightarrow$ particles ``cannot escape''
\pause
\item \textbf{non compact} orbifold directions $\Rightarrow$ interpretation of \textbf{amplitudes as distributions}
\pause
\item issue not restricted to NBO/GNBO but also BO, null brane, etc. (it is a \textbf{general issues} connected to the geometry of the underlying space)
\end{itemize}
\pause
\vspace{2em}
\begin{center}
\it
spacetime singularities are \textbf{hidden into contact terms} and interactions with \textbf{massive states} (the gravitational eikonal deals with massless interactions)
\end{center}
\begin{tikzpicture}[remember picture, overlay]
\draw[line width=4pt, red] (0em, 4.5em) rectangle (40em, 1em);
\end{tikzpicture}
\end{frame}
\section[Deep Learning]{Deep Learning the Geometry of String Theory}
\begin{frame}{CCC}
c
\subsection[Introduction]{Machine Learning and Deep Learning}
\begin{frame}{The Simplest Calabi--Yau}
Focus on Calabi--Yau \highlight{3-folds:}
\begin{equation*}
h^{r,\, s} = \dim\limits_{\mathds{C}} H_{\overline{\partial}}^{r,\, s}\qty( M,\, \mathds{C} )
\qquad
\Rightarrow
\qquad
\begin{cases}
h^{0,\, 0} & = h^{3,\, 0} = 1
\\
h^{r,\, 0} & = 0 \quad \text{if} \quad r \neq 3
\\
h^{r,\, s} & = h^{3 - r,\, 3 - s}
\\
h^{1,\, 1},\, h^{2,\, 1} \in \mathds{N}
\end{cases}
\end{equation*}
\pause
\begin{block}{Complete Intersection Calabi--Yau Manifolds}
Intersection of hypersurfaces in
\begin{equation*}
\mathcal{A} = \mathds{P}^{n_1} \times \dots \times \mathds{P}^{n_m}
\end{equation*}
where
\begin{equation*}
\mathds{P}^n\colon
\qquad
\begin{cases}
p_a\qty( Z^0,\, \dots,\, Z^n ) & = P_{I_1 \dots I_a} Z^{I_1} \dots Z^{I_a} = 0
\\
p_a\qty( \uplambda Z^0,\, \dots,\, \uplambda Z^n ) & = \uplambda^a p_a\qty( Z^0,\, \dots,\, Z^n )
\end{cases}
\end{equation*}
\end{block}
\end{frame}
\begin{frame}{Representation of the Output}
CICY can be generalised to \highlight{$m$ projective spaces and $k$ equations.}
The problem is thus mapped to:
\begin{equation*}
\begin{tabular}{@{}lccc@{}}
$\mathscr{R}\colon$
&
$\mathds{Z}^{m \times k}$
&
$\longrightarrow$
&
$\mathds{N}$
\\[1em]
&
$\qty[%
\begin{tabular}{@{}c|ccc@{}}
$\mathds{P}^{n_1}$ & $a_1^1$ & $\dots$ & $a_k^1$
\\
$\vdots$ & $\vdots$ & $\ddots$ & $\vdots$
\\
$\mathds{P}^{n_m}$ & $a_1^m$ & $\dots$ & $a_k^m$
\end{tabular}
]$
&
$\longrightarrow$
&
$h^{1,\, 1} \quad \text{or} \quad h^{2,\, 1}$
\end{tabular}
\end{equation*}
\pause
\begin{block}{Machine Learning Approach}
What is $\mathscr{R}$?
\begin{equation*}
\mathscr{R}( M ) \longrightarrow \mathscr{R}_n( M;\, w )
\qquad
\text{s.t.}
\qquad
\lim\limits_{n \to \infty} f( M;\, w ) = \lim\limits_{n \to \infty} \abs{\mathscr{R}( M ) - \mathscr{R}_n( M;\, w )} = 0
\end{equation*}
\end{block}
\end{frame}
\begin{frame}{Machine Learning}
\begin{itemize}
\item exchange \textbf{analytical solution} with \textbf{optimisation problem}
\pause
\item use \textbf{various algorithms} and exploit \textbf{large datasets}
\pause
\item learn a \textbf{representation} rather than a \textbf{solution}
\pause
\item effectively use knowledge from \textbf{computer science, mathematics and physics} to solve problems
\end{itemize}
\pause
\begin{center}
\includegraphics[width=0.7\linewidth]{img/label-distribution_orig}
\end{center}
\end{frame}
\subsection[Machine Learning]{Machine Learning for String Theory}
\begin{frame}{Exploratory Data Analysis}
Machine Learning \highlight{pipeline:}
\begin{center}
\textbf{exploratory} data analysis
$\rightarrow$
feature \textbf{selection}
$\rightarrow$
Hodge numbers
\end{center}
\pause
\begin{columns}
\begin{column}{0.5\linewidth}
\centering
\includegraphics[width=0.9\columnwidth]{img/corr-matrix_orig}
\end{column}
\hfill
\begin{column}{0.5\linewidth}
\centering
\includegraphics[width=0.9\columnwidth, trim={0 0 6in 0}, clip]{img/scalar-features_orig}
\end{column}
\end{columns}
\end{frame}
\begin{frame}{Dataset}
\begin{itemize}
\item $7890$ CICY manifolds (full dataset)
\pause
\item \textbf{dataset pruning}: no product spaces, no ``very far'' outliers (reduction of $0.49\%$)
\pause
\item $h^{1,\, 1} \in \qty[ 1,\, 16 ]$ and $h^{2,\, 1} \in \qty[ 15,\, 86 ]$
\pause
\item $80\%$ training, $10\%$ validation, $10\%$ test
\pause
\item choose \textbf{regression}, but evaluate using \textbf{accuracy} (round the result)
\end{itemize}
\pause
\begin{center}
\includegraphics[width=0.7\linewidth]{img/label-distribution-compare_orig}
\end{center}
\end{frame}
\begin{frame}{Machine Learning}
\centering
\includegraphics[width=0.85\linewidth]{img/ml_map}
\pause
\begin{tikzpicture}[remember picture, overlay]
\draw[line width=10pt, red, -latex] (-18em,1em) -- (-14.5em, 6em);
\draw[line width=10pt, red, -latex] (19em, 7em) -- (14em, 4em);
\end{tikzpicture}
\pause
\begin{tikzpicture}[remember picture, overlay]
\draw[line width=4pt, red] (12em,12em) ellipse (2cm and 1.5cm);
\end{tikzpicture}
\end{frame}
\begin{frame}{A Word on PCA}
\begin{columns}
\begin{column}{0.4\linewidth}
What is PCA for a $X \in \mathds{R}^{n \times p}$?
\begin{itemize}
\item find new coordinates to \textbf{``put the variance in order''}
\item \highlight{equivalently} compute the \textbf{eigenvectors} of $X X^T$ or the \textbf{singular values} of $X$
\item isolate \textbf{the signal} from the \textbf{background}
\item ease the machine learning job of finding a better representation of the input
\end{itemize}
\end{column}
\hfill
\begin{column}{0.6\linewidth}
\centering
\includegraphics[width=0.5\columnwidth]{img/marchenko-pastur}
\includegraphics[width=\columnwidth]{img/svd_orig}
\end{column}
\end{columns}
\end{frame}
\begin{frame}{Machine Learning Results}
\begin{columns}
\begin{column}{0.5\linewidth}
\centering
\textbf{Configuration Matrix Only}
\includegraphics[width=0.8\columnwidth, trim={0 0 3.3in 0}, clip]{img/cicy_matrix_plots}
\end{column}
\hfill\pause
\begin{column}{0.5\linewidth}
\centering
\textbf{Best Training Set}
\includegraphics[width=0.8\columnwidth, trim={0 0 3.3in 0}, clip]{img/cicy_best_plots}
\end{column}
\end{columns}
\end{frame}
\subsection[Deep Learning]{AI Implementations for Geometry and Strings}
\begin{frame}{Artificial Intelligence and Neural Networks}
\begin{columns}
\begin{column}{0.6\linewidth}
\begin{itemize}
\item use \textbf{gradient descent} to optimise \textbf{weights}
\item learn highly \textbf{non linear} representations of the input
\item can be \highlight{``large''} to have enough parameters
\item can be \highlight{``deep''} to to learn \textbf{complicated functions}
\end{itemize}
\begin{block}{Neural Networks}
\vspace{0.5em}
\begin{tabular}{@{}lc@{}}
fully connected:
&
$a^{\qty(i)\, \qty{l+1}} = \upphi\qty( a^{\qty(i)\, \qty{l}} \cdot W^{\qty{l}} + b^{\qty{l}} \mathds{1} )$
\\
convolutional:
&
$a^{\qty(i)\, \qty{l+1}} = \upphi\qty( a^{\qty(i)\, \qty{l}}\, *\, W^{\qty{l}} + b^{\qty{l}} \mathds{1} )$
\end{tabular}
\end{block}
Non linearity ensured by:
\begin{equation*}
\upphi( z ) = \mathrm{ReLU}\qty( z ) = \max\qty(0,\, z)
\end{equation*}
\end{column}
\hfill
\begin{column}{0.4\linewidth}
\centering
\resizebox{\columnwidth}{!}{\import{img}{fc.pgf}}
\end{column}
\end{columns}
\end{frame}
\begin{frame}{Convolutional Neural Networks}
Why convolutional?
\begin{columns}
\begin{column}{0.4\linewidth}
\begin{itemize}[<+->]
\item retain \textbf{spacial awareness}
\item smaller \textbf{no.\ of parameters} ($\approx 2 \times 10^5$ vs.\ $\approx 2 \times 10^6$)
\item weights are \textbf{shared}
\item CNN can isolate \textbf{``defining features''}
\item find patterns as in \textbf{computer vision}
\end{itemize}
\end{column}
\hfill
\begin{column}{0.6\linewidth}
\centering
\only<1>{\includegraphics[width=0.75\columnwidth, trim={12in 10in 0 0}, clip]{img/input_mat}}
\only<2>{\includegraphics[width=0.75\columnwidth, trim={12in 5in 0 5in}, clip]{img/input_mat}}
\only<3>{\includegraphics[width=0.75\columnwidth, trim={12in 0 0 10in}, clip]{img/input_mat}}
\only<4->{\resizebox{\columnwidth}{!}{\import{img}{ccnn.pgf}}}
\end{column}
\end{columns}
\end{frame}
\begin{frame}{Inception Neural Networks}
Recent development by Google's deep learning teams led to:
\begin{itemize}
\item neural networks with \textbf{better generalisation properties}
\item smaller networks (both parameters and depth)
\item different \textbf{concurrent kernels} (e.g.\ one over \textbf{equations} one over \textbf{coordinates})
\end{itemize}
\pause
\begin{center}
\resizebox{0.75\linewidth}{!}{\import{img}{icnn.pgf}}
\end{center}
\end{frame}
\begin{frame}{Deep Learning Results and Generalisation Properties}
\begin{columns}
\begin{column}{0.5\linewidth}
\centering
\textbf{Best Training Set}
\includegraphics[width=\columnwidth]{img/cicy_best_plots}
\end{column}
\hfill
\begin{column}{0.5\linewidth}
\centering
\includegraphics[width=0.75\columnwidth]{img/inc_nn_learning_curve_h11}
\includegraphics[width=0.75\columnwidth]{img/inc_nn_learning_curve}
\end{column}
\end{columns}
\end{frame}
\begin{frame}{A Few Comments and Future Directions}
Why \highlight{deep learning in physics?}
\begin{itemize}
\item reliable \textbf{predictive method} \pause (provided good data analysis)
\pause
\item reliable \textbf{source of inspiration} \pause (provided good data analysis)
\pause
\item reliable \textbf{generalisation method} \pause (provided good data analysis)
\pause
\item \textbf{CNNs are powerful tools} (this is the \emph{first time in physics!})
\pause
\item interdisciplinary approach $=$ win-win situation!
\end{itemize}
\pause
What now?
\begin{itemize}
\item representation learning $\Rightarrow$ what is the best way to represent CICYs?
\pause
\item study invariances $\Rightarrow$ invariances should not influence the result (graph representations?)
\pause
\item higher dimensions $\Rightarrow$ what about CICY 4-folds?
\pause
\item geometric deep learning $\Rightarrow$ explain the geometry of the ``AI'' behind deep learning!
\pause
\item reinforcement learning $\Rightarrow$ give the rules, not the result!
\end{itemize}
\end{frame}
{%
\setbeamertemplate{footline}{}
\usebackgroundtemplate{%
\transparent{0.1}
\includegraphics[width=\paperwidth]{img/torino.png}
}
\addtobeamertemplate{background canvas}{\transfade[duration=0.25]}{}
\begin{frame}[noframenumbering]{The End?}
\begin{center}
\Huge
THANK YOU!
\end{center}
\end{frame}
}
\end{document}