mirror of
https://github.com/MartinThoma/LaTeX-examples.git
synced 2025-04-19 11:38:05 +02:00
Add neural networks
This commit is contained in:
parent
2d49f93b4d
commit
23e30e1351
8 changed files with 163 additions and 0 deletions
35
tikz/hopfield-network/Makefile
Normal file
35
tikz/hopfield-network/Makefile
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
SOURCE = hopfield-network
|
||||||
|
DELAY = 80
|
||||||
|
DENSITY = 300
|
||||||
|
WIDTH = 512
|
||||||
|
|
||||||
|
make:
|
||||||
|
pdflatex $(SOURCE).tex -output-format=pdf
|
||||||
|
make clean
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -rf $(TARGET) *.class *.html *.log *.aux *.data *.gnuplot
|
||||||
|
|
||||||
|
gif:
|
||||||
|
pdfcrop $(SOURCE).pdf
|
||||||
|
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
|
||||||
|
make clean
|
||||||
|
|
||||||
|
png:
|
||||||
|
make
|
||||||
|
make svg
|
||||||
|
inkscape $(SOURCE).svg -w $(WIDTH) --export-png=$(SOURCE).png
|
||||||
|
|
||||||
|
transparentGif:
|
||||||
|
convert $(SOURCE).pdf -transparent white result.gif
|
||||||
|
make clean
|
||||||
|
|
||||||
|
svg:
|
||||||
|
make
|
||||||
|
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
|
||||||
|
pdf2svg $(SOURCE).pdf $(SOURCE).svg
|
||||||
|
# Necessary, as pdf2svg does not always create valid svgs:
|
||||||
|
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg
|
||||||
|
rsvg-convert -a -w $(WIDTH) -f svg $(SOURCE).svg -o $(SOURCE)2.svg
|
||||||
|
inkscape $(SOURCE)2.svg --export-plain-svg=$(SOURCE).svg
|
||||||
|
rm $(SOURCE)2.svg
|
3
tikz/hopfield-network/README.md
Normal file
3
tikz/hopfield-network/README.md
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
Compiled example
|
||||||
|
----------------
|
||||||
|

