Gradient Estimates:  Now, we define the notation we use for gradients and gradient approximations. Based on Lemma 2.1 from  [1]}), we can compute \(\nabla \ell _i(x)\)  exactly: \(\nabla \ell _i(x) = \nabla _x f_i(x, y_i^{\star }(x))-\nabla ^2_{xy}g_i(x, y_i^{\star }(x))[\nabla ^2_{yy}g_i(x, y_i^{\star }(x))]^{-1} \nabla _y f_i(x, y_i^{\star }(x))\) . Let \(y\)  denote \(\lbrace y_i\rbrace _{i \in [n]}\) . In practice, since we cannot compute \(y_i^{\star }(x)\)  exactly, we instead define an approximation of the gradient estimate, replacing \(\lbrace y_i^{\star }(x)\rbrace _{i \in [n]}\)  with \(\lbrace y_i\rbrace _{i \in [n]}\) :
\(\nonumber \hspace{0.83328pt}\overline{\hspace{-0.83328pt}\nabla \hspace{-0.83328pt}}\hspace{0.83328pt}_x f_i(x, y) = \nabla _x f_i(x, y)-\nabla ^2_{xy}g_i(x, y)[\nabla ^2_{yy}g_i(x, y)]^{-1} \nabla _y f_i(x, y).\) 
