\begin{tikzpicture}[
block/.style={rectangle, draw, text width=0cm, align=center, minimum height=1cm, rounded corners},
% arrow/.style = {,-{Stealth[length=15pt,width=12pt]},thick}, % 
% arrowdash/.style = {dashed,-{Stealth[length=14pt,width=10pt]},thick}, %
arrow/.style = {,-{Stealth[length=5pt,width=4pt]},thick}, % 
arrowdash/.style = {dashed,-{Stealth[length=5pt,width=4pt]},thick}, % 
]


%\footnotesize


\node (GP1) [rectangle, rounded corners, text=black, draw=black, fill=gray!20, align=center,thick, minimum width=2cm, minimum height=0.7cm] at (0,0)  {posterior mean};

\node (GP2) [rectangle, rounded corners, text=black, draw=black, fill=gray!20, align=center, thick, minimum width=2cm, minimum height=0.7cm, below=1mm of GP1] {posterior cov.};


\node (gp) [above=3mm of GP1] {\textbf{Gaussian Process}};

\node (GP) [rounded corners, draw=black, thick, inner sep=2pt, fit=(gp) (GP1) (GP2)] {};


\node (RFM) [rectangle, rounded corners, text=black, draw=black, align=center,thick, minimum width=1cm, minimum height=1cm, left=0.5cm of GP] {\textbf{Recursive}\\ \textbf{Feature} \\ \textbf{Machine}};

\node (x) [left=0.3cm of RFM] {$(\mX,\vy)$};
\node (y1) [above right=0.5cm and 0.3cm of GP.east] {$f_\mM$};
\node (y2) [below right=0.5cm and 0.3cm of GP.east] {$\mSigma_\mM$};

% Arrows
\draw[arrow,thick] (x) -- (RFM);
\draw[arrow,thick] (GP.east|-y1.west) -- (y1.west);
\draw[arrow,thick] (GP.east|-y2.west) -- (y2.west);
%\draw[arrow] (RFM) -- (GP.west);
\draw[arrow] (RFM) -- node[above] {$\mM$} (GP.west);
% \draw[arrow] (RFM) -- node[above] {$f_\mM$} node[below] {$K_\mM$} (GP.west);



\textbf{}\end{tikzpicture}