|
BIN
tikz/hopfield-network/hopfield-network.png
Normal file
BIN
tikz/hopfield-network/hopfield-network.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 36 KiB |
28
tikz/hopfield-network/hopfield-network.tex
Normal file
28
tikz/hopfield-network/hopfield-network.tex
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
\documentclass[varwidth=true, border=2pt]{standalone}
|
||||||
|
\usepackage{tikz}
|
||||||
|
|
||||||
|
\tikzstyle{neuron}=[draw,circle,minimum size=20pt,inner sep=0pt, fill=white]
|
||||||
|
\tikzstyle{stateTransition}=[very thick]
|
||||||
|
\tikzstyle{learned}=[text=red]
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
\newcommand\n{5}
|
||||||
|
\begin{tikzpicture}[scale=1.3]
|
||||||
|
\begin{scope}[rotate=17]
|
||||||
|
%the multiplication with floats is not possible. Thus I split the loop in two.
|
||||||
|
\foreach \number in {1,...,\n}{
|
||||||
|
\node[neuron] (N-\number) at ({\number*(360/\n)}:1.5cm) {$x_\number$};
|
||||||
|
}
|
||||||
|
|
||||||
|
\foreach \number in {1,...,\n}{
|
||||||
|
\foreach \y in {1,...,\n}{
|
||||||
|
\draw[stateTransition] (N-\number) -- (N-\y);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\end{scope}
|
||||||
|
\begin{scope}[rotate=-1]
|
||||||
|
\draw[learned,stateTransition] (N-1) -- (N-2) node [midway,above=-0.15cm,sloped] {$w_{1,2}$};
|
||||||
|
\draw[learned,stateTransition] (N-1) -- (N-5) node [midway,above=-0.15cm,sloped] {$w_{1,5}$};
|
||||||
|
\end{scope}
|
||||||
|
\end{tikzpicture}
|
||||||
|
\end{document}
|
35
tikz/restricted-boltzmann-machine/Makefile
Normal file
35
tikz/restricted-boltzmann-machine/Makefile
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
SOURCE = restricted-botzmann-machine
|
||||||
|
DELAY = 80
|
||||||
|
DENSITY = 300
|
||||||
|
WIDTH = 512
|
||||||
|
|
||||||
|
make:
|
||||||
|
pdflatex $(SOURCE).tex -output-format=pdf
|
||||||
|
make clean
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -rf $(TARGET) *.class *.html *.log *.aux *.data *.gnuplot
|
||||||
|
|
||||||
|
gif:
|
||||||
|
pdfcrop $(SOURCE).pdf
|
||||||
|
convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif
|
||||||
|
make clean
|
||||||
|
|
||||||
|
png:
|
||||||
|
make
|
||||||
|
make svg
|
||||||
|
inkscape $(SOURCE).svg -w $(WIDTH) --export-png=$(SOURCE).png
|
||||||
|
|
||||||
|
transparentGif:
|
||||||
|
convert $(SOURCE).pdf -transparent white result.gif
|
||||||
|
make clean
|
||||||
|
|
||||||
|
svg:
|
||||||
|
make
|
||||||
|
#inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg
|
||||||
|
pdf2svg $(SOURCE).pdf $(SOURCE).svg
|
||||||
|
# Necessary, as pdf2svg does not always create valid svgs:
|
||||||
|
inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg
|
||||||
|
rsvg-convert -a -w $(WIDTH) -f svg $(SOURCE).svg -o $(SOURCE)2.svg
|
||||||
|
inkscape $(SOURCE)2.svg --export-plain-svg=$(SOURCE).svg
|
||||||
|
rm $(SOURCE)2.svg
|
3
tikz/restricted-boltzmann-machine/README.md
Normal file
3
tikz/restricted-boltzmann-machine/README.md
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
Compiled example
|
||||||
|
----------------
|
||||||
|

|
Binary file not shown.
After Width: | Height: | Size: 26 KiB |
|
@ -0,0 +1,59 @@
|
||||||
|
\documentclass{article}
|
||||||
|
\usepackage[pdftex,active,tightpage]{preview}
|
||||||
|
\setlength\PreviewBorder{2mm}
|
||||||
|
|
||||||
|
\usepackage{amsmath}
|
||||||
|
\usepackage{amssymb}
|
||||||
|
\usepackage{tikz}
|
||||||
|
\usetikzlibrary{shapes, calc, shapes, arrows, positioning}
|
||||||
|
|
||||||
|
\tikzstyle{neuron}=[draw,circle,minimum size=20pt,inner sep=0pt, fill=white]
|
||||||
|
\tikzstyle{stateTransition}=[thick]
|
||||||
|
\tikzstyle{learned}=[text=red]
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
\begin{preview}
|
||||||
|
\begin{tikzpicture}[scale=2]
|
||||||
|
% \draw ;
|
||||||
|
\draw[fill=black!30, rounded corners] (-0.2, -0.2) rectangle (3.2, 0.2) {};
|
||||||
|
\draw[fill=black!30, rounded corners] (0.3, 0.8) rectangle (2.7, 1.2) {};
|
||||||
|
|
||||||
|
\node (v1)[neuron] at (0, 0) {$v_1$};
|
||||||
|
\node (v2)[neuron] at (1, 0) {$v_2$};
|
||||||
|
\node (v3)[neuron] at (2, 0) {$v_3$};
|
||||||
|
\node (v4)[neuron] at (3, 0) {$v_4$};
|
||||||
|
\node[right=0.1cm of v4] (v) {$\textbf{v} \in \{0, 1\}^4$};
|
||||||
|
\node[learned,below=0.1cm of v1] (bv1) {$b_{v_1}$};
|
||||||
|
\node[learned,below=0.1cm of v2] (bv2) {$b_{v_2}$};
|
||||||
|
\node[learned,below=0.1cm of v3] (bv3) {$b_{v_3}$};
|
||||||
|
\node[learned,below=0.1cm of v4] (bv4) {$b_{v_4}$};
|
||||||
|
|
||||||
|
\node (h1)[neuron] at (0.5, 1) {$h_1$};
|
||||||
|
\node (h2)[neuron] at (1.5, 1) {$h_2$};
|
||||||
|
\node (h3)[neuron] at (2.5, 1) {$h_3$};
|
||||||
|
\node[right=0.1cm of h3] (h) {$\textbf{h} \in \{0, 1\}^3$};
|
||||||
|
\node[learned,above=0.1cm of h1] (bh1) {$b_{h_1}$};
|
||||||
|
\node[learned,above=0.1cm of h2] (bh2) {$b_{h_2}$};
|
||||||
|
\node[learned,above=0.1cm of h3] (bh3) {$b_{h_3}$};
|
||||||
|
|
||||||
|
\node[learned] (W) at (3.5, 0.5) {$W \in \mathbb{R}^{3 \times 4}$};
|
||||||
|
|
||||||
|
\draw[learned,stateTransition] (v1) -- (h1) node [midway,above=-0.06cm,sloped] {$w_{1,1}$};
|
||||||
|
\draw[stateTransition] (v1) -- (h2) node [midway,above=-0.06cm,sloped] {};
|
||||||
|
\draw[stateTransition] (v1) -- (h3) node [midway,above=-0.06cm,sloped] {};
|
||||||
|
|
||||||
|
\draw[stateTransition] (v2) -- (h1) node [midway,above=-0.06cm,sloped] {};
|
||||||
|
\draw[stateTransition] (v2) -- (h2) node [midway,above=-0.06cm,sloped] {};
|
||||||
|
\draw[stateTransition] (v2) -- (h3) node [midway,above=-0.06cm,sloped] {};
|
||||||
|
|
||||||
|
\draw[stateTransition] (v3) -- (h1) node [midway,above=-0.06cm,sloped] {};
|
||||||
|
\draw[stateTransition] (v3) -- (h2) node [midway,above=-0.06cm,sloped] {};
|
||||||
|
\draw[stateTransition] (v3) -- (h3) node [midway,above=-0.06cm,sloped] {};
|
||||||
|
|
||||||
|
\draw[stateTransition] (v4) -- (h1) node [midway,above=-0.06cm,sloped] {};
|
||||||
|
\draw[stateTransition] (v4) -- (h2) node [midway,above=-0.06cm,sloped] {};
|
||||||
|
\draw[learned,stateTransition] (v4) -- (h3) node [midway,above=-0.06cm,sloped] {$w_{4,3}$};
|
||||||
|
|
||||||
|
\end{tikzpicture}
|
||||||
|
\end{preview}
|
||||||
|
\end{document}
|
Loading…
Add table
Add a link
Reference in a new issue