diff --git a/tikz/hopfield-network/Makefile b/tikz/hopfield-network/Makefile new file mode 100644 index 0000000..48a16a0 --- /dev/null +++ b/tikz/hopfield-network/Makefile @@ -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 diff --git a/tikz/hopfield-network/README.md b/tikz/hopfield-network/README.md new file mode 100644 index 0000000..e218c67 --- /dev/null +++ b/tikz/hopfield-network/README.md @@ -0,0 +1,3 @@ +Compiled example +---------------- +![Example](hopfield-network.png) diff --git a/tikz/hopfield-network/hopfield-network.png b/tikz/hopfield-network/hopfield-network.png new file mode 100644 index 0000000..d34d0de Binary files /dev/null and b/tikz/hopfield-network/hopfield-network.png differ diff --git a/tikz/hopfield-network/hopfield-network.tex b/tikz/hopfield-network/hopfield-network.tex new file mode 100644 index 0000000..576c2a9 --- /dev/null +++ b/tikz/hopfield-network/hopfield-network.tex @@ -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} diff --git a/tikz/restricted-boltzmann-machine/Makefile b/tikz/restricted-boltzmann-machine/Makefile new file mode 100644 index 0000000..b5a65b2 --- /dev/null +++ b/tikz/restricted-boltzmann-machine/Makefile @@ -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 diff --git a/tikz/restricted-boltzmann-machine/README.md b/tikz/restricted-boltzmann-machine/README.md new file mode 100644 index 0000000..fb447dc --- /dev/null +++ b/tikz/restricted-boltzmann-machine/README.md @@ -0,0 +1,3 @@ +Compiled example +---------------- +![Example](restricted-botzmann-machine.png) diff --git a/tikz/restricted-boltzmann-machine/restricted-botzmann-machine.png b/tikz/restricted-boltzmann-machine/restricted-botzmann-machine.png new file mode 100644 index 0000000..1798387 Binary files /dev/null and b/tikz/restricted-boltzmann-machine/restricted-botzmann-machine.png differ diff --git a/tikz/restricted-boltzmann-machine/restricted-botzmann-machine.tex b/tikz/restricted-boltzmann-machine/restricted-botzmann-machine.tex new file mode 100644 index 0000000..00ac212 --- /dev/null +++ b/tikz/restricted-boltzmann-machine/restricted-botzmann-machine.tex @@ -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}