Martin Thoma пре 9 година
родитељ
комит
23e30e1351

+ 35 - 0
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

+ 3 - 0
tikz/hopfield-network/README.md

@@ -0,0 +1,3 @@
+Compiled example
+----------------
+![Example](hopfield-network.png)

BIN
tikz/hopfield-network/hopfield-network.png


+ 28 - 0
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}

+ 35 - 0
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

+ 3 - 0
tikz/restricted-boltzmann-machine/README.md

@@ -0,0 +1,3 @@
+Compiled example
+----------------
+![Example](restricted-botzmann-machine.png)

BIN
tikz/restricted-boltzmann-machine/restricted-botzmann-machine.png


+ 59 - 0
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}