    \begin{tikzpicture}[node distance=25mm, roundnode/.style={circle, draw=blue!80, fill=blue!5, very thick, minimum size=7mm},
    squaoraclenode/.style={rectangle, draw=oracle!80, fill=oracle!5, very thick, minimum size=7mm},
    arrow/.style = {thick,-stealth}
    ]
    \draw[ultra thick, rounded corners, dashed, draw=black!80, fill=black!5] (4.5cm, -2.2cm) rectangle (10.5cm, 2.5cm) {};
   % \draw[ultra thick, rounded corners, dashed, draw=federated!80, fill=federated!5] (3cm, -1.9cm) rectangle (-5.5cm, 2.1cm) {};
    \node[rectangle, draw=naive!80, fill=naive!5, very thick, minimum size=7mm, rounded corners=.03cm, align=center] (5) at (6.5cm, -0.6cm) {\bba\\($i > n_s)$};
    \node[squaoraclenode, rounded corners=.03cm] (6) [right of=5] {Environment};
    \node[rectangle, draw=black!80, fill=black!5, very thick, minimum size=7mm, rounded corners=.03cm, align=center] (52) at (6.5cm, 1.7cm) {Forced Exploration\\
    $(i \leq n_s)$};
    
    \draw[rectangle, draw=federated!80, fill=federated!5, very thick, minimum size=7mm, rounded corners=.03cm, align=center] (-0.6cm, 0.5cm) rectangle (2.1cm, 1.5cm) {};    
   \node[align=center] at (0.75cm,1cm) (ml) {$\alpha$-majority Voting\\$\forall 1\leq j\leq p$};
   
   \draw[rectangle, draw=federated!80, fill=federated!5, very thick, minimum size=7mm, rounded corners=.03cm, align=center] (-0.9cm, -1.5cm) rectangle (2.4cm, -0.5cm) {};    
   \node at (0.75cm,-1cm) (gl) {Threshold Group Lasso};
   
    \draw[ thick] (52) -- (5);
    \node (h) at (2.25cm, 2.6cm) {\large$\khat_{s-1}$};
    \draw[ultra thick] (0.75cm, 1.5cm) -- (0.75cm, 2.5cm) -- (1.7cm, 2.5cm);
    \draw[arrow, ultra thick] (2.8cm, 2.5cm) -- ++(1.1cm, 0) -- ++(0, -3.1cm) -- (5);

    \draw[arrow] (5.north)-- ++(0,0.5cm) -- ++(25mm,0) node[midway, above] {$\bx_{s,i}$} -- (6.north);
    \draw[arrow] (6.south)-- ++(0,-0.5cm) -- ++(-25mm,0) node[midway, below] {$f_s(\bx_{s,i}) + \epsilon_{s,i}$} -- (5.south);
    
    \draw[arrow, ultra thick] (7.5cm, -2.2cm)-- ++(0,-0.8cm) -- ++(-4.2cm,0);
    \draw[rounded corners, draw=oracle!80, fill=oracle!5, very thick] (3.25cm, -3.5cm) rectangle (4.25cm, -2.5cm) {};
    \node at (3.75cm, -3cm) {$\Dexp_{s}$};
    \draw[arrow, ultra thick] (3.25cm, -3cm) -- ++(-2.5cm, 0) -- ++(0, 1.5cm);
    
    
    % \draw[rounded corners, draw=federated!80, fill=federated!5, very thick] (-4.75cm, -1.5cm) rectangle (-3.75cm, -0.5cm){};
    \node at (-3.4cm, -1cm) {$\Jhat_{s}$};
    \draw[arrow,  thick] (-3.4cm, -0.5) -- (-3.4cm, 0.5cm);
    \draw[arrow, thick](-0.9, -1) -- (-3, -1);
   
    % \draw[rounded corners, draw=federated!80, fill=federated!5, very thick] (-6.6cm, 0.7cm) rectangle (-5.6cm, 1.3cm) {};
    \node at (-4.75cm, 1cm) {$\Jhat_1$};
    \node at (-4.35, 1cm) {\large ,};
    % \draw[rounded corners, draw=federated!80, fill=federated!5, very thick] (-5.3 cm, 0.7cm) rectangle (-4.3cm, 1.3cm) {};
    \node at (-3.95cm, 1cm) {$\Jhat_2$};
    \node at (-3.55, 1cm) {\large ,};
    \node at (-3.1cm, 1cm)  {\large$\dots$};
   \node at (-2.7, 1cm) {\large ,};
    % \draw[rounded corners, draw=federated!80, fill=federated!5, very thick] (-2.9cm, 0.7cm) rectangle (-1.9cm, 1.3cm) {};
    \node at (-2.2cm, 1cm) {$\Jhat_{s-1}$};
    
    \draw [ thick, decorate, decoration={calligraphic brace,amplitude=4pt}] (-5cm, 0.55cm) --(-5cm, 1.45cm) ; %(-2.5cm, 0cm) -- (3cm, 0cm);
    \draw [ thick, decorate, decoration={calligraphic brace,amplitude=4pt}] (-1.8cm, 1.45cm) --(-1.8cm, 0.55cm) ;

    \draw[arrow, thick] (-1.6cm, 1cm) -- (ml);
    
    \end{tikzpicture}