From 9863c75b05db22fadfe6dc632600a5ea77b1c491 Mon Sep 17 00:00:00 2001 From: Matt Graham Date: Fri, 7 Oct 2016 06:24:18 +0100 Subject: [PATCH] Adding back propagation block diagram figure and source. --- notebooks/res/fprop-bprop-block-diagram.pdf | Bin 0 -> 13789 bytes notebooks/res/fprop-bprop-block-diagram.png | Bin 0 -> 7112 bytes notebooks/res/fprop-bprop-block-diagram.tex | 65 ++++++++++++++++++++ 3 files changed, 65 insertions(+) create mode 100644 notebooks/res/fprop-bprop-block-diagram.pdf create mode 100644 notebooks/res/fprop-bprop-block-diagram.png create mode 100644 notebooks/res/fprop-bprop-block-diagram.tex diff --git a/notebooks/res/fprop-bprop-block-diagram.pdf b/notebooks/res/fprop-bprop-block-diagram.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6c5f0e08690c2abdb06b8b9a728277267ebc3ee7 GIT binary patch literal 13789 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 0}{ + \node at (2 * \l, 0) (hidden\l) {$\vct{h}_\l$}; + \draw[->] (hidden\l) -- (fprop\l); + \draw[->] let \n1={\l - 1} in (fprop\n1) -- (hidden\l); + }{ + \draw[->] (input) -- (fprop\l); + } + } + % model output + \node at (2 * \nl + 2, 0) (output) {$\mathbf{y}$}; + % error function + \node[fprop] at (2 * \nl + 3, 0) (errorfunc) {\texttt{error}}; + % error value + \node at (2 * \nl + 3, -1) (error) {$\bar{E}$}; + % targets + \node at (2 * \nl + 4, -1) (tgt) {$\vct{t}$}; + % error gradient + \node[bprop] at (2 * \nl + 3, -2) (errorgrad) {\texttt{error} \\ \texttt{.grad}}; + % gradient wrt outputs + \node at (2 * \nl + 2, -2) (gradoutput) {$\pd{\bar{E}}{\vct{y}}$}; + \draw[->] (fprop\nl) -- (output); + \draw[->] (output) -- (errorfunc); + \draw[->] (errorfunc) -- (error); + \draw[->] (error) -- (errorgrad); + \draw[->] (errorgrad) -- (gradoutput); + \draw[->] (tgt) |- (errorfunc); + \draw[->] (tgt) |- (errorgrad); + \foreach \l in {0,...,\nl} { + \node[bprop] at (2 * \l + 1, -2) (bprop\l) {\texttt{layers[\l]} \\ \texttt{.bprop}}; + \ifthenelse{\l > 0}{ + \node at (2 * \l, -2) (grad\l) {$\pd{\bar{E}}{\vct{h}_\l}$}; + \draw[<-] (grad\l) -- (bprop\l); + \draw[<-] let \n1={\l - 1} in (bprop\n1) -- (grad\l); + }{} + } + \node at (0, -2) (gradinput) {$\pd{\bar{E}}{\vct{x}}$}; + \draw[->] (bprop0) -- (gradinput); + \draw[->] (gradoutput) -- (bprop\nl); +\end{tikzpicture} + +\end{document} \ No newline at end of file