\documentclass{standalone} \usepackage{neuralnetwork} \begin{document} \begin{neuralnetwork}[height=2.5, layertitleheight=0, nodespacing=2.8cm, layerspacing=1.7cm] \newcommand{\nodetextclear}[2]{} \newcommand{\nodetextxnb}[2]{\ifnum0=#2 \else $x_#2$ \fi} \newcommand{\logiclabel}[1]{\,{$\scriptstyle#1$}\,} \newcommand{\nodetextY}[2]{$y$} \newcommand{\linklabelsU}[4]{\logiclabel{+1}} \newcommand{\linklabelsA}[4]{\ifnum0=#2 \logiclabel{+3} \else \logiclabel{-2} \fi} \setdefaultnodetext{\nodetextclear} % Input layer \inputlayer[count=2, bias=false, text=\nodetextxnb] % links to first hidden layer from input layer \hiddenlayer[count=3, bias=false, exclude={1, 3}] \link[from layer=0, to layer=1, from node=1, to node=2, label=\linklabelsA] \link[from layer=0, to layer=1, from node=2, to node=2, label=\linklabelsA] \hiddenlayer[count=2, bias=true, biaspos=center] % links to second hidden layer from input and first hidden layer \link[from layer=0, to layer=2, from node=1, to node=1, label=\linklabelsA] \link[from layer=1, to layer=2, from node=2, to node=1, label=\linklabelsA] \link[from layer=1, to layer=2, from node=2, to node=2, label=\linklabelsA] \link[from layer=0, to layer=2, from node=2, to node=2, label=\linklabelsA] \outputlayer[count=1, text=\nodetextY] % links to output layer from second hidden layer \link[from layer=2, to layer=3, from node=1, to node=1, label=\linklabelsA] \link[from layer=2, to layer=3, from node=2, to node=1, label=\linklabelsA] % links from bias node \link[from layer=2, to layer=1, from node=0, to node=2, label=\linklabelsA] \link[from layer=2, to layer=2, from node=0, to node=1, label=\linklabelsA] \link[from layer=2, to layer=2, from node=0, to node=2, label=\linklabelsA] \link[from layer=2, to layer=3, from node=0, to node=1, label=\linklabelsA] \end{neuralnetwork} \end{document}