\tikzstyle{input_neuron}=[circle,draw=red!50,fill=red!10,thick,minimum size=6mm]
\tikzstyle{hidden_neuron}=[circle,draw=blue!50,fill=cyan!10,thick,minimum size=6mm]
\tikzstyle{output_neuron}=[circle,draw=green!50,fill=green!10,thick,minimum size=6mm]
\tikzstyle{input}=[circle,draw=black!50,fill=black!20,thick,minimum size=6mm]
% \vspace{-0.7mm}
\begin{tikzpicture}
  \node (neuron01l) at (7.5,4) {\small $x_1$};
  \node (neuron02l) at (8.5,4) {\small $x_2$};
  \node (neuron03l) at (9.5,4) {\small $x_3$};
  \node (neuron04l) at (10.5,4) {\small $x_4$};
  \node [input_neuron] (neuron01) at (7.5,4.5) {};
  \node [input_neuron] (neuron02) at (8.5,4.5) {};
  \node [input_neuron] (neuron03) at (9.5,4.5) {};
  \node [input_neuron] (neuron04) at (10.5,4.5) {};

  \node [hidden_neuron] (neuron11) at (7,6)    {};
  \node [hidden_neuron] (neuron12) at (8,6)    {};
  \node [hidden_neuron] (neuron13) at (9,6)    {};
  \node [hidden_neuron] (neuron14) at (10,6)   {};
  \node [hidden_neuron] (neuron15) at (11,6)   {};

  \node [hidden_neuron] (neuron21) at (7, 7.5) {};
  \node [hidden_neuron] (neuron22) at (8, 7.5) {};
  \node [hidden_neuron] (neuron23) at (9, 7.5) {};
  \node [hidden_neuron] (neuron24) at (10,7.5) {};
  \node [hidden_neuron] (neuron25) at (11,7.5) {};

  \node [output_neuron] (neuron31) at (7.5,9)  {};
  \node [output_neuron] (neuron32) at (8.5,9)  {};
  \node [output_neuron] (neuron33) at (9.5,9)  {};
  \node [output_neuron] (neuron34) at (10.5,9)  {};

  % \node (neuron31l) at (7.5,9.5) {\small $\hat{x}_1$};
  % \node (neuron32l) at (8.5,9.5) {\small $\hat{x}_2$};
  % \node (neuron33l) at (9.5,9.5) {\small $\hat{x}_3$};
  % \node (neuron33l) at (10.5,9.5) {\small $\hat{x}_4$};

  \node [rotate=45, text width=1.5](neuron31l) at (7.5,9.5) {\small $p(x_1)$};
  \node [rotate=45, text width=1.5](neuron32l) at (8.5,9.5) {\small $p(x_2|x_1)$};
  \node [rotate=45, text width=1.5](neuron33l) at (9.5,9.5) {\small $p(x_3|x_1,x_2)$};
  \node [rotate=45, text width=1.5](neuron34l) at (10.5,9.5) {\small $p(x_4|x_1,x_2,x_3)$};

  \node (W1) at (6.75,5.2) {$\mathbf{W}^1$};
  \foreach \x in {1,...,4}
      \foreach \y in {1,...,5}  
        \draw[->,thick] (neuron0\x) -- (neuron1\y);

  \node (W2) at (6.5,6.7) {$\mathbf{W}^2$};
  \foreach \x in {1,...,5}
      \foreach \y in {1,...,5}  
        \draw[->,thick] (neuron1\x) -- (neuron2\y);

  \node (V) at (6.75,8.2) {$\mathbf{V}$};
  \foreach \x in {1,...,5}
      \foreach \y in {1,...,4}  
        \draw[->,thick] (neuron2\x) -- (neuron3\y);
\end{tikzpicture}